LinoLab - Laboratorio di Arduino

Post on 17-Jan-2017

235 views 1 download

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