All'interno dei "LinoLab", laboratori digitali organizzati dal Centro Culturale "A. Zanussi" di Pordenone, le slide del laboratorio su Arduino. Livello principianti.
maggio 2016
2. Arduino is an open-source physical computing platform
based on a simple I/O board and a development environment
3.
4.
5. PROGRAMMA DEL LABORATORIO
BENVENUTI NEL MONDO DI ARDUINO
- Chi è Arduino
- Quali sono le parti che lo compongono
- La scheda, la breadboard, l’IDE…
- Cavi, led e sensori
- Dove nasce
- Dove viene utilizzato oggi
- Gli strumenti del mestiere
- Soſtware
PRIM
A
PARTE
- Il primo test
6. PROGRAMMA DEL LABORATORIO
BENVENUTI NEL MONDO DI ARDUINO
- Un semaforo con Arduino [luci]
- Loop, Switch e altre cose
- Il Piezo
- Analogico contro Digitale
- Il nostro primo progetto
- Compilazione ed esecuzione del codice
- Un pianoforte con Arduino [suoni]
- Rete di resistenze a scala
SECONDA
PARTE
- Saluti e baci
8. CHI È ARDUINO / DOVE NASCE
UN RE D’ITALIA, UN BAR, UNA SCHEDA
RE D’ITALIA DAL 1002 AL 1014
Esponente della lotta per la liberazione dell'Italia
dalle catene della dominazione straniera.
9. CHI È ARDUINO / DOVE NASCE
UN RE D’ITALIA, UN BAR, UNA SCHEDA
INTERACTION DESIGN INSTITUTE IVREA
Scuola post-laurea attiva nel campo
dell'Interaction Design e operante nella città di
Ivrea. La scuola è nata come iniziativa congiunta
di Olivetti e Telecom Italia.
10. CHI È ARDUINO / DOVE NASCE
UN RE D’ITALIA, UN BAR, UNA SCHEDA
ARDUINO UNO
"Uno" means one in Italian and was chosen to
mark the release of Arduino Soſtware (IDE) 1.0.
The Uno board is the first in a series of USB
Arduino boards.
11. CHI È ARDUINO / IL TEAM
CHI HA IDEATO LA SCHEDA ARDUINO
Massimo BanziGianluca Martino
David Mellis David Cuartielles Tom Igoe
17. CHI È ARDUINO / LE PARTI CHE LO COMPONGONO
INTEGRATED DEVELOPMENT ENVIRONMENT
18. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
ESEMPI DI UTILIZZO
È installato nelle stampanti
della MakerBot
19. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
OpenPCR è uno strumento di
analisi medica il cui scopo è
amplificare il DNA per
successive analisi
ESEMPI DI UTILIZZOESEMPI DI UTILIZZO
20. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
Con Arduino possiamo
fabbricarci il nostro
personale etilometro
ESEMPI DI UTILIZZO
21. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
Oppure una bilancia
collegata ad internet dove
registrare le nostre pesate
ESEMPI DI UTILIZZO
22. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
MA ANCHE PROTOTIPAZIONE E ESPERIMENTI
illustrazione di Harry Campbell
23. CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
COMMUNITY MOLTO ATTIVE
fonte: www.openmakersitaly.org
25. CONNETTORE PER
L’ALIMENTAZIONE
Serve per
alimentare
Arduino se non
è collegato alla
porta USB. Il
range delle
tensioni
ammesse va da
7 a 12V.
PORTA USB
Si occupa
dell’alimentazione, di
fornire un’entrata per
gli sketch, e di
comunicare con
Arduino (input seriale).
LED TX e RX
Indicano la
comunicazione
tra Arduino e il
computer. Utile
per il debug.
GND e 5V
Questi piedini
vengono usati
per fornire
alimentazione di
5V e massa al
nostro circuito POWERED LED
Indica che
Arduino sta
ricevendo
alimentazione.
MICROCONTROLLORE
Il cuore di Arduino UNO
26. GLI STRUMENTI DEL MESTIERE / IL SOFTWARE
INTEGRATED DEVELOPMENT ENVIRONMENT
The Arduino Integrated Development
Environment - or Arduino Soſtware
(IDE) - contains a text editor for
writing code, a message area, a text
console, a toolbar with buttons for
common functions and a series of
menus. It connects to the Arduino and
Genuino hardware to upload
programs and communicate with
them.
27. GLI SKETCHES
Programs written using Arduino Soſtware (IDE) are called sketches.
These sketches are written in the text editor and are saved with the
file extension .ino
GLI STRUMENTI DEL MESTIERE / GLI SKETCHES
28. LA BREADBOARD
La Breadboard è un dispositivo che facilita la costruzione e il test dei
circuiti. Tipicamente sono utilizzate per fare prototipazione del design
dei circuiti.
GLI STRUMENTI DEL MESTIERE / LA BREADBOARD
29. L’ALIMENTATORE
L'alimentatore è un dispositivo che fornisce una sorgente di potenza
elettrica per un circuito. Un alimentatore genera una differenza di
potenziale (che si misura in Volt) tra i due pin di uscita.
GLI STRUMENTI DEL MESTIERE / L’ALIMENTATORE
30. LE RESISTENZE
La resitenza è un dispositivo che oppone resistenza al passaggio
dell'elettricità. La resistenza di questo flusso può essere usato per
limitare la corrente che passa in un componente elettrico. L'abilità del
dispositivo di resistere al passaggio di corrente elettrica è misurata in
Ohm
GLI STRUMENTI DEL MESTIERE / LE RESISTENZE
31. DIODO
Un diodo è un dispositivo che permette il passaggio della corrente
elettrica in una sola direzione.
GLI STRUMENTI DEL MESTIERE / I DIODI
32. LED
Un LED è un diodo che genera una specifica lunghezza d'onda di luce
quando una tensione è applicata ai suoi capi. Questa tensione è
conosciuta come "forward voltage" del LED. La luminosità del LED
varia a seconda della variazione della corrente elettrica.
GLI STRUMENTI DEL MESTIERE / I LED
33. Un LED non ha una limitazione di corrente, per cui applicare una
tensione più alta rispetto alla sua tensione limite "forward voltage"
causerà il surriscaldamento del LED con eventuale rottura dello
stesso.
Spesso questo comportamento danneggia il LED, ma non gli impedirà
di accendersi ancora in futuro, di sicuro non sarà più luminoso come
lo era da fabbrica.
ATTENZONE
39. #1 - INTERRUTTORE + RESISTENZA + LED + ARDUINO
IL PRIMO TEST / LET’S START
40. CIRCUITO #1 / UN BOTTONE ACCENDE UN LED
ROSSO - ROSSO - NERO - NERO - MARRONE
41. SE LA CORRENTE FOSSE UNA ROCCIA…
Tensione (V)
IL PRIMO TEST / UN PAIO DI NOZIONI IMPORTANTI
Corrente (I)
}
}Resistenza (R)
42. Abbiamo appena utilizzato un interruttore che è in grado di gestire
il flusso di energia (elettrica) del circuito.
Se aperto interrompe il flusso di energia che scorre in quella sezione,
se chiuso permette invece alla corrente di passare.
Per questo funziona a “stati discreti”.
IN MOTO IL CERVELLO
43. Prima di cominciare a costruire un nuovo circuito, è buona prassi
rimuovere sempre l’alimentatore dalla scheda Arduino.
ATTENZONE
47. CIRCUITO #1.B / BOTTONI IN PARALLELO
ROSSO - ROSSO - NERO - NERO - MARRONE
DELLA RESISTENZA
OCCHIO AL PIEDINO
!
48. Nei circuiti che abbiamo realizzato stiamo fornendo 5 volt in ingresso.
IN MOTO IL CERVELLO
La resistenza è di 220 ohm.
Usando la formula inversa della legge di Ohm, abbiamo che:
Intensità di corrente = Tensione / Resistenza
Intensità di corrente = 5 Volt / 220 ohm
= 23 mA
1 di 2
49. Abbiamo così calcolato l’intensità di corrente che arriva ai piedini del
nostro led.
IN MOTO IL CERVELLO
Questo valore è il massimo che possiamo fornire al led per poterlo
utilizzare in sicurezza.
2 di 2
54. UN SEMAFORO CONTROLLATO CON ARDUINO
COMINCIAMO A METTERCI LE MANI
hardware + soſtware
prima fase: costruiamo il circuito
seconda fase: scriviamo il codice
terza fase: mettiamo d’accordo hw e sw
56. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
1. int led1 = 13;
2. int led2 = 12;
3. int led3 = 11;
tipo nome = valore;
SINTASSI
assegno valore a
nome che è di tipo
tipo
SEMANTICA
57. SOTTO COL CODICE
4. void setup() {
5. pinMode(led1, OUTPUT);
6. pinMode(led2, OUTPUT);
7. pinMode(led3, OUTPUT);
8.}
pinMode (nome, funzione)
SINTASSI
assegno a nome la
funzione funzione
SEMANTICA
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
58. SOTTO COL CODICE
9. void loop() {
10. digitalWrite(led1, HIGH);
11. delay(1000);
12. digitalWrite(led1, LOW);
13. digitalWrite(led2, HIGH);
14. delay(1000);
…
digitalWrite (nome, stato)
SINTASSI
assegno a nome lo
stato stato
SEMANTICA
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
59. SOTTO COL CODICE
15. digitalWrite(led2, LOW);
16. digitalWrite(led3, HIGH);
17. delay(1000);
18. digitalWrite(led3, LOW);
19.}
delay (valore)
SINTASSI
stabilisco un ritardo
pari a valore
millisecondi
SEMANTICA
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
60. void setup() { … }
IN MOTO IL CERVELLO
void loop() { … }
In Arduino possiamo scrivere delle procedure standard (setup) ed
utilizzare dei cicli (loop) …
1 di 2
61. IN MOTO IL CERVELLO
Un’ultima accortezza…
2 di 2
int timer = 1000;
15. digitalWrite(led2, LOW);
16. digitalWrite(led3, HIGH);
17. delay(1000); -> delay(timer);
18. digitalWrite(led3, LOW);
19.}
65. COMINCIAMO A METTERCI LE MANI
hardware + soſtware
prima fase: costruiamo il circuito
seconda fase: scriviamo il codice
terza fase: mettiamo d’accordo hw e sw
UN PIANOFORTE CON ARDUINO
67. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
1. int notes [ ] = {262, 294, 330, 349};
2. // funzione setup
3. void setup() {
4. Serial.begin(9600);
5. }
68. IMPARIAMO COS’È UN ARRAY
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
1. int notes [ ] = {262, 294, 330, 349};
a [0] a [1] a [2] a [7]
13 56 81 24
69. IMPARIAMO COME FUNZIONA SERIAL.BEGIN
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
Serial.begin(9600);
sets the data rate in bits per second (baud)
for serial data transmission.
In questo caso 9600 bit al secondo.
70. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
6. void loop() {
7. int keyVal = analogRead(A0);
8. Serial.println(keyVal);
…
NOTA BENE: keyVal è una variabile locale a loop
71. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
9. if (keyVal == 1023) {
10. tone (8, note[0]);
11. }
…
NOTA BENE: if è un’istruzione di controllo
SINTASSI: if (condizione) { … } else { … }
72. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
12. else if (keyVal >= 990 && keyVal <= 1010) {
13. tone (8, note[1]);
14. }
15. else if (keyVal >= 505 && keyVal <= 515) {
16. tone (8, note[2]);
17. }
73. SOTTO COL CODICE
COMINCIAMO A METTERE LE MANI / AL SOFTWARE
18. else if (keyVal >= 5 && keyVal <= 10) {
19. tone (8, note[3]);
20. }
21. else {
22. noTone (8);
23. }
24. }