Dopo aver introdotto i principali argomenti di cui ci occuperemo, la programmazione e la scrittura di codice, facciamo la conoscenza di Arduino, la piattaforma che useremo per sperimentare nella pratica i nostri primi programmi!
Che cosa è un dispositivo interattivo?
E’ un dispositivo che dispone di elementi capaci di captare gli impulsi provenienti dal mondo esterno, detti sensori. In base agli impulsi esterni, il dispositivo reagisce assumendo un particolare comportamento, che può essere di tipo meccanico, elettrico o software. Gli elementi tramite cui interviene sul mondo esterno sono detti attuatori.
Un semplice esempio di oggetto interattivo è la lampada da tavolo: essa è in grado di captare impulsi provenienti dall’esterno, come la pressione o il rilascio dell’interruttore (sensore). Al suo interno, una serie di parti meccaniche ed elettriche (comportamento) si attivano in base allo stato dell’interruttore, e le consentono di dare luce all’ambiente attraverso una lapadina (attuatore).
Se l’interaction design è la disciplina che studia la progettazione delle esperienze interattive, il physical computing (o physical interaction design) è un suo specifico campo di applicazione su sistemi fisici; è proprio qui, al confine tra software e hardware, che entra in gioco Arduino!
Il progetto Arduino è nato in Italia attorno all’anno 2005. ‘Arduino’ è il nome con cui si identificano particolari schede elettroniche e l’ambiente di sviluppo con cui possono essere programmate.
Arduino può percepire l’ambiente circostante interfacciandosi con una grande varietà di sensori e può interagire con esso controllando luci, motori e tantissimi altri attuatori. Arduino e’ stato pensato per artisti, designers, hobbysti e chiunque sia interessato a creare oggetti interattivi.
A ben vedere, ogni volta che usiamo il nostro computer stiamo utilizzando un oggetto interattivo: il computer riceve input da speciali sensori (il mouse e la tastiera) e reagisce producendo output sottoforma di segnali video o audio tramite speciali attuatori quali il display e gli speakers.
Arduino può essere usato in abbinamento con il nostro computer, espandendone così le possibilità di interazione con il mondo esterno, ad esempio:
Le schede Arduino possono anche essere usate usate in modo indipendente, per realizzare oggetti interattivi completamente autosufficienti!
Interazione tuttavia non significa soltanto raccogliere stimoli, ma soprattutto elaborarli secondo una serie di regole. Queste regole definiscono il comportamento dell’oggetto interattivo.
Grazie ad Arduino il comportamento può essere cambiato con grande facilità tutte le volte che vogliamo attraverso la programmazione: Arduino infatti è anche il nome del linguaggio di programmazione che impareremo a conoscere già dal prossimo capitolo.
In altre parole, questo significa che per creare i nostri primi prototipi non c’è bisogno d’essere grandi esperti di elettrotecnica o elettronica, basta conoscere il linguaggio di programmazione e qualche semplice rudimento tecnico; ed il gioco è fatto!
Di non poca importanza è il fatto che tutti i prodotti Arduino sono distribuiti come hardware e software open-source (a codice aperto), il che permette a chiunque di produrre e distribuire le schede Arduino oppure di realizzarne altre derivate senza alcuna limitazione.
Tutto il software con cui Arduino funziona, IDE e librerie, è distribuito con una licenza di tipo permissivo che rispetta i dettami del movimento del software libero e garantisce trasparenza e libertà a tutti gli utenti.
Se sei interessato ad approfondiere questi argomenti, secondo me davvero molto importanti, ti invito a dare uno sguardo all’apposita appendice.
Per avvicinarsi al mondo Arduino può essere una buona idea visitare il sito ufficiale per raccogliere informazioni aggiuntive, dare uno sguardo ai numerosi progetti realizzati dalla comunità o semplicemente esaminare i diversi modelli di schede disponibili.
Esistono infatti di diversi tipi di scheda Arduino, ognuna ottimizzata per specifiche aree di applicazione. A seconda delle particolari esigenze una può risultare più adatta di altre, tuttavia mi sento di consigliare la scheda UNO che incorpora tutte le caratteristiche che esamineremo assieme nel corso del libro, ottima per iniziare!
Navigando sul sito ufficiale di Arduino potreste incappare anche nel marchio Genuino. All'inizio la cosa potrebbe confondere ma i due nomi Arduino e Genuino, rappresentano in sostanza la stessa cosa: una scheda Arduino UNO ad esempio è del tutto identica ad una Genuino UNO e così vale per tutti gli altri modelli di scheda.
I due diversi marchi sono stati introdotti qualche tempo fa a causa di alcune divergenze interne tra i membri fondatori del progetto Arduino. Ad oggi le divergenze sembrerebbe si siano appianate ma vedo che i 2 nomi sono ancore presenti in qualche pagina del sito web...
Potrebbe essere una buona idea valutare l’acquisto di uno starter kit, che oltre alla scheda UNO, contiene anche una serie di altre componenti di base, molto utili per fare i primi esperimenti.
In alternativa, tutto il materiale che utilizzeremo potrà essere facilmente acquistato di volta in volta in qualsiasi negozio di componenti per l’elettronica oppure anche on-line (vedi l’appendice per qualche riferimento in più).
Prima di passare al linguaggio di programmazione Arduino, diamo uno sguardo d’insieme alla scheda e cerchiamo di capire di quali parti si compone.
Ecco la scheda Arduino UNO!
ed una sua immagine stilizzata che useremo come riferimento d’ora in avanti.
L’immagine potrebbe non rappresentare la scheda in modo del tutto esatto, il progetto Arduino è in continuo aggiornamento e così anche le schede subiscono delle revisioni.
Il succo tuttavia è sempre lo stesso: tutte le schede Arduino sono come dei piccoli computer in miniatura e come ogni computer possiedono:
Passiamo ora all’esplorazione della scheda. Senza entrare troppo nei dettagli ecco di seguito le principali componenti.
Un po’ come un computer, anche la scheda Arduino UNO possiede un’unità centrale di controllo: si tratta del microchip ATmega328P appartenente alla famiglia dei microcontroller AVR prodotti dalla ditta Atmel.
Questo microcontroller è di fatto il cuore della scheda Arduino UNO: ad esso sono collegati tutti gli input e gli output ed è sempre qui che il nostro programma viene memorizzato e messo in esecuzione.
Come un normale computer dispone di un hard disk e di altri tipi di dispositivi per memorizzare dati e programmi, anche il microcontrollore di Arduino dispone di una memoria interna che si può usare in modo del tutto identico.
Il programma eseguibile presente nella memoria del microcontrollore può essere sostituito con un nuovo programma tutte le volte che vogliamo, sovrascrivendo il contenuto della memoria. E’ questa un’operazione con cui prenderemo presto dimestichezza e che eseguiremo più e più volte connettendo la scheda Arduino al computer tramite il cavo USB ed effettuando il cosìdetto upload.
Per funzionare la scheda Arduino ha bisogno d’essere alimentata, ecco alcuni modo per farlo:
L’adattatore consigliato è un adattatore da 9 Volts con polarità positiva al centro (per la polarità controlla che l’adattatore o la sua spina possieda una indicazione simile a quella mostrata qui di seguito).
Basta connetterlo alla apposita presa presente sulla scheda ed ecco fatto!
La scheda Arduino UNO possiede una serie di pin che permettono al microcontrollore di acquisire o inviare informazioni dal/al mondo esterno sottoforma di segnali elettrici.
Senza entrare troppo nel dettaglio per ora (avremo modo di approfondire in seguito), ci basta sapere che abbiamo a disposizione:
La scheda Arduino UNO è dotata di alcuni LED che, accendendosi e spegnedosi, possono dare un’indicazione immediata sul suo funzionamento.
Arduino è anche il nome del linguaggio con cui si scrivono i programmi per la scheda. Come ormai sappiamo, un programma altro non è se non un semplice documento di testo contenente tutte le istruzioni necessarie per la risoluzione di un particolare problema.
Se volessimo scrivere una mail, un messaggio o un generico documento di testo, sapremmo subito in che modo agire e che strumento utilizzare (basti pensare alla suite per ufficio LibreOffice cui abbiamo accennato nel capitolo precedente).
Allo stesso modo esistono strumenti appositamente pensati per scrivere programmi: questi software prendono il nome di IDE, una sigla che sta per Integrated Development Enviroment, o ambienti di sviluppo integrato.
Questi IDE sono fondamentali nella cosiddetta fase di sviluppo dei propri programmi. Un IDE contiene al suo interno tutta una serie di funzionalità che rendono semplice la scrittura di codice, la correzione di eventuali errori e la compilazione.
Anche Arduino ha il proprio IDE e di certo la prima cosa da fare per cominciare a scrivere i nostri programmi è quella di scaricarlo e installarlo sul proprio computer.
Per scaricare ed installare l’IDE di Arduino basta visitare il sito ufficiale e seguire le istruzioni riportate nella sezione Software/Download the Arduino IDE: essendo un software multipiattaforma, l’IDE è disponibile per diversi sistemi operativi ed architetture hardware.
Per avere un ulteriore aiuto sui diversi passaggi necessari per lo scaricamento e l’installazione, consiglio di leggere le informazioni contenute nella pagina Learning/Getting Started.
Una volta installato, alla prima apertura l’IDE dovrebbe apparire così:
Come si vede, la grande porzione centrale di colore bianco ci suggerisce che l’IDE in fondo non differisce molto da un comune editor di testo.
Ogni volta che l’IDE viene aperto, viene creato in automatico un nuovo foglio di testo pronto per accettare le istruzioni di un nuovo programma; alcune di queste istruzioni tra l’altro, come si può vedere, vengono già inserite in modo automatico.
A questo nuovo programma l’IDE assegna un nome che si compone del termine sketch e di una sigla associata alla data. Oggi, che scrivo queste parole, è il 21 Gennaio ed ecco spiegata l’intestazione della finestra e del tab.
Un programma scritto in Arduino prende di default il nome di sketch, rifacendosi al termine usato per il medesimo scopo dal linguaggio Processing, un linguaggio di programmazione usato per realizzare disegni e grafiche interattive.
Prima di proseguire è bene impostare la cartella dove salvare i nostri programmi. Questa cartella è chiamata sketchbook e la sua posizione all’interno del nostro file system può essere modificata liberamente: basta fare click sulla voce Preferences dal menù File e cambiare l’apposito campo Sketchbook location.
Come si vede dall’immagine, il mio sketchbook si trova all’interno della cartella /Arduino
, nella home del mio utente.
La cartella sketchbook è molto importante perchè è la posizione in cui salveremo tutti i nostri progetti d’ora in avanti; è in questa cartella inoltre che l’IDE salverà tutti i files associati alle nuove librerie installate, come vedremo meglio in seguito.
Infine, per salvare i propri programmi, è sufficiente fare click sulle voci Save o Save As dal menù a tendina File ed eventualmente assegnare loro il nome che preferiamo. Ogni volta che salviamo un nuovo programma, viene generato un nuovo file con estensione .ino
e viene posizionato all’interno di una cartella che prende il nome del file stesso all’interno dello sketchbook.
Quando diamo un nome ad un nuovo programma dobbiamo assicurarci che non contenga spazi, trattini (l’underscore può essere usato) o che non inizi con un numero!
L’interfaccia dell’IDE mostra anche altri interessanti elementi. Nella parte alta della finestra infatti si possono notare questi 6 pulsanti:
Per ora lasciamo da parte i primi 2 e l’ultimo, torneremo ad occuparcene in seguito. Concentriamoci piuttosto sugli altri 3:
Un altro elemento interessante è la sezione di colore nero che si trova nella parte bassa della finestra: si tratta della console.
Se i nostri programmi conterranno qualche errore oppure se ci saranno difficoltà nel caricarli sulla scheda, è qui che l’IDE di Arduino ce lo comunicherà.
Abbiamo dato uno sguardo alla scheda Arduino dal punto di vista hardware, osservandola nelle sue diverse parti e abbiamo poi esaminato l’IDE, la parte software della piattaforma che ci accompagnerà lungo tutto il nostro percorso.
Nel prossimo capitolo cominceremo a scrivere le nostre prime righe di codice e vedremo come caricare i programmi sulla scheda. Approfondiremo alcuni altri aspetti dell’IDE e capiremo come decifrare i messaggi d’errore mostrati a console.