2. Che cos’è Arduino?
Arduino è uno strumento per rendere i computer in grado di rilevare e controllare il
mondo fisico esterno.
Si tratta di una piattaforma open-source basata su una semplice scheda di sviluppo, e un
ambiente di sviluppo per la scrittura di software per la scheda.
Arduino può essere usato per sviluppare oggetti interattivi, che ricevono input da diversi
interruttori o sensori, e controllano luci, motori, e altre uscite fisiche.
l'IDE open-source può essere scaricato gratuitamente.
Il linguaggio di programmazione Arduino è un'implementazione di WIRING, una
piattaforma che si basa sull'ambiente di programmazione Processing multimediale
3. Schema a blocchi
Porta seriale COMX
Cavo USB
INPUT
(interruttori, sensori)
Ambiente di sviluppo
(IDE sul PC)
SCHEDA ARDUINO
(microcontrollore
Atmega e C.I.)
OUTPUT
(LED, motori, uscite
fisiche)
Arduino Uno
An ATmega328 running at 16 MHz with
auto-reset, using the optiboot
bootloader (115200 baud, 0.5 KB).
BREADBOARD
4. Vantaggi
Economico –le schede Arduino sono relativamente poco costoso rispetto ad altre
piattaforme a microcontrollore.
Cross -platform - Il software Arduino gira su Windows , Macintosh OSX e sistemi
operativi Linux . La maggior parte dei sistemi a microcontrollore sono limitati a Windows .
Semplice , ambiente di programmazione chiaro - L'ambiente di programmazione
Arduino è facile da usare per i principianti , ma abbastanza flessibile per essere sfruttato
anche da utenti esperti.
Open source; disponibile per estensione software. Arduino viene pubblicato come
strumento open source , disponibile per estensioni di programmatori esperti.
Il linguaggio di programmazione può essere esteso tramite librerie C + + , e le persone che
vogliono capire i dettagli tecnici possono fare il salto da Arduino al linguaggio di
programmazione AVR C su cui è basato .
Open source; disponibile per estensione hardware - Arduino è basato su
microcontrollori ATMEGA8 and ATMEGA168.
5. CREATIVE COMMONS
Licenza Creative Commons Deed
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Tu sei libero di:
Share - di copiare e ridistribuire il materiale in qualsiasi mezzo o formato
Adapt - Remix, trasformare e rielaborare il materiale
per qualsiasi scopo, anche commerciale.
Chi dà la licenza non può revocare queste libertà finché si seguono i termini di licenza.
Alle seguenti condizioni:
Attribution/Attribuzione - Devi fornire crediti opportuni, fornire un link alla licenza, ed
indicare se sono state apportate modifiche.
ShareAlike/Condividi allo stesso modo - Se misceli, trasformi o sviluppi del materiale, è
necessario distribuire i tuoi contributi sotto la stessa licenza dell'originale.
8. Ambiente di sviluppo ARDUINO
L'ambiente di sviluppo Arduino
contiene un editor di testo per la
scrittura del codice con:
una serie di menu
una barra degli strumenti con
pulsanti per funzioni comuni,
una console di testo,
un'area messaggio.
Si collega all’ hardware Arduino per
caricare programmi e comunicare
con loro.
9. Fasi
•
•
•
•
Scrivere il testo del programma
Compilare il programma
Caricarlo sulla scheda
Salvarlo
I programmi scritti usando Arduino sono chiamati
“sketches”.
Vengono scritti nell’ editor di testo e salvati nella
cartella degli sketches con estensione .ino
L'area messaggio fornisce l’esito della
compilazione e visualizza anche gli errori.
L'angolo destro inferiore della finestra visualizza
la scheda corrente e la porta seriale .
I pulsanti della barra degli strumenti consentono
di verificare e caricare i programmi
, creare, aprire e salvare schizzi , e apre il
monitor seriale .
13. Prima prova: BLINK
Blink è un programma di esempio che
troveremo in File/Esempi/01.Basic/Blink
File > Examples > 1.Basics > Blink
Il programma accende un LED integrato
sulla scheda (output pin 13) e lo fa
lampeggiare ad una frequenza che può
essere modificata dal programmatore.
14. Compilare lo sketch Blink
• Verifica (compilazione con eventuali errori)
• Carica sulla scheda attraverso la seriale
• Salva nella cartella degli skatches col nome
ProvaBlink1
16. Lo sketch ha funzionato?
Durante la carica verificare il lampeggiamento dei LED TX e RX
Una volta caricato il programma, verificare che il LED si accenda ad
intermittenza di 1 secondo (periodo 2 secondi, frequenza o,5 Hz)
Modifcare il programma per ottenete un LED che si accenda con
frequenza di 0,1 HZ e verificarne l’accensione. Chiamarlo ProvaBlink2.
Modifcare il programma per ottenete un LED che si accenda per 2
secondi e rimanga spento per 8. Chiamarlo ProvaBlink3.
Ogni quanto tempo si deve accendere il LED collegato al pin 13? Ovvero
quanto tempo deve restare spento e quanto acceso?
Quanto deve essere la durata del bit a 1 e quella del bit a 0?
T = 1/ f
Quale istruzione devo modificare? In che modo?
tb = T /2
tb
T
17. Analisi del programma Blink
/* Blink - Accende e spegne un LED ad intermittenza per un secondo */
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
//Pin 13 has an LED connected on most Arduino boards.
// dà un nome all’oggetto collegato al pin 13 e lo
dichiara varabile intera.
// premendo il reset si fa girare il programma.
// inizializza il pin digitale come OUTPUT.
// the loop routine runs over and over again forever.
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
// acende il LED (HIGH è il livello alto di tensione)
// aspetta per un secondo
// spegne il LED impostando il livello di tensione a LOW
// wait for a second
18. Blink
COMMENTI
Nelle prime righe troviamo alcune frasi che indicano la funzione del programma.
Sono comprese tra /* e */. L’ asterisco potrebbe anche non esserci ma serve a far capire
a chi legge che quel commento indica cosa fa il programma e se è stato modificato.
Tutto ciò che è compreso tra / e / è ignorato da Arduino
Un altro modo per scrivere commenti è il seguente (doppio slash)
int ledPin = 13;
RIGA DI CODICE
// LED connected to digital pin 13
//
commento
20. Struttura
Ecco le istruzioni standard supportate dal linguaggio di programmazione di Arduino.
STRUTTURA
Il codice di qualsiasi programma per Arduino è composto essenzialmente di due parti:
void setup() - Questo è il posto dove mettiamo il codice di inizializzazione. Inizializza
tutte le impostazioni e le istruzioni della scheda (gli INPUT e OUTPUT) prima che il
ciclo principale del programma si avvii.
void loop() - E' il contenitore del codice principale del programma. Contiene una serie
di istruzioni che possono essere ripetute una dopo l'altra fino a quando non
spegnamo la scheda Arduino.
21. COSTANTI
Nella scheda Arduino è inserita una serie predefinita di parole chiave con valori
speciali.
High e Low sono usati per esempio quando si vuole accendere o spegnere un Pin
di Arduino.
INPUT e OUTPUT sono usate per definire se uno specifico Pin deve essere un
dato di entrata o un dato di uscita.
True e False indicano il rispettivo significato italiano: se abbiamo un'istruzione, la
condizione può essere vera o falsa.
22. VARIABILI
Sono aree della memoria di Arduino dove si possono registrare dati e intervenire
all’interno del programma. Quando si dichiara una variabile bisogna dichiararne
anche il tipo. Questo significa dire al processore le dimensioni del valore che si
vuole memorizzare. Ne esistono di diversi tipi:
boolean - Può assumere solamente due valori: vero o falso.
char - Contiene un singolo carattere. L'Arduino lo registra come un numero (ma
noi vediamo il testo). Quando i caratteri sono usati per registrare un
numero, possono contenere un valore compreso tra -128 e 127.
byte - Può contenere un numero tra 0 e 255. Come un carattere usa solamente un
byte di memoria.
int - Contiene un numero compreso tra -32'768 e 32'767. E' il tipo di variabile più
usata e usa 2 byte di memoria.
•
•
N.B. ogni istruzione deve sempre terminare con ";" in tale linguaggio.
Inoltre "//" è usato per inserire commenti che aiutano a comprenderlo.
23. FUNZIONI
pinMode()
Description
Configures the specified pin to behave either as an input or an output.
See the description of digital pins for details on the functionality of
the pins.
Syntax
pinMode(pin, mode)
Parameters
pin: the number of the pin whose mode you wish to set
mode: INPUT, OUTPUT, or INPUT_PULLUP. (see the digital pins page for
a more complete description of the functionality.)
Returns
None
24. FUNZIONI
digitalWrite()
Description
Write a HIGH or a LOW value to a
digital pin.
Syntax
digitalWrite(pin, value)
Parameters
pin: the pin number
value: HIGH or LOW
Returns
none
delay()
Description
Pauses the program for the amount
of time (in miliseconds) specified
as parameter. (There are 1000
milliseconds in a second.)
Syntax
delay(ms)
Parameters
ms: the number of milliseconds to
pause (unsigned long)
Returns
nothing