![Page 1: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/1.jpg)
Arduino Step by Step
P. Perego- Politecnico di Milano
AA 2010/2011Facoltà del Design - Politecnico di Milano3.o anno – Disegno Industriale
![Page 2: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/2.jpg)
Paolo Perego
Setup iniziale
Prepariamo il computer per l’utilizzo di Arduino e Processing
Cosa occorre:Arduino.zip da arduino.ccProcessing.zip da www.processing.orgFritzing.zip da fritzing.orgArduinoExamples.zip Processing.Examples.zipFritzingCircuits.zip
Scheda Arduino
2
![Page 3: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/3.jpg)
Paolo Perego
Preparare il sistema per ArduinoStep 1
Donwload ed installazione:-Scaricare il software nel sito Arduino.cc-Scaricare ArduinoExamples.zip dal sito del professore o dal sito www.sensibilab.campuspoint.polimi.it nella categoria Arduino sotto la sezione download.
Procediamo con l’installazione:1)Unzip il file Arduino.zip scaricato da Arduino.cc, non necessita di installazione.2)Collegare la scheda Arduino tramite l’usb
Se non è la prima volta che si utilizza arduino saltare il punto tre.3)Se si utilizza un sistema operativo windows è necessario installare il driver per arduino
- Aprire Sistema nel menu del Pannello di Controllo- Selezionare Gestione Dispositivi- Selezionare “Arudino ONE” (Dovrebbe essere presente un’icona con un punto
escalmativo.- Premere il tasto destro e selezionare Aggiorna driver- Selezionare Ricerca Manuale del Driver- Selezionare la cartella /arduino-0022/drivers/- Procedere con l’installazione del driver.
3
![Page 4: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/4.jpg)
Paolo Perego
Preparare il sistema per ArduinoStep 2
4) Unzip il file ArduinoExamples.zip nella cartella /arduino-0022/Example5) Eseguire l’IDE Arduino6) Selezionare la versione di hardware Arduino (“Arduino UNO”)7) Selezionare la porta COM (per MAC “/dev/tty.usbmodem”, per Linux “/dev/ttyUSB#.”, per
Windows controllare nel “panello di controllo/Gestione dispositivi”). Attenzione, cercate di collegare Arduino sempre nella stessa porta (soprattutto con Windows); se cambiate USB, cambierà anche la porta COM.
Ora il nostro sistema arduino è pronto per iniziare!!!
4
![Page 5: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/5.jpg)
Paolo Perego
Preparare il sistema per Processing
Donwload ed installazione:-Scaricare il software dal sito www.processing.org-Scaricare ProcessingExamples.zip dal sito del professore o dal sito www.sensibilab.campuspoint.polimi.it nella categoria Arduino sotto la sezione download.
Procediamo con l’installazione:1)Unzip Processing.zip, non necessita di installazione.1)Unzip ProcessingExample.zip nella cartella Processing/examples/3)Eseguire l’IDE Processing
5
![Page 6: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/6.jpg)
Paolo Perego
Preparare il sistema per Fritzing
Donwload ed installazione:-Scaricare il software dal sito http://fritzing.org/-Scaricare FritzingCircuits.zip dal sito del professore o dal sito www.sensibilab.campuspoint.polimi.it nella categoria Arduino sotto la sezione download.
Procediamo con l’installazione:1)Unzip Firtzing.zip, non necessita di installazione.2)Cancellare il contenuto della cartella Fritzing/sketches/3)Unzip FritzingCircuits.zip nella cartella Fritzing/sketches/4)Eseguire Fritzing
6
![Page 7: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/7.jpg)
Paolo Perego
Esempio 0
Iniziamo…
Cosa occorre:Example0
Scheda Arduino
7
![Page 8: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/8.jpg)
Paolo Perego
Esempio 0Integrated Development Environment (IDE)
8
L’IDE Arduino è il software necessario per la generazione del firmware per il microcontrollore di Arduino.
![Page 9: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/9.jpg)
Paolo Perego
Esempio 0Il primo programma
Carichiamo il primo esempio:
Tramite il menù file selezionare Examples └ EsempiLezione
└ Example0
9
![Page 10: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/10.jpg)
Paolo Perego
Esempio 0
Il firmware Arduino deve essere necessariamente composto almeno da tre parti:
• La dichiarazione delle variabili.• La funzione void setup()• La funzione void loop()
10
![Page 11: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/11.jpg)
Paolo Perego
Esempio 0Le parti principali del firmware
11
Le variabili vanno sempre dichiarate fuori da setup e loop in modo che entrambe le funzioni (setup e loop) possano utilizzarleLa funzione void setup() è utilizzata per la configurazione iniziale di arduino.
Questa funzione viene eseguita all’accensione di arduino una sola volta.
La funzione void loop() viene eseguita immediatamente dopo la funzione setup ed è continuamente rieseguita fino allo spegnimento o reset di Arduino.
In questa funzione vengono inserite le istruzioni per ciò che arduino deve veramente fare (es. accendi led, scrivi sulla seriale…)
![Page 12: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/12.jpg)
Paolo Perego
Esempio 0Upload
Abbiamo creato il nostro primo Firmware, procediamo con la verifica del codice e l’Upload su ArduinoQuesto firmware non fa nulla in quanto sia la funzione setup che la funzione loop sono vuote.
Nota: Se una riga è preceduta da // diventa un commento e non viene eseguita da Arduino.
12
Verifica del codice
Upload del codice su Arduino
Memoria occupata dal programma
![Page 13: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/13.jpg)
Paolo Perego
La programmazione
Durante l’upload del firmware, se tutto avviene correttamente, i led TX e RX ed il led L cominceranno a lampeggiare sino a programmazione completata.
13
![Page 14: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/14.jpg)
Paolo Perego
Esempio 1
Accendiamo il led sulla scheda
Cosa serve:Example1
Arduino
14
![Page 15: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/15.jpg)
Paolo Perego
Esempio 1Accendiamo un led
15
Carichiamo l’esempio Example1
Con questa riga diamo il valore 13 al nome ledPin.
Indichiamo ad Arudino che il suo pin 13 (ledPin) è un pin di uscita (OUTPUT)
Accendiamo il led sul pin 13
![Page 16: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/16.jpg)
Paolo Perego
Esempio 1Il led
Arduino incorpora sulla scheda un LED di test collegato al pin 13. Il led è indicato sulla scheda con la lettera L.Per utilizzare questo led non occorre nient’altro che la scheda Arduino.
16
![Page 17: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/17.jpg)
Paolo Perego
Esempio 2
Facciamo “blinkare” un led esterno
Presentazione Frizing
Cosa serve:Example 2_1Example 2_2
Scheda ArduinoBreadboardUna resistenzaUn Led1 filo lungo1 fili di lunghezza media
17
![Page 18: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/18.jpg)
Paolo Perego
18Esempio 2Collegando i componenti
Per creare un prototipo, Arduino deve essere collegato a sensori, attuatori e altri componenti creando un circuito elettronico.
Per prototipare utilizziamo la Breadboard
![Page 19: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/19.jpg)
Paolo Perego
Esempio 2Breadboard
• Permette di creare circuiti senza saldare.• Permette di riconfigurare e cambiare il circuito velocemente.La breadboard è composta da 4 aree. • Le due più esterne servono solitamente per l’alimentazione e sono
collegate tutte orizzontalmente.• Le due più interne servono per i collegamenti tra i componenti e sono
collegate verticalmente.
19
![Page 20: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/20.jpg)
Paolo Perego
Fritzinghttp://fritzing.org/
Per realizzare il prototipo useremo i componenti e la breadboard, ma prima possiamo creare il nostro circuito virtualmente con Frizing!
20
![Page 21: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/21.jpg)
Paolo Perego
Fritzing
Apriamo Fritzing
21
In questa parte metteremo i componenti necessari al nostro circuito e tracceremo i collegamenti come se lo stessimo faceno con componenti veri.
Qui sono presenti molti dei componenti più utilizzati, compresa la scheda arduino.
![Page 22: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/22.jpg)
Paolo Perego
FritzingIl circuito virtuale
Proviamo a creare il circuito virtuale pe l’accensione del led esterno con arduino.1) Inseriamo Arduino. Selezioniamo a destra la scehda arduino e trasciniamola nel riquadro di sinistra.
22
![Page 23: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/23.jpg)
Paolo Perego
FritzingIl circuito virtuale
2) Ora ci occorrono una resistenza e un led. Troviamo anche questi nei componenti a destra e trasciniamoli nel riquadro di sinistra.
23
![Page 24: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/24.jpg)
Paolo Perego
FritzingIl circuito virtuale
3) Abbiamo tutti i componenti che ci servono, dobbiamo ora piazzarli nella breadboard ed effettuare i collegmaenti.
24
![Page 25: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/25.jpg)
Paolo Perego
FritzingIl circuito virtuale
4) Il circuito è fatto, ma visto così è molto confuso. Possiamo cambiare colore ai fili cliccandoci sopra con il tasto destro e scegliendone il colore o aggiungere delle curve ai fili in modo che non si sovrappongano troppo (clicchiamoci sopra con il tasto sinistro e trascinando il filo).
25
![Page 26: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/26.jpg)
Paolo Perego
FritzingIl circuito virtuale
Eccol il risultato finale.
26
![Page 27: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/27.jpg)
Paolo Perego
FritzingAggiungere componenti
Nel software sono già presenti molti componenti e altri se ne trovano in internet.
Le realizzazione di nuovi componenti è tuttavia semplicissima perché necessità della realizzazione di tre file svg:1.La vista per la prototipazione virtuale2.Il disegno per lo schema elettrico3.Footprint per PCB
27
![Page 28: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/28.jpg)
Paolo Perego
Esempio 2Costruiamo il circuito
28
Costruiamo ora il circuito disegnato con fritzing con componenti reali.
ATTENZIONE: Il led ha un anodo (+) ed un catodo (-). Il catodo è il piedino più corto e va collegato sotto la resistenza; l’anodo va collegato tramite il filo lungo al pin 13 di Arduino.
![Page 29: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/29.jpg)
Paolo Perego
Esempio 2Perché la resistenza
29
Perché non colleghiamo direttamente il led tra il pin 13 e gnd?
Il led necessita di circa 1,5V e 15mA.
Arduino fornisce 5V.
Se lo colleghiamo direttamente il led brucerebbe in pochi minuti.
1,5V15mA
3,5V
5V
![Page 30: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/30.jpg)
Paolo Perego
Esempio 2Il valore della resistenza
30
Il valore della resistenza è calcolato con la formula:
R = (VArduino – Vled) / Iled = (5V – 1,5 V) / 10mA = 350Ω
Se volessimo collegare più led la formula sarà:
R = (VArduino – (n°LED * Vled)) / Iled
Si nota quindi che al massimo con aduino possiamo collegare 3 led in serie sullo stesso pin.
![Page 31: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/31.jpg)
Paolo Perego
Esempio 2Accendiamo un led
31
Carichiamo l’esempio Example2_1
La dichiarazione delle variabili e la funzione void setup() è identica a quella dell’esercizio 1:- Utilizziamo solo il pin 13 come uscita.
La funzione loop ha invece tre istruzioni in più:
delay (1000);Implementa una pasua di 1000ms
digitalWrite(ledPin,LOW);Spegne il led
![Page 32: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/32.jpg)
Paolo Perego
Esempio 2Non esiste solo un modo per fare le cose
32
Carichiamo l’esempio Example2_2
Il codice è molto diverso da quello dell’esempio precedente, ma Arduino fa esattamente la stessa cosa.
time = millis();Time restituisce da quanto tempo è acceso Arduino.
digitalWrite(ledPin,!digitalRead(ledPin));Questa linea di codice fa il così detto TOGGLE
Se il led è acceso lo spegne, se è spento lo accende.Il punto esclamativo è l’operatore NOT, posto davanti ad uno stato (HIGH o LOW) ne fa il contrario.
![Page 33: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/33.jpg)
Paolo Perego
Esempio 3 – Un po’ d’interattività!
Accendiamo il led esterno con un pulsante
Cosa serve:example 3_1example 3_2
Scheda ArduinoCircuito Esempio 2Un pulsanteUna resistenzaUn filo cortoUn filo di lunghezza mediaUn filo lungo
33
![Page 34: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/34.jpg)
Paolo Perego
Esempio 3Costruiamo il circuito
34
Costuriamo il circuito come riportato qui sotto.
Il pulsante non ha un verso, va montato a cavallo della linea centrale della breadboard.
![Page 35: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/35.jpg)
Paolo Perego
Esempio 3Il firmware
35
Carichiamo l’esempio Example3_1
Dichiariamo che il bottone sarà collegato al pin 2
Leggiamo lo stato dell’interruttore e cambiamo lo stato del led attraverso la riga di TOGGLE vista in Example2_2
Il pin due è quindi impostato come ingresso.
![Page 36: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/36.jpg)
Paolo Perego
Esempio 3Un po’ di interattività… pulsante e led.
36
Cosa succede quando premo il pulsante?
Quando il pulsante viene premuto il contatto non viene semplicemente chiuso ma, a causa di microvibrazioni, continua ad aprirsi e chiudersi per qualche decimo di secondo.
Queste continue aperture e chiusure impediscono di controllare in maniera chiara l’accensione e lo spegnimento del led.
Il problema viene risolto con il così detto anti-rimbalzo.
![Page 37: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/37.jpg)
Paolo Perego
Esempio 3Debounce o Antirimbalzo
37
Carichiamo l’esempio Example3_2L’antirimbalzo è così strutturato
![Page 38: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/38.jpg)
Paolo Perego
Esempio 3Debounce o Antirimbalzo
38
L’anti-rimbalzo lascia passare almeno 30ms prima di ritenere valido un cambiamento di stato del bottone.
ATTENZIONE: Se modifichiamo il valore di DebounceDelay per esempio a 1000, Arduino accetterà la pressione del pulsante solo una volta al secondo.
![Page 39: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/39.jpg)
Paolo Perego
Arduino e la community onlineLa filosofia opensource
39
OK, l’esempio di prima è un po’ complesso ma…… non occorre saper programmare per utilizzare Arduino.
Sono infatti presenti online molti siti, blog, forum in cui altri mettono a disposizione la loro esperienza, i loro circuiti ed i loro programmi.
Arduino supporta la filosofia del cut & paste
![Page 40: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/40.jpg)
Paolo Perego
Esempio 4
Regoliamo l’intensità di un led
Cosa serve:example 4_0example 4_1example 4_2
Scheda ArduinoCircuito Esempio 3Un pulsanteUna resistenzaUn filo cortoUn filo lungo
40
![Page 41: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/41.jpg)
Paolo Perego
Esempio 4Costruiamo il circuito
41
Costuriamo il circuito come riportato qui sotto.
ATTENZIONE: Il led non va più collegato al pin 13 ma al pin 11. Ci serve un IO con PWM.
![Page 42: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/42.jpg)
Paolo Perego
Esempio 4Costruiamo il circuito
42
Le I/O Digital con PWM sono indicate con una tacchetta sotto al numero del pin.
Sono 11, 10, 9, 6, 5 e 3
![Page 43: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/43.jpg)
Paolo Perego
Esempio 4Il firmware
43
Carichiamo l’esempio Example4_0
Dichiariamo che il led questa volta è collegato al pin 11
Scriviamo un valore analogico al sul pin 11. Il valore che possiamo scrivere non è più solo HIGH e LOW come nel caso di digitalWrite ma un valore tra 0 e 255;
0 0V128 2,5V255 5V
Cambiando questo valore possiamo cambiare la luminosità del led.
![Page 44: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/44.jpg)
Paolo Perego
Esempio 4Il firmware
44
Carichiamo l’esempio Example4_1
Abbiamo tuttavia inserito nel circuito due pulsanti che non utilizziamo
Questo esempio permette di modificare la luminosità del LED cliccando i due pulsanti. Il pulsante collegato al pin 2 aumenta la luminosità. Il pulsante collegato al pin 4 diminuisce la luminosità.
Il firmware è abbastanza complesso ed è composto da 3 parti:
1)Controllo il pulsante sul pin 2 (con anti-rimbalzo) e se premuto eseguo ledValue++;2)Controllo il pulsante sul pin 4 (con anti-rimbalzo) e se premuto eseguo ledValue--;3)Scrivo il valore di ledValue sul pin 11 con la funzione analogWrite
ledValue++ e ledValue–- rispettivamente incrementano e decrementano il valore ledValue di uno.
![Page 45: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/45.jpg)
Paolo Perego
Esempio 4Il firmware
45
Carichiamo l’esempio Example4_2
Complichiamo un po’ il tutto
Si nota subito a prima vista la complessità di questo firmware.Abbiamo infatti aggiunto:1)I contolli sul valore massimo e minimo da scrivere sul pin 11. Se infatti continuiamo a fare ledValue++ o ledValue-- il valore potrebbe non essere più tra 0 e 255. In questo caso il led si illumierà in modo errato.
2)Far cambiare la luminostià del led in questo modo è lunghissimo. Abbiamo quindi aggiunto un controllo che varia velocemente la luminosità del led se il pulsante viene premuto per più di due secondi.
![Page 46: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/46.jpg)
Paolo Perego
Esempio 4bis
Regoliamo l’intensità di un led con una resistenza variabile
Cosa serve:example 4bis
Scheda ArduinoCircuito Esempio 4Una resistenza variabileDue fili cortiUn filo lungo
46
![Page 47: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/47.jpg)
Paolo Perego
Esempio 4bisCostruiamo il circuito
47
Costuriamo il circuito come riportato qui sotto.
ATTENZIONE: Il led non va più collegato al pin 13 ma al pin 11. Ci serve un IO con PWM.
![Page 48: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/48.jpg)
Paolo Perego
A cosa serve la resitenza variabile
il piedino centrale corrisponde ad un cursore che si muove lungo una resistenza.
Collegando una resistenza variabile tra 0 e 5V, sul piedino centrale avremo un valore di tensione che va da 0 a 5V a seconda della posizione del cursore.
E’ il così detto partitore di tensione; il resistore variabile può essere visto come due resistenza collegate attraverso il piedino centrale:
Vout = Vin * R2/(R1+R2);
Vout è la tensione sul piedino centrale.
48
![Page 49: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/49.jpg)
Paolo Perego
Esempio 4bisIl firmware
49
Carichiamo l’esempio Example4bis
Dichiariamo che la resistenza variabile è collegata al pin 5
Leggiamo il valore analogico:analogRead(analogPin);Restituisce il valore letto sul pin 5 come valore tra 0 e 1024;
0 0V512 2,5V1024 5V
Il valore letto viene scritto sul pin 11.Dobbiamo dividere per 4 perché analogWrite accetta solo valori tra 0 e 255 (vedi esempio 4).
![Page 50: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/50.jpg)
Paolo Perego
Esempio 5 – Un po’ di rumore
Facciamo suonare un Buzzer
Cosa serve:example5example5INNO
Scheda ArduinoCircuito Esempio 4bisBuzzer o altoparlante
50
![Page 51: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/51.jpg)
Paolo Perego
Esempio 5Costruiamo il circuito
51
![Page 52: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/52.jpg)
Paolo Perego
Esempio 5Il firmware
52
Carichiamo l’esempio Example5
Dichiariamo che il buzzer è collegato al pin 8
Due nuove funzioni, tone e noTone
tone (pinBuzzer, freq, time);Suona una nota di frequenza freq e durata time sul buzzer collegato al pin pinBuzzer.
noTone (pinBuzzer);Ferma il tono generato in precedenza dalla funzione tone.
![Page 53: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/53.jpg)
Paolo Perego
Esempio 5Un po’ di musica
E se volessimo suonare una canzone con più note?
Carichiamo l’esempio Example5INNO
In questo esempio abbiamo utilizzato un file esterno: «note.h»
Il comando #include "note.h ";Permette di inserire all’interno di un progetto un altro file. Con questa operazione è come se copiassimo l’intero contenuto del file nella posizione dove è presente il comando.
In questo modo abbiamo inserito le note (con le relative frequenze), le durate e le pause della nostra canzone.
Solitamente questa operazione viene utilizzata:•per includere file contenenti dei dati/valori;•per includere ed utilizzare una libreria esterna.
In questo modo il firmware risulta più leggibile ed i file possono essere riutilizzati in altri progetti senza la necessità di riscriverli.
53
![Page 54: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/54.jpg)
Paolo Perego
Esempio 5InnoIl firmware
54
Notiamo che le operazioni da fare sono inserite nella funzione setup, la funzine loop è vuota. Questo significa che queste operazioni verranno eseguite una sola volta immediatamente dopo il reset.
Si nota anche un nuovo tab.
Viene generato premendo il pulsante a destra. Serve per includere nuovi file nel progetto.
![Page 55: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/55.jpg)
Paolo Perego
Esempio 6
Comunichiamo con il computer: inviamo dati!
Cosa serve:example6
Scheda ArduinoCircuito Esempio 5
55
![Page 56: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/56.jpg)
Paolo Perego
Esempio 6Comunicazione seriale
Arduino comunica con il PC attraverso una porta seriale virtuale (COM) via USB.
Attraverso questa porta è possibile inviare/ricevere dati al/dal PC:• per scambiare informazioni;• per debuggare.
56
Alcune volte è necessario controllare se i dati che Arduino sta utilizzando sono quelli corretti. Per fare ciò occorre leggerli in qualche modo e visualizzarli fermando l’esecuzione del programma. Questo non è possibile nel IDE Arduino a meno di utilizzare la comunicazione seriale.
![Page 57: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/57.jpg)
Paolo Perego
Esempio 6Il firmware
57
Carichiamo l’esempio 6
Dobbiamo indicare ad Arduino di utilizzare la seriale e a quale velocità.
Serial.println(analogRead(pinInput));
Scrive sulla porta seriale il valore letto dalla resistenza variabile utilizzata nell’esempio 4bis.
![Page 58: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/58.jpg)
Paolo Perego
Esempio 6Comunicazione seriale
I dati inviati possono essere visualizzati tramite il Serial Monitor.
Apre serial monitor
58
![Page 59: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/59.jpg)
Paolo Perego
Esempio 7 e 8
Comunichiamo con ProcessingPresentazione Processing
Software Processing
59
![Page 60: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/60.jpg)
Paolo Perego
Processing
E’ un linguaggio di programmazione basato su Java che consente di sviluppare diverse applicazioni come giochi, animazioni e contenuti interattivi.É distribuito sotto licenza Open Source ed è supportato dai sistemi operativi GNU/Linux, Mac OS X e Windows.
60
L’ambiente di sviluppo è molto simile ad Arduino, così come il linguaggio di programmazione utilizzato, molto semplice, intuitivo e immediato.
![Page 61: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/61.jpg)
Paolo Perego
Esempio 0 Processing
Il primo programma
Cosa serve:example0
61
![Page 62: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/62.jpg)
Paolo Perego
Esempio 0Il primo programma
Carichiamo il primo esempio:
Tramite il menù file selezionare Examples └ EsempiLezione
└ Example0
62
![Page 63: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/63.jpg)
Paolo Perego
Struttura del codice
La struttura del codice è molto simile ad Arduino:
Carichiamo l’esempio Example0Dichiarazione Variabiliin questa parte si dichiarano le variabili che verranno poi richiamate all’interno del programma.
void setup() {all’interno del setup definiamo le proprietà dell’applicazione: -dimensione finestra-framerate-…}
void draw() { all’interno di draw inseriamo ciò che vogliamo disegnare. }
63
![Page 64: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/64.jpg)
Paolo Perego
Esempio 1 Processing
Disegniamo un quadrato
Cosa serve:example1.1example1.2
64
![Page 65: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/65.jpg)
Paolo Perego
Esempio 1: Iniziamo a disegnareDisegno di un rettangolo
Carichiamo l’esempio Example1_1
65
Queste tre funzioni vanno sempre inserite all’interno di setup per inizializzare il programma.
Size(400,400); imposta la larghezza della finestra a 400x400 pixel.
smooth(); attiva filtro antialiasing
background (255,255,255); imposta lo sfondo bianco
![Page 66: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/66.jpg)
Paolo Perego
Esempio 1: Iniziamo a disegnareDisegno di un rettangolo
rect(x, y, width, height); Disegna rettangolo con l’angolo in alto a sinistra in posizione x,y e di dimensione width e heightfill (R,G,B,alpha); Colore interno al rettangolostroke(R,G,B,alpha); Colore del contornostrokeWeight(width); Spessore del bordonoStroke(); Nessun bordonoFill(); Nessuno colore di riempimento
66
La posizione X e Y in pixel partono dall’angolo in alto a sinistra.
![Page 67: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/67.jpg)
Paolo Perego
Esempio 1:Altre forme
Proviamo con altre forme:ellipse(x, y, width, height);
triangle(x1, y1, x2, y2, x3, y3);
67
line(x1, y1, x2, y2;
![Page 68: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/68.jpg)
Paolo Perego
Esempio 1_1: Esercizio
Disegnamo ora in una finestra di 400x400 quattro quadrati dello stesso colore (blue) su sfondo bianco. Carichiamo l’esempio Example1_2.
68
![Page 69: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/69.jpg)
Paolo Perego
Esempio 2 Processing
Un po’ di interattività: il mouse
Cosa serve:example2_1example2_2
69
![Page 70: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/70.jpg)
Paolo Perego
Esempio 2Il mouse
Carichiamo lesempio Example2_1.
70
mouseX e mouseY: sono variabili che contengono la posizione del mouse.
pmouseX, pmouseY: posizione al frame precedente.
Attraverso queste quattro variabili possiamo identificare la posizione del mouse.
Il cerchio segue il mouse.
Se inseriamo background nella funzione draw, la finestra viene continuamente cancellata.
frameRate(12); imposta la velocità a 12 frame al secondo, rallenta quindi la visualizzazione dei contenuti.
![Page 71: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/71.jpg)
Paolo Perego
Esempio 2: Un po’ di interattività
Carichiamo l’esempio Example2_2
Esistono quattro funzioni che vengono eseguite quando una delle azioni del mouse si verifica; sono utilizzate come la funzione draw e setup.
mouseClicked(); Mouse premuto e rilasciatomousePressed(); Mouse premuto (posso controllare quale tasto tramite mouseButton)mouseDragged(); Un tasto è premuto ed il mouse è mossomouseMoved(); Il mouse è mossomouseRelease(); Il tasto precedentemente premuto è rilasciato
Premendo il tasto destro lo sfondo cambia colore.
71
![Page 72: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/72.jpg)
Paolo Perego
Esempio 3 Processing
Un po’ di interattività: la tastiera
Cosa serve:example3
72
![Page 73: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/73.jpg)
Paolo Perego
Esempio3: Un po’ di interattivitàFunzioni di input: Tastiera
73
Carichiamo l’esempio Example3
key: contiene l’ultimo tasto premuto
keyCode: se viene premuto un tasto speciale (freccette, alt, ctrl e shift) la variabile key avrà il valore CODED. Keycode conterrà invece il tasto premuto (UP,DOWN…)
Come per il mouse esistono funzioni speciali per controllae quando un tasto viene premuto:
keyPressed() Un tasto è premutokeyReleased() Un tasto premuto è rilasciato
![Page 74: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/74.jpg)
Paolo Perego
Esempio 3 74
Example3
A seconda di che tasto viene premuto la forma cambia colore:b = blue;n = nero;r = rosso;g = giallo; v = verde; w = bianco.
Se premo le frecce la forma si sposta a seconda della direzione premuta.
![Page 75: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/75.jpg)
Paolo Perego
Esempio 4 Processing
Inseriamo un’immagine
Cosa serve:example4
75
![Page 76: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/76.jpg)
Paolo Perego
Carichiamo l’esempio Exampe4
Dichiarazione della variabile immagine;
Carica l’immagine (.gif, .jpg, .tga, .png) in memoria
Visualizza l’immagine caricata in a nella posizione posX, posY con dimensione dimX e dimY.
Se mettiamo un indirizzo web al posto del nome del file immagine, processing caricherà l’immagine presente sul web.
Il caricamento delle immagini è meglio effettuarlo nella funzione setup per evitare rallentamenti nel programma.
Esempio 4Inseriamo un’immagine
76
![Page 77: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/77.jpg)
Paolo Perego
Esempio 5 Processing
Inseriamo il testo
Cosa serve:example5
77
![Page 78: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/78.jpg)
Paolo Perego
Example 5Scrivere con Processing
Carichiamo l’esempio Example5
Generiamo un font attraveso il tool apposito:
Menù Tools └ Create Font…
78
![Page 79: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/79.jpg)
Paolo Perego
Example 5Scrivere con Processing
Carichiamo l’esempio Example5
Caricare il font
Settare il font da utilizzare e la dimensione
Settare il colore della scritta
Scrivere
79
![Page 80: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/80.jpg)
Paolo Perego
Esempio 6 Processing
Suoni
Cosa serve:example6.1example6.2
80
![Page 81: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/81.jpg)
Paolo Perego
Esempio 6Let’s play some music
81
Chiude la libreria e ferma il suono alla chiusura del programma. Va sempre messo per evitare errori.
La libreria può inoltre essere utilizzata anche per registrare e modificare in real-time un segnale audio.
Carichiamo l’esempio Example6.1
Importiamo libreria esterna
Dichiariamo un oggetto per l’audio e uno per caricare l’mp3
Inizializziamo l’oggetto minim ecarichiamo il file mp3.
Inizia l’esecuzione del file mp3
![Page 82: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/82.jpg)
Paolo Perego
Esempio 6Tastiera e musica con un po’ di grafica
82
Carichiamo l’esempio Example6.2
In questo esempio la libreria audio viene utilizzata per eseguire un file mp3 con voce, mentre nel frattempo viene disegnata una linea che segue l’ampiezza della forma d’onda sonora dell’mp3.
![Page 83: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/83.jpg)
Paolo Perego
Esempio 7 Processing
Altre funzioni interessanti
Cosa serve:example7
83
![Page 84: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/84.jpg)
Paolo Perego
Altre funzioni ed esempi
Processing può essere anche usato per generare PDF, DXF, visualizzare webcam, visualizzare elementi 3d (file obj, 3ds…).
Caricare l’esempio Example7
Sul sito di processing e direttamente nell’IDE sono a disposizione molti esempi e tutorial per l’utilizzo di processing.
Una lista delle funzioni fino a qui utilizzate più molte altre può essere trovata all’indirizzo: http://processing.org/reference/
OpenProcessing mette ha disposizione spazio online per lo scambio di sketch processing. Il sito contiene molti sketch funzionanti dai quali potete prendere spunto per realizzare i vostri software.http://www.openprocessing.org/
84
![Page 85: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/85.jpg)
Paolo Perego
Esempio 7
Comunichiamo con Processing: riceviamo dati dal pc
Cosa serve:x Arduinoexample7x Processingexample7_Arduino
Scheda ArduinoCircuito Esempio 5
85
![Page 86: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/86.jpg)
Paolo Perego
Esempio 7 - ArduinoRicevere dati – Lato Arduino
Carichiamo l’esempio Example7
X Trasmettere dati:Controlla se sono presenti dati inviati dal PC
if (Serial.read()==‘’k’’)Controlla se il dato ricevuto corrisponde al carattere che desidero, in tal caso cambio lo stato del led.
86
![Page 87: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/87.jpg)
Paolo Perego
Esempio 7 - ArduinoRicevere dati – Lato Arduino
Caricato il firmware in Arduino possiamo testarlo con il serial monitor
Scriviamo qui il carattere da inviare.
Premere Send per inviare.Se inviamo k il LED cambia stato, per ogni altro carattere non cambia nulla.
87
![Page 88: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/88.jpg)
Paolo Perego
Comunicazione Arduino-ProcessingRicevere dati - Lato processing
88
Caricare l’esempio Example7_Arduino in processing.
Tutto quello che Arduino scrive deve essere compreso da Processing. Per tale ragione la velocità della seriale e il formato dei dati trasmessi e ricevuti dovrà essere il medesimo.
Processing usa una libreria esterna, occorre importarla con il comando:import processing.serial.*;
Occorre poi creare l’oggetto seriale con il comando: Serial myPort;
Nella funzione void Setup() di processing occorre quindi inizializzare la seriale con velocità e nome porta corretti.
myPort = new Serial(this, “COMN”, velocità);
![Page 89: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/89.jpg)
Paolo Perego
Comunicazione Arduino-ProcessingRicevere dati - Lato processing
89
La finestra di processing si presenterà tutta nera ma alla pressione del tasto sinistro del mouse il led di Arduino si accende.
![Page 90: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/90.jpg)
Paolo Perego
Esempio 8
Comunichiamo con Processing: trasmettiamo dati a processing
Cosa serve:x Arduino example6x Processingexample8 _Arduino
Scheda ArduinoCircuito Esempio 5
90
![Page 91: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/91.jpg)
Paolo Perego
Esempio 8 - ArduinoInviare dati – Lato Arduino
Carichiamo l’esempio Example6
X Ricevere dati:
Serial.println(valore);Scrive sulla seriale un dato, nel nostro caso il dato letto dal pin analogico 0 (analogRead(analogPin)) e successivamente invia il carattere «a capo».
In questo modo, quando andrò a leggere con arduino saprò che dopo ogni dato mi aspetto il carattere a capo, sarò quindi in grado di leggere i miei dati.
91
![Page 92: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/92.jpg)
Paolo Perego
Esempio 7 - ArduinoInviare dati – Lato Arduino
Caricato il firmware in Arduino possiamo testarlo con il serial monitor
92
Ricevere i dati e visualizzarli in questo modo non è tuttavia molto utile. Sarebbe preferibile una visualizzazione tramite grafici.
![Page 93: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/93.jpg)
Paolo Perego
Esempio 8 - ArduinoInviare dati – Lato Processing
Carichiamo l’esempio Example8_Arduino in processing
La funzione draw() è vuota.
Tutte le operazioni sono eseguite dalla funzione serialEvent(Serial myPort);
Questa funzione viene chiamata tutte le volte che la seriale riceve un dato.
Nella funzione il dato viene letto fino a che non viene ricevuto il carattere a capo «\n»
Il dato letto (tra 0 e 1024) viene converti tra 0 e l’altezza della finestra per essere disegnato.
Successivamente si disegna una linea che va dal valore precedente a quello appena letto.
L’ultima parte serve per resettare il grafico quando si raggiunge il fondo.
93
![Page 94: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/94.jpg)
Paolo Perego
Comunicazione Arduino-ProcessingLato Processing
Andando a variare la resistenza variabile collegata ad Arduino, il valore letto viene riportato come grafico su processing.
94
![Page 95: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/95.jpg)
Paolo Perego
Siti utili: 95
Arduino Playground: http://www.arduino.cc/playground/
Freeduino (the best): http://www.freeduino.org/
Instructables: http://www.instructables.com/
Sparkfun: http://www.sparkfun.com
Make magazine: http://makezine.com/
Hack n mod: http://hacknmod.com
CircuitLake: http://www.circuitlake.com
NuElectronics: http://www.nuelectronics.com
Seeduino: http://www.seeedi.com/warehouse/
![Page 96: Arduino Step by Step - cabestano.altervista.orgcabestano.altervista.org/alterpages/.../handsonarduino-stepbystep.pdf · Per creare un prototipo, Arduino deve essere collegato a sensori,](https://reader031.vdocuments.mx/reader031/viewer/2022021913/5c68ef9209d3f2f5638c6606/html5/thumbnails/96.jpg)
Paolo Perego
Arduino Shield
Gli shield di Arduino sono circuiti già montati e testati che possono essere direttamente collegati con arduio.Hanno svariate funzioni tra le quali:-GPS-GSM/GPRS-BLUETOOTH-Motori-Audio/MP3-Display Oled-Ethernet-USB…Per qualsiasi problema o difficolta:
1. googlate!!!2. Mandatemi una mail: [email protected]
Buon divertimento!!!
96