+ All Categories
Home > Documents > Arduino la rivoluzione_dell_open_hardware

Arduino la rivoluzione_dell_open_hardware

Date post: 16-Jan-2017
Category:
Upload: alessandro-turco
View: 501 times
Download: 1 times
Share this document with a friend
116
Accademia Di Belle Arti di Carrara Scuola di Nuove Tecnologie dell’Arte Corso di Laurea Triennale in Arti Multimediali Tesi di Laurea: Arduino La Rivoluzione dell’Open Hardware di Andrea Nepori Mat. AM 371 Anno Accademico 2012/2013 Sessione di tesi: 5 luglio 2013 Relatore: Prof. Massimo Cittadini
Transcript
Page 1: Arduino la rivoluzione_dell_open_hardware

Accademia Di Belle Arti di CarraraScuola di Nuove Tecnologie dell’Arte

Corso di Laurea Triennale in Arti Multimediali

Tesi di Laurea:

ArduinoLa Rivoluzione dell’Open Hardware

di Andrea NeporiMat. AM 371

Anno Accademico 2012/2013Sessione di tesi: 5 luglio 2013

Relatore:Prof. Massimo Cittadini

Page 2: Arduino la rivoluzione_dell_open_hardware
Page 3: Arduino la rivoluzione_dell_open_hardware

INDICE

Introduzione! 7

1. Il Maker Movement e la nascita di Arduino ! 13

1.1 Il Maker Movement 14

1.2 Openness e Condivisione 21

2. L’Hardware! 25

2.1 Quanti Arduino ci sono? 30

2.2 Estendere Arduino: le shield 39

Motor Shield 41

Arduino Wifi Shield e Ethernet Shield 42

Arduino Proto Shield 45

3. Il software ! 47

3.1 La IDE di Arduino e il linguaggio di programmazione 49

3.2 Hello World: programmare Arduino 53

3.3 Concetti Avanzati e librerie 59

4. Arduino e l’arte ! 63

4.1 Le opere 68

5. L’importanza delle Web Community ! 79

5.1 Capitale diffuso 86

6. Altri esempi di Open Hardware! 91

6.1 Gli Arduino-Derivati 96

6.2 Raspberry Pi 99

6.3 Altri esempi di Open Hardware elettronico 103

6.4 Rep Rap e la stampa 3D 108

Bibliografia! 115

Page 4: Arduino la rivoluzione_dell_open_hardware
Page 5: Arduino la rivoluzione_dell_open_hardware

“If you can’t open it, you don’t own it.”Mr. Jalopy

A Daniela

Page 6: Arduino la rivoluzione_dell_open_hardware
Page 7: Arduino la rivoluzione_dell_open_hardware

Introduzione

Arduino, come tutte le invenzioni di successo, è la risposta ad un

problema. E’ uno strumento open source che semplifica la progettazione

e la prototipazione elettronica offrendo a studenti, insegnanti, artisti o

semplici appassionati una piattaforma hardware e software per

l’implementazione rapida di progetti interattivi, multimediali e

multidisciplinari.

Arduino Uno, attuale modello “standard” della famiglia Arduino1

La parte hardware è costituita da una scheda a singolo microcontrollore

(che cambia a seconda dei modelli) capace di recepire input fisici dei più

disparati, processarli e controllare motori, luci, suoni e molti altri elementi

di output fisico. Approfondirò gli aspetti più tecnici, con una rassegna

7

1 - Foto: Coda Sign http://www.codasign.com/may-2012-intro-to-arduino

Page 8: Arduino la rivoluzione_dell_open_hardware

delle principali versioni di Arduino disponibili ad oggi, nel corso del

secondo capitolo della tesi.

La parte software dell’ecosistema Arduino consiste invece in una IDE2

cross-platform, disponibile cioè per tutti i sistemi operativi più diffusi. Il

linguaggio di programmazione di Arduino è una derivazione di Wiring e

Processing, progetti fondamentali nell’ambito del physical computing e

dell’interaction design di cui parlerò più diffusamente nel terzo capitolo di

questa tesi.

Arduino, come molti altri progetti analoghi, nasce per semplificare il

processo di programmazione di un microcontrollore, un’operazione

solitamente riservata agli appassionati con conoscenze avanzate di

elettronica.

La scheda offre una piattaforma accessibile anche ai meno esperti con un

sistema di pin di ingresso ed uscita ai quali si possono far corrispondere

gli input e gli output fisici.

L’ambiente di sviluppo è ottimizzato per non spaventare coloro che non

hanno familiarità con la programmazione ed offre strumenti che rendono

più semplice ed intuitiva la scrittura del codice.

Allo stesso tempo la IDE offre un’ampia versatilità che non limita i più

esperti e consente di creare soluzioni via via più complesse.

Arduino non è l’unica piattaforma di prototipazione elettronica che si

proponga di offrire una soluzione semplificata per la programmazione dei

microcontrollori. Il suo successo, però, è legato a fattori che distinguono

questo progetto da tutti gli altri.

Costa poco: una scheda si può acquistare online per circa 30€ e il prezzo

scende ulteriormente per il kit da saldare. E’ compatibile con tutti i

8

2 - IDE: Integrated Development Environment (Ambiente di Sviluppo Integrato)

Page 9: Arduino la rivoluzione_dell_open_hardware

maggiori sistemi operativi sia a livello hardware sia a livello software.

E’ estremamente semplice da utilizzare: un utente medio, senza

esperienza di prototipazione elettronica, è in grado di collegare Arduino al

proprio computer, installare la IDE e far lampeggiare un piccolo LED –

l’equivalente su Arduino dell’Hello World della programmazione – nel giro

di pochi minuti.

E, soprattutto, Arduino è Open Source.

E’ “aperto” l’hardware, che si può modificare, riprogettare, estendere

senza alcun limite; è aperto il software, che si può espandere tramite

librerie C++ e si può integrare con “pezzi” di codice AVR-C, il linguaggio

“nativo” del microcontrollore.

La “openness” di Arduino è l’elemento caratteristico che più di ogni altro

ne ha determinato il successo, garantendo al progetto il supporto

crescente di una community online forte di decine di migliaia di utenti che

condividono costantemente i propri progetti, il proprio codice e soprattutto

la propria esperienza.

Approfondirò questi aspetti fondamentali – Openness e condivisione – nel

primo capitolo di questa tesi, con il quale cercherò inoltre di delineare la

storia dei movimenti culturali che hanno generato il “brodo di coltura” che

ha permesso ad Arduino e altri progetti analoghi di nascere e prosperare.

Della community online, colonna portante dell’esperienza Arduino, parlerò

invece più approfonditamente nel quinto capitolo di questa tesi.

Per la sua versatilità, semplicità d’uso, compatibilità ed estrema

economicità, Arduino è diventato rapidamente la piattaforma di

prototipazione elettronica per eccellenza nell’ambito dell’Interaction

Design e delle Installazioni Multimediali. A fianco di un numero sempre

9

Page 10: Arduino la rivoluzione_dell_open_hardware

crescente di applicazioni scientifiche o più prettamente legate

all’hobbystica elettronica, Arduino è entrato a far parte della dotazione

standard dell’artista multimediale contemporaneo. Poter imparare in poco

tempo e in prima persona a programmare e installare un sistema di

prototipazione elettronica che rende semplici e immediate interazioni che

in passato richiedevano interventi professionali specifici, per l’artista

interattivo è stata una vera e propria rivoluzione copernicana. Di questo

aspetto e di alcuni progetti artistici basati su Arduino parlerò più

approfonditamente nel quarto capitolo della tesi.

La versatilità e la molteplicità delle numerose “destinazioni d’uso” di

Arduino è rispecchiata dall’eterogeneità professionale e formativa della

squadra che ha lavorato alla sua creazione.

La “faccia” di Arduino è Massimo Banzi, Interaction Designer che nel

2005 fonda ad Ivrea il team di sviluppo originale insieme a David

Cuartielles, Tom Igoe, Gianluca Martino e Davide Mellis.

Il progetto nasce da Wiring, una piattaforma per la prototipazione

elettronica semplificata, destinata ad artisti, architetti e altri professionisti

digiuni di elettronica, realizzata da Hernando Barragán per la sua tesi di

laurea (di cui Banzi era relatore) presso l’Interaction Design Institute di

Ivrea.

Arduino ha di fatto ereditato i presupposti e gli scopi originali di Wiring,

espandendo la portata e il potenziale del progetto.

Della storia di Arduino e del suo sviluppo parlerò più nel dettaglio nel

primo capitolo della tesi.

10

Page 11: Arduino la rivoluzione_dell_open_hardware

Nel corso di otto anni, Arduino ha dato vita ad una rivoluzione che ormai

si autoalimenta con idee nuove, continue innovazioni e progetti che

uniscono Open Hardware e software Open Source a costi contenuti e

riproponendo quelle caratteristiche fondamentali che hanno decretato il

successo del progetto. Nel sesto e ultimo capitolo di questa tesi passerò

dunque in rassegna altri esempi di hardware “aperti”.

11

Page 12: Arduino la rivoluzione_dell_open_hardware

12

Page 13: Arduino la rivoluzione_dell_open_hardware

1. Il Maker Movement e la nascita di Arduino

Quando Massimo Banzi e il suo team decisero di lavorare ad Arduino lo

fecero in prima istanza per offrire agli studenti del Interactive Design

Institute di Ivrea una soluzione semplice e comprensibile per realizzare

progetti interattivi elettronici senza scomodare linguaggi di

programmazione complessi e conoscenze avanzate che spesso non

sono prerogativa degli artisti multimediali e più in generale dei

professionisti dell’ambito creativo.

Arduino Team. Da sx: Martino, Mellis, Cuartielles, Igoe, Banzi. 1

Poiché lo scopo finale era la massima diffusione di Arduino, Banzi,

Cuartielles e tutta la squadra di Interactive Designer, artisti e sviluppatori

riunita per lavorare al progetto decisero di applicare all’hardware il

concetto di “Open” che negli anni precedenti aveva già ampiamente

dimostrato la propria forza in ambito software.

13

1 - (Foto: David Cuartielles)

Page 14: Arduino la rivoluzione_dell_open_hardware

Come Linus Torvalds decise di scrivere da zero il proprio sistema

operativo che tutti avrebbero potuto utilizzare, modificare ed estendere

liberamente, così il team Arduino volle realizzare un progetto elettronico

avanzato (e di cui già si poteva intravedere un appeal commerciale, per

quanto di nicchia) che tutti avrebbero potuto utilizzare, modificare ed

espandere a proprio piacimento.

Se la culla del progetto Arduino è stata dunque la cultura dell’Open

Source che fino al primo lustro degli anni 2000 aveva continuato a

svilupparsi praticamente solo in ambito software, salvo qualche sparuto

esperimento collaterale in ambito hardware, la vera svolta per il progetto

è arrivata grazie all’endorsement globale negli ambienti di quello che è

ormai unanimemente chiamato Maker Movement, la “subculture” degli

hobbisti tecnologici del 21-esimo secolo.

1.1 Il Maker MovementDefinire una “subculture” (termine anglosassone da non tradurre con lo

spregiativo italiano “sottocultura”) non è sempre facile. In questo caso

potremmo partire dalla definizione di makers che dà Massimo Banzi:

I maker “non sono nerd, anzi sono dei tipi piuttosto fighi che si interessano di tecnologia, design, arte, sostenibilità, modelli

di business alternativi. Vivono di comunità online, software e

hardware open source ma anche del sogno di inventare qualcosa da produrre autonomamente, per vivere delle proprie invenzioni.

In un momento di crisi si inventano il loro lavoro invece che

cercarne uno classico.2”

14

2 - Massimo Banzi, “Vi spiego chi sono i maker”. Wired.it, 30/11/2011 - http://goo.gl/9pP0H

Page 15: Arduino la rivoluzione_dell_open_hardware

Il Maker Movement (o, in alternativa, la Maker Culture) è dunque un

movimento che raccoglie tutti coloro che si riconoscono in questa

definizione e che, più diffusamente, si interessano di un fai da te

tecnologico che non si limita al semplice “hobby” dell’elettronica ma

unisce anche elementi etici di condivisione, libertà della conoscenza e,

più in generale, commistione fra tecnologia ed arte.

Il Maker è quindi colui che crea le proprie soluzioni tecnologiche, adatta

prodotti commerciali alle proprie esigenze modificandoli radicalmente,

aggiusta invece di buttare via e più in generale si riconosce nel motto “if

you can’t open it you don’t own it3”.

La Maker Culture nasce e cresce negli Stati Uniti, e affonda le proprie

radici in un retroterra culturale già forte di istanze quali la DIY Ethic e più

in generale il DIY Movement.

Il concetto, tutto americano, di “etica del DIY” non va confuso con il

semplice hobbismo di stampo europeo. E’ un vero e proprio tratto

caratteristico della cultura degli Stati Uniti e riassume quella tendenza

verso un’autosufficienza tecnologica (nel senso etimologico del termine)

che valorizza la conoscenza e l’applicazione di un sapere manuale grazie

al quale l’uomo comune può evitare di ricorrere al pagamento di persone

esperte per completare un lavoro domestico, una riparazione o, più in

generale, un progetto che prevede il ricorso a strumenti specialistici.

Il movimento del “DIY” era intimamente legato all’estetica della

“craftmanship” che si può ricollegare all’influenza negli Stati Uniti dell’Arts

& Crafts Movement della prima metà del secolo.

Negli anni ’40 e ’50 il successo del movimento era riconducibile a vari

fattori: la disponibilità di nuovi strumenti tecnologici e nuovi materiali alla

15

3 - Mr Jalopy, “Owner’s Manifesto”. Make Magazine Volume 4, 2006. http://makezine.com/04/ownyourown/

Page 16: Arduino la rivoluzione_dell_open_hardware

portata della classe media e le conseguenti operazioni di marketing in un

mercato nuovo e in forte espansione; l’estetica dell’abilità manuale nel

riparare, modificare e ristrutturare la casa, fortemente legata al mito della

“suburbia”, le comunità residenziali lontane dai centri cittadini; le

possibilità di risparmio offerte a chi sapeva “fare da sé” e in questo modo

poteva permettersi agi fino a poco tempo prima preclusi alla classe

media.

I due decenni successivi furono caratterizzati da un’inversione di rotta e si

fece sempre più forte la giustificazione politico-sociale. La DIY-Ethic

divenne risposta critica e di protesta nei confronti dell’industrializzazione

crescente e, in senso più ampio, alle evoluzioni alienanti della società dei

consumi.

In entrambi i casi a convalidare presso il grande pubblico americano

l’etica e la cultura del fai da te furono in larga parte delle pubblicazioni

popolari e molto diffuse che celebravano l’operosità, l’inventiva e più in

generale la cultura e soprattutto l’estetica del “saper fare da sé”.

Popular Mechanics e Mechanix Illustrated sono solo due delle riviste

“mainstream” più famose; attraverso di esse “l’uomo della strada” poteva

tenersi aggiornato costantemente sulle evoluzioni degli strumenti

tecnologici, imparando ed assimilando nuove capacità e possibilità

creative attraverso esempi di progetti più o meno complessi e più o meno

realizzabili da chi ne avesse le capacità.

La vivacità culturale del settore era inoltre alimentata da un’ampia

diffusione di “zines” ad opera di un nutrito sottobosco di case editrici

indipendenti. Epitome di questa autoproduzione editoriale fu senz’altro lo

Whole Earth Catalogue, una “zine” indipendente fondata da Stewart

Brand (scrittore, attivista e, più debitamente, visionario) per diffondere i

“tools”, gli strumenti, nel senso più ampio del termine, ad un pubblico di

16

Page 17: Arduino la rivoluzione_dell_open_hardware

studenti, hippy e attivisti assetati di condivisione del sapere e di novità

tecnologiche che avrebbero potuto migliorare il futuro dell’uomo.

Una raccolta di copertine di riviste americane che promuovevano la scienza e la tecnica4

Un rivolo di questa diffusa e forte connotazione culturale negli anni ’70

porterà un gruppo di appassionati di DIY elettronico a fondare

quell’Homebrew Computer Club che è riconosciuto come la culla della

rivoluzione informatica di fine anni ’70 e inizio anni ’805.

E’ interessate notare come la diffusione del Personal Computer e in

generale dell’informatica domestica, nate in fondo dal coraggio e

dall’intraprendenza di DIY-elfers un po’ hippy dalle notevoli capacità

17

4 - Foto: Whatalife.pmpblogs.com - http://whatalife.pmpblogs.com/2011/08/06/youre-collecting-what/

5 - Steven Levy, Hackers, Anchor Press, 1984. Capitoli 10, 11.

Page 18: Arduino la rivoluzione_dell_open_hardware

elettroniche, porterà, negli anni ’80 e ’90 ad un parziale allontanamento

da quella cultura del fai da te attivista non appena furono chiare le

implicazioni economiche della “rivoluzione”.

La fortissima accelerazione tecnologica del settore e l’estrema

complessità della materia per il non addetto ai lavori, inoltre, resero

l’informatica poco permeabile ad un approccio del DIY, se non per sparuti

gruppi di esperti e appassionati spesso già impiegati in ambiti

professionali affini.

Nel ventennio 1980-2000, il DIY movement più attivista sarà sempre più

associato agli ambienti della protesta e delle culture di opposizione,

mentre la nicchia del DIY in senso stretto, legata principalmente al

rinnovamento domestico, perderà completamente qualsiasi connotazione

di “movimento sociale”, per diventare semplicemente materia per gli

appassionati.

Come negli anni ’40 e ’50 fu la nuova e ampia disponibilità di strumenti e

materiali a contribuire allo sviluppo di una nuova cultura del DIY, così nel

corso del primo decennio del nuovo millennio è stata l’accessibilità alle

nuove tecnologie e la sempre maggior disponibilità di soluzioni hi-tech a

prezzi decrescenti a rendere possibile una nuova rinascita digitalizzata,

globale e connessa di quelle istanze di autarchia tecnologica che

possiamo riassumere sotto la definizione di Maker Movement.

Il Maker Movement è, oggi, la continuazione ideale e digitalizzata di

quella DIY ethic e del DIY movement che le nuove generazioni stanno

riscoprendo e adattando all’era digitale, grazie soprattutto alla ormai

ampia disponibilità di soluzioni tecnologiche complesse e potenti a prezzi

irrisori.

18

Page 19: Arduino la rivoluzione_dell_open_hardware

La nascita della Maker Culture si può associare e far coincidere con la

nascita e la diffusione, a cavallo fra la fine degli anni ’90 e i primi anni

2000, degli Hackerspaces, spazi condivisi e comunitari in cui geek,

appassionati di elettronica e informatica e quelli che in maniera più

informale vanno sotto l’ampia definizione gergale di “smanettoni” possono

lavorare a progetti di varia natura, condividendo strumenti e conoscenze.

Il primo e il secondo volume di Make Magazine (O’Reilly, 2005)Il primo e il secondo volume di Make Magazine (O’Reilly, 2005)

Make Magazine, fondata da Dale Dougherty nel gennaio del 2005, è la

rivista che più di ogni altra ha saputo interpretare la nuova “rivoluzione

industriale”, come la chiama Chris Anderson nel titolo del suo bestseller

Makers: the new industrial revolution.

La pubblicazione dell’editore O’Reilly diventa ben presto un punto di

riferimento, un megafono e un vero e proprio accelerante culturale del

movimento negli Stati Uniti, grazie anche alla promozione di iniziative

come la Maker Faire, una fiera evento aperta a makers, inventori, e

hobbisti tecnologici in generale che ha lo scopo ci “celebrare le arti,

19

Page 20: Arduino la rivoluzione_dell_open_hardware

l’artigianato, l’ingegneria, i progetti scientifici e lo forma mentis del Do-it-

Yourself”6.

Quello di Make e Arduino è dunque un percorso che nasce separato,

salvo poi unirsi con successo negli anni successivi, quando la piccola

piattaforma di prototipazione del team di Massimo Banzi comincia a fare

la propria comparsa in alcuni dei progetti pubblicati dalla rivista. Una vera

e propria “consacrazione” da parte di Make arriverà solo nel 2011 con la

pubblicazione del numero 25 della rivista che include una sezione di 39

pagine interamente dedicata a progetti basati su Arduino.

Il prototipo “zero” di Arduino, “quando ancora si chiamava Programma 2005” 7

Così come Make diventa una sorta di House Organ del Maker Movement,

Arduino assurge gradualmente al ruolo di epitome di un movimento che in

patria arriverà di ritorno solamente anni più tardi, nonostante sia partito

20

6 - Chris Anderson, Makers, The New Industrial Revolution, Random House 2012 - pag. 20

7 - Foto: Massimo Banzi, Flickr. http://goo.gl/asTlJ

Page 21: Arduino la rivoluzione_dell_open_hardware

tutto da Ivrea, e che invece all’estero (negli Stati Uniti ma anche

nell’ambito artistico-culturale nordeuropeo) ha macinato i primi successi.

Il successo della piccola scheda di prototipazione elettronica è legato

quindi alla “fortuna” di essere piaciuta ad una “nicchia numerosa” come

sono solitamente le nicchie delle sub-culture di base anglosassone

globale.

Il motivo di questa affinità elettiva va ricercato nelle caratteristiche di

fondo del progetto Arduino e del movimento: nella volontà (o addirittura

necessità) di diffusione pubblica del sapere e nel rifiuto degli schemi

tradizionali di protezione della proprietà intellettuale.

In due parole Openness e condivisione.

1.2 Openness e CondivisioneIl termine inglese “openness” è la concettualizzazione più ampia possibile

di tutto ciò che attiene all’Open Source in campo software e in campo

hardware. Openness è quindi lo stato di ciò che è “open”, aperto, dunque

liberamente condivisibile.

Oggi il concetto di hardware aperto, grazie all’esperienza di Arduino ma

anche a quella di molti altri inventori e maker, è assodato e sempre più

diffuso.

Nel 2005, quando Banzi, Cuartielles e gli altri membri del team originale

decisero di percorrere la strada dell’open source per la propria nuova (e

promettente) invenzione, non c’erano esperienze precedenti sulle quali

basare una simile decisione e dalle quali prendere spunto.

Il team decise di rendere pubblico il progetto originale dell’Arduino (e tutte

le iterazioni successive del prodotto) con una licenza Creative Commons

di tipo “Attribution Share Alike”8, che permette a chiunque di riprodurre,

21

8 - http://creativecommons.org/licenses/by-sa/2.5/it/

Page 22: Arduino la rivoluzione_dell_open_hardware

copiare, modificare e rivendere l’oggetto a patto di citare la paternità

dell’invenzione originale.

Fu un salto nel vuoto, motivato in parte da ragioni “ideologiche” (la

volontà pura e semplice di diffondere il più possibile un’invenzione utile

ad artisti, studenti e semplici appassionati che l’avrebbero potuta sfruttare

senza paura di infrangere brevetti e proprietà intellettuali) e in parte da

una scelta di “marketing” alternativa nata dalla consapevolezza che un

modello “aperto” avrebbe potuto funzionare meglio per diffondere la

conoscenza del prodotto.

Il primo prototipo funzionante di Arduino 9.

La tendenza naturale della comunità ad aggregarsi attorno agli inventori,

riconoscendo al prodotto originale e ai suoi creatori una credibilità e una

autorevolezza maggiori rispetto a quella di chiunque altro copiasse l’idea

e riproducesse l’oggetto e il vantaggio tecnologico dell’inventore rispetto

22

9 - Foto: Massimo Banzi, Flickr. http://goo.gl/ZLT2c

Page 23: Arduino la rivoluzione_dell_open_hardware

alla concorrenza dozzinale (i cosiddetti “knock-off”) sono i due elementi

fondamentali che hanno decretato nel corso degli ultimi anni il successo

del modello Arduino.

Con il diretto controllo della manifattura italiana delle schede, Banzi è

riuscito a far sì che il prodotto originale realizzato dalla ditta Smart

Projects e tutti i nuovi modelli di Arduino (che analizzerò nel capitolo

successivo), per quanto liberamente copiabili, continuassero ad avere un

vantaggio netto sulla concorrenza in termini di qualità e innovazione. Nel

2012 l’esperienza si è poi concretizzata ulteriormente nella fondazione a

Torino di Officine Arduino S.r.l., azienda che si occupa della produzione e

vendita di schede Arduino di varia natura e di accessori compatibili e allo

stesso tempo funziona da FabLab, spazio aperto per i maker e i giovani

innovatori torinesi alla ricerca di uno spazio dove inventare e condividere.

23

Page 24: Arduino la rivoluzione_dell_open_hardware

24

Page 25: Arduino la rivoluzione_dell_open_hardware

2. L’Hardware

Con il nome Arduino sono state prodotte, dal 2005 ad oggi, 19 schede

elettroniche “ufficiali” o riconosciute dal team originale di Arduino.

Differiscono fra di loro per alcune specifiche, ma condividono tutte delle

caratteristiche costruttive comuni. Arduino è, di fatto, un’interfaccia

semplificata per un microcontrollore, che è dunque il cuore di ogni

“board”. Un “microcontroller” è un dispositivo elettronico integrato su un

unico chip, progettato appositamente per interagire con input esterni,

analogici o digitali, e restituire output analogici o digitali derivati dalle

operazioni di processamento interno determinate da un programma

caricato nella memoria del chip.

Un microcontrollore Atmel ATMEGA8-16PI come quello usato sui primi prototipi di Arduino

25

Page 26: Arduino la rivoluzione_dell_open_hardware

Nei primi modelli Banzi e il suo team utilizzarono un microcontrollore

Atmel a 8-bit AVR, per poi passare a soluzioni più potenti con le versioni

successive.

Schema Elettrico dell’Arduino Uno, Rev.3 1

Sulle varie versioni di Arduino, che descriverò nel dettaglio più avanti, si

trovano i modelli di microcontrollore ATmega8, ATmega168, ATmega328

(Arduino Uno), ATmega1280, ATmega2560, ATMega32u4 (Arduino

Leonardo e Arduino Esplora).

Arduino Due, lanciato nel 2012, è il primo modello di Arduino ad integrare

una CPU Atmel SAM3X8E con infrastruttura ARM Cortex-M3.

Per permettere agli Arduino di comunicare con un computer tramite USB

e renderne semplice la programmazione, ogni scheda integra un ulteriore

chip per la conversione del segnale digitale da USB a seriale.

L’Arduino Uno, il modello di riferimento di tutta la gamma, monta anche

un chip AtMega16U2, programmato come convertitore USB-Seriale.

Grazie a questo chip l’Arduino connesso ad un computer tramite USB

26

1- Dal PDF delle schematiche di Arduino Uno: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Page 27: Arduino la rivoluzione_dell_open_hardware

può essere immediatamente riconosciuto come periferica senza

configurazioni particolari.

Nei modelli più recenti, in particolare sull’Arduino Leonardo e sull’Arduino

Esplora, non è presente un ulteriore Chip per la conversione USB-seriale

perché il microcontrollore Atmel ATmega32u4 integra già questa funzione.

Grazie a questa caratteristica l’Arduino Leonardo e l’Arduino Esplora

sono riconosciuti dai computer come periferiche di input e possono

essere utilizzati come fossero un mouse o una tastiera.

Quasi tutte le schede Arduino integrano poi altri componenti, alcuni

specifici a seconda del modello, quali ad esempio un oscillatore

ceramico, un pulsante di reset che fa ripartire la scheda in caso di stallo

del programma in memoria, un jack per la connessione dell’alimentazione

diretta.

Arduino Due è il primo modello ad implementare una CPU ARM Cortex

Su ogni board Arduino sono presenti infine dei pin (“piedini”) di input e

output attraverso i quali il microcontrollore riceve le “informazioni” in

ingresso e restituisce all’ambiente un segnale in uscita.

27

Page 28: Arduino la rivoluzione_dell_open_hardware

Tramite il software di Arduino i pin si possono programmare come porte di

entrata o di uscita digitale o analogica e se ne può controllare il

comportamento attraverso la programmazione ad alto livello dalla IDE di

Arduino.

Arduino Uno: schema della componentistica e dei pin di Input/Output 2

E’ questo il vero vantaggio di Arduino: operazioni semplici come

l’accensione e lo spegnimento di un LED tramite programmazione di un

microcontrollore in passato avrebbero richiesto la scrittura di un ampio

quantitativo di codice Assembly, da “flashare” (ovvero registrare nella

memoria) sul chip tramite apposito socket collegato tramite porta seriale

ad un computer.

Grazie ad Arduino e la sua IDE di programmazione, la stessa operazione

si può effettuare scrivendo poche righe di codice di alto livello3 e

28

2 - Immagine: Fut Electronic - http://store.fut-electronics.com/1Ard-Uno.html

3 - Per linguaggio di programmazione ad alto livello si intende un linguaggio con costrutti e logiche più simili a quelli del linguaggio umano che non al codice macchina.

Page 29: Arduino la rivoluzione_dell_open_hardware

collegando i piedini del LED ai due PIN dell’Arduino programmati per

emettere un segnale elettrico in uscita.

Il numero di ingressi ed uscite che si possono utilizzare, e dunque il

numero di ingressi ed uscite disponibili su una scheda Arduino,

dipendono dalle specifiche del microcontrollore. Il loro numero cambia a

seconda del modello di chip che monta ogni specifica versione

dell’Arduino.

La “revisione 3” dell’Arduino Uno, che ad oggi è considerato il modello

base di riferimento, monta 14 pin di input/output digitale, dei quali 6

possono essere utilizzati come output PWM (modulazione della larghezza

d’impulso), e 6 pin per l’input analogico, utili per la lettura di segnali

elettrici analogici come quelli prodotti da un’ampia gamma di sensori.

L’Arduino Due, la recente versione basata su CPU ARM Cortex-M3 a 32

bit, può permettersi un numero complessivo di pin molto più alto, con 54

piedini di input/output digitale (di cui 12 utilizzabili come uscite PWM), 12

input analogici ed anche 4 porte seriali hardware.

Le schede Arduino funzionano con una tensione in ingresso di 5V che

può essere fornita direttamente dalla connessione USB. La maggior parte

delle schede integra anche un connettore per l’alimentazione diretta con

una tensione in ingresso che può arrivare fino a 9V. Unica eccezione è

Arduino Due, che invece funziona con una tensione in ingresso di 3,3 V.

Arduino si può estendere attraverso le cosiddette “shield”, schede

aggiuntive che si possono montare sui pin della scheda principale per

ampliarne le funzionalità e controllare ad esempio dei servo motori (Motor

Shield), riprodurre file WAV da una scheda di memoria (Wave Shield) o

connettere l’Arduino ad una rete wireless (Wi-Fi Shield). Alle estensioni di

Arduino è dedicata la terza sezione di questo capitolo.

29

Page 30: Arduino la rivoluzione_dell_open_hardware

2.1 Quanti Arduino ci sono?

In questa sezione ho raccolto alcune schede specifiche dei modelli più

diffusi e più recenti di Arduino, con le principali caratteristiche tecniche, le

destinazioni d’uso più probabili e i link alle rispettive pagine informative

da cui si possono reperire specifiche più dettagliate, le schematiche della

scheda e i datasheet dei microcontrollori utilizzati.

I modelli analizzati sono i seguenti:

• Arduino Uno• Arduino Due• Arduino Leonardo• Arduino Esplora• Arduino Mega 2560• Arduino Nano• LilyPad Arduino (modello realizzato da Sparkfun)

La linea completa di Arduino comprende ulteriori modelli, per un totale di

19, che non tratterò nello specifico. Fra questi meritano una menzione

rapida anche:

• Arduino Robot (board dotata di ruote e motori per le implementazioni di piccoli e grandi robot in grado di muoversi)

• Arduino Mega ADK (integra un chip MAX3421e che semplifica la connessione ad un terminale Android)

• Arduino Ethernet (stesse caratteristiche di un Arduino Uno,

ma integra una porta Ethernet per la connessione ad una rete LAN)

• Arduino BT (simile all’Arduino Uno, integra un modulo Bluegiga WT11 per la connettività Bluetooth)

• Arduino Micro (concetto simile all’Arduino Nano, ma derivato da Arduino Leonardo. Ha un numero maggiore di pin di I/O rispetto ad Arduino Nano)

• Arduino Pro (scheda senza pin pre-saldati, pensata per

l’installazione permanente in oggetti o opere d’arte)

30

Page 31: Arduino la rivoluzione_dell_open_hardware

Arduino Uno

Arduino Uno Rev.3 - Fronte Arduino Uno Rev.3 - Retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega328

Numero di Input/Output digitali: 14 (di cui 6 output PWM)

Numero di Input Analogici: 6

Memoria: 32KB; 2KB SRAM; 1KB EEPROM

Velocità di Clock: 16MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardUno

Arduino Uno è, ad oggi, il modello “di base” della scheda e quello meno

“specializzato”, nonché più adatto ai principianti. Rispetto ai modelli più

datati come Arduino Diecimila e Arduino 2009, Arduino Uno ha introdotto

una novità importante, ovvero la presenza di un chip ATmega16U2

aggiuntivo programmato per operare la conversione USB-seriale.

L’implementazione di questa soluzione ha notevolmente semplificato il

processo di programmazione della scheda tramite USB. I più recenti PC

Windows e Mac riconoscono la periferica in automatico, senza necessità

di alcuna procedura di installazione aggiuntiva.

La più recente versione di Arduino Uno è la Rev.3, ovvero la terza

revisione che integra un circuito di reset più resistente e alcune migliorie

per la compatibilità con le shield. (v. cap. 2.3. - Estendere Arduino)

31

Page 32: Arduino la rivoluzione_dell_open_hardware

Arduino Mega 2560

Arduino Mega 2560 rev.3 - fronte Arduino Mega 2560 Rev.3 - retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega2560

Numero di Input/Output digitali: 54 (di cui 14 output PWM)

Numero di Input Analogici: 16

UART (Porte seriali Hardware) 4

Memoria: 256KB; 8KB SRAM; 4KB EEPROM

Velocità di Clock: 16MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardEsplora

Arduino Mega 2560 è la versione “potenziata” dell’Arduino Uno, dal quale

differisce principalmente per la dotazione di porte di input/output e per la

la quantità di memoria offerta dal processore.

Arduino Mega 2560 (rev. 3) sostituisce il precedente Arduino Mega ed è

preferibile alla versione Uno nel caso sia necessario caricare sul

processore script molto complessi, che richiamano un gran numero di

librerie e che in generale occupano una grande quantità di spazio in

memoria.

Arduino Mega 2560 è generalmente compatibile con il codice sviluppato

per Arduino Uno anche se alcuni “aggiustamenti” potrebbero essere

necessari. Può funzionare con le Shield per l’estensione di Arduino Uno,

salvo adattamenti alla disposizione di alcuni pin di input/output.

32

Page 33: Arduino la rivoluzione_dell_open_hardware

Arduino Due

Arduino Due - Fronte Arduino Due - Retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: Atmel SAM3X8e ARM Cortex M3

Numero di Input/Output digitali: 54 (di cui 12 output PWM)

Numero di Input Analogici: 12 + 4 UARTS

Numero di Output Analogici: 2

Memoria: 512KB; 96KB SRAM;

Velocità di Clock: 84MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardDue

Arduino Due è una versione recente di Arduino, lanciata nel 2012, che

per la prima volta implementa una CPU ARM. Più potente, grazie al

microcontrollore implementato, e con molti più ingressi ed uscite rispetto

alla versione base.

Il team di Arduino è riuscito in ogni caso a mantenere contenuto il prezzo

della scheda, che non supera i 35€.

Fra i vantaggi di Arduino Due, la presenza di un porta USB Seriale

dedicata grazie alla quale la scheda può funzionare da periferica USB

host quando collegata ad altri dispositivi (mouse, tastiera, smartphone). In

quel caso Arduino Due necessità di un’alimentazione esterna fornita

attraverso il connettore Jack.

33

Page 34: Arduino la rivoluzione_dell_open_hardware

Arduino Leonardo

Arduino Leonardo - Fronte Arduino Leonardo - Retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega32u4

Numero di Input/Output digitali: 20 (di cui 7 output PWM)

Numero di Input Analogici: 12

Memoria: 32KB; 2,5KB SRAM; 1KB EEPROM

Velocità di Clock: 16MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardLeonardo

Arduino Leonardo, lanciato ufficialmente nel 2012, è la prima versione di

Arduino ad implementare un microcontrollore (ATmega32u4) che integra

già un controller USB, eliminando la necessità di un secondo chip per la

conversione USB/Seriale.

Questa caratteristica offre un ulteriore vantaggio: permette alla scheda di

funzionare come un dispositivo HID e dunque può essere utilizzata su

Mac o PC per emulare una tastiera o un mouse.

L’assenza di un chip dedicato alla conversione USB/seriale ha inoltre il

vantaggio di eliminare il costo del componente, con un sensibile

abbassamento del prezzo della scheda.

34

Page 35: Arduino la rivoluzione_dell_open_hardware

Arduino Esplora

Arduino Esplora - Fronte Arduino Esplora - Retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega32u4

Numero di Input/Output digitali: 20 (di cui 7 output PWM)

Numero di Input Analogici: 12

Memoria: 32KB; 2,5KB SRAM; 1KB EEPROM

Velocità di Clock: 16MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardEsplora

Arduino Esplora è basato sullo stesso microcontrollore utilizzato

sull’Arduino Leonardo e può quindi funzionare come periferica HID

quando connesso ad un computer. La vera peculiarità dell’Esplora è la

dotazione di sensori e controlli pre-installati sulla scheda che permettono

di utilizzarla “out of the box” per le più svariate applicazioni. Sulla scheda

è caricato di default uno script per utilizzarla come controller videoludico.

35

Page 36: Arduino la rivoluzione_dell_open_hardware

Arduino Nano 3.0

Arduino Nano 3.0 - fronte Arduino Nano 3.0 - retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega328

Numero di Input/Output digitali: 14 (di cui 6 output PWM)

Numero di Input Analogici: 8

Memoria: 32KB; 2KB SRAM; 1KB EEPROM

Velocità di Clock: 16MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardNano

L’Arduino Nano è una versione miniaturizzata di Arduino che nella sua

versione più recente ha più o meno le stesse caratteristiche di Arduino

2009 e Arduino Diecimila, i due modelli precedenti ad Arduino Uno.

Arduino Nano, progettato e realizzato da Gravitech, è pensato per essere

utilizzato direttamente su una breadboard. Si presta alle applicazioni su

progetti che richiedono un livello di miniaturizzazione dei componenti

maggiore rispetto a quello offerto da un Arduino Uno, robot e automi in

primis. Arduino Micro è un altro modello di Arduino che si basa sullo

stesso concetto di Arduino Nano, ma sviluppato da Adafruit a partire dalle

specifiche di Arduino Leonardo.

36

Page 37: Arduino la rivoluzione_dell_open_hardware

LilyPad Arduino

Arduino LilyPad - fronte Arduino LilyPad - retro

Specifiche TecnicheSpecifiche Tecniche

Microcontrollore: ATmega168V o ATmega328v

Numero di Input/Output digitali: 14 (di cui 6 output PWM)

Numero di Input Analogici: 6

Memoria: 16KB; 1KB SRAM; 512 Bytes EEPROM

Velocità di Clock: 8MHz

Link alla pagina ufficiale: http://arduino.cc/en/Main/ArduinoBoardLilyPad

L’Arduino Lilypad è una versione speciale dell’Arduino progettata

esplicitamente per essere cucita su tessuto e utilizzata per progetti di

“wearable computing”.

Sulla scheda, progettata da Leah Buechley in collaborazione con

SparkFun Electronics, è implementata una versione a basso consumo dei

microcontrollori ATmega168 o ATmega328.

Il LilyPad è meno potente di Arduino Uno e dispone di meno memoria, ma

la forma circolare e l’estrema versatilità della scheda hanno contribuito

alla sua grande popolarità fra gli amanti della “sartoria fai da te”.

37

Page 38: Arduino la rivoluzione_dell_open_hardware

Dell’Arduino LilyPad esistono varie versioni.

L’Arduino LilyPad Simple, per esempio, monta un controller ATmega328,

lo stesso dell’Arduino Uno, ma ha uno schema semplificato con 9 porte di

input/output. Rispetto all’Arduino LilyPad è dotato anche di un connettore

per il collegamento diretto di una batteria agli ioni di litio.

LilyPad Simple (Foto: NYU) LilyPad USB

Il LilyPad USB è un’altra versione recente di questo speciale modello di

Arduino. Anche questa scheda ha soltanto 9 porte di input/output ma il

microcontrollore implementato è un ATmega32u4, lo stesso che troviamo

sull’Arduino Leonardo.

Anche l’Arduino LilyPad USB può pertanto essere riconosciuto come

periferica HID da parte del computer cui viene collegato e può essere

utilizzato per emulare tastiera e mouse.

La quarta variante “ufficiale” di questo modello di Arduino è il LilyPad

Simple Snap. Ha le stesse caratteristiche dell’Arduino LilyPad Simple, ma

implementa di serie una batteria al litio e in corrispondenza dei fori cui

collegare il filo conduttivo ha dei bottoni a sgancio rapido in metallo che

rendono più semplice la rimozione della scheda dal capo di abbigliamento

per facilitare le operazioni di lavaggio.

38

Page 39: Arduino la rivoluzione_dell_open_hardware

2.2 Estendere Arduino: le shield

Un Arduino 2009 trasformato in WebServer grazie a due shield 4

I vari modelli di Arduino, come esposto nella precedente sezione di

questo capitolo, sono in grado di soddisfare un ampio spettro di esigenze

a seconda delle caratteristiche di ciascuno.

Le funzionalità della piattaforma si possono estendere ulteriormente in

maniera semplice grazie all’utilizzo delle shield, schede compatibili con

alcuni modelli di Arduino (in larga parte Arduino Uno e Arduino Mega

2560 per via della disposizione dei pin di input/output) che permettono ad

esempio di connettere la scheda ad una rete Wi-Fi, di collegare Arduino

alla rete GSM, di controllare motori elettrici e servo-motori in maniera più

efficace e stabile o ancora di collegare più Arduino fra di loro.

Così come Arduino, le shield sono hardware open source: le schematiche

di ogni scheda si possono scaricare e modificare a piacimento.

Le shield incarnano più di ogni altro aspetto la vitalità della community di

39

4 - Arduino Tiny WebServer - http://www.webweavertech.com/ovidiu/weblog/archives/000476.html

Page 40: Arduino la rivoluzione_dell_open_hardware

appassionati che ruota attorno ad Arduino: se creare una versione

lievemente diversa della piattaforma non è una strada particolarmente

facile, lo sviluppo di estensioni atte ad espanderne le funzionalità si è

rivelata un’operazione molto popolare e diffusa.

Le shield attualmente in commercio sono centinaia. Talmente tante che si

è resa necessaria la creazione di un database online5 per mettere ordine

e raccogliere schematiche e caratteristiche tecniche di ognuna.

Le Shield ufficiali realizzate dal team di Arduino sono 7: GSM Shield,

Motor Shield, Wifi Shield, Ethernet Shield, Wireless SD Shield, Proto

Shield e Wireless Proto Shield. Alcune di queste shield, compatibili con

Arduino Uno e Arduino Mega 2560, possono essere utilizzate in

contemporanea sulla stessa scheda. A seguire una breve descrizione

delle caratteristiche di alcune delle shield più diffuse.

”Extreme Stacking” - quando l’espansione di Arduino va oltre... 6

40

5 - Arduino Shield List - www.arduinoshieldlist.org

6 - Foto: John Boxall

Page 41: Arduino la rivoluzione_dell_open_hardware

Motor Shield

L’Arduino Motor Shield serve a semplificare (e in alcuni casi rendere

possibile) il controllo di uno o più motori elettrici attraverso Arduino.

La shield è costruita attorno al modulo a doppio ponte L298 di

STmicroelectronics7 grazie al quale si possono guidare due motori a

corrente continua in contemporanea oppure solenoidi, relè o altri

componenti elettrici ed elettronici a carico induttivo.

Arduino Motor Shield

Per poter funzionare la Motor Shield deve essere alimentata

esternamente fornendo una tensione consigliata fra i 7V e i 12V, perché

la corrente che può fornire l’Arduino non è sufficiente per il carico

richiesto dai motori. E’ ampiamente utilizzata in progetti di robotica basati

su Arduino.

41

7 - L298 - STmicroelectronics - http://www.st.com/web/catalog/sense_power/FM142/CL851/SC1790/SS1555/PF63147

Page 42: Arduino la rivoluzione_dell_open_hardware

Arduino Wifi Shield e Ethernet Shield

Fra le shield più diffuse vi sono la Arduino Wifi Shield e la Arduino

Ethernet Shield. Come suggerito dai rispettivi nomi, si tratta si due

schede di espansione di Arduino che consentono alla piattaforma di

connettersi ad internet attraverso una rete WAN (Wireless Area Network)

senza fili o una rete LAN tramite cavo di rete.

La Wifi Shield consente all’Arduino di connettersi ad internet utilizzando lo

standard wireless 802.11 b/g. Un chip ATmega 32UC3 è il cuore della

shield: permette all’Arduino di ottenere un indirizzo IP rende possibile la

trasmissione di dati sia in upload che in download attraverso i protocolli di

rete TCP e UDP.

Per programmare la Wifi shield sono necessarie delle Library specifiche8

grazie alle quali si possono scrivere sketch specifici che si basano sulla

connessione alla rete.

La Wifi Shield integra anche un lettore di schede SD, accessibile grazie

alla SD library9, che permette di accedere a file e risorse presenti sul

sistema Arduino + shield attraverso la rete.

Con questa shield è possibile accedere ad Arduino da remoto o

trasformare la scheda in una vera e propria interfaccia di rete. La Wifi

Shield è stata spesso usata per trasformare Arduino in un semplice

Webserver, ad esempio. La Wifi Shield è compatibile con Arduino Uno e

con Arduino Mega 2560.

42

8 - Arduino Wifi library: http://arduino.cc/en/Reference/WiFi

9 - Arduino SD library: http://arduino.cc/en/Reference/SD

Page 43: Arduino la rivoluzione_dell_open_hardware

Arduino Wifi Shield Arduino Ethernet Shield

L’Arduino Ethernet Shield è l’equivalente cablato della Wifi Shield e

consente di connettere Arduino alla rete in maniera molto semplice

attraverso un cavo RJ45.

Il cuore della scheda di espansione in questo caso è un chip Wiznet

W5100 che fornisce l’IP stack necessario perché l’Arduino possa operare

sulla rete in download e upload attraverso i protocolli TCP e UDP.

Come la Wifi Shield, anche la Ethernet Shield monta un lettore di schede

SD grazie al quale si possono memorizzare risorse cui accedere

attraverso la rete. Fra la Ethernet Shield e la WiFi Shield vi sono

differenze elettroniche non trascurabili nella disposizione dei pin legate ai

differenti componenti utilizzati. In buona sostanza, però, si potrebbe dire

che le due estensioni sono equivalenti dal punto di vista delle funzioni,

con la sola (non trascurabile) differenza della modalità di accesso alla

rete (con o senza cavo).

Per la programmazione della Ethernet Shield è disponibile sul sito

ufficiale di Arduino una Ethernet Library10 specifica.

La Arduino Ethernet Shield non va confusa con Arduino Ethernet, una

speciale versione della scheda di prototipazione che integra già il chip

Wiznet W5100, un lettore di schede SD e una porta di rete per la

connessione tramite cavo RJ45.

43

10 - Arduino Ethernet Library: http://arduino.cc/en/Reference/Ethernet

Page 44: Arduino la rivoluzione_dell_open_hardware

Fra le schede di espansione finalizzate alla comunicazione remota con

Arduino merita di essere menzionata anche la Arduino GSM Shield11, che

permette di connettere Arduino ad una rete GPRS attraverso l’utilizzo di

una scheda SIM abilitata alla trasmissione dati. Questa shield è stata

sviluppata dal team Arduino in collaborazione con Telefonica, operatore di

telefonia mobile spagnolo.

Wave Shield

Fra le shield non ufficiali (ovvero sviluppate da terze parti) compatibili con

Arduino, vale la pena segnalare la Wave Shield12, sviluppata e venduta

dalla Adafruit in kit da saldare.

Arduino Wave Shield13 Kit da montare della Wave Shield

La Arduino Wave Shield nasce da una necessità precisa: semplificare

l’implementazione di un feedback audio di qualità medio-buona su

progetti elettronici interattivi. La shield integra un chip per la conversione

digitale-analogica, un amplificatore operazionale e due filtri passa-basso

in serie che consentono di riprodurre i file audio in formato WAV non

compresso13 contenuti all’interno di un scheda SD. Questa scheda di

44

11 - Arduino GSM Shield: http://arduino.cc/en/Main/ArduinoGSMShield

12 - Adafruit Wave Shield for Arduino: http://www.ladyada.net/make/waveshield/index.html

13 - Nello specifico i file audio devono essere WAV con frequenza di campionamento di 22 MHz a 12 bit.

Page 45: Arduino la rivoluzione_dell_open_hardware

espansione include anche un’uscita jack stereo (l’audio esce in mono sui

due canali collegati in parallelo).

La Wave Shield è un ottimo esempio di come la comunità di utenti di

Arduino, senza input diretti dal team di sviluppo originale, possa

aggiungere valore al prodotto, offrendo soluzioni nuove e aperte che

risolvono un problema specifico e possono poi essere riprese e magari

ulteriormente migliorate da altri membri della community. Dell’importanza

del ruolo della community nella storia di successo di Arduino parlerò più

dettagliatamente nel capitolo 5 della tesi.

Arduino Proto Shield

La Arduino Proto Shield è la più semplice delle schede di espansione

“ufficiali”. E’ stata sviluppata per semplificare la realizzazione di circuiti

elettronici da interfacciare con Arduino.

L’unico componente presente sulla ProtoShield è il bottone per il reset di

Arduino. Il resto della scheda è una vera e propria basetta millefori su cui

si possono saldare altri componenti oppure si può posizionare una

breadboard (non inclusa) per il test dei circuiti elettronici.

Arduino Proto Shield - fronte Arduino Proto Shield - Retro

45

Page 46: Arduino la rivoluzione_dell_open_hardware

46

Page 47: Arduino la rivoluzione_dell_open_hardware

3. Il software

Fino ad ora ho scritto che Arduino è una piattaforma che semplifica

enormemente la creazione di installazioni multimediali interattive e ho

dato sostanzialmente per scontato il concetto di interattività. Per

introdurre questo capitolo dedicato al software di Arduino, però, è utile

tornare sull’argomento.

Il nostro Arduino, come abbiamo potuto scoprire nel precedente capitolo,

è costituito da un cervello, ovvero il microcontrollore, che è in grado di

elaborare una vasta gamma di “stimoli” in ingresso, producendo segnali

in uscita che possono comandare luci, suoni e più in generale degli

elementi attuatori che operano sull’ambiente esterno.

Questo processo (Input → elaborazione → output) è, volendo

semplificare molto, il modello di base di un dispositivo interattivo.

Prendendo in prestito la mai troppo abusata similitudine con il corpo

umano, i sensori che possiamo collegare ai pin di ingresso dell’Arduino

possono essere paragonati, in qualche modo, ai nostri organi sensoriali.

Anche i sensori, infatti, trasformano una grandezza fisica (un’onda

47

Page 48: Arduino la rivoluzione_dell_open_hardware

acustica, una radiazione elettromagnetica, un’interazione chimica

molecolare) in un segnale elettrico che viene inviato ad un sistema di

elaborazione centrale.

La risposta che il cervello o il microcontrollore forniscono al segnale

elettrico in entrata, provocato da uno stimolo fisico da parte del mondo

esterno, e l’azione che ne consegue, possono variare.

A differenza di quanto si può dire per il nostro cervello, la complessità

delle risposte che un microcontrollore può gestire è alla portata della

nostra comprensione: grazie al software possiamo programmare il

“cervello elettronico” di Arduino in modo tale da indurre specifiche azioni

in risposta allo stimolo proveniente dal mondo esterno.

La similitudine fra un dispositivo interattivo e il cervello si ferma qui,

naturalmente, anche se la complessità di alcuni modelli d’interazione può

raggiungere livelli che per i più potrebbero essere assimilabili alla

complessità delle neuroscienze.

Per programmare il microcontrollore, il cervello di Arduino, abbiamo a

disposizione una piattaforma di sviluppo (nome tecnico: IDE, Integrated

Development Environment) che ci permette di scrivere il codice attraverso

il quale impartiremo al microcontrollore gli “ordini” da eseguire e le

risposte da fornire ad un dato stimolo dell’ambiente.

La semplificazione del precedente paragrafo può lasciare intuire la

semplicità dell’approccio alla programmazione di un microcontrollore

tramite Arduino.

In realtà, quello che la IDE ci fornisce è un ulteriore livello di traduzione e,

volendo, trasduzione: il microcontrollore parla un linguaggio di basso

48

Page 49: Arduino la rivoluzione_dell_open_hardware

livello, vale a dire più lontano dal linguaggio umano e più affine alla

natura elettrica dei segnali che deve processare. La IDE di Arduino ci

permette invece di impartire comandi utilizzando un linguaggio di

programmazione di alto livello, impostato cioè su logiche che tendono ad

avvicinarsi a quelle che sottendono alle strutture del linguaggio umano.

Prima dell’avvento di Arduino, programmare un microcontrollore

significava scrivere codice in un linguaggio che ha ben poco a che fare

con quello umano, solitamente Assembly o C, e conoscere a fondo il

funzionamento di concetti di elettronica avanzata come gli interrupt e

porte logiche. Con un sistema di collegamento seriale, si poteva poi

“flashare” la memoria del microcontrollore per programmare fisicamente il

componente.

Arduino ha semplificato tutto questo e ci permette, in sostanza, di imporre

i nostri ordini al controllore semplicemente definendo un paio di funzioni,

che verranno caricate nella memoria del chip con la pressione di un

bottone dell’interfaccia della IDE.

3.1 La IDE di Arduino e il linguaggio di programmazione

Arduino nasce dal progetto Wiring e di quel progetto non solo ha preso “in

prestito” gli intenti ma anche gli strumenti, in particolare il software

dell’IDE, che è, nella sua forma attuale, una derivazione diretta dell’IDE di

Wiring.

49

Page 50: Arduino la rivoluzione_dell_open_hardware

Le IDE di Arduino e Wiring a confronto

L’ambiente di sviluppo di Arduino è un software Open Source 1 sviluppato

in Java che può funzionare su qualsiasi sistema operativo e integra un

editor di testo specializzato, che offre l’highlight della sintassi del

linguaggio e un’ampia gamma di strumenti software per l’interfacciamento

con le schede di Arduino esistenti sul mercato oggi.

I legame con Wiring è rivelato non soltanto dall’aspetto dell’interfaccia di

programmazione ma anche dal nome che designa la libreria software

“fondamentale” (Wiring.h, sviluppata in C++), grazie alla quale è

possibile semplificare enormemente la scrittura di comandi basati su

operazioni di input-ouput.

All’utente, infatti, viene richiesto in sostanza di definire due sole funzioni,

una chiamata setup() che stabilisce quali sono le funzioni dei pin

utilizzati dal “dispositivo interattivo” e l’altra, chiamata loop(), che

50

1 - Anche nel caso dell’IDE di Arduino la licenza Creative Commons utilizzata è la Attribution Share Alike 2.5.

Page 51: Arduino la rivoluzione_dell_open_hardware

invece contiene i veri e propri “comandi” e verrà eseguita in continuazione

dal microcontrollore.

Il linguaggio di programmazione vero e proprio utilizzato all’interno della

IDE di Arduino è basato su quello utilizzato da Processing, progetto Open

Source creato nel 2001 da Casey Reas e Benjamin Fry presso il

Massachussets Institute of Technology2. Lo scopo di Processing era

quello di fornire ad artisti, studenti e semplici appassionati dell’interazione

visuale, un tool di programmazione semplice e intuitivo che potesse

avvicinare alla programmazione i neofiti attraverso un sistema di

immediata rappresentazione visuale di ciò che viene programmato.

La IDE di Processing. A sinistra, il pannello di output visivo in tempo reale

51

2 - Processing prende le mosse da Java, Arduino da C/C++; le principali differenze sono elencate in questa pagina del sito ufficiale di Arduino: http://arduino.cc/en/Reference/Comparison

Page 52: Arduino la rivoluzione_dell_open_hardware

Da Processing Arduino ha preso in prestito non soltanto le strutture

principali del linguaggio di programmazione, ma anche l’aspetto della IDE

(poiché Wiring, da cui Arduino deriva, aveva già fatto altrettanto negli anni

precedenti) ma anche le strutture e le metafore della GUI3 oltre al lessico

di base. Anche su Arduino, come in Processing, i file di testo che

contengono il codice vengono chiamati sketch, un richiamo alla natura

orientata alla programmazione per le arti visuali che caratterizza il

progetto sviluppato da Reas e Fry.

L’estrema prossimità tecnica di Arduino e Processing ha reso possibile

un’integrazione pressoché totale fra i due progetti: controllare programmi

scritti in Processing con Arduino è molto semplice e permette di

interfacciare i sensori e il microcontrollore di Arduino con computer più

potenti per la realizzazione di installazioni e progetti abbastanza

ambiziosi per complessità e dimensioni da richiedere la potenza di

calcolo e le potenzialità di controllo di strumenti complessi (proiettori,

riproduzione di video ad alta definizione, ecc...) che solo un PC ad oggi

può fornire.

Alla prima apertura del software di Arduino4 l’utente viene accolto

dall’interfaccia dell’editor degli sketch. E’ qui che si scrive e modifica il

codice da caricare sulla scheda.

I bottoni del menu in alto, illustrati in figura, offrono un rapido accesso alle

operazioni di base necessarie per la stesura del codice, la sua

validazione e il caricamento dello sketch realizzato su Arduino.

52

3 - GUI - Graphical User Interface.

4 - Arduino Software, Download per Mac, PC e Linux: http://arduino.cc/en/Main/Software

Page 53: Arduino la rivoluzione_dell_open_hardware

Il menu principale della IDE di Arduino

Da questa interfaccia è possibile accedere direttamente al monitor della

porta seriale, un tool che consente di leggere in diretta valori numerici

inviati dall’Arduino al computer sulla base dei quali è possibile

programmare un feedback attuativo da parte del microcontrollore.

3.2 Hello World: programmare Arduino

Come ho già avuto modo di scrivere nella precedente sezione di questo

capitolo, programmare Arduino significa, in buona sostanza, scrivere il

codice di due funzioni fondamentali, setup() e loop().

Il software di Arduino include già alcuni sketch pronti per essere utilizzati

e caricati.

Uno di questi, particolarmente semplice, permette di far lampeggiare un

LED collegato al pin 13 (con una resistenza in serie) e al pin di terra

(GND).

E’ uno sketch che ho già definito l’equivalente su Arduino dell’Hello World

nell’ambito della programmazione ed è per questo il miglior esempio da

esaminare per una veloce analisi delle strutture fondamentali del

linguaggio di programmazione di Arduino.

53

Page 54: Arduino la rivoluzione_dell_open_hardware

Lo sketch, che si può aprire dal menu File - Esempi - Basic

dell’applicazione, si chiama “Blink” e contiene questo codice:

int led = 13;

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000); }

Lo sketch si apre con la definizione di una variabile di tipo integer,

chiamata led alla quale viene assegnato il valore 13.

Lo schema elettrico dell’esempio “Blink”

Questa dichiarazione di variabile è l’unica porzione del codice di questo

sketch che si trova al di fuori delle due funzioni principali.

54

Page 55: Arduino la rivoluzione_dell_open_hardware

Il passo successivo consiste nell’inizializzare la funzione setup() con

cui definiremo il “comportamento” del pin numero 13. In questo caso si è

scelto di operare, tramite quel pin, l’accensione di un piccolo LED. E’

un’operazione in uscita, verso il mondo esterno; per questo scegliamo di

definire il pin come output con questa riga di codice: pinMode(led,

OUTPUT);. Questa definizione è molto importante, perché determinerà

alcuni comportamenti specifici delle costanti HIGH e LOW utilizzate nel

loop.

In questo caso abbiamo utilizzato la variabile led per indicare il numero

del pin a cui il LED è connesso. Non è strettamente necessario: se

avessimo scritto quella riga come pinMode(13, OUTPUT); avremmo

ottenuto esattamente lo stesso risultato. Questo esempio dimostra che

l’unica porzione di codice che abbiamo scritto al di fuori di setup() è,

nello specifico, superflua, per quanto organizzare la numerazione dei pin

con un sistema di variabili che indicano un collegamento con la

funzionalità ad essi collegata è buona norma, soprattutto per progetti di

complessità superiore a questo semplice esempio.

Chiusa la funzione setup() è possibile passare all’altra funzione che

dobbiamo definire e che attiene al vero e proprio processo di attuazione:

loop().

Il nome della funzione è tutt’altro che casuale: il codice inserito al suo

interno, infatti, viene eseguito dal controllore in un ciclo continuo che

viene interrotto solo quando alla scheda viene a mancare l’alimentazione

elettrica.

Per prima cosa il LED viene acceso comunicando al pin numero 13,

anche qui indicato dalla variabile led, di entrare nello stato indicato dalla

costante HIGH, con il comando digitalWrite(led, HIGH);.

55

Page 56: Arduino la rivoluzione_dell_open_hardware

Significa che stiamo impostando il voltaggio del pin numero 13 a 5V

(oppure 3,3V nel caso di schede che operano su questo voltaggio, come

la Arduino Due). Il risultato è che il LED collegato al pin 13, attraversato

da una corrente, si accenderà.

Alla riga successiva l’istruzione delay(1000); inserisce un “ritardo” nel

ciclo della funzione, pari a 1000 millisecondi (ovvero un secondo), che

inserisce un intervallo fra l’operazione di accensione e quella di

spegnimento del LED. A far spegnere il LED ci pensa il comando

digitalWrite(led, LOW); che imposta di nuovo il pin 13 nello stato

LOW originale, rimuovendo dunque la tensione di 5V sul pin.

Il delay finale permetterà al LED di stare spento per un altro secondo

prima che il ciclo della funzione ricominci da capo, impostando di nuovo il

pin 13 nello stato HIGH e così via, potenzialmente all’infinito.

Nel codice d’esempio che abbiamo analizzato, abbiamo attuato

un’operazione verso il mondo esterno senza “leggere” nulla dall’ambiente

circostante. Vediamo ora, brevemente, un esempio di base in cui

l’accensione del LED, attraverso gli stessi comandi digitalWrite(),

non è automatica ma funzionale alla lettura di una condizione esterna,

nello specifico la pressione di un interruttore normalmente aperto.

const int buttonPin = 2;

const int ledPin = 13;

int buttonState = 0;

void setup() {

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

}

56

Page 57: Arduino la rivoluzione_dell_open_hardware

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

digitalWrite(ledPin, HIGH);

}

else {

digitalWrite(ledPin, LOW);

}

}

L’esempio si apre con la dichiarazione di due costanti, che anche in

questo caso servono per indicare i pin in maniera semplificata con il

nome del componente ad essi collegato.

La variabile buttonState di tipo integer ci servirà per registrare la

chiusura del circuito.

All’interno della funzione setup()impostiamo il pin 13 come output

(perché è quello che accenderà il nostro LED), mentre indichiamo che il

pin 2 deve essere utilizzato in lettura. In questo modo, quando

l’interruttore, collegato al pin 2, sarà chiuso, sul pin ci sarà una tensione

superiore a 3 Volt. Saremo in grado di leggerla e di impostare il valore

della nostra variabile, sulla base del quale procederemo all’accensione o

allo spegnimento del LED.

Lo schema elettrico dell’esempio. Il LED utilizzato in questo caso è quello integrato sulla scheda e collegato al pin 13.

57

Page 58: Arduino la rivoluzione_dell_open_hardware

Nella funzione loop la prima cosa che facciamo è leggere lo stato del

pin di ingresso: buttonState = digitalRead(buttonPin);.

Con questo comando diamo alla nostra variabile, precedentemente

dichiarata, il valore che abbiamo potuto leggere digitalmente sul pin 2.

Se l’interruttore sarà chiuso, sul pin 2 troveremo una tensione di 5V, e

andremo di conseguenza a scrivere nella variabile il valore HIGH.

Al contrario, se l’interruttore sarà aperto, sul pin 2 non troveremo alcuna

tensione e scriveremo sulla variabile il valore LOW.

Il passaggio successivo consiste quindi nel determinare il comportamento

del LED in conseguenza alla condizione verificata con questa operazione

di lettura del pin numero 2 utilizzando una struttura condizionale.

if (buttonState == HIGH) {

digitalWrite(ledPin, HIGH);

}

else {

digitalWrite(ledPin, LOW);

}

Ecco la traduzione in linguaggio umano di ciò che stiamo comunicando

al nostro microcontrollore:

se il pin 2 è in uno stato HIGH 5, accendi il LED impostando il pin 13

sullo stato HIGH; altrimenti spegni il LED impostando il pin 13 sullo

stato LOW.

Quello descritto dall’esempio è già un semplicissimo dispositivo

interattivo, capace di leggere una condizione esterna (l’apertura o la

58

5 HIGH è una costante booleana del linguaggio, che ha valore 1. Allo stesso modo LOW è una costante che ha sempre valore pari a 0.

Page 59: Arduino la rivoluzione_dell_open_hardware

chiusura di un interruttore) e di agire di conseguenza con l’attuazione di

un’operazione (l’accensione o lo spegnimento del LED).

Se al posto dell’interruttore ci fosse un sensore luminoso (fotoresistenza),

avremmo un dispositivo in grado di attuare un’operazione al variare di

una grandezza fisica specifica (l’incidenza sul sensore di una radiazione

elettromagnetica, nel caso d’esempio), se ci fosse un sensore di

prossimità potremmo accendere e spegnere il LED (o attivare un motore,

far partire la riproduzione di un suono ecc...) quando qualcuno o qualcosa

si avvicina al dispositivo, e così via.

3.3 Concetti Avanzati e librerie

I due semplici esempi della precedente sezione sono la base delle

possibilità di interazione offerte da Arduino.

Il linguaggio di programmazione di Arduino prevede costrutti molto più

complessi grazie ai quali si possono attuare operazioni ben più

complicate rispetto alla semplice accensione di un LED e leggere

parametri fisici in ingresso molto meno lineari rispetto alla presenza di

una tensione su un pin di input.

Sul sito ufficiale di Arduino è presente una utilissima reference6 che

raccoglie tutte le strutture, le variabili, le costanti e le funzioni che si

possono utilizzare per programmare la scheda di prototipazione. Per

ciascuna di esse sono presenti esempi di implementazione, come quelli

che abbiamo analizzato nella sezione precedente. Parlerò più

approfonditamente dell’utilità della reference e delle altre risorse online

59

6 - http://arduino.cc/en/Reference/HomePage

Page 60: Arduino la rivoluzione_dell_open_hardware

nel quinto capitolo della tesi.

Il software di Arduino include inoltre una serie di Librerie che permettono

di estendere rapidamente il codice e forniscono funzionalità aggiuntive

rapidamente implementabili.

Dal menu di Arduino si può selezionare una delle librerie che verrà

aggiunta in automatico allo sketch aperto con un comando del tipo

#include <nomelibreria.h>.

Chi avesse familiarità con C o C++ certamente riconoscerà la sintassi

utilizzata. Questo perché il codice che scriviamo all’interno della IDE di

Arduino è, appunto, derivato dal C.

Quando si fa l’upload dello sketch su Arduino il programma provvede a

generare un file temporaneo che include automaticamente, WProgram.h

header file principale della libreria Wiring, vale a dire quella definisce il

linguaggio specifico di programmazione che utilizziamo per sviluppare gli

sketch di Arduino.

Nel file temporaneo di compilazione è presente infine una ulteriore

funzione, main(void), sempre uguale, che l’utente non ha necessità di

vedere né di modificare e che serve per avviare la vera e propria

esecuzione del programma7.

Ecco dunque come appare il nostro sketch d’esempio per l’accensione e

lo spegnimento di un LED quando il software lo passa al compilatore per

caricarlo su Arduino:

#include <WProgram.h>

int led = 13;

60

7 - Nello specifico int main(void) invoca la funzione di inizializzazione init(), poi setup() e infine avvia il loop infinito della funzione loop()

Page 61: Arduino la rivoluzione_dell_open_hardware

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000); }

int main(void)

{

init();

setup();

for (;;)

loop();

return 0;

}

Le librerie già incluse nel software di Arduino permettono di sfruttare

alcune funzioni specifiche del microcontrollore (ad esempio la

memorizzazione di dati nella EEPROM) o forniscono il set di comandi

necessari ad interfacciare Arduino con una delle shield ufficiali. Altre,

invece, sono librerie specifiche che permettono di controllare funzionalità

particolari di alcuni modelli di Arduino, come ad esempio la libreria

Esplora.

Chiunque abbia abilità di programmazione sufficientemente avanzate può

scrivere una propria libreria per Arduino come avviene per qualsiasi altro

software Open Source, possibilmente rispettando le convenzioni e le best

practices del linguaggio8.

61

8 - Indicazioni precise sullo sviluppo delle librerie per Arduino sono disponibili all’indirizzo http://playground.arduino.cc/code/library

Page 62: Arduino la rivoluzione_dell_open_hardware

62

Page 63: Arduino la rivoluzione_dell_open_hardware

4. Arduino e l’arte

Lo scopo originale di Arduino era quello di offrire ad artisti senza nessuna

conoscenza elettronica e di programmazione una piattaforma che

rendesse semplice e allo stesso tempo molto più accessibile la

realizzazione di opere interattive.

Per capire perché Arduino si possa davvero considerare come una

piccola grande rivoluzione negli ambienti dell’arte interattiva può essere

utile un esempio pratico.

Un’operazione semplice come l’accensione intermittente di un LED

descritta nel capitolo precedente, che si può realizzare nel giro di un paio

di minuti scrivendo (o ricopiando) poche righe di codice in un’interfaccia

grafica intuitiva, prima dell’avvento di Arduino avrebbe richiesto

conoscenze di un livello totalmente sproporzionato rispetto alla banalità

dell’azione.

Un programmatore seriale per microcontrollori Pic.

63

Page 64: Arduino la rivoluzione_dell_open_hardware

L’artista multimediale (o chi per lui) avrebbe dovuto intanto procurarsi

direttamente un microcontrollore (ed è la parte più semplice).

Poi avrebbe dovuto programmarlo direttamente con una scheda di

programmazione apposita, da comprare a parte e già più costosa di un

Arduino Uno.

Per poter scrivere il codice il nostro artista (oppure, a questo punto,

“hobbista elettronico avanzato”) avrebbe poi dovuto scaricare sul suo PC,

possibilmente Windows, una IDE apposita per il tipo di microcontrollore

scelto.

A questo punto avrebbe attinto a conoscenze di base del linguaggio C,

per scrivere direttamente il codice necessario al funzionamento del

microcontrollore. Ed ecco infine il codice che avrebbe prodotto:

#include <avr/io.h>

#define LED PD6

#define output_low(port,pin) port &= ~(1<<pin)

#define output_high(port,pin) port |= (1<<pin)

#define set_input(portdir,pin) portdir &= ~(1<<pin)

#define set_output(portdir,pin) portdir |= (1<<pin)

void delay_ms(uint8_t ms) {

uint16_t delay_count = F_CPU / 17500;

volatile uint16_t i;

while (ms != 0) {

for (i=0; i != delay_count; i++);

ms--;

}

}

int main(void) {

set_output(DDRD, LED);

while (1) {

64

Page 65: Arduino la rivoluzione_dell_open_hardware

output_high(PORTD, LED);

delay_ms(200);

output_low(PORTD, LED);

delay_ms(200);

}

}1

A parte il numero maggiore di righe che l’artista deve scrivere, va messa

in conto la natura del codice, assai meno “leggibile” perché più lontano

dalla logica del linguaggio umano.

Molte parti di questo codice, per altro, la IDE di Arduino può gestirle in

autonomia “dietro le quinte” senza che all’utente sia richiesto di vederle o

conoscerle.

L’odissea del nostro artista non si è ancora conclusa: ora quel codice, che

è pur sempre di alto livello, va tradotto in un linguaggio che il

microcontrollore possa capire.

La compilazione, che sulla IDE di Arduino avviene in automatico ed è, a

meno di errori, direttamente legata alla memorizzazione delle istruzioni

sul chip, andrà fatta manualmente. Il file esadecimale così ricavato si

potrà infine “bruciare”, come si dice in gergo, sul microcontrollore. Il chip

andrà poi preso e saldato su un circuito che preveda un’alimentazione e

ovviamente un LED collegato ai giusti piedini del componente. Se tutto è

andato per il verso giusto, il LED si metterà finalmente a lampeggiare.

E’ bene precisare che questa descrizione del processo di

programmazione di un microcontrollore non è un’iperbole. Anzi, pecca di

eccessiva semplificazione in alcuni passaggi. La difficoltà di una simile

operazione aumenta naturalmente in maniera esponenziale al crescere

65

1 - Codice tratto da una guida di AdaFruit dedicata alla programmazione dei microcontrollori: http://www.ladyada.net/learn/proj1/blinky.html

Page 66: Arduino la rivoluzione_dell_open_hardware

della complessità del progetto, soprattutto se entra in gioco la gestione

degli input.

Alla luce di questo rapido paragone credo sia chiaro il motivo per cui,

prima di Arduino, realizzare opere multimediali interattive significava

acquisire conoscenze elettroniche mediamente avanzate o, in alternativa,

affidare la realizzazione della propria opera ad uno o più esperti

dell’ambito elettronico, con conseguente aumento dei costi di base per la

realizzazione del progetto.

Arduino ha segnato un cambiamento epocale nella democratizzazione

dell’esperienza artistica interattiva, fornendo agli artisti multimediali, già

affermati o in formazione, uno strumento potente, economico e libero per

realizzare idee destinate altrimenti a rimanere solo sulla carta.

Paola Antonelli, senior curator del Dipartimento di Architettura e Design

al MoMA di New York ha affermato che “le due più importanti novità

introdotte in ambito artistico nel corso degli ultimi 20 anni sono Arduino e

Processing 2”. Nel 2011 Antonelli ha curato presso il Museum of Modern

Art la mostra “Talk to me”3, dedicata al tema dell’interazione e della

comunicazione fra uomini e oggetti:

Tutti gli oggetti contengono informazioni che vanno oltre il loro immediato utilizzo o l’apparenza. In alcuni casi oggetti come i

telefoni cellulari e i computer esistono per permetterci di accedere

a sistemi e reti complessi, comportandosi come porte d’accesso e interpreti. Sia attivamente e apertamente, sia in maniera

66

2 - Nick Bilton, An Interactive Exhibit for 30$, New York Times - 16/03/2011

3 - http://www.moma.org/interactives/exhibitions/2011/talktome/

Page 67: Arduino la rivoluzione_dell_open_hardware

subliminale e subdola, le cose ci parlano e i designer ci aiutano a

sviluppare ed improvvisare il dialogo.

Un buon numero di installazioni della mostra erano realizzate proprio

grazie ad Arduino e Processing.

Una sala della mostra “Talk to Me” al MoMA.

I designer, come li definisce il copy della mostra, sono sia i progettisti

delle interfacce che ci permettono, ogni giorno, di interagire con oggetti e

prodotti elettronici (più in generale con le macchine), sia gli artisti che si

dedicano all’analisi della semantica dell’interazione e creano “dialoghi

nuovi”. Non è una distinzione netta; sempre più spesso, grazie anche alla

semplificazione dei processi e degli strumenti che soluzioni come Arduino

e Processing hanno reso possibile, l’ingegnere può farsi artista e l’artista

ingegnere.

Le caratteristiche di Arduino (semplicità di utilizzo da parte di chi non ha

un background elettronico, il basso costo, la natura aperta e volta alla

condivisione del sapere) contribuiscono alla sua natura di vero e proprio

strumento creativo e d’espressione. Artisti che prima non pensavano

neppure di poter realizzare opere basate sull’interazione elettronica, ora

possono indagare anche questo campo grazie ad una piattaforma che

67

Page 68: Arduino la rivoluzione_dell_open_hardware

permette di provare, riprovare, sbagliare, perfezionare in maniera

accessibile e semplificata. Arduino, si potrebbe dire, ha reso possibile una

nuova indagine artistica dell’interazione.

Di seguito ho raccolto alcuni esempi di opere interattive basate su

Arduino o che utilizzano Arduino nell’ambito di sistemi più complessi.

4.1 Le opere

L’installazione interattiva Global Sounds (2013) 4 , realizzata ad

Edinburgo da Rebecca Gischel, è un ottimo esempio di come Arduino e

Processing possano semplificare la realizzazione di un’opera

multimediale.

Sette piccole piramidi in plexiglass sono disposte in una piazza; ciascuna

di esse è dotata di una video camera per determinare la prossimità di una

persona. Ad ogni piramide corrisponde una sezione di un brano musicale

apposito, realizzato con strumenti etnici che richiamano culture lontane e

diverse.

L’installazione Global Sounds di Rebecca Gischel

Quando un numero sufficiente di persone si avvicina alle piramidi la

composizione cresce e si arricchisce dello strumento associato a

ciascuna di esse, creando così un insieme musicale variabile (regolato ed

equalizzato in base alla vicinanza di ciascun individuo ad una delle

68

4 - Rebecca Gischel, Global Sounds, 2013: http://www.globalsounds.de/globalsounds.html

Page 69: Arduino la rivoluzione_dell_open_hardware

videocamere) che rappresenta la ricchezza di culture del melting pot di

una grande città.

L’interazione fra gli spettatori e le piramidi e la riproduzione e

l’equalizzazione del brano che viene generato sono gestite attraverso un

Arduino Uno e un programma appositamente scritto in Processing che fa

uso della flob library5 per leggere la prossimità degli spettatori-musicisti.

L’accesso a “input” diffusi - basi di dati online, siti Web, social network –

ha reso possibili opere interattive che riescono ad interpretare e tradurre

o trasdurre dati immateriali in un output tangibile, che offre una

rappresentazione nuova del dato di partenza.

E’ quello che fa ad esempio l’interessante installazione “On Journalism

#2, Typewriter” (2012) di Julian Koschwitz, in cui una macchina da

scrivere...

...scrive storie costruite in maniera generativa su tutti i giornalisti che sono stati uccisi nel mondo dal 1992 ad oggi

basate sui dati esistenti sulle loro vite e sulle loro opere

pubblicate. Le storie individuali sono connesse tramite campi d’indagine

giornalistica comune, luoghi, professioni e molti altri aspetti.

Oltre al testo la macchina da scrivere crea anche immagini, ad

esempio bandiere che sono tanto più distorte quanto più alto è il numero di giornalisti uccisi in quella particolare nazione.6

Il risultato è una lunga storia unica, senza fine, scritta su un rullo di carta

con cui la macchina da scrivere viene costantemente alimentata.

69

5 - Flob Library: http://s373.net/code/flob/

6 - Julian Koschwitz, On Journalism #2, Typewriter http://koschwitz.org/studio/?page_id=627

Page 70: Arduino la rivoluzione_dell_open_hardware

L’installazione utilizza un Arduino nano, un Arduino Uno e un programma

sviluppato con Processing.

L’opera di Koschwitz raccoglie di dati online da un database aggiornato

costantemente dal Committee to Protect Journalists7, raccolti e

organizzati su un computer esterno che gestisce poi l’output tramite

Arduino.

70

7 - CPJ - www.cpj.org

Page 71: Arduino la rivoluzione_dell_open_hardware

L’installazione “On Journalism #2, Typewriter” di Julian Koschwitz.

Per progetti più semplici, che non richiedono un complesso algoritmo di

elaborazione dei dati, non c’è bisogno neppure del supporto di un

computer per gestire gli input che arrivano dalla rete. Ethernet Shield,

WiFi Shield o l’Arduino Ethernet8 consentono di connettere direttamente

la scheda a Internet per ricevere input dal Web.

Il Neurotic Armageddon Indicator (2012) di Tom Schofield 9 , ad

esempio, utilizza una Ethernet Shield montata su Arduino Uno per

accedere ad un server ad hoc che si occupa di leggere, dal sito del

“Bullettin of Atomic Scientists”, il valore del Doomsday Clock, il metaforico

orologio che indica quanto siamo lontani dalla “mezzanotte” di un

olocausto nucleare. Il dato, sempre grazie ad Arduino, viene indicato su

un orologio a LED il cui aspetto ricorda il timer di una bomba come se ne

vedono nei film d’azione.

Il “Neurotic Armageddon Indicator” di Tom Schofield

71

8 - V. Cap. 2

9 - Tom Schofield, Neurotic Armageddon Indicator - http://www.tomschofieldart.com/Neurotic-Armageddon-Indicator

Page 72: Arduino la rivoluzione_dell_open_hardware

Meno ironico e più espressamente poetico l’intento di I Am Printer

(2011) 10 , una stampante di etichette modificata e collegata ad un

Arduino per stampare solamente una serie di tweet11 che contengono le

parola “I am”, (io sono, in inglese). Il progetto, sviluppato da Baris Serim,

Marcus Ghaly e Scott Meadows, è stato realizzato in collaborazione

con il poeta svedese Pär Thörn, autore di un’applicazione Web basata

sullo stesso concetto. I Am Printer è stata esposta alla Galeri 21 di Malmö

e successivamente al prefestival di Transmediale 2012 a Berlino.

Tworse Key, telegrafo connesso per la scrittura di tweet in codice Morse

Si basa su Twitter anche Tworse Key (2012)12, un divertente e

interessante esperimento di “archeologia delle interfacce” realizzato da

Martin Kaltenbrunner. L’opera in questo caso sfrutta Twitter come

output di uno strumento di comunicazione che unisce il telegrafo al social

network sulla base della loro affinità di fondo, ovvero la trasmissione di

messaggi in forma breve e sintetica.

Grazie ad un Arduino con Ethernet Shield, la Twitter Library e un apposito

sketch, lo strumento di Kaltenbrunner può scrivere tweets in codice

72

10 - Baris Serim, Marcus Ghaly, Scott Meadows, I am printer, 2011 - http://www.brssrm.com/i-am-printer/

11 - Brevi messaggi inferiori ai 140 caratteri pubblicati sul Social Network Twitter

12 . Martin Kaltenbrunner, Tworse Key, 2012 - https://code.google.com/p/tworsekey/

Page 73: Arduino la rivoluzione_dell_open_hardware

morse. Il segnale elettrico viene interpretato dall’Arduino e trasformato in

testo per comporre messaggi pubblicati su un account Twitter dedicato13.

Twitter è, fra i social network più diffusi, quello che meglio si presta alla

raccolta di dati da utilizzare come input all’interno di opere interattive. La

sua struttura rende semplice la raccolta di dati in tempo reale, sulla base

di parole chiave e hashtags (i tag preceduti dal simbolo #), come nel caso

della stampante di poesie, ma anche in funzione della località geografica

da cui l’utente posta un tweet.

Partendo da questi dati e unendoli con quelli raccolti su Flickr e YouTube,

Varvara Guljajeva e Mar Canet Sola hanno realizzato l’installazione

Rythm of A City (2010) 14.

L’installazione “Rythm of a City”

L’installazione è composta da una serie di metronomi, disposti l’uno

accanto all’altro, il cui ritmo viene impostato dal “ritmo virtuale” di una città

di riferimento, determinato attraverso il filtraggio dei messaggi, delle foto

e dei video pubblicati online da utenti di quella determinata area

geografica. Lo scopo è quello di analizzare “la malleabilità del mondo

digitale in quello fisico e l’interpretazione dei dati social a fini artistici”.

73

13 - Tworse Key, Twitter: https://twitter.com/tworsekey

14 - Varvara Guljajeva, Mar Canet Sola, Rythm of a City, 2010: http://varvarag.wordpress.com/the-rhythm-of-city/

Page 74: Arduino la rivoluzione_dell_open_hardware

L’installazione è resa possibile da un software realizzato con Processing

che analizza i dati e da alcuni Arduino che controllano e modificano in

tempo reale il ritmo dei metronomi grazie ad un piccolo servomotore.

La forte affinità fra arte interattiva e Net Art, ha definito un trend specifico

di opere basate su Arduino che sfruttano il Web e Internet come input e

output. Ma non tutti gli artisti interattivi sono interessati alle dinamiche

complesse dell’interazione rese possibili dalla rete e si concentrato

sull’analisi di dati più strettamente “ambientali”.

The Secret Sound of Spores (2011)15, un’installazione multimediale

dell’artista scozzese Yann Seznec, parte da un input invisibile ad occhio

nudo (le spore che cadono da un fungo vivo), lo rende visibile, lo

interpreta e lo traduce in suono grazie ad un sistema basato su Arduino:

Nascoste sotto ogni fungo, invisibili ad occhio nudo, migliaia di spore cadono e sono soffiate via dalla più flebile corrente d’aria.

Accendendo un laser sotto un fungo in un ambiente protetto,

queste spore diventano visibili. Sono meravigliose. Ho collaborato con il micologo Patrick Hickey per creare

un’installazione musicale a partire da queste spore.

Utilizzando hardware e software realizzati ad hoc, abbiamo creato

un sistema che rappresenta il processo naturale intrinseco al fungo.

Il sistema hardware realizzato da Seznec si basa su una ripresa in diretta

delle spore che cadono processata in Max/MSP16.

74

15 - The Amazing Rolo, The Secret Sound of Spores, 2011: http://theamazingrolo.net/projects/spores/

16 - http://cycling74.com/products/max/

Page 75: Arduino la rivoluzione_dell_open_hardware

L’input così tradotto viene inviato ad un Arduino per gestire, in output,

piccoli strumenti musicali realizzati appositamente dall’artista. Le spore

diventano la partitura naturale per un’orchestra elettro-meccanica che

rappresenta musicalmente un processo biologico invisibile all’occhio.

Spores è stato esposto all’Inspace di Edinburgo, The Arches di Glasgow

e al Mediamatic di Amsterdam.

Particolare dell’installazione “The Secret Sounds of Spores”

Anche l’installazione “Years” (2011)17, dell’artista tedesco Bartholomäus

Traubeck, parte da un input naturale per generare un output musicale.

L’ingresso in questo caso è rappresentato dagli anelli di crescita degli

alberi. Sezioni di un tronco vengono fatte girare su uno speciale

giradischi, che al posto di una puntina monta un lettore ottico (un

PlayStation Eye modificato) in grado di interpretare i parametri fisiologici

dell’albero sulla base dello spessore degli anelli, la loro intensità di colore,

75

17 - Years, Bartholomäus Traubeck, 2011 http://traubeck.com/years/

Page 76: Arduino la rivoluzione_dell_open_hardware

le distanze fra l’uno e l’altro che indicano il fattore di crescita della pianta.

Queste grandezze sono l’input per un sistema basato su un Arduino che

le elabora per creare un output musicale (tramite il sequencer Ableton

Live).

Il fondamento per la creazione musicale è certamente reperibile nel set di regole definite nella programmazione e nel setup

hardware, ma i dati acquisiti da ogni albero interpretano questo

set di regole in maniera ogni volta differente. 18

L’installazione ”Years” di Bartholomäus Traubeck

Le opere citate in questo capitolo, scelte principalmente sulla base degli

interessi e del gusto personale dell’autore di questa tesi, sono solo una

porzione ristrettissima di quanto prodotto nel corso degli ultimi anni da

una comunità globale di nuovi artisti dell’interazione.

Tenere traccia in maniera organica delle evoluzioni di un ambito artistico

aperto, frammentato e in evoluzione come quello dell’arte interattiva può

non essere semplice.

76

18 - Ibidem

Page 77: Arduino la rivoluzione_dell_open_hardware

Se il minimo comune denominatore è l’utilizzo di un Arduino come cuore

pulsante dell’installazione, l’archivio degli articoli dedicati all’arte sul blog

ufficiale di Arduino19 può essere un ottimo punto di partenza per una più

approfondita esplorazione digitale.

77

19 - http://blog.arduino.cc/category/artduino

Page 78: Arduino la rivoluzione_dell_open_hardware

78

Page 79: Arduino la rivoluzione_dell_open_hardware

5. L’importanza delle Web Community

Quando Massimo Banzi, David Cuartielles e gli altri membri del team

Arduino decisero di rendere pubblici i dettagli tecnici del proprio progetto

per favorirne il più possibile la diffusione, probabilmente non si

aspettavano il successo che il prodotto ha ottenuto e una risposta da

parte del pubblico come quella cui abbiamo potuto assistere.

Uno degli aspetti più incredibili dell’esperienza Arduino, infatti, è la

passione con cui decine di migliaia di persone hanno accolto il progetto lo

hanno fatto proprio e, soprattutto, vi si sono raccolte intorno in una

comunità in continua crescita a cui si deve, in larga parte, il successo

della scheda di prototipazione elettronica del team di Ivrea.

Sede di c-base, uno dei primi Hackerspace indipendenti al mondo, fondato a Berlino nel 1995

79

Page 80: Arduino la rivoluzione_dell_open_hardware

E’ dal basso, dalla comunità, dalla “crowd”1 che sono arrivate idee per il

miglioramento di Arduino, progetti derivati, correzioni al codice, nuove

librerie, shield modulari per l’implementazione di nuove funzionalità e

molto altro.

E’ per questo che si può dire, senza troppa paura di essere smentiti, che

l’esperienza di Arduino non sarebbe stata possibile senza il Web.

Le pulsioni di condivisione del sapere, le istanze libertarie di diffusione

aperta e libera delle conoscenze non sono cosa nuova e recente. Come

scrivo nel primo capitolo di questa tesi non a caso l’esperienza di Arduino

cresce e si sviluppa nell’ambito di quel maker movement che affonda le

proprie radici nella controcultura degli anni ’60 e ’70 e ne ripropone alcuni

elementi fondamentali arricchendoli dell’esperienza tecnologica avanzata

degli ultimi vent’anni.

Gli Hackerspaces, nella seconda metà degli anni 90, nacquero proprio da

questo presupposto, ma poiché il Web non era ancora il fenomeno

culturale che conosciamo oggi (e forse anche perché i “migliori anni”

furono bruciati da quella enorme bolla speculativa che conosciamo come

dotcom bubble) stentarono a diffondersi al di fuori delle cerchie più

ristrette dell’attivismo.

Per capire l’importanza del Web nell’evoluzione di Arduino, basta

analizzare Arduino.cc, il sito Web ufficiale del progetto.

Assieme alle schematiche e ai documenti tecnici pubblicamente

consultabili è disponibile una reference (un vero e proprio “libro di testo”

gratuito in continua evoluzione, che offre spiegazioni dettagliate su ogni

singolo aspetto della programmazione della scheda), ci sono tutorial

pratici illustrati e commentati attraverso i quali si può imparare

80

1 - Crowd: folla, moltitudine.

Page 81: Arduino la rivoluzione_dell_open_hardware

semplicemente “facendo”, c’è una sezione per il download di tutto ciò che

serve per cominciare ad utilizzare Arduino.

E’, insomma, un quartier generale virtuale, aperto a tutti, tramite il quale

accedere ad un’enorme base di conoscenza condivisa e liberamente

consultabile.

Arduino Playground e Arduino Forum, sul sito Arduino.cc

Oltre alla documentazione ufficiale, il sito del progetto Arduino ospita una

sezione dal nome giocoso di “playground 2” che è la “sede ufficiale” della

community virtuale a cui Arduino deve gran parte del proprio successo.

Con il termine community, o Web community, si intende generalmente

una comunità virtuale di individui che si riunisce (attraverso un forum, un

blog o struttura analoga) attorno ad un interesse comune, condividendo

esperienze e discussioni.

Il playground di Arduino è tecnicamente una Wiki, un sito che permette a

tutti, pubblicamente e liberamente, di aggiungere contenuto. La wiki più

famosa e quella alla quale si deve la diffusione del concetto stesso, è

l’enciclopedia libera Wikipedia.

81

2 - “Campo da gioco” o, in alternativa, “campo giochi”: www.playground.arduino.com

Page 82: Arduino la rivoluzione_dell_open_hardware

Nel playground si trovano tutorial, descrizioni di librerie, porzioni di

codice, guide all’installazione del software e molto altro ancora. Tutti sono

invitati a partecipare e ad aggiungere contenuti per la fruizione gratuita da

parte della comunità.

Buona parte della community anima anche il forum presente sempre sul

sito ufficiale di Arduino grazie al quale gli utenti possono esporre il proprio

progetto, chiedere un aiuto specifico per la programmazione di una

funzionalità, o più semplicemente discutere di tutti i possibili progetti

realizzabili con un Arduino e altri dispositivi open-source.

Immagine a corredo di un Instructable che mostra come programmare un ATtiny con Arduino

Come tutte le grandi community che superano la massa critica della

“piccola nicchia di appassionati” anche la community di Arduino non ha in

realtà dei confini definiti. Il Playground, il forum e il blog 3 ospitati dal sito

ufficiale di Arduino sono comprensibilmente il polo di attrazione principale

82

3 www.blog.arduino.cc

Page 83: Arduino la rivoluzione_dell_open_hardware

per gli utenti, ma nel corso degli anni l’utilizzo del prodotto si è diffuso

talmente tanto che è normale trovare progetti basati su Arduino su molti

altri forum di appassionati e su community online più generaliste, come

Instructables o Flickr.

Instructables è un sito che raccoglie tutorial

corredati di testo, foto e spesso video, scritti

dai maker per altri maker, su qualsiasi tipo di

argomento, dall’introduzione alla saldatura a

stagno al tutorial per la creazione di un mini

amplificatore contenuto in una scatola da

scarpe, dalla ricetta per il pancake perfetto

alla guida dettagliata alla pavimentazione del bagno, dalla creazione di

una lampada in cemento alla realizzazione di una catapulta medievale.

I progetti basati su Arduino “raccontati” dagli utenti di Instructables sono

talmente tanti, ormai, che il sito vi ha dedicato già da tempo un’intera

sezione (canale) che raccoglie migliaia di tutorial dettagliati, perfetti per

chi fosse alle prime armi e volesse cercare idee e spunti per cominciare

ad utilizzare il proprio Arduino4.

Flickr è una community online per la condivisione di fotografie, di

proprietà di Yahoo, utilizzata praticamente da chiunque voglia condividere

immagini (professionali o meno) sul Web. Anche qui sono nate sotto-

community esplicitamente dedicate ad Arduino e moltissimi spunti si

possono trovare semplicemente sfogliando gli archivi delle immagini

marchiate con il tag Arduino5.

I forum di appassionati di altri settori che dedicano una sezione all’utilizzo

di Arduino in relazione al proprio interesse (fotoamatori, radioamatori,

modellisti e così via) sono poi talmente tanti da non poter essere

83

4 - http://www.instructables.com/tag/type-id/category-technology/channel-arduino/

5 - http://www.flickr.com/photos/tags/arduino/

Page 84: Arduino la rivoluzione_dell_open_hardware

esaustivamente elencati.

I confini della Arduino community sono impossibili da definire anche

perché ne fanno attivamente parte anche tutti coloro che, pur non

partecipando attivamente al playground, al forum di Arduino o ad altre

comunità virtuali ben circoscritte, attingono alla base di conoscenza

comune per realizzare progetti che poi condivideranno pubblicamente sul

proprio sito Web o sul sito specificamente dedicato al proprio progetto.

Questo modello di community diffusa e atomizzata, che si aggrega

attorno ad un polo principale (che nella maggior parte dei casi è creato e

gestito dai fondatori del progetto) non è certamente prerogativa di

Arduino. E’ un modello che descrive anche molte delle community degli

ambienti del FOSS (Free and Open Source Software) e che funziona,

seppure con livelli di partecipazione numerica variabili, anche per tutti gli

altri progetti di open-hardware che negli ultimi anni hanno trovato il

successo grazie ad un pubblico crescente di appassionati e sostenitori.

Nel caso di Arduino, Raspberry Pi6, MakerBot Industries7 e molti altri

progetti hardware open-source che puntano alla produzione di un

prodotto ma sfuggono alla definizione standard di azienda o “corporation”,

le community finiscono anche per essere il sistema più efficiente di

produzione di valore aggiunto.

Persone che si aggregano in maniera autonoma attorno ad un progetto,

spinte dall’interesse e dalla passione, offrono gratuitamente il proprio

tempo e il proprio know-how, spesso costruito in autonomia grazie a

quanto liberamente reperibile su Web, senza la promessa di un salario o

di una ricompensa che ne ripaghi gli sforzi in quanto espressione di una

attività professionale.

84

6 - V. Cap. 6.2

7 - V. Cap. 6.4

Page 85: Arduino la rivoluzione_dell_open_hardware

Si potrebbe dire che le nuove forme di produzione aperta, in buona

sostanza, richiedono nuove forme di aggregazione del know-how.

Come spiega Chris Anderson nel suo Makers, The New Industrial

Revolution:

Le Community tendono ad essere più ugualitarie, in parte perché tipicamente non hanno gli stessi obblighi legali e i rischi di una

corporation. Non devono controllare le referenze e far firmare

contratti a coloro che parteciperanno all’attività comune, come invece tipicamente viene richiesto ad un’azienda.

Possono permettersi di osare di più con i partecipanti, perché le

conseguenze del fatto che le cose non funzionino sono molto più

piccole quando non si promette alle persone una remunerazione (non che i membri non possano essere pagati per il lavoro che

hanno svolto, ma solitamente ogni ricompensa tende ad arrivare

a fatto compiuto, non sotto forma di salario). 8

Anderson precisa, nel paragrafo immediatamente successivo, che “le

community non possono fare tutto e l’economia mondiale non si può

basare solo sul volontariato”.9

Tuttavia il successo di questo tipo di organizzazione è l’indicatore di un

forte cambiamento dei mercati e dei meccanismi del lavoro produttivo

rispetto a come lo abbiamo conosciuto nel corso degli ultimi cento anni.

Si possono creare realtà produttive in cui i componenti di una comunità

virtuale, che contribuiscono a migliorare e modificare il prodotto, sono allo

stesso tempo i primi clienti dell’azienda.

Funziona, a patto che il prodotto stesso sia di pubblico dominio, non sia

85

8 - Chris Anderson, Makers, The New Industrial Revolution. Random House, 2012 - pag. 145

9 - Ibidem

Page 86: Arduino la rivoluzione_dell_open_hardware

protetto da brevetti, possa essere modificato liberamente senza il rischio

di una causa legale da parte degli inventori, possa essere utilizzato per

scopi non stabiliti dai creatori, non vi siano strati di segretezza a

protezione dei processi produttivi e che, al massimo, l’unica cosa a

rimanere in qualche modo protetta sia la proprietà del marchio.

La negazione di alcuni dei principi fondamentali dell’hardware business,

in sostanza, è la base su cui si sono costruite negli ultimi anni le storie di

successo di Arduino e di altri progetti per la realizzazione di hardware

libero.

5.1 Capitale diffusoLe community sono indispensabili per accrescere il valore del progetto,

ma i singoli individui che le compongono possono fare ancora di più, e

grazie al Web hanno la possibilità di diventare gli investitori che

forniscono ai maker i capitali necessari per avviare una produzione.

E’ il crowd funding: una moltitudine di individui (crowd) finanzia (to fund)

un progetto che ritiene interessante, ciascuno con una somma che ritiene

adeguata alle proprie sostanze. A seconda di quanto offerto, l’individuo ha

diritto ad una “ricompensa” stabilita dai creatori del progetto, che può

consistere nel prodotto stesso (se il progetto ha la finalità di avviare una

produzione) oppure in altro tipo di premio commisurato alla cifra spesa.

Le piattaforme di crowd funding più note sono Indiegogo, nata nel 2008, e

Kickstarter, fondata nel 2009 e ad oggi una di quelle di maggior successo.

Nel corso del 2012 Kickstarter ha raccolto fondi per circa 320 milioni di

dollari, offerti da 2.241.475 investitori (“backers” in gergo), e finanziato

con successo 18.109 progetti10.

86

10 - http://www.kickstarter.com/year/2012#overall_pledged

Page 87: Arduino la rivoluzione_dell_open_hardware

Il sistema del crowd funding, già sperimentato in passato nell’ambito della

produzione musicale e ad oggi ancora particolarmente funzionale al

finanziamento di progetti dell’ambito creativo, si è dimostrato come una

forma perfetta di raccolta fondi per progetti basati sull’hardware libero.

La pagina della campagna Kickstarter del Makey Makey

Nel corso del 2012 il progetto Makey Makey11, per la realizzazione di una

piccola scheda elettronica che può trasformare in controller vari oggetti di

uso comune, ha raccolto tramite Kickstarter finanziamenti per più di

500.000 dollari da parte di più di 11.000 investitori. L’obiettivo iniziale dei

creatori del progetto era quello di raccogliere 25.000 dollari.

Lo scorso 8 giugno 2013 si è chiuso invece il “funding” di UDOO12, mini-

PC che unisce Raspberry Pi e Arduino in un’unica scheda di

87

11 - V. Cap. 6.3

12 - V. Cap 6.1

Page 88: Arduino la rivoluzione_dell_open_hardware

prototipazione potente e compatta. I progettisti, fra cui diversi sviluppatori

italiani, puntavano a raggiungere la cifra di 27.000$, ma sono arrivati a

raccoglierne circa 642.00013

Ancora più sorprendente il risultato raggiunto dai creatori di RigidBot, una

stampante 3D a basso costo e ad alta precisione, che speravano di

racimolare tramite Kickstarter i 31.500$ necessari all’avvio della

produzione delle macchina. Il progetto ha avuto un successo tale che alla

fine del periodo di finanziamento di 45 giorni 1952 backers avevano

contribuito per più di un milione di dollari.

Makey Makey, UDOO e RigidBot sono solo tre esempi di enorme

successo, ma sono tantissimi i progetti, non solo dell’ambito tecnologico,

che vengono finanziati ogni giorno in questo modo.

A differenza dei venture capitalist o degli investitori più tradizionali, i

backer di una campagna su Kickstarter non si aspettano un ritorno sul

proprio investimento. Con i propri soldi ciascun individuo può in buona

sostanza pre-ordinare il prodotto o ricevere il “reward” (una t-shirt, un

cappellino, un semplice grazie, un link sul sito dei progettisti ed altro

ancora) corrispondente alla cifra versata.

Nel caso il progetto non raggiunga l’obbiettivo di finanziamento, nessuno

spenderà nulla: l’addebito delle carte di credito dei “backers” avviene solo

quando la campagna si chiude con successo.14

Servizi di crowd funding come Kickstarter offrono un altro grande

vantaggio: facilitano la creazione di comunità virtuali di persone

interessate all’idea e al progetto. L’inventore potrà tenere aggiornati i suoi

88

13 - http://www.kickstarter.com/projects/435742530/udoo-android-linux-arduino-in-a-tiny-single-board

14 - Altri servizi, come Indiegogo, prevedono anche una modalità per cui il creatore della campagna ottiene comunque il denaro raccolto, indipendentemente dal raggiungimento dell’obbiettivo iniziale.

Page 89: Arduino la rivoluzione_dell_open_hardware

finanziatori in tempo reale, renderli partecipi dell’evoluzione del progetto,

discutere con loro migliorie in corso d’opera ed accettarne i suggerimenti.

I finanziatori, che pure si sentiranno parte integrante del progetto e ne

favoriranno con ogni probabilità la diffusione tramite il passaparola, non

sono capitalisti in cerca di profitti. Possono quindi lasciare maggiore

libertà ai promotori dell’iniziativa e con il loro giudizio, espresso in meri

termini economici o attraverso la discussione condivisa, consentono al

detentore dell’idea di capire se il progetto può decollare e funzionare.

Il tutto con un paracadute importante: la libertà di fallire senza dover

rispondere del proprio fallimento ai pochi che hanno scommesso i propri

capitali sull’impresa.

E’ per questo che il crowd funding funziona bene per i progetti che

nascono all’interno del Maker Movement. Idee e proposte che

faticherebbero a convincere una banca o un’agenzia di Venture Capitals

possono diventare realtà grazie ad un’atomizzazione dell’investimento e

del rischio ad esso connesso.

Il crowd funding è il venture capital per il Maker Movement. Così come gli strumenti di produzione sono stati democratizzati,

creando una nuova classe di produttori, così è successo per gli

strumenti necessari alla raccolta di capitali, con la creazione di una nuova classe di investitori. Non investitori di un’azienda,

ma investitori in un prodotto. O meglio, investitori nell’idea di

un prodotto. 15

89

15 - Chris Anderson, Makers, The New Industrial Revolution. Random House, 2012 - pag. 173

Page 90: Arduino la rivoluzione_dell_open_hardware

90

Page 91: Arduino la rivoluzione_dell_open_hardware

6. Altri esempi di Open Hardware

Il concetto di Hardware Open Source non nasce con Arduino. Già nel

2005 c’era chi sperimentava l’applicazione dei principi del FOSS1 a

dispositivi fisici di vario genere come pannelli solari e schede grafiche.

Al progetto Arduino, tuttavia, va il merito di aver preso quel concetto e di

averlo esteso ad un’area meno strettamente tecnica e riservata ad

ingegneri con una vena idealistica particolarmente sviluppata.

Ad Arduino va soprattutto il merito di aver dimostrato che “si può fare”: si

può riuscire ad inventare un prodotto nuovo rinunciando completamente

alla proprietà dell’idea per facilitarne la diffusione e la fruizione collettiva.

Il successo di Arduino è la prova che i principi del modello dell’Open

Source, applicati allo sviluppo di un dispositivo elettronico, possono

funzionare come hanno funzionato per il software.

Serigrafia del logo dell’Open-Source Hardware su un circuito stampato

91

1 - FOSS: Free and Open Source Software

Page 92: Arduino la rivoluzione_dell_open_hardware

Prima di procedere ad analizzare altri progetti che hanno seguito la

strada segnata dal team di Ivrea, è bene analizzare meglio il concetto di

Open Hardware, o meglio Open-Source Hardware (OSHW).

Ad oggi, per quanto il concetto stesso di OSHW si ancora fresco e in

evoluzione, ci sono già dei punti fermi nella definizione di Hardware

Libero.

La migliore descrizione di ciò che può considerarsi Open-Source

Hardware la fornisce il sito della OSHWA, la Open-Source Hardware

Association2: un’organizzazione no-profit tuttora in fase di formazione,

che aspira a promuovere la diffusione globale del modello Open-Source

applicato all’Hardware:

L'hardware open source è l'hardware il cui progetto è reso

pubblico in modo che chiunque possa studiare, modificare,

distribuire, realizzare, e vendere il progetto o l'hardware basato su di esso. La fonte dell'hardware, il progetto da cui è stato

realizzato, è disponibile nel formato migliore per apportarvi

modifiche. Idealmente, l'hardware open source utilizza componenti e

materiali facilmente intercambiabili, processi standard,

infrastruttura aperta, contenuti senza restrizione e strumenti di progettazione open-source per massimizzare la capacità degli

individui di produrre e utilizzare l'hardware. L'hardware open

source dà alle persone la libertà di controllare la loro tecnologia,

la condivisione della conoscenza ed incoraggia il commercio attraverso lo scambio aperto di progetti.3

92

2 - www.oshwa.org

3 - Maggiori dettagli al link http://freedomdefined.org/OSHW/translations/it

Page 93: Arduino la rivoluzione_dell_open_hardware

E’ interessante notare che in questa definizione di hardware open source

non ci sono riferimenti specifici alla creazione di dispositivi elettronici.

Il fatto che Arduino e molti dei progetti di cui parlo in questo capitolo

abbiano solide basi nell’ambito dell’elettronica lo si deve principalmente al

fatto che coloro che per primi si sono interessati a queste tematiche

abbiano una formazione di stampo ingegneristico, per quanto talvolta

applicata alle arti e all’interazione multimediale (come nel caso di Banzi,

Cuartielles e gli altri componenti del team di Arduino).

In realtà il concetto di Open Hardware vale per qualsiasi tipo di dispositivo

e si estende a settori e ambiti che generalmente possiamo considerare

distinti da quello elettronico e ingegneristico.

Open Source Ecology 4 , ad esempio, si

propone di applicare il principio dell’Open

Source alle economia di larga scala e

promuove progetti Open Source come il Global

Village Construction Set (GVCS) 5:

Il GVCS è una piattaforma modulare, DIY, a basso costo e ad alta performance che permette di fabbricare 50 strumenti di

fabbricazione industriale necessari a ricreare una piccola

comunità civile sostenibile dotata dei più moderni comfort 6.

Un altro aspetto fondamentale che emerge dalla definizione di open

hardware messa a punto dalla OSHWA, è la possibilità di applicarne i

principi senza rinunciare a sviluppare un modello di business basato sulla

propria invenzione o, ancora più importante, sulla propria versione

93

4 - OSE: http://opensourceecology.org/wiki/Main_Page

5 - Global Village Contruction Set: http://opensourceecology.org/wiki/Global_Village_Construction_Set

6 - Ibidem

Page 94: Arduino la rivoluzione_dell_open_hardware

dell’invenzione di qualcun altro, nel rispetto della licenza Creative

Commons Attribution Share Alike 2.5 che adotta ad esempio Arduino o di

molte delle altre licenze che sono state sviluppate negli anni.

Da questo punto di vista il lavoro del team di Arduino è stato certamente

pionieristico: se oggi siamo già nella condizione di poter elaborare un

discorso strutturato e complesso sulle dinamiche introdotte dal concetto

di Open Hardware, nel 2005 la decisione di aprire al mondo

un’invenzione e renderla di pubblico dominio (mantenendo solamente la

natura privata e proprietaria del marchio) era una scommessa dagli esiti

difficilmente prevedibili.

La IDE di Arduino su Ubuntu Linux

Quando Linus Torvalds decise, nella prima metà degli anni novanta, di

sviluppare da zero un proprio sistema operativo diverso da Windows, che

fosse libero e condivisibile da tutti, furono in pochi a non prenderlo per

pazzo.

94

Page 95: Arduino la rivoluzione_dell_open_hardware

Oggi Linux non è molto diffuso nell’ambito del mercato consumer, ma le

aziende che lo hanno adottato per far girare i propri server sono ormai

innumerevoli. IBM offre supporto a Linux su tutte le proprie infrastrutture e

un software open-source come Apache 7, che gira sia su server Linux che

su Server Windows NT, è alla base della struttura del World Wide Web

come lo conosciamo.

E’ presto, forse, per azzardare un paragone diretto fra quell’esperienza e

quella di Arduino e dell’open hardware. Molte aziende, però, ne hanno già

capito l’importanza e stanno investendo in questa direzione. Due esempi

su tutti. Via Technologies, gigante taiwanese del settore dei circuiti

integrati, già nel 2008 ha lanciato l’OpenBook, un design open-source per

il case di un netbook.

Una delle prime versioni di BeagleBoard

Sempre nel 2008 Texas Instrument ha invece introdotto sul mercato la

BeagleBoard, un micro-computer, predecessore del popolarissimo

95

7 - http://httpd.apache.org/

Page 96: Arduino la rivoluzione_dell_open_hardware

Raspberry Pi8, il cui design è completamente aperto. Lo scopo è

principalmente educativo e il dispositivo è stato sviluppato da un piccolo

team di ingegneri dell’azienda statunitense in collaborazione con Digi-

Key9.

6.1 Gli Arduino-Derivati!

Nel corso degli ultimi anni la diffusione libera e aperta del design di

Arduino ha contribuito non solo alla crescita del prodotto originale e alla

sua popolarità negli ambiti del maker movement, ma ha reso anche

possibile la realizzazione di numerosi progetti open source di ogni genere

che hanno elaborato il concetto originale per arrivare a soluzioni nuove e

diverse.

SmartCitizen 10 , ad esempio, è una scheda basata sul microcontrollore

AtMega32u4, lo stesso di Arduino Leonardo, che integra sensori specifici

per le misurazioni ambientali.

Una piccola stazione di misurazione ecologica alla portata di tutti

insomma, sempre connessa, capace di registrare parametri atmosferici

quali il livello di luminosità, l’umidità, la temperatura, il tasso di monossido

di carbonio e di protossido di azoto.

I dati registrati sono raccolti da un server centrale gestito dalla Acrobotic

Industries ed utilizzati per aggiornare costantemente una mappa su cui

compaiono tutti gli SmartCitizen sparsi per il globo, con un resoconto dei

parametri registrati nella specifica posizione.

96

8 - V. sezione 6.2

9 - DigiKey è uno dei maggiori distributori di componenti elettrici nordamericani: http://www.digikey.com/

10 - Smart Citizen: http://acrobotic.com/smart-citizen/

Page 97: Arduino la rivoluzione_dell_open_hardware

E’ il concetto del crowdsourcing applicato alle misurazioni ambientali, che

non vengono così demandate solamente ad organismi specializzati ma

sono alla portata di tutti i cittadini.

L’interfaccia Web della mappa interattiva di Smart Citizen

Ad oggi è attivo un sito di test da cui si può già consultare la mappa

interattiva. Il progetto è stato sviluppato con la collaborazione del FabLab

Barcellona, motivo per cui la maggior parte degli SmartCitizen di prova si

trova ancora nell’area della città catalana.

Udoo11 è un altro interessante esempio di progetto Arduino-derivato che

ha riscosso un enorme successo grazie alla visibilità offerta dalla

piattaforma di crowd funding Kickstarter, dove è riuscito a raccogliere

finanziamenti per più di 600.000$ a fronte di una richiesta iniziale di

27.000$ 12.

Realizzato da un team di ricercatori e Interaction Designer italiani, UDOO

è un mini-computer che unisce la potenza di 4 microcomputer ARM come

97

11 - www.Udoo.org

12 - La campagna UDOO su Kickstarter: http://goo.gl/eXwhu

Page 98: Arduino la rivoluzione_dell_open_hardware

il Raspberry Pi13 alla versatilità di un Arduino Due, il tutto su una singola

scheda su cui si può installare Linux o Android 4.0.4 e superiori.

Lo scopo è quello di realizzare una potente piattaforma di prototipazione

elettronica per l’utilizzo di Processing, openCV, PureData e altri software

per le applicazioni interattive utile allo stesso tempo come strumento di

formazione per una nuova generazione di makers, ingegneri e progettisti

dell’interazione. Il risultato è un prodotto ambizioso per un mercato in

espansione, che già dalla fase di raccolta fondi ha dimostrato una

potenzialità enorme e segna l’avvio di una nuova generazione di prodotti

Arduino-based, sempre più potenti e allo stesso tempo poco costosi.

La campagna di UDOO si è chiusa lo scorso 8 giugno e i primi modelli del

mini-computer saranno disponibili per i finanziatori a partire da settembre

2013.

L’immagine promozionale di UDOO su Kickstarter

98

13 - V. sezione 6.2

Page 99: Arduino la rivoluzione_dell_open_hardware

6.2 Raspberry Pi

L’avanzamento delle innovazioni tecnologiche nella miniaturizzazione

della componentistica, fortemente accelerate dalla crescita del mercato

dei chip a basso consumo che servono ad alimentare l’insaziabile

domanda del settore “mobile” (smartphone e tablet), ha favorito negli

ultimi anni un rapido abbassamento dei prezzi dei componenti necessari

a creare personal computer che possono stare nel palmo di una mano.

La strada, in questo senso, è stata segnata dalla BeagleBoard di Texas

Instrument, ma è certamente il Raspberry Pi ad incarnare, oggi, questa

generazione di dispositivi open-source orientati principalmente all’utilizzo

da parte di ragazzi e bambini.

Raspberry Pi modello B

Raspberry Pi nasce per rendere semplice ed economico l’insegnamento

dell’informatica di base (in particolare della programmazione) grazie ad

99

Page 100: Arduino la rivoluzione_dell_open_hardware

un computer semplice e poco costoso ma abbastanza potente per delle

applicazioni interattive di base.

L’idea di un computer per bambini minuscolo e poco costoso nacque nel 2006, quando Eben Upton e i suoi colleghi del

Computer Laboratory dell’Università di Cambridge, inclusi Rob

Mullins, Jack Lang e Alan Mycroft, iniziarono a preoccuparsi del declino, anno su anno, per il numero decrescente e il massimo

livello delle capacità degli iscritti al corso di Computer Science

ogni anno. Negli anni 90 molti dei ragazzini iscritti arrivavano

ai colloqui da programmatori amatoriali già esperti; il panorama negli anni 2000 era molto diverso: un candidato tipico poteva

aver provato al massimo un po’ di Web Design.14

Se l’idea e i primi progetti su carta si possono far risalire al 2006, è solo

nel 2011 che la Raspberry Pi Foundation riesce finalmente a produrre i

primi prototipi della versione B del prodotto, quella con più opzioni e “più

costosa”, che dal marzo 2012 è entrato ufficialmente in produzione e oggi

si può acquistare online sul sito della fondazione (o presso numerosi

rivenditori internazionali) a soli 35$.

Il Raspberry Pi modello B monta un SoC15 Broadcom BCM2835, una

CPU ARM1176JZF-S core a 700Mhz, 512 MB di RAM, una porta HDMI e

un’uscita video analogica per la connessione di un monitor, due porte

USB, un’uscita jack da 3,5mm e uno slot per la lettura/scrittura di una

scheda SD, su cui si installa il sistema operativo e si registrano i file.

Sul RasperryPi possono girare varie distribuzioni di Linux e sono

100

14 - Raspberry Pi - About page: http://www.raspberrypi.org/about

15 - SoC: System on a Chip

Page 101: Arduino la rivoluzione_dell_open_hardware

disponibili sistemi operativi specifici come Raspbian, RISC e Pidora (una

distro di Fedora Linux appositamente ottimizzata per Raspberry Pi).

La fondazione Raspberry Pi, che naturalmente ha reso disponibili progetti

e schematiche del dispositivo in pieno accordo con i principi dell’open-

source hardware, sta portando avanti il progetto puntando sempre

all’obbiettivo originale: diffondere la conoscenza e l’amore per

l’informatica e la programmazione fra bambini e giovani studenti in ogni

parte del mondo.

Raspberry Pi usato come media center grazie al software Raspbmc

La community 16 che si è formata attorno al progetto, fatta di forum,

eZine, Wiki e molto altro, ha poi reso possibile una diffusione ancora

maggiore del piccolo computer. E soprattutto ha prodotto idee e

101

16 - RPi community: http://elinux.org/RPi_Community

Page 102: Arduino la rivoluzione_dell_open_hardware

immaginato utilizzi del Raspberry Pi che nulla hanno a che fare con le

intenzioni originali della fondazione.

Artisti multimediali, appassionati di informatica ed elettronica, semplici

“tinkerer” con la passione per l’open hardware, hanno accolto il Pi come

un’altra piccola grande rivoluzione. C’è chi l’ha utilizzato per creare un

media server multimediale da tenere in salotto, chi ne ha fatto il cervello

pulsante di complicati sistemi DIY di automazione domestica, chi lo

utilizza come proxy server per estendere le funzionalità del sistema di

controllo vocale sul proprio iPhone o sul proprio telefono Android e chi

magari lo interfaccia con Arduino per controllare installazioni multimediali

più complesse, che richiedono un potenza maggiore di quella che può

fornire un microcontrollore, ma senza rinunciare alla miniaturizzazione.

Tutti condividono software, progetti e schematiche in maniera aperta,

nello spirito di condivisione che autoalimenta la community stessa.

RaspBerry Pi Model A: meno potente del modello B, costa solo 25$

102

Page 103: Arduino la rivoluzione_dell_open_hardware

6.3 Altri esempi di Open Hardware elettronico

Dal brodo di coltura del movimento dell’Open Hardware nel corso degli

ultimi anni sono nati nuovi e interessanti progetti aperti che hanno lo

scopo di semplificare l’interazione, la multimedialità e la prototipazione

elettronica in ambito artistico, medico, ingegneristico, rivolgendosi a

professionisti e amatori che tengono alta la domanda di un mercato in

forte crescita.

Uno degli esempi recenti di come il potenziale di piccole invenzioni

elettroniche, destinate ad un pubblico di “geek” e appassionati, possa

avere in realtà una grande eco nel mondo connesso in cui viviamo, è

certamente il Makey Makey, una piccola scheda elettronica, compatibile

con Arduino, che permette di trasformare oggetti comuni in periferiche di

input collegate ad un computer.

Collegata ad un Makey Makey anche una banana diventa un “tasto” della tastiera.

103

Page 104: Arduino la rivoluzione_dell_open_hardware

Il Makey Makey nasce con intenti creativi e giocosi dal lavoro del

ricercatore degli MIT Media Labs Jay Silver ed ha l’obiettivo di offrire a

tutti, soprattutto ai bambini, un kit semplice e immediato per la creazione

di “invenzioni” interattive.

Il controller riesce a trasformare (quasi) qualsiasi oggetto, anche quelli

con una conduttività molto bassa, in un interruttore ad alta impedenza.

La scheda utilizza un microcontrollore Atmel ATmega32u4 grazie al quale

è riconosciuta da un PC come periferica di tipo HID.

Per quanto l’intento originale fosse quello di offrire al settore educativo

uno strumento utile per l’insegnamento dei principi base dell’elettricità e

dell’elettronica, la versatilità del Makey Makey e la semplicità con cui lo si

può utilizzare per emulare l’input di una tastiera ne hanno decretato il

grande successo presso il pubblico più ampio dei Maker e degli artisti

interattivi.

Arduino Leonardo ed Esplora, che integrano lo stesso microcontrollore

Atmel, offrono funzionalità simili e sono riconosciuti da un computer come

tastiera e mouse, ma non sono dotati del sistema di switch ad alta

impedenza del Makey Makey, la caratteristica che permette di

trasformare gli oggetti comuni nelle “key” di una tastiera.

L’esperienza di Bug Labs17 parte invece da presupposti completamente

differenti e si rivolge soprattutto a professionisti ed ingegneri.

Bug Labs costruisce e vende un sistema modulare costituito da una

BUGBase, un vero e proprio mini-computer basato su Linux, al quale si

possono collegare “periferiche” compatibili che permettono di costruire

sistemi complessi e con un ampio numero di funzionalità.

104

17 - http://www.buglabs.net/

Page 105: Arduino la rivoluzione_dell_open_hardware

Ad oggi Bug Labs offre circa una quindicina di moduli compatibili con la

BUGbase, che vanno dal BUGlocate, un ricevitore GPS con antenna

opzionale, al BUGview2, monitor LCD touchscreen a colori, passando per

il BUGusb (modulo per la connettività USB) e il BUGvideo (modulo che

fornisce al sistema delle uscite video HDMI e VGA in formato DVI).

BUGbase con alcuni moduli opzionali

Il sistema messo appunto da Bug Labs è basato su un design di pubblico

dominio e, in ottemperanza ai principi dell’Open Hardware, si può

elaborare, modificare, migliorare e diffondere.

Questi aspetti non hanno impedito alla Bug Labs di stringere partnership

con grandi aziende quali Ford (per il lancio di Open XC, una piattaforma

per la realizzazione di sistemi multimediali open source per le automobile)

e Comcast.

105

Page 106: Arduino la rivoluzione_dell_open_hardware

Il concetto di modularità e blocchi costruttivi è alla base di un altro

interessante progetto di piattaforma open-hardware: TinkerForge.

Il sistema di basa sulla costruzione di moduli formati da Bricks, i blocchi

“pensanti”, Bricklets, sensori per la registrazione di grandezze fisiche su

cui basare l’interazione, e Master Extensions che aggiungono funzionalità

quali la connettività via cavo o Wi-Fi.

Sistema TinkerForge: Motore DC, moduli (Bricks) con Master Extension Wi-Fi e batterie

La “costruzione” finale, fatta di tutti questi elementi, è un dispositivo

computerizzato dotato di funzionalità modulari che può essere controllato

e programmato con un gran numero di linguaggi.

Nelle intenzioni dei creatori, che ne hanno diffuso specifiche tecniche e

software con licenza open-source, TinkerForge permette ai

programmatori esperti di concentrarsi molto di più sullo sviluppo di

software avanzato per il controllo dei dispositivi che si possono creare

con i moduli del sistema, dando allo stesso tempo la possibilità a chi è

meno esperto di creare macchine interattive funzionanti senza che sia

necessaria alcuna conoscenza elettronica.

Il vantaggio di TinkerForge rispetto ad Arduino è dato dalla possibilità di

programmare ad un livello ancora più alto e non-embedded ma è ottenuto

106

Page 107: Arduino la rivoluzione_dell_open_hardware

a scapito dell’economicità del prodotto. Un sistema TinkerForge completo

(in gergo “stack”) può arrivare a costare qualche centinaia di euro,

sommando i prezzi dei singoli componenti.

Theremino è un progetto italiano che nasce da un’idea di Ennio

Bertrand, artista interattivo e confondatore dell’Arslab di Torino.

E’ una scheda interattiva analoga per certi versi ad Arduino, da cui

differisce principalmente per il fatto di poter essere utilizzato direttamente,

appena acceso, senza che vi sia la necessità di programmare il firmware.

Il sistema modulare Theremino

Ecco la descrizione ufficiale del progetto:

Theremino è un sistema modulare e componibile, completamente “free” e “open”, progettato per interfacciare Windows, Linux,

OSX e Android con il mondo esterno. I moduli del sistema

possono comunicare tra loro, anche via Web, misurare grandezze fisiche come temperatura, umidità, illuminazione, posizione,

prossimità, accelerazione, tensione, corrente, resistenza,

radiazioni, campo magnetico, pressione, presenza di liquidi, PH e

ORP… e pilotare servocomandi, motori, led e lampade, forni,

107

Page 108: Arduino la rivoluzione_dell_open_hardware

elettrovalvole, relè, controlli di processo, robot etc. Le applicazioni

sono quindi limitate solo dalla fantasia del progettista.18

Theremino è, per volontà degli stessi creatori, un sistema profondamente

diverso da Arduino. Non è un single-board microcontroller programmabile

che può funzionare in autonomia bensì un sistema di input-output a

moduli compatibili che serve principalmente per trasformare un computer

(che rimane la “testa pensante”) in un sistema senziente.

Nasce per semplificare ulteriormente la creazione rapida di sistemi

interattivi da parte di artisti multimediali che non hanno grande familiarità

con la programmazione software dei microcontrollori e necessitano di un

sistema di input-output semplice e subito pronto per l’uso.

6.4 Rep Rap e la stampa 3D

Il concetto di stampa tridimensionale non è nulla di nuovo. Stampanti di

oggetti fisici creati attraverso la sovrapposizione di layer plastici a partire

da modelli tridimensionali, esistono in ambito industriale da più di

trent’anni. Quel che non esisteva, fino a poco tempo fa, era una

stampante tridimensionale alla portata di tutti, che non costasse cifre

nell’ordine delle decine di migliaia di euro e non richiedesse

necessariamente una formazione ingegneristica avanzata per essere

adoperata.

Grazie ad alcuni progetti chiave che devono il proprio successo e la

propria ampia diffusione alla loro natura open source, siamo molto vicini

al momento in cui potremo affiancare una stampante di oggetti ad una

normale stampante ad inchiostro bidimensionale.

108

18 - Theremino, http://www.theremino.com/

Page 109: Arduino la rivoluzione_dell_open_hardware

Nel 2009, in occasione del lancio del suo romanzo Makers, Cory

Doctorow lo descriveva con queste parole ai lettori di BoingBoing:

E’ un libro su persone che hackano l’hardware, i business-model e le soluzioni abitative per scoprire nuovi modi per rimanere vivi e

felici anche quando l’economia sta finendo nel cesso.

E’ curioso che io lo abbia scritto anni prima dell’attuale apocalisse economica, come parabola sulla straordinaria fioritura

di creatività ed energia che vidi nella Silicon Valley dopo il crollo

delle dotcom, dopo che tutti i capitali si furono prosciugati. 19

I due protagonisti di Makers sono due maker (e hacker) che costruiscono

la propria fortuna grazie allo sviluppo di un sistema di stampa 3D

economico e alla portata di tutti.

E‘ incredibile constatare che a nemmeno un lustro dall’uscita del libro già

esistano a livello globale progetti analoghi e altrettanto ambiziosi, che

hanno reso la stampa tridimensionale una realtà in espansione

rapidissima.

RepRap20 è uno dei primi e più importanti progetti per la realizzazione di

una stampante 3D economica e soprattutto basata sul modello

dell’hardware open-source.

L’idea di Adrian Bowyer, docente di Ingegneria Meccanica dell’università

di Bath, fu proprio quella di creare uno strumento la cui diffusione

sarebbe stata favorita non soltanto dalla sua natura “aperta” ma anche

dall’abilità di auto-replicarsi.

109

19 - Cory Doctorow - “Makers, my new novel”, http://boingboing.net/2009/10/28/makers-my-new-novel.html

20 - RepRap Project - www.reprap.org

Page 110: Arduino la rivoluzione_dell_open_hardware

Adrian Bowyer e Vic Olliver. Le parti plastiche della stampante 3D a destra (child) sono state prodotte con la stampante 3D a sinistra (parent).

Dall’esperienza di RepRap nel 2009 è nata, a Brooklyn, MakerBot

Industries21, vera e propria startup fondata da Bre Pettis, Zach Smith e

Adam Mayer. Lo scopo di MakerBot è quello di realizzare stampanti

tridimensionali domestiche a prezzi abbordabili.

Makerbot Thing-O-Matic MakerBot Replicator 2

Dal 2009 ad oggi si sono susseguite tre generazioni di stampanti, a

110

21 - MakerBot Industries; www.makerbot.com

Page 111: Arduino la rivoluzione_dell_open_hardware

partire dalla CupCake CNC e da ThingO’Matic fino ad arrivare alle attuali

Replicator e Replicator 2, lanciate nel 2012.

Sebbene i principi fondanti della startup siano stati quelli dell’open-

hardware, tanto che tutti i progetti sono stati lanciati sotto licenza GNU e

tutt’ora la core-technology delle stampanti MakerBot sia nel pubblico

dominio, l’azienda ha scelto di mantenere closed-source la GUI e il

design della Replicator 2.

Il motivo di questa scelta, che ha provocato critiche e controversie nella

community, è stato spiegato da Bre Pettis, uno dei fondatori di MakerBot,

in un post del blog ufficiale della start-up che riassume molto bene alcuni

limiti concettuali della commercializzazione di soluzioni open-hardware:

Per la Replicator 2 non condivideremo il modo in cui la macchina viene realizzata fisicamente o la GUI, perché non crediamo che la

clonazione in copia carbone sia accettabile e perché la creazione di

cloni intacca la nostra capacità di pagare le persone per lo sviluppo. La protezione della GUI e del design fermeranno i

cloni? Probabilmente non per molto, ma ci permette di esprimere

pubblicamente una delle regole non scritte dell’hardware open

source. Specificamente quella che dice che “clonare non è figo”.

Una discussione interessante, che dimostra che il percorso dell’open

hardware, in particolar modo in alcuni settori, non è sempre e comunque

un marcia trionfale. Come ebbe modo di confidare Massimo Banzi al

giornalista di Wired Clive Thompson: “penso che ci sia un confine labile

fra open source e stupidità” 22.

111

22 - Clive Thompson, Build It, Share It, Profit. Can Open Source Hardware Work? - Wired, 20/10/2008 - http://www.wired.com/techbiz/startups/magazine/16-11/ff_openmanufacturing

Page 112: Arduino la rivoluzione_dell_open_hardware

Ad oggi la Replicator 2 rimane una delle più avanzate stampanti 3D

prosumer disponibili, in grado di stampare con precisione al micron. La si

può acquistare pre-assemblata per 2199$.

MakerBot Industries ha fondato e mantiene il sito Thingiverse.com23,

una community open-source di progetti e design digitali per la stampa di

oggetti tridimensionali.

Una stampante tridimensionale RigidBot

Di recente l’azienda americana Invent-A-Part ha lanciato RigidBot 24, una

nuova stampante 3D che ha raccolto più di un milione di dollari di

finanziamento su Kickstarter, paragonabile per caratteristiche alla

Replicator 2. Sarà disponibile a dicembre 2013 in due versioni prezzate

499$ e 899$.

112

23 - www.thingiverse.com

24 - RigidBot: http://inventapart.com/rigidbot.php

Page 113: Arduino la rivoluzione_dell_open_hardware

In Italia l’esperienza di RepRap è stata ripresa e promossa dalla famiglia

Cantini di Firenze, che ha lanciato una linea di stampanti tridimensionali

(derivate dal progetto originale del professor Bowyer) sotto il marchio

KentStrapper 25.

Stampante Kent Strapper, modello Galileo Next

Kentstrapper nasce nel 2011 dall’esperienza del progetto open

source Rep Rap, frutto della collaborazione di più persone che

hanno condiviso in rete le loro idee, e da qui nasce a Firenze il primo centro italiano Rep Rap, un team di ricerca e sviluppo di

questa tecnologia di prototipazione rapida a basso costo.  Man

mano che Kentstrapper cresce, nascono nuove idee come il progetto di stampa 3D applicato alle scuole, per far conoscere e

interagire gli studenti con questo nuovo tipo di tecnologie 26.

113

25 - KentStrapper: www.kentstrapper.com

26 - http://www.kentstrapper.com/chisiamo/

Page 114: Arduino la rivoluzione_dell_open_hardware

114

Page 115: Arduino la rivoluzione_dell_open_hardware

Bibliografia

Libri

Chris Anderson, Makers, The New Industrial Revolution, Random House 2012

Steven Levy, Hackers, Anchor Press, 1984

Massimo Banzi, Getting Started with Arduino, O’Reilly, 2010

Cory Doctorow, Makers, Tor Books, 2009

AA.VV., Make: 25, The Arduino Revolution, O’Reilly, 2011

Articoli

Nick Bilton, An Interactive Exhibit for 30$, New York Times, 16/03/2011

Mr Jalopy, “Owner’s Manifesto”. Make: Volume 4, 2006.

Clive Thompson, Build It, Share It, Profit. Can Open Source Hardware Work?,

Wired, 20/10/2008, http://goo.gl/bEmEk

Massimo Banzi, “Vi spiego chi sono i maker”. Wired.it, 30/11/2011 - http://goo.gl/

9pP0H

Siti Web (rilevati al 15 giugno 2013)

Acrobotic, Smart Citizen - http://acrobotic.com/smart-citizen/

Adafruit - http://www.ladyada.net/

Apache - http://httpd.apache.org/

Arduino Blog - http://blog.arduino.cc/

Arduino Playground - http://playground.arduino.cc/

Arduino Reference - http://arduino.cc/en/Reference/

Arduino Shield List - http://www.arduinoshieldlist.org

Arduino.cc - http://arduino.cc/

Baris Serim http://www.brssrm.com/i-am-printer/

115

Page 116: Arduino la rivoluzione_dell_open_hardware

Bartholomäus Traubeck http://traubeck.com/

Boing Boing - http://www.boingboing.net

Bug Labs - http://www.buglabs.net/

Committee to Protect Journalists - www.cpj.org

Creative Commons - http://creativecommons.org/licenses/by-sa/2.5/it/

DigiKey - http://www.digikey.com/

Flickr - http://www.flickr.com/photos/tags/arduino/

Flob Library: http://s373.net/code/flob/

Freedom Defined - http://freedomdefined.org/

Global Sounds http://www.globalsounds.de/globalsounds.html

Gravitech - http://www.gravitech.us

Indiegogo - http://:www.indiegogo.com

Instructables http://www.instructables.com

Invent-a-part - http://inventapart.com/

Julian Koschwitz http://koschwitz.org/

KentStrapper - www.kentstrapper.com

Kickstarter - http://www.kickstarter.com/

MakerBot Industries - www.makerbot.com

Martin Kaltenbrunner, Tworse Key - https://code.google.com/p/tworsekey/

Max/MSP http://cycling74.com/products/max/

MoMa - http://www.moma.org

Open Source Ecology: http://opensourceecology.org/

Open Source Hardware Association - www.oshwa.org

Raspberry Pi community - http://elinux.org/RPi_Community

Raspberry Pi Foundation - http://www.raspberrypi.org/

RepRap Project - www.reprap.org

STmicroelectronics - http://www.st.com

The Amazing Rolo http://theamazingrolo.net/

Theremino - http://www.theremino.com/

Thingiverse - www.thingiverse.com

Tom Schofield - http://www.tomschofieldart.com/

Udoo - www.Udoo.org

Varvara Guljajeva - http://varvarag.wordpress.com/

Webweavertech - http://www.webweavertech.com/ovidiu/weblog/

116


Recommended