con ARDUINO - Futura Elettronica

Transcript

con ARDUINO - Futura Elettronica
i
d
e
l
a
Euro
ci
e
Sp
9,90
Primi passi
con ARDUINO
Impara a realizzare i tuoi progetti interattivi con
la piattaforma Made in Italy più famosa al mondo.
Aggiornato a IDE 1.0 e board Arduino UNO Rev.3
a cura di
Simone Majocchi
Poste italiane Spa - Spedizione in abbonamento Postale: D.L. 353/2003 (conv. in L. 27/02/2004 n°46) art. 1 - comma 1 - DCB Milano
Supplemento al numero 162 di Elettronica In • Dicembre 2011 / Gennaio 2012
Prefazione
Dedicare dieci ore del proprio tempo all’apprendimento teorico e
alla realizzazione di alcuni semplici progetti con Arduino UNO è un
investimento che ti permetterà di scoprire cosa puoi creare con il tuo
ingegno e la tua inventiva. Scoprirai come un mondo apparentemente
complesso e riservato agli esperti è stato invece semplificato e
trasformato in un prodotto facile da usare, anche senza aver mai messo
mano a un saldatore, e in grado di dare grandi soddisfazioni.
Come tutte le tecnologie nate da un ambiente di ricerca e divulgazione,
Arduino UNO può contare sulle energie, sulla passione, sulla creatività
e sull’intelligenza di una community internazionale già oggi molto
nutrita ed in costante crescita.
Entra a far parte di questo rinascimento tecnologico e scegli quando
passare da spettatore ad attore, prima imparando con noi i rudimenti,
poi attingendo alle vaste librerie di idee e progetti sviluppate dagli altri
utenti ed infine contribuendo in prima persona con le tue realizzazioni
hardware ed il tuo codice.
Troverai gli esempi, i comandi e i collegamenti per la versione più
recente della board Arduino UNO (Rev. 3) e l’ambiente di sviluppo
software Arduino 1.0 rilasciati il 30 novembre 2011.
Primi passi con ARDUINO
di Simone Majocchi
Supplemento al numero 162 di Elettronica In, Dicembre 2011 / Gennaio 2012.
Rivista mensile registrata presso il Tribunale di Milano con il n. 245 il 3-05-1995.
Direttore Responsabile: Arsenio Spadoni. Prezzo di copertina Euro 9,90.
Redazione e Amministrazione: Vispa Edizioni, Via Adige 11, 21013 Gallarate (VA).
Telefono 0331-752668 Fax 0331-778112
Iscrizione al Registro Operatori della Comunicazione n. 3754 del 27/11/2001.
Distribuzione per l’Italia: SO.DI.P. Angelo Patuzzi S.p.A. Via Bettola 18 - 20092 Cinisello Balsamo (MI).
Stampa: ROTO3 Spa - Via Turbigo, 11/b - 20022 Castano Primo (MI)
VISPA
Edizioni
4
© 2011 Vispa Edizioni
Primi passi con Arduino
SOMMARIO
Arduino è per tutti
Le tue prime 10 ore con Arduino UNO
CAPITOLO 1
Perché Arduino UNO fa per te
7
Presentazione del nuovo “fai da te” tecnologico basato sui
microcontrollori.
In questo capitolo ti porteremo a ripercorrere trent’anni di informatica
casalinga per scoprire come la programmazione e le poche decine di
migliaia di byte per il software erano attività da veri innovatori.
Oggi si torna ad innovare scrivendo programmi compatti su piccoli
calcolatori con risorse paragonabili a quelle di trent’anni fa, ma con
una marcia in più: quella della community in Rete che condivide ogni
sviluppo significativo.
CAPITOLO 2
Il poker tecnologico vincente
13
I tuoi assi sono: un computer, Arduino UNO, la tua creatività,
dei dispositivi elettronici.
La tecnologia senza creatività resta sterile, ma la fantasia senza i
giusti strumenti non trova uno sbocco pratico. Arduino UNO con il suo
approccio “alla portata di tutti” completa il quadro. Non dimenticare,
però, che Arduino è possibile per una fortunata combinazione di
elementi: la presenza di almeno un computer in molte case e in ogni
ufficio, l’accesso alla Rete pervasivo, il basso costo dell’hardware e la
globalizzazione della comunità degli utenti e degli sviluppatori.
17
CAPITOLO 3
Dalle idee al programma
Descrivi quello che vuoi fare, passo a passo, e arrivi
al programma.
Non serve una laurea e neppure un diploma per entrare attivamente nel
mondo dei microcontrollori e del software. Il notevole sforzo per creare
un ambiente accessibile a tutti – il vero plus di Arduino – ha rimosso i
tecnicismi e le complessità della programmazione. Dedica un po’ del tuo
tempo per acquisire i pochi elementi di base indispensabili e un metodo
ben impostato sin dall’inizio; sarai in breve tempo in grado di passare
dalle idee ai progetti e da questi ai prototipi funzionanti. Con Arduino
UNO, le idee restano sulla carta per poco tempo, mentre diventano
soluzioni reali in un batter d’occhio.
Primi passi con Arduino
5
Sommario
29
CAPITOLO 4
Pensato per essere
collegato a qualcosa
La scheda Arduino UNO nasce per
essere collegata facilmente a
tantissime cose, talmente tante
che ad oggi nessuno le ha ancora
individuate tutte.
La programmazione fine a sé stessa,
che nasce e muore su uno schermo di un
computer, non offre le soddisfazioni di un
oggetto in grado di interagire con il mondo
esterno in base a un programma. Per
interagire Arduino ha bisogno di sensori e
attuatori specializzati ciascuno in qualche
specifico ambito. Motori per muoversi,
altoparlanti per emettere suoni e luci per
segnalare qualcosa, ma anche fotoresistenze
per misurare la luce, potenziometri per
leggere valori di spostamento e rotazione,
emettitori a ultrasuoni per misurare le
distanze e molto altro.
45
Come va preparata la cucina prima di
cimentarsi con qualsiasi ricetta, anche con
Arduino UNO devi predisporre gli strumenti
prima di poter approntare dei progetti pratici.
Il computer va configurato con il software e
il driver della scheda, mentre l’hardware va
collegato e collaudato nelle sue funzionalità.
È tutto molto semplice, ma non va preso
sotto gamba o saltato perché potrebbe
compromettere la riuscita dei progetti
descritti nei capitoli successivi.
CAPITOLO 7
Basta poco per
migliorare
le cose
Se fossimo sui fornelli sarebbe un uovo
all’occhio di bue, ma in elettronica si
accendono le lucette. Noi accenderemo
3 LED in sequenza e poi ricominceremo
dal primo dopo una pausa.
Aggiungiamo un
potenziometro per
variare la velocità
del conteggio.
Primi passi con Arduino
37
Abbiamo capito con
chi abbiamo a che
fare, ora prepariamo
tutti gli elementi
necessari a lavorare con Arduino UNO.
CAPITOLO 6
La nostra prima
realizzazione pratica:
contiamo fino a tre
Per arrivare a questo primo risultato
scoprirai che esistono LED di vari colori
e che per ciascuno di essi si deve usare
qualche specifico accorgimento, come
una resistenza di valore opportuno.
Collegherai i tuoi primi fili a una breadboard
e incomincerai ad apprezzare la semplicità
e la versatilità dell’ambiente integrato in
cui scriverai le tue prime linee di codice.
Pochi clic del mouse e il programma viene
trasferito sulla scheda Arduino UNO.
6
CAPITOLO 5
É ora di
preparare
la nostra
cucina
tecnologica
53
La bellezza della
sperimentazione e del “prototyping” è
anche nella semplicità con cui un progetto
diventa qualcosa di più ricco e articolato. Un
componente in più, qualche riga di codice
aggiunta qua e là e il risultato finale diventa
più interessante e interattivo. Solo un banale
componente passivo – il potenziometro per prendere confidenza con il mondo della
regolazione manuale e dei partitori di tensione
resistivi. Difficile non farsi venire molte idee
dopo questo secondo progettino.
Sommario
59
CAPITOLO 8
Dopo le luci,
i suoni
CAPITOLO 9
Il mondo è
a colori
Modifichiamo qualche
elemento e cambiamo
radicalmente il risultato:
un generatore di suoni pilotato
dalla luce ambientale.
Usiamo un led RGB e il PWM
per creare una serie di colori
casuali.
Al posto di un potenziometro
metti una fotoresistenza,
al posto dei LED metti un
buzzer e il divertimento è garantito. Siamo
certi che chi ti sta attorno non resisterà alla
tentazione di allungare una mano per far ombra
sulla fotoresistenza e sentire Arduino UNO che
reagisce con un concertino di musica elettronica
– sicuramente d’avanguardia 30 anni fa. Per fare
questo non c’è ancora una App, mentre
Arduino UNO ci riesce benissimo.
79
Con questo progetto, scoprirai
come ci sia una tecnologia tutto
sommato semplice per ottenere
da tre led colorati ben 16 milioni
di sfumature. Dalla teoria alla
pratica, i LED RGB non avranno
più segreti per te e potrai anche
scoprire un modo semplice
per creare delle sfumature più
accattivanti e vivide.
Un classico progetto che con
pochissimo sforzo offre grandi
soddisfazioni.
CAPITOLO 10
Tutti i colori
dell’arcobaleno
CAPITOLO 11
Verso la
robotica
Usiamo un potenziometro
per fare tutti i colori
dell’arcobaleno.
Sempre con il PWM e un
potenziometro possiamo
realizzare un embrione di arto
meccanico grazie a un
servomotore.
Anche in questo caso, parti dal
progetto precedente, aggiungi
un componente e hai qualcosa
di radicalmente diverso. Scopri
come basti un po’ di spirito
d’osservazione per trasformare un potenziale
problema in un’opportunità per rendere il progetto
migliore. Il risultato non avrà nulla da invidiare
ai prodotti commerciali che costano da qualche
decina di euro fino a un centinaio e oltre. E con
uno shield potresti anche pilotare una strip RGB
da qualche metro di lunghezza.
69
87
Non poteva mancare un primo
passo verso il mondo dei robot,
ma è più un passo teorico che
pratico: sarebbero necessarie
parti meccaniche impegnative
per poter simulare anche solo
l’articolazione di un gomito.
Accontentiamoci di capire come
funzionano le cose e di provare a
mettere insieme un sistema che
ricorda quelli di telepresenza,
dove un movimento viene replicato
da un motore.
Primi passi con Arduino
7
Perché Arduino UNO fa per te
8
Primi passi con Arduino
Capitolo 1
Perché Arduino UNO
fa per te
Presentazione del nuovo
“fai da te” tecnologico basato
sui microcontrollori – una storia
che parte da lontano.
Saldatore, stagno
ti più attivi e ben presto avere un
e componenti: roba vecchia
computer non era più sinonimo di
Oltre 30 anni fa erano in molti a
“programmo le mie applicazioni”, ma
dilettarsi con il saldatore, i circuiti
cerco e utilizzo dei software scritti
stampati e i componenti discreti per
da altri. I più bravi scrivevano il sofcreare amplificatori, luci psichedelitware e i pigri ne usufruivano. Il “fai
che, microspie e molti altri dispositida te” diventava sempre più d’elite,
vi elettronici.
mentre il “faccio anch’io” - con il
La cultura del “fai da te” elettronico
Erano gli anni ‘80 software fatto da altri – era sempre
era diffusa e con una robusta base quando programmare più la norma.
commerciale. Negli anni ’80 arrivain Basic con solo Programmare su un personal comrono gli home computer e l’atten16K di memoria puter non era più facile come sugli
zione migrò dall’elettronica alla proera normale. home computer: interfacce grafiche
grammazione, con tantissimi utenti
48K erano un lusso. raffinate, esigenze estetiche sem
che per passione scrivevano righe e
righe di software per le applicazioni
più disparate. Ai tempi, fra l’altro, il
programmare era sia un hobby, sia
un inizio di professione: i programmi disponibili erano ancora pochi e il
“fai da te” in Basic era spesso l’unico modo per rispondere a un’esigenza specifica.
Programmare
non è più un hobby
Parallelamente arrivarono i Personal Computer nelle aziende e anche
in quel caso si doveva spesso far
sviluppare il software per le proprie
applicazioni.
In ogni caso, il computer e l’home
computer erano i nuovi catalizzatori delle energie creative degli utenPrimi passi con Arduino
9
Perché Arduino UNO fa per te
Il team di Arduino
Il gruppo stabile di sviluppatori del team di Arduino è composto
da Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis e Nicholas Zambetti.
pre più spinte e anche sistemi di sviluppo sempre più corposi.
Il PC cresce,
ma il microprocessore
torna piccolo
Fuori dai radar degli hobbysti stava, però, avanzando una nuova area
tecnologica: quella dei microcontrollori destinati alla vita “solitaria”
all’interno di qualche dispositivo;
nascevano i cosiddetti “embedded”
(dall’inglese “embed” che significa
“integrare all’interno”).
Con grande rapidità questi piccoli calcolatori autosufficienti hanno
invaso le nicchie più disparate, fornendo di un tocco d’intelligenza una
quantità enorme di dispositivi della
vita quotidiana: dallo stereo di casa
alla centralina della tua automobile,
dal forno a microonde al decoder Digitale Terrestre, dalla lavatrice alle
lampade cambia colore a LED.
Aziende come Microchip, Atmel,
ARM ed ST diventano i nuovi attori di questo millennio nel settore
dell’elettronica, creando realtà industriali alternative e complementari
10
Primi passi con Arduino
ai colossi dei microprocessori tradizionali come AMD e INTEL.
Oggi aziende come Microchip offrono intere famiglie di microcontrollori
di ogni dimensione e potenza, con
funzionalità specifiche (multimedia,
sicurezza, comunicazione, ecc.) e
generiche (ingressi e uscite analogici e digitali) tali da soddisfare una
gamma molto vasta di applicazioni.
Pochi dollari in più e un dispositivo
può diventare “intelligente”.
Torna il fai da te elettronico,
ma intelligente e in kit
Queste caratteristiche e potenzialità non sono sfuggite agli hobbysti
“duri e puri” del fai da te elettronico
e già nei primi anni 2000 si è diffusa
la cultura della programmazione di
questi dispositivi per creare progetti più o meno sofisticati. In pratica,
quello che una volta era un programma in Basic su un home computer,
diventava un programma per un microcontrollore al quale con stagno,
fili e componenti si aggiungevano le
parti necessarie al funzionamento.
Sensori di luce, temperatura e movimento “intelligenti” per la domotica,
giochi elettronici, centraline di controllo e molto altro prendevano vita
grazie a schemi e programmi sviluppati da chi aveva già preso questo
nuovo toro tecnologico per le corna,
piegandolo alla dimensione del fai
da te. Purtroppo, i chip richiedevano
la programmazione su appositi dispositivi hardware, da interfacciare
a un computer su cui era installato il
sistema di sviluppo – spesso complicato quanto quelli per scrivere software su PC – riportando il tutto ad
una elite. Il linguaggio di programmazione torna ad essere prima il
“linguaggio macchina” - o assembler con le istruzioni del processore da
scrivere secondo sintassi e strutture
Perché Arduino UNO fa per te
Le schede Arduino ufficiali
Negli anni sono state prodotte una serie di schede Arduino con caratteristiche specifiche; alcune sono ancora
disponibili, altre sono ormai fuori produzione. Ecco l’assortimento attuale con le caratteristiche più importanti.
Tabella 1
Arduino
Processore
Flash
EEPROM
SRAM
I/O
... con
ingressi
digitali
PWM
analogici
Chip USB
Dimensioni
KB
KB
KB
n. pin
n. pin
n. pin
tipo
mm
Uno
ATmega328P
32
1
2
14
6
6
ATmega8U2
68,6 × 53,3
Diecimila
ATmega168
16
0.5
1
14
6
6
FTDI
68,6 × 53,3
Due (annunciata)
ATMEL SAM3U
256
0
50
54
4
16
-
-
Duemilanove
ATmega168/328P
16/32
0.5/1
1/2
14
6
6
FTDI
68,6 × 53,3
Fio
ATmega328P
32
1
2
14
6
8
Nessuno
40,6 × 27,9
Leonardo
Atmega32u4
32
1
2
14
6
12
Atmega32u4
68,6 × 53,3
LilyPad
ATmega168V
16
0.5
1
14
6
6
Nessuno
Ø 50
or ATmega328V
Mega
ATmega1280
128
4
8
54
14
16
FTDI
101,6 × 53,3
Mega2560
ATmega2560
256
4
8
54
14
16
ATmega8U2
101,6 × 53,3
Nano
ATmega168
16/32
0.5/1
1/2
14
6
8
FTDI
43 × 18
or ATmega328
Arduino UNO
Arduino Diecimila
Arduino Mega1280
Arduino Mega2560
Arduino Leonardo
Arduino Due
Arduino Fio
Arduino Duemilanove
LilyPad
Arduino Nano
Primi passi con Arduino
11
Perché Arduino UNO fa per te
per nulla amichevoli e intuitive. Per
questi motivi, la creatività rimane
limitata ai progetti sviluppati dalle
riviste specializzate che ritrovano
lettori proprio grazie ai microcontrollori e alle loro potenzialità.
“Deve diventare facile e
alla portata di chi non
è un esperto”
I numeri crescono sia a livello industriale, sia a livello hobbystico e
l’interesse verso questi microcontrollori si sviluppa negli ambiti più
diversi, inclusi quelli della ricerca e
delle università. A Ivrea, un gruppo
di ricercatori con la vocazione da
“tinkerers” (in italiano “smanettoni”
nell’accezione più positiva del termine) dedica creatività, visione e
capacità alla creazione di una “soluzione” per sviluppare e lavorare
facilmente con un microcontrollore,
cercando di eliminare tutte le criticità che avevano impedito a questi
dispositivi di entrare nel mondo del
fai da te “povero” di conoscenze
specifiche e tecnologiche, ma “ricco” di inventiva e creatività.
Nasce l’idea di Arduino: un microcontrollore con tutti i vari collega12
Primi passi con Arduino
Lo storico
Commodore 64
doveva il suo nome
alla disponibilità di
64Kbyte di memoria
per i programmi.
menti esplicitati su una basetta
economica e di pubblico dominio,
da interfacciare a un computer
(Mac, Windows, Linux) per la programmazione tramite un normalissimo cavetto USB e soprattutto
programmabile in un linguaggio
adatto anche ai principianti grazie
all’ambiente di sviluppo integrato
scritto in Java. Arduino ambiva a
diventare uno strumento alla portata di chiunque per la realizzazione di
prototipi e progetti su piccola scala in cui la flessibilità e la potenza
di un microcontrollore permettevano di raggiungere l’obiettivo senza
spendere una fortuna.
Arduino è finalmente “UNO”
A sei anni di distanza, il team che
ha ideato Arduino può affermare di
aver raggiunto l’obiettivo grazie alle
scelte dell’open source e dei Creative Commons (trovi la spiegazione
approfondita di queste “filosofie
tecnologiche” anche sul sito di Arduino stesso – arduino.cc) che hanno attirato l’attenzione di un significativo numero di utenti, sviluppatori,
hobbisti, artisti e gente comune.
Senza segreti e brevetti, Arduino
ha permesso a numerose aziende di
scommettere su di esso sviluppando le schede stesse, espansioni (gli
shield) e altre periferiche dedicate.
Forse si è perso un po’ dello spirito
del tinkerer che prende un oggetto
comune e lo modifica aggiungendo dei fili e un Arduino, come un
moderno McGyver, ma abbiamo
guadagnato in maturità della soluzione, che solo ora abbandona la
precarietà della versione “beta” e
approda a un design di hardware e
software stabili e definitivi – e per
questo chiamato UNO. Questo non
significa affatto che lo sviluppo si
interrompa con questa versione, ma
Perché Arduino UNO fa per te
Saldatore, stagno,
componenti e Arduino UNO:
il nuovo trend ”cool”
Per usare Arduino ti basta Arduino UNO assieme al tuo computer
e quindi puoi essere indipendente:
il tuo progetto non dipende dalla
voglia di qualcun altro per realizzare una scheda e scrivere del codice assembler che ti viene venduto
preprogrammato su un microcontrollore che devi acquistare e usare
così com’è. Puoi però cercare, se
c’è, qualcuno che ha già risolto dei
problemi simili, rendendo il tuo progetto l’evoluzione di qualcosa di già
sperimentato, documentato e realizzato.
Dieci ore per diventare
“trendy”
Come resistere a questo rinascimento del fai da te tecnologico?
Non c’è progetto che grazie ad Ar-
Con pochi
componenti
elettronici e una
basetta breadboard
potrai realizzare
alcuni semplici
progetti.
duino non possa diventare possibile
o acquistare una marcia in più. L’importante è impadronirsi dei concetti
di base e superare quei piccoli scogli iniziali che anche Arduino – pur
nella sua semplicità – ti porterà ad
affrontare in queste prime dieci ore.
Una volta che avrai superato questa
fase, sarai tu a voler andare avanti.
Ti abbiamo preparato l’aperitivo e
speriamo di farti venire una gran
fame di informazioni. Il Web potrà
offrirti molti piatti gustosi, anche se
problemi linguistici e gusti diversi,
assieme alla intrinseca complessità/confusione della Rete potrebbero disorientarti. Non ti demoralizzare e partecipa alle community,
ricordando che tutti gli “espertoni”
che incontrerai hanno passato un
periodo da neofiti come te e per
questo sapranno capire i tuoi limiti
e apprezzare la tua iniziativa. Ricorda solo che sui forum, prima di chiedere, è buona educazione cercare e
leggere quanto è stato già detto e
scritto.
1
sancisce il passaggio alla fase più
matura e stabile del prodotto.
Primi passi con Arduino
13
... to be continued ...
Disponibile in tutte
le edicole!
Solo euro 9,90
“Primi passi con Arduino” può essere acquistato anche
on-line su www.elettronicain.it o www.futurashop.it