Sommario - mohammedchouay.files.wordpress.com · Il mio primo, e vero Sketch Proviamo a dare...

13
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.

Transcript of Sommario - mohammedchouay.files.wordpress.com · Il mio primo, e vero Sketch Proviamo a dare...

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

11

Vocabolario

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.

Chouay Mohammed Elettronica 05/12/2016

13