simon monk attuatori - edizioni lswr · 2017. 6. 1. · guida alla programmazione ... progetto:...

19
Attuatori per maker Movimento, luce e suono con Arduino e Raspberry Pi Simon Monk

Upload: others

Post on 08-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

Attuatoriper maker

Movimento, luce e suono con Arduino e Raspberry Pi

Simon Monk

Page 2: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica
Page 3: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

Simon Monk

Attuatoriper maker

Page 4: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

Titolo originale: Make: Action | Movement, Light, and Sound with Arduino and Raspberry PiISBN: 978-1-4571-8779-7by Simon MonkCopyright © 2016 Simon Monk. All rights reserved.Published by Maker Media, Inc., 1160 Battery Street East, Suite 125, San Francisco, CA 94111.Cover Designer: Karen MontgomeryIllustrator: Rebecca DemarestInterior Designer: David Futato

Edizione italiana: Attuatori per maker | Movimento, luce e suono con Arduino e Raspberry PiLogo design: Giampiero CarellaTraduzione: Andrea Maietta

Collana:

Publisher: Marco AleottiLocalizzazione italiana: Roberta Venturieri

© 2017 Edizioni Lswr* – Tutti i diritti riservati

ISBN: 978-88-6895-466-6

I diritti di traduzione, di memorizzazione elettronica, di riproduzione e adattamento totale o parziale con qualsiasi mezzo (com-presi i microfilm e le copie fotostatiche), sono riservati per tutti i Paesi. Le fotocopie per uso personale del lettore possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto dall’art. 68, commi 4 e 5, della legge 22 aprile 1941 n. 633.Le fotocopie effettuate per finalità di carattere professionale, economico o commerciale o comunque per uso diverso da quello personale possono essere effettuate a seguito di specifica autorizzazione rilasciata da CLEARedi, Centro Licenze e Autorizzazioni per le Riproduzioni Editoriali, Corso di Porta Romana 108, 20122 Milano, e-mail [email protected] e sito web www.clearedi.org.La presente pubblicazione contiene le opinioni dell’autore e ha lo scopo di fornire informazioni precise e accurate. L’elaborazione dei testi, anche se curata con scrupolosa attenzione, non può comportare specifiche responsabilità in capo all’autore e/o all’edi-tore per eventuali errori o inesattezze.L’Editore ha compiuto ogni sforzo per ottenere e citare le fonti esatte delle illustrazioni. Qualora in qualche caso non fosse riuscito a reperire gli aventi diritto è a disposizione per rimediare a eventuali involontarie omissioni o errori nei riferimenti citati.Tutti i marchi registrati citati appartengono ai legittimi proprietari.All rights reserved. This translation published under license.

Via G. Spadolini, 720141 Milano (MI)Tel. 02 881841www.edizionilswr.it

Printed in Italy

Finito di stampare nel mese di giugno 2017 presso “LegoDigit” Srl., Lavis (TN) - Italy

(*) Edizioni Lswr è un marchio di La Tribuna Srl. La Tribuna Srl fa parte di .

Page 5: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

5

1. INTRODUZIONE ............................................................................................... 9Arduino e il Pi ............................................................................................................................... 9

2. ARDUINO ..........................................................................................................15Cos’è Arduino?............................................................................................................................15Installare l’IDE Arduino .............................................................................................................17Caricare uno sketch .................................................................................................................. 18Il codice del libro ....................................................................................................................... 20Guida alla programmazione .................................................................................................. 20

3. RASPBERRY PI ..................................................................................................31Che cos’è un Raspberry Pi? .....................................................................................................31Preparare il vostro Raspberry Pi ............................................................................................32La riga di comando in Linux ....................................................................................................38Il codice del libro ....................................................................................................................... 40Guida alla programmazione .................................................................................................. 40

4. AVVIO RAPIDO...............................................................................................47Breadboard ..................................................................................................................................47Scaricare il codice.......................................................................................................................51Esperimento: controllare un LED ............................................................................................51Esperimento: controllare un motore .....................................................................................57

5. LE BASI DELL’ELETTRONICA ......................................................................63Corrente, tensione e resistenza .............................................................................................63Potenza ....................................................................................................................................... 66Componenti comuni .................................................................................................................67Ingressi e uscite .........................................................................................................................76

Sommario

Page 6: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

6

6. I LED ...................................................................................................................79LED normali ................................................................................................................................79Limitare la corrente .................................................................................................................. 80Progetto: semaforo ...................................................................................................................82PWM e LED ............................................................................................................................... 86LED RGB ...................................................................................................................................... 88Esperimento: mescolare i colori ........................................................................................... 89

7. MOTORI, POMPE E ATTUATORI................................................................97Controllare la velocità (PWM) ............................................................................................. 99Esperimento: controllare la velocità di un motore DC .................................................... 99Controllare un motore DC con un relè ...............................................................................104Esperimento: controllare un motore DC con un modulo relè ......................................108Scegliere un motore .................................................................................................................110Pompe ......................................................................................................................................... 112Progetto: irrigatore di piante casalingo con Arduino ......................................................114Attuatori lineari ........................................................................................................................120Solenoidi .................................................................................................................................... 122

8. CONTROLLO AVANZATO DEI MOTORI ................................................ 125Ponti H ........................................................................................................................................ 126Ponte H su un chip .................................................................................................................. 127Esperimento: controllare la direzione e la velocità di un motore ................................ 129Altri ponti H su circuiti integrati ...........................................................................................141Moduli ponte H ........................................................................................................................145Progetto: compattatore di lattine con Arduino ................................................................ 147

9. SERVOMOTORI ............................................................................................. 153Servomotori .............................................................................................................................. 153Esperimento: controllare la posizione di un servomotore ............................................ 155Progetto: Pepe, il burattino ballerino con Raspberry Pi ................................................. 163

10. MOTORI PASSO-PASSO ............................................................................. 175Motori passo-passo ................................................................................................................ 176Motori passo-passo bipolari ................................................................................................ 176Esperimento: controllare un motore passo-passo bipolare.......................................... 179Motori passo-passo unipolari ..............................................................................................190Schiera di Darlington ...............................................................................................................191Esperimento: controllare un motore passo-passo unipolare ....................................... 192Micropassi................................................................................................................................. 195Esperimento: micropassi con Raspberry Pi ......................................................................196Motori DC Brushless .............................................................................................................200

11. RISCALDAMENTO E RAFFREDDAMENTO .......................................... 203Riscaldatori resistivi ...............................................................................................................203Esperimento: riscaldamento di un resistore ....................................................................203

Sommario

Page 7: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

7

Sommario

Progetto: rompipalloncino casuale con Arduino ............................................................205Elementi riscaldanti ...............................................................................................................209Potenza ed energia ..................................................................................................................210Dalla potenza all’aumento di temperatura .......................................................................210Celle di Peltier ...........................................................................................................................211Progetto: raffreddabevande ..................................................................................................214

12. SISTEMI DI CONTROLLO ........................................................................... 219Il semplice termostato ...........................................................................................................219Esperimento: quanto è buono il controllo termostatico acceso/spento? ................220Isteresi ....................................................................................................................................... 229Controllo PID ...........................................................................................................................230Esperimento: controllo termostatico PID ......................................................................... 234Progetto: un raffreddabevande con controllo termostatico ........................................ 247

13. CONTROLLARE LA CORRENTE ALTERNATA .......................................257La corrente alternata in teoria ............................................................................................. 258La corrente alternata in pratica ........................................................................................... 262Progetto: interruttore a tempo con Raspberry Pi ........................................................... 265

14. VISUALIZZAZIONE .................................................................................... 269Strisce di LED .......................................................................................................................... 269Esperimento: controllare una striscia di LED RGB ......................................................... 270Display OLED I2C ................................................................................................................... 276Esperimento: usare un modulo display I2C con Raspberry Pi .................................... 277Progetto: aggiungere un display al progetto raffreddabevande .................................280

15. SUONO ........................................................................................................... 285Esperimento: altoparlanti non amplificati e Arduino .................................................... 285Amplificatori ............................................................................................................................289Esperimento: riprodurre un file audio su Arduino ..........................................................289Collegare Arduino a un amplificatore ............................................................................... 292Riprodurre file audio su Raspberry Pi ................................................................................ 295Progetto: Pepe il burattino parla .........................................................................................296

16. INTERNET OF THINGS ...............................................................................301Raspberry Pi e Bottle ............................................................................................................. 302Progetto: interruttore web con Raspberry Pi ................................................................... 303Arduino e le reti ......................................................................................................................305Progetto: burattino con notifiche da Twitter ...................................................................306

APPENDICE A - COMPONENTI ........................................................................ 313

APPENDICE B - PINOUT GPIO RASPBERRY PI ............................................. 319

INDICE ANALITICO ............................................................................................. 321

Page 8: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica
Page 9: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

9

Introduzione

1

Entrare nel mondo dell’elettronica con Arduino e Raspberry Pi è ancora più facile, an-che per un semplice hobbista. Forse volete realizzare un sistema di domotica fai fa te per controllare luci e riscaldamento attraverso la vostra rete WiFi, o semplicemente controllare dei motori.Questo libro vi mostrerà come usare le popolari piattaforme Raspberry Pi e Arduino in modo che possano creare e controllare movimento, luci e suono.

Arduino e il PiSebbene sia Arduino sia Raspberry Pi siano piccole schede elettroniche dalle dimen-sioni di una carta di credito, sono in effetti due dispositivi piuttosto differenti. Arduino è una scheda microcontrollore molto semplice su cui non gira un sistema operativo di alcun tipo, mentre Raspberry Pi è un piccolo computer su cui gira Linux che è anche in grado di interfacciarsi con dispositivi elettronici esterni.

Raspberry PiSe non avete esperienze nel campo dell’elettronica ma vi trovate a vostro agio nell’uso dei computer, il Raspberry Pi vi sembrerà un dispositivo più familiare. Il Raspberry Pi (Figura 1.1) in realtà è una versione molto piccola di un normale computer su cui gira Linux. Ha delle porte USB a cui collegare mouse e tastiera, così come un output video HDMI per collegarsi a un monitor o a un televisore e a un output audio.Il Raspberry Pi ha una porta Ethernet per collegarsi alla vostra rete e accetta anche adat-tatori WiFi USB. Il Raspberry Pi viene alimentato attraverso un connettore microUSB.Invece di un normale hard disk, per salvare i dati si usa una scheda microSD. Su questa scheda si trovano sia il sistema operativo sia tutti i vostri documenti e programmi.Il Raspberry Pi è stato creato nel Regno Unito, principalmente per essere utilizzato come computer a basso costo per insegnare le basi del computer, in particolare la pro-grammazione Python, agli scolari. Infatti si dice che il nome Pi derivi dalla Py di Python.

Page 10: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

10

Attuatori per maker

Figura 1.1 - Un Raspberry Pi 2

Ci sono alcune cose che differenziano il Raspberry Pi da un normale computer da scri-vania o da un portatile su cui gira Linux:

• costa poco più di 30 euro (è anche disponibile un modello semplificato più eco-nomico di Raspberry Pi chiamato A+, e il modello Zero costa ancora meno);

• usa meno di 5 W di potenza;• il Raspberry Pi ha due file di pin di input e output (GPIO, General-Purpose Input/

Output) che vi permettono di collegarci direttamente dei componenti elettronici (i pin si possono vedere nella parte superiore a sinistra della Figura 1.1). Da que-sti pin potete controllare LED, display, motori, e tutti i tipi diversi di output con cui lavorerete più avanti in questo libro.

Inoltre il Raspberry Pi può anche collegarsi a Internet tramite WiFi o un cavo LAN, il che lo rende adatto ai progetti per Internet of Things (Capitolo 16).Le specifiche per il Raspberry Pi 2 (la versione migliore e più recente al momento della scrittura) sono le seguenti:

• processore quad-core ARM v7 900;• 1 GB di memoria DDR2;• Ethernet 10-100 BaseT;• 4 porte USB 2.0;• uscita video HDMI;• interfaccia per videocamera;• 40 pin GPIO (tutti i pin lavorano a 3.3V).

Page 11: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

11

Introduzione Capitolo 1

Se non conoscete il Raspberry Pi, nel Capitolo 3 c’è un tutorial per farvi cominciare con l’hardware e il linguaggio di programmazione Python.

ArduinoCi sono parecchi modelli diversi di Arduino. Questo libro si concentra sul modello di Arduino più utilizzato e conosciuto, l’Arduino Uno (Figura 1.2). Arduino è un po’ più economico del Raspberry Pi — potete comprare un Arduino per circa 22 euro.

Figura 1.2 - Un Arduino Uno Revisione 3

Se siete abituati a lavorare su un normale computer, probabilmente le specifiche di Arduino vi sembreranno ampiamente inadeguate. Ha solo 34 KB di memoria (di vari tipi). Questo significa che il Raspberry Pi ha una memoria circa 30.000 volte più am-pia, anche senza includere la memoria flash sulla scheda SD del Pi! Inoltre, la frequen-za di clock del processore di Arduino è soli 16 MHz. Ad Arduino non potete attaccare una tastiera, un mouse o un monitor, e non ha alcun sistema operativo.Potreste domandarvi come questo piccolo dispositivo possa fare qualcosa di utile. Il segreto dell’utilità di Arduino è nella sua semplicità. Non c’è un sistema operativo da far partire, o altre interfacce di cui potreste non aver bisogno che si limiterebbero ad aumentare il costo e a consumare potenza.Mentre il Raspberry Pi è un computer generico, Arduino si concentra a fare bene una cosa: collegarsi a componenti elettronici e controllarli.

Page 12: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

12

Attuatori per maker

Per programmare un Arduino avete bisogno di un normale computer (se volete potete usare anche un Raspberry Pi). Sul computer che scegliete avete bisogno di utilizzare un ambiente integrato di sviluppo (IDE, Integrated Development Environment), che vi permette di scrivere un programma che sarà caricato sulla memoria flash incorporata di Arduino.Arduino può eseguire un solo programma per volta, e una volta programmato appena si accende eseguirà il programma caricato.Gli Arduino sono progettati per accogliere degli shield, che sono schede che si mon-tano sulla parte superiore dei socket di input/output e aggiungono nuove funzionalità hardware, come diversi tipi di display o adattatori Ethernet e WiFi.Arduino si programma utilizzando il linguaggio di programmazione C (potete trovare più informazioni sulla programmazione e sull’uso di Arduino nel Capitolo 2).

Scegliere un dispositivo: Arduino o Pi?Una delle regioni per cui questo libro spiega come collegare componenti elettronici sia ad Arduino sia al Raspberry Pi è che alcuni progetti sono più adatti al primo e altri al secondo. Altre schede che si collocano tra questi due estremi sono di solito abbastanza simili ad Arduino o al Rasperry Pi perché questo libro sia di aiuto per capire come utilizzarle.Quando si comincia un nuovo progetto, la mia regola di massima è di usare un Ardui-no. Comunque, se il progetto ha uno di questi requisiti, il Raspberry Pi è probabilmente una scelta migliore:

• Internet o connettività di rete;• la necessità di uno schermo ampio;• la necessità di collegare mouse e tastiera;• la necessità di una periferica USB come una webcam.

Con un po’ di sforzo e di investimenti è possibile espandere Arduino con degli shield che offrano la maggior parte dei precedenti requisiti. Comunque se si sceglie di se-guire questa strada sarà più difficile far funzionare tutto, poiché nessuna di queste funzionalità è nativa di Arduino come lo è per il Pi.Tra le buone ragioni per usare un Arduino invece di un Raspberry Pi ci sono le seguenti:

CostoUn Arduino Uno è più economico di un Raspberry Pi 2.

Tempo di avvioUn Arduino non ha bisogno di aspettare che parta il sistema operativo. C’è un piccolo ritardo di circa un secondo in cui controlla se si sta caricando un nuovo programma, poi è subito operativo.

Page 13: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

13

Introduzione Capitolo 1

AffidabilitàUn Arduino è intrinsecamente molto più semplice e resistente di un Raspberry Pi e non ha l’overhead di un sistema operativo.

Consumo di potenzaUn Arduino usa circa 1/10 della potenza di un Raspberry Pi. Se avete bisogno di una soluzione alimentata a batteria o a energia solare Arduino è una scelta migliore.

Corrente in uscita dai pin GPIOUn pin GPIO del Raspberry Pi dovrebbe essere usato per erogare un massimo di circa 16 mA, mentre un pin di Arduino è attestato a 40 mA. Quindi in alcuni casi potete collegare alcuni componenti (diciamo un LED ad alta intensità) diretta-mente a un Arduino, cosa che non potreste fare con un Raspberry Pi.

Sia Arduino sia Raspberry Pi sono ottimi dispositivi su cui basare un progetto, e per certi versi la scelta di quale dispositivo utilizzare dipende anche dalle preferenze personali.Una cosa importante da ricordare quando si collegano componenti elettronici esterni al Raspberry Pi è che funziona a 3,3 V e non a 5 V come Arduino. Collegare 5 V a uno dei pin GPIO del Raspberry Pi può facilmente portare a danneggiare o distruggere il pin GPIO o anche l’intero Raspberry Pi.

AlternativeL’Arduino Uno e il Raspberry Pi si trovano agli estremi nella gamma di dispositivi che si possono usare per controllare le cose. Come potreste aspettarvi, il mercato ha pro-dotto moltissimi altri dispositivi che si trovano tra questi due estremi, in alcuni casi cercando di dare il meglio di entrambi i mondi.I nuovi dispositivi spuntano di continuo. La natura open source di Arduino ha portato a moltissime variazioni, con progetti per nicchie specifiche, come il controllo dei droni o l’interfaccia per sensori wireless.La Figura 1.3 mostra uno schema dei dispositivi più comuni in quest’area.Al di sotto dell’Arduino Uno, sia per prezzi sia per prestazioni, troviamo il Trinket di Adafruit. Questa interessante scheda ha solo pochi pin GPIO, ma per il resto è piut-tosto compatibile con Arduino. Vale la pena di considerarla per un progetto che può avere solo un paio di input o output.Ci sono diversi prodotti intermedi come l’Arduino Yún, l’Intel Edison e il Photon che hanno il WiFi incorporato e sono pensati per l’uso in ambito Internet of Things (IoT, vedere il capitolo 16). Tra questi, il Photon probabilmente offre il miglior valore. Tutti e

Page 14: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

14

Attuatori per maker

tre questi dispositivi si programmano usando il linguaggio C, quindi quello che impa-rerete per Arduino si potrà applicare anche a queste schede.

Figura 1.3 - Piattaforme embedded.

La BeagleBone Black è concettualmente molto simile al Raspberry Pi. È un computer su una singola scheda e, anche se la versione corrente della BeagleBone Black è stata supe-rata dal Raspberry Pi 2 in termini di pura potenza, la BeagleBone Black ha alcuni vantaggi sul Raspberry Pi. Ha più pin GPIO e ha anche alcuni pin che possono funzionare come ingressi analogici, una funzionalità che al Raspberry Pi 2 manca. La BeagleBone Black si può programmare con Python, in modo simile al Raspberry Pi, o in JavaScript.

RiepilogoQuesto capitolo ha fornito una breve introduzione ad Arduino e a Raspberry Pi. Ab-biamo discusso dei vantaggi e degli svantaggi che ciascuna di queste schede offre, e anche visto alcune alternative. I prossimi due capitoli vi aiuteranno a cominciare a usare e programmare prima Arduino e poi Raspberry Pi.Se avete già usato Arduino e Raspberry Pi potete saltare direttamente al Capitolo 4 e usare Arduino e Raspberry Pi per creare un po’ di azione! Se ne avrete bisogno potrete sempre tornare al Capitolo 2 e al Capitolo 3.

Page 15: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

15

Arduino

2

Questo capitolo è una versione modificata delle prime istruzioni inizialmente pub-blicate come appendice al mio libro The Maker’s Guide to the Zombie Apocalypse della NoStarch Press ed è usato con il loro gentile permesso.Se siete dei principianti di Arduino, questo capitolo vi aiuterà a partire con questa piccola grande scheda.

Cos’è Arduino?Ci sono diversi tipi di schede Arduino, ma quella che è di gran lunga la più comune e che è usata per tutti i progetti di questo libro è l’Arduino Uno (vedere la Figura 2.1).L’Arduino Uno ha attraversato una serie di revisioni. L’Arduino Uno mostrato nella Figura 2.1 è la revisione 3 (R3) della scheda (la più recente al momento della stesura del libro).Cominciamo il nostro tour di Arduino dalla porta USB, che ha diversi scopi: si può usare per alimentare Arduino, per programmarlo dal vostro computer e infine come canale di comunicazione.Il piccolo pulsante rosso di fianco alla presa USB è il pulsante di Reset. Quando lo pre-mete, Arduino ripartirà ed eseguirà il programma caricato.Sul bordo superiore e su quello inferiore di Arduino ci sono connettori a cui è possibile collegare componenti elettronici. Nella parte superiore della Figura 2.1 si possono ve-dere ingressi e uscite digitali, identificati da un numero tra 0 e 13. Ciascun pin si può configurare via software per essere un ingresso (input) o un’uscita (output). Potreste collegare un interruttore a un input digitale, e questo potrà dirvi se l’interruttore è premuto o meno. Oppure potreste collegare un LED a un output digitale e accenderlo cambiando l’uscita da low a high. Infatti c’è un LED incorporato sulla scheda chiamato LED “L” collegato al pin digitale 13.Sotto i pin digitali di I/O c’è un LED che indica semplicemente se la scheda è accesa.

Page 16: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

16

Attuatori per maker

L’header ICSP (In-Circuit Serial Programming) è solo per la programmazione avanzata di Arduino senza usare la connessione USB. La maggior parte degli utenti di Arduino non userà mai l’header ICSP.Vale la pena di mettere in evidenza l’ATMega328 (il cervello di Arduino). L’ATMe-ga328 è un microcontrollore IC (Integrated Circuit, circuito integrato). Questo chip me-morizza il programma che girerà su Arduino (contiene 32 KB di memoria flash).

Figura 2.1 - Una scheda Arduino Uno R3.

Sotto l’ATMega328 c’è una fila di pin, etichettati da A0 ad A5, per l’input analogico. Mentre gli input digitali possono solo dire se qualcosa è acceso o spento, gli input analogici possono misurare la tensione sul pin (finché la tensione è tra 0 e 5 V). La tensione potrebbe derivare da un qualche tipo di sensore. Se finite gli input e gli output digitali, questi input analogici possono anche essere usati come input e output digitali.Di fianco c’è una fila di connessioni per l’alimentazione che si possono usare come metodi alternativi per dare energia ad Arduino. Si possono anche usare per alimentare il resto dei componenti che collegate.Arduino ha anche un jack per l’alimentazione in corrente continua (DC), che può ac-cettare qualsiasi tensione tra i 7 e i 12 V e usa un regolatore di tensione per fornire i 5 V con cui Arduino opera. Arduino accetta automaticamente l’alimentazione dal con-nettore USB o dal connettore DC, a seconda di quale è connesso.

Page 17: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

17

Arduino Capitolo 2

Installare l’IDE ArduinoArduino non è esattamente quello che vi potreste aspettare da un computer. Non ha un sistema operativo, non ci potete collegare una tastiera, un monitor o un mouse. Fa girare un solo programma che dovete caricare sulla sua memoria flash utilizzando un vero e proprio computer. Potete riprogrammare Arduino tutte le volte che volete (beh, effettivamente molte migliaia di volte).Per programmare Arduino dovete installare l’IDE di Arduino sul vostro computer. La natura cross-platform di questo software — l’IDE di Arduino gira su Windows, Mac e Linux — è uno dei motivi della grande popolarità di Arduino. Inoltre, l’IDE di Arduino vi permette di programmare Arduino utilizzando una connessione USB senza alcun bisogno di hardware particolare per la programmazione.Per installare l’IDE di Arduino per il vostro sistema operativo, scaricate il software e se-guite le istruzioni che si trovano sul sito Internet di Arduino (http://arduino.cc/en/Guide/HomePage). Notate che gli utenti Windows e Mac dovranno installare i driver USB in modo che l’IDE di Arduino possa comunicare con l’Arduino stesso. Una volta che tutto è installato, fate partire l’IDE di Arduino. La Figura 2.2 mostra la finestra dell’IDE Arduino.

Figura 2.2 - L’IDE di Arduino

Page 18: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

18

Attuatori per maker

Il pulsante Carica, come suggerisce il nome, carica lo sketch sulla scheda Arduino. Pri-ma di caricarlo, converte il codice testuale usato per programmare in codice eseguibile per Arduino. Se ci sono errori saranno mostrati nell’area di Log. Il pulsante Verifica fa la stessa cosa, ma senza il passaggio finale del caricamento del programma sulla scheda.Il pulsante Monitor seriale apre la finestra del monitor seriale, che si usa per la comuni-cazione con Arduino. Userete il monitor seriale in molti degli esperimenti di questo li-bro, perché è un ottimo modo per inviare i comandi a un Arduino dal vostro computer. Il monitor seriale permette la comunicazione bidirezionale, il che significa che potete mandare messaggi di testo ad Arduino e anche ricevere delle risposte.L’area di stato nella parte inferiore della finestra vi dice il tipo di Arduino e la corri-spondente porta seriale che sarà usata per programmarlo quando si preme il pulsan-te Carica. La porta mostrata nella Figura 2.2 (/dev/cu.usbmodem411) è del tipo che vi aspettereste di trovare su un computer Mac o Linux. Se per programmare Arduino state usando un computer Windows potrebbe essere COM4, o COM seguito da un numero che Windows riserva per Arduino quando lo collegate.Ultima ma non ultima, la parte principale dell’IDE di Arduino è l’area del programma, dove digitate il codice che volete sia caricato su Arduino.Nel mondo di Arduino i programmi si chiamano sketch, e il menu File dell’IDE di Ar-duino vi permette di aprire e salvare sketch come fareste con un documento in un elaboratore di testi. Il menu File ha anche un sottomenu Esempi da cui potete caricare gli sketch di esempio predefiniti di Arduino.

Caricare uno sketchPer testare la vostra scheda Arduino e per assicurarvi che l’IDE di Arduino sia corretta-mente installato, cominciate ad aprire lo sketch di esempio chiamato Blink. Lo trovate dalla voce di menu File -> Esempi -> 01.Basics (lo sketch Blink è quello caricato nella Figura 2.2).Usate un cavo USB per collegare il vostro Arduino al computer che volete usare per programmarlo. Quando lo collegate dovreste vedere il LED dell’alimentazione di Ardu-ino accendersi e un po’ di altre luci lampeggiare brevemente.Ora che Arduino è connesso, dovete specificare sia il tipo di scheda che state pro-grammando (Arduino Uno) sia la porta seriale a cui è collegato. Impostate il tipo di scheda dalla voce di menu Strumenti -> Scheda -> Arduino/Genuino Uno.Impostate la porta seriale dalla voce di menu Strumenti -> Porta. Se state usando un computer Windows è probabile che non ci siano molte opzioni disponibili. Infatti po-treste trovare anche solo la porta COM4. Su un computer Mac o Linux di solito sono elencati parecchi dispositivi USB e potrebbe essere difficile capire quale di questi sia

Page 19: Simon Monk Attuatori - Edizioni LSWR · 2017. 6. 1. · Guida alla programmazione ... Progetto: compattatore di lattine con Arduino ... Introduzione 1 Entrare nel mondo dell’elettronica

19

Arduino Capitolo 2

la vostra scheda Arduino. Dovreste vedere un elemento della lista che comincia con dev/tty/usbmodemNNN, dove NNN è un numero. Nella figura 2.3 è selezionato l’Arduino collegato al mio Mac.Se il vostro Arduino non compare nella lista, di solito c’è un problema con i driver USB. Nel caso, provate a reinstallarli.Una volta che siete pronti a caricare lo sketch su Arduino premete il pulsante Carica. Nell’area di Log dovrebbero cominciare a comparire dei messaggi e dopo alcuni secon-di i LED con l’etichetta “TX” e “RX” di Arduino dovrebbero cominciare a lampeggiare mentre il programma viene caricato sulla scheda.

Se tutto va secondo i piani, quando il caricamento è completato dovreste vedere un messaggio simile a quello della Figura 2.4.

Figura 2.4 - Un caricamento effettuato con successo.

Questo messaggio vi dice che lo sketch è stato caricato e che ha usato 1.084 byte dei 32.256 disponibili.Dopo che il caricamento dello sketch è completato noterete che il LED “L” incorporato su Arduino comincerà a lampeggiare lentamente. Questo è il vostro programma appe-na caricato che fa fede al suo nome.

Figura 2.3 - Selezionare la porta seriale per Arduino.