sommario - mohammedchouay.files.wordpress.com · il mio primo, e vero sketch proviamo a dare...
TRANSCRIPT
Chouay Mohammed Elettronica 05/12/2016
1
Sommario Introduzione ...................................................................................................................................................... 1
Arduino .............................................................................................................................................................. 2
Sensori ............................................................................................................................................................... 2
Attuatori ............................................................................................................................................................ 2
Arduino 1 ........................................................................................................................................................... 2
La struttura del Software ................................................................................................................................... 3
Lo sketch più semplice al mondo che non fa nulla ............................................................................................ 3
Come faccio le graffe, se le cancello per sbaglio? ............................................................................................. 4
Il mio primo, e vero Sketch ................................................................................................................................ 4
Vocabolario ...................................................................................................................................................... 10
Introduzione
Arduino ha un basso costo è facile da utilizzare è ha un filosofia “Open Hardware”.
Arduino ha reso accessibile a tutti il Physical Computing.
Chouay Mohammed Elettronica 05/12/2016
2
Arduino
E’ una sorta di piccolo computer, che possiamo far interagire con il mondo che lo
circonda: possiamo collegarlo a dei sensori che lo mettono in condizione di reagire
all’ambiente operando su altri dispositivi attuatori, seguendo una serie di regole e
istruzione che possiamo decidere noi.
Sensori
I sensori sono legati ai 5 sensi:
Senso Sense
Olfatto Sense of smeel Sensori di gas e fumo
Gusto Taste Palato
Udito Hearing Sensori di rumore (Lampada che si accende applaudendo)
microfono
Vista Sight Telecamera
Tatto Touch Sensori impronta digitale (Banche/Iphone)
Attuatori
Dispositivi che compiono delle azioni date da noi tramite Arduino.
Arduino 1
Dispositivo basato su un microcontrollore che permette di realizzare diversi circuiti
elettronici.
Possiede 14 pin digitali programmabili come ingressi e uscite e 6 ingressi per
acquisire ed elaborare segnali analogici.
Ha una memoria flash da 32kb. Viene alimentato tramite usb o tramite l’apposito
connettore: se collegati entrambi la scheda e capace di scegliere automaticamente
la fonte di alimentazione.
Chouay Mohammed Elettronica 05/12/2016
3
La struttura del Software
Per definire il comportamento del nostro prototipo dobbiamo scrivere del software.
In Arduino non ci sono programmi ma sketch, che sono divisi in due sezioni distinte:
Sezioni Funzionalità Esempio
Setup Vengono date le istruzioni da eseguire una sola volta
Il connettore entra nella porta nove, il quale è attaccato al sensore
Loop Vengono date le istruzioni da eseguire finché Arduino
è alimentato
Controlla il valore rilevato dal sensore; se e superiore ad una certa soglia accende la luce, aspetta 10 secondi e ricomincia.
Tolta l’alimentazione Arduino non dimentica nulla, quando lo riaccendiamo
ricomincerà a eseguire la sketch caricato.
Possiamo far ripartire il tutto anche premendo il tasto “Reset” presente sulla
scheda.
Lo sketch più semplice al mondo che non fa nulla
Più semplice di così non si può:
// le righe che cominciano con “//” sono dei commenti
Void setup () {
// qui va il codice di inizializzazione
//viene eseguito una volta sola
Chouay Mohammed Elettronica 05/12/2016
4
}
Void loop () {
// qui va il codice principale
// viene eseguito in continuazione;
}
Possiamo notare due cose:
1. Tutte quello che segue il caratteri “//” è un commento utile per noi, ma viene
ignorato dal programma.
2. Le sezioni Setup e Loop sono delimitate tra parentesi graffe, questo è un
modo per raggruppare blocchi di istruzioni.
Come faccio le graffe, se le cancello per sbaglio?
{
Premi tasto ALTGR + SHIFT + E’
}
Premi tasto ALTGR + SHIFT + Tasto “+”
Il mio primo, e vero Sketch
Proviamo a dare un’occhiata come accendere un LED.
Chouay Mohammed Elettronica 05/12/2016
5
Con questo programma posso far lampeggiare un led presente sulla scheda Arduino.
void setup() {
pinMode(13, OUTPUT);
// Settiamo il PIN13 come Output (Uscita)
}
void loop() {
digitalWrite(13, HIGH); // Assegno al PIN13 un valore digitale. High = Alto =
Valore1; Con questo comando il Led si accenderà.
delay(1000); // Aspetta o ritarda un secondo. (1000 = 1Secondo)
digitalWrite(13, LOW); Assegno al PIN13 un valore digitale. Low = Basso = Valore0;
Con questo comando il Led si spegnarà.
delay(1000); // Aspetta o ritarda un secondo. (1000 = 1Secondo)
}
Possiamo notare due cose:
Chouay Mohammed Elettronica 05/12/2016
6
1. Ogni istruzione che non sia un commento termina con un “;”. Se manca, il
progrmma non legge le istruzioni successive.
2. Il programma distingue le maiuscole da quelle minuscole, per esmpio se
scrivessi “DigitalWrite” invece che “digitalWrite” il comando non verebbe
riconosciuto.
Come caricare uno sketch su Arduino
Prima di caricare un programma su Arduino e necessario verificarlo.
L’ambiente di sviluppo deve codificare quel che abbiamo scritto per renderlo
comprenibile al Harware. Per farlo clicchiamo sul tasto “Verifica”.
Questa operazione di verifica si chiama compilazione.
Una volta possiamo collegare Arduino al PC con un cavo USB e fare click su “Carica”.
Se tutto va bene vedremo il Led lampeggiare per un breve periodo, a indicare che il
PC sta trasferendo le nostre istruzioni, debitamente tradotte ad Arduino. Dop pochi
istanti vedremo il Led lampeggiare.
Definire un comportamento di un Pin
Un Pin è come un bocchettone: Posso decidere di usarlo come un rubinetto dal
quale esce acqua, oppure come uno scarico, in cui fare entrare acqua.
Chouay Mohammed Elettronica 05/12/2016
7
Su una scheda Arduino ci sono diversi Pin.
Quelli numerati da 0 a 13 sono tutti digitali, non conoscono mezze misure:
Prosequendo con analogia, se fossero rubinetti potrebbero essere solo
completamente oppure completamente chiusi.
I vantaggi di Arduino sono la possibilità di modificare il comportamento di Pin digitali
e decidere se usarli come ingressi o uscite.
Un passo avanti = One step beyond
Ci piacerebbe che il led si accendesse in determinate condizioni…
Per esempio quando premiamo un pulsante
Come materiale Hardware ci serve:
Arduino
Cavo usb
Bread board
Led
Una resistenza per non far bruciare il nostro led
Pulsante
Copri pulsante
Cavi per collegare il tutto
Imposteremo per esempio il Pin 7 come input (esempio:pinMode(7,INPUT);).
Chouay Mohammed Elettronica 05/12/2016
8
Colleghiamo il led in serie ad una resistenza per limitare la corrente fornita ad
Arduino ed evitare di danneggiare il led o la scheda.
Per sapere se nel Pin corrente (Come se volessimo vedere se nel tubo sta passando
acqua) si usa il comando digitalRead che accetta due parametri:
Il primo è il Pin che vogliamo comandare
Il secondo ci restituisce anche un valore, nello specifico HIGH (Se al Pin arriva
corrente) LOW in caso contrario.
Esempi:
Esempio Comando Descrizione
Voglio sapere se il Pin 7 è acceso
digitalRead (7) = = HIGH; HIGH = 1 = Passa corrente
Voglio sapere se il Pin 7 è spento
digitalRead (7) = = LOW; Low = 0 = Non passa corrente
Cosa facciamo col dato che ci restituisce digitalRead? Lo possiamo usare per
impostare “una variabile”.
La variabile è una specie di cassettino con un’etichetta (un nome) in cui possiamo
mettere un valore che poi possiamo andare a vedere, o modificare, tutte le volte
che vogliamo.
Per assegnare un valore a una variabile si scrive cosi:
Int LED = digitalRead (7);
Int è un termine speciale che serve ad indicare che tipo di dati metteremo come
variabile.
In questo caso ci dice che la variabile “LED” assumerà un valore intero.
= Si usa per assegnare un valore ad una variabile.
Non avevamo letto che digitalRead restituiva HIGH o LOW?
Questi due valori sono delle costanti usate per ricordarci il significato dei valori che
ci vengono restituiti (esempi predefiniti: HIGH o LOW, INPUT o OUTPUT).
Chouay Mohammed Elettronica 05/12/2016
9
Se volessimo potremmo definire anche noi delle costanti semplicemente scrivendo
prima della dichiarazione della variabile il termine “CONST” che permette di definire
una variabile.
La differenza tra una variabile e una costante è che se la variabile può cambiare
valore tutte le volte che serve, il valore della costante rimane nel tempo costante e
invariato.
Nel Setup dobbiamo dire che il Pin 7 è un ingresso e il 13 è in uscita.
Ma in questo modo dovremmo ricordarci per tutto lo Sketch che il led è sul Pin 13 e
il pulsante sul 7.
Grazie alle variabili potremmo scrivere:
Int LED=13;
Int pulsante= 7;
Void setup(){
pinMode (LED,OUTPUT);
pinMode (pulsante,INPUT);
}
Con questa modifica potremo capire se il pulsante è premuto con
“digitalRead(pulsante);” e accendere il LED scrivendo “digitalWrite(LED,HIGH);”
Le variabili sono state definite fuori dal blocco del setup perchè se le definissimo
all’interno del blocco potremmo usarle solo in quel blocco, mentre noi ne abbiamo
bisogno anche nel loop.
Chouay Mohammed Elettronica 05/12/2016
10
Solo quando lo dirò io: le condizioni
Normalmente il PC esegue tutte le istruzioni del
programma dalla prima all’ultima, ma se per esempio
volessimo ripetere un istruzione più volte o eseguire un
insieme di istruzioni solo quando si verificano determinate
condizioni (tipo che la luce si accenda solo se stiamo
premendo il pulsante) per avere questo, dobbiamo
utilizzare una struttura di controllo è “se succede questo… allora fai quello…”.
La parola chiave per verificare una condizione è “if”:
if(condizione) { // “Se succeed questo”
// elenco dei comandi da eseguire, possono essere tantissimi!
}
Chouay Mohammed Elettronica 05/12/2016
12
Hardware Libero Open Hardware Ovvero componenti elettronici progettati con la
stessa politica del “Open Source”. Questo pensiero è per la libera divulgazione di informazione riguardanti il
progetto stesso dell’hardware, comprendente
dei schemi, la lista dei materiali, il
“Layout”(descrizione di tutti i materiali e componenti
utilizzati) dei dati del circuito stampato.
Sorgente Aperta Open Source Indica un software in cui gli autori rendono pubblico il
codice sorgente, favorendole e permettendo ad altri programmatori di poter eseguire modifiche ed
estensioni.
Interazione fisica del computer
Physical Computing Possibilità di realizzare sistemi (attraverso l’uso di SW e HW), che possano interagire con il
mondo esterno. (Physical Computing= Sensori
+ Arduino + Attuatori.)
Sensori Sensor Dispositivi che ci danno delle informazioni (sono legate ai 5
sensi).
Attuatori Actuator Dispositivi che compiono delle azioni .
Schizzo Sketch Serie di istruzioni in un linguaggio che assomiglia vagamente all’inglese.