Date post: | 16-Jan-2017 |
Category: |
Documents |
Upload: | alessandro-turco |
View: | 501 times |
Download: | 1 times |
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
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
“If you can’t open it, you don’t own it.”Mr. Jalopy
A Daniela
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
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)
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
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
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
12
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)
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
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/
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
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.
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
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
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
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/
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
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
24
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
46
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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()
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
62
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
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
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
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/
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
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
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
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
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
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/
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/
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/
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/
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
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
78
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
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.
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
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
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/
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
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
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
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
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.
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
90
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
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
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
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
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/
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/
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
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
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
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
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
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
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
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/
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
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
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
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/
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
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
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
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
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/
114
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
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