Post on 17-Jan-2017
transcript
ARDUINOCASA DELLO STUDENTE | LINOLAB
14 MAGGIO 2016WWW.CENTROCULTURAPORDENONE.IT
LABORATORIO DI
Arduino is an open-source physical computing platform based on a simple I/O board and a development environment
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
- Sostware PRIM
A PA
RTE
- Il primo test
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
SECO
NDA
PART
E
- Saluti e baci
CHI È ARDUINO?
1 DI 3
PRIMA PARTE
CHI È ARDUINO / DOVE NASCE
UN RE D’ITALIA, UN BAR, UNA SCHEDA
RE D’ITALIA DAL 1002 AL 1014Esponente della lotta per la liberazione dell'Italia dalle catene della dominazione straniera.
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.
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 Sostware (IDE) 1.0. The Uno board is the first in a series of USB Arduino boards.
CHI È ARDUINO / IL TEAM
CHI HA IDEATO LA SCHEDA ARDUINO
Massimo BanziGianluca Martino
David Mellis David Cuartielles Tom Igoe
{ …
… }
CHI È ARDUINO / LE PARTI CHE LO COMPONGONO
LA SCHEDA
CHI È ARDUINO / LE PARTI CHE LO COMPONGONO
LE BOARD
CHI È ARDUINO / LE PARTI CHE LO COMPONGONO
LE BOARD
CHI È ARDUINO / LE PARTI CHE LO COMPONGONO
INTEGRATED DEVELOPMENT ENVIRONMENT
CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
ESEMPI DI UTILIZZO
È installato nelle stampanti della MakerBot
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
CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
Con Arduino possiamo fabbricarci il nostro personale etilometro
ESEMPI DI UTILIZZO
CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
Oppure una bilancia collegata ad internet dove registrare le nostre pesate
ESEMPI DI UTILIZZO
CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
MA ANCHE PROTOTIPAZIONE E ESPERIMENTI
illustrazione di Harry Campbell
CHI È ARDUINO / DOVE VIENE UTILIZZATO OGGI
COMMUNITY MOLTO ATTIVE
fonte: www.openmakersitaly.org
GLI STRUMENTI DEL MESTIERE
2 DI 3
CONNETTORE PER L’ALIMENTAZIONEServe per alimentare Arduino se non è collegato alla porta USB. Il range delle tensioni ammesse va da 7 a 12V.
PORTA USBSi occupa dell’alimentazione, di fornire un’entrata per gli sketch, e di comunicare con Arduino (input seriale).
LED TX e RXIndicano la comunicazione tra Arduino e il computer. Utile per il debug.
GND e 5VQuesti 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
GLI STRUMENTI DEL MESTIERE / IL SOFTWARE
INTEGRATED DEVELOPMENT ENVIRONMENT
The Arduino Integrated Development Environment - or Arduino Sostware (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.
GLI SKETCHES
Programs written using Arduino Sostware (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
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
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
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
DIODO
Un diodo è un dispositivo che permette il passaggio della corrente elettrica in una sola direzione.
GLI STRUMENTI DEL MESTIERE / I DIODI
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
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
electronics made easy
SCHEMA DI MONTAGGIO
GLI STRUMENTI DEL MESTIERE / SCHEMI DI MONTAGGIO
NEWS: AUTODESK 123D CIRCUITS
GLI STRUMENTI DEL MESTIERE / UNA NOVITÀ
NEWS: AUTODESK 123D CIRCUITS
GLI STRUMENTI DEL MESTIERE / UNA NOVITÀ
IL PRIMO TEST
3 DI 3
#1 - INTERRUTTORE + RESISTENZA + LED + ARDUINO
IL PRIMO TEST / LET’S START
CIRCUITO #1 / UN BOTTONE ACCENDE UN LED
ROSSO - ROSSO - NERO - NERO - MARRONE
SE LA CORRENTE FOSSE UNA ROCCIA…
Tensione (V)
IL PRIMO TEST / UN PAIO DI NOZIONI IMPORTANTI
Corrente (I)}
} Resistenza (R)
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
Prima di cominciare a costruire un nuovo circuito, è buona prassi rimuovere sempre l’alimentatore dalla scheda Arduino.
ATTENZONE
#1.A - CIRCUITO IN SERIE
IL PRIMO TEST / LET’S START
CIRCUITO #1.A / BOTTONI IN SERIE
ROSSO - ROSSO - NERO - NERO - MARRONE
DELLA RESISTENZAOCCHIO AL PIEDINO
!
#1.B - CIRCUITO IN PARALLELO
IL PRIMO TEST / LET’S START
CIRCUITO #1.B / BOTTONI IN PARALLELO
ROSSO - ROSSO - NERO - NERO - MARRONE
DELLA RESISTENZAOCCHIO AL PIEDINO
!
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
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
very well, coffee break!
BENVENUTI NEL MONDO DI ARDUINO
SECONDA PARTE
PRIMO PROGETTO
1 DI 2
UN SEMAFORO CONTROLLATO CON ARDUINO
COMINCIAMO A METTERCI LE MANI
UN SEMAFORO CONTROLLATO CON ARDUINO
COMINCIAMO A METTERCI LE MANI
hardware + sostware
prima fase: costruiamo il circuito
seconda fase: scriviamo il codice
terza fase: mettiamo d’accordo hw e sw
CIRCUITO #2 / UN SEMAFORO CONTROLLATO DA NOI
A
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
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
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
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
void setup() { … }
IN MOTO IL CERVELLO
void loop() { … }
In Arduino possiamo scrivere delle procedure standard (setup) ed utilizzare dei cicli (loop) …
1 di 2
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.}
“Siate pigri come una volpe!”Linus Torvald
SECONDO PROGETTO
2 DI 2
UN PIANOFORTE CON ARDUINO
COMINCIAMO A METTERCI LE MANI
COMINCIAMO A METTERCI LE MANI
hardware + sostware
prima fase: costruiamo il circuito
seconda fase: scriviamo il codice
terza fase: mettiamo d’accordo hw e sw
UN PIANOFORTE CON ARDUINO
CIRCUITO #3 / UNA TASTIERA MUSICALE CON ARDUINO
10K: MARRONE - NERO - NERO - ROSSO - MARRONE220: ROSSO - ROSSO - NERO - NERO - MARRONE
1M: MARRONE - NERO - NERO - VERDE - MARRONE
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. }
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
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.
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
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 controlloSINTASSI: if (condizione) { … } else { … }
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. }
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. }
REFERENCES
www.arduino.cc
playground.arduino.cc
123d.circuits.io
www.apogeoonline.com
ARDUINOCASA DELLO STUDENTE | LINOLAB