Istituto d'Istruzione Tecnica e Professionale
Di Orvieto Barbini Federico
Anno Scolastico 2012/2013
Arduino Open Source
2012/2013
Indice
- Arduino
- Origini
- Funzionamento
- Programmazione di uno Sketch
- Applicazioni pratiche:
- Trasduttore di Temperatura
- Cubo Led
- LED
- Boom Economico
- Pier Paolo Pasolini
- Robot Origini
Arduino è stato costruito nel 2005 dal prof. Massimo Banzi e nel giro di pochi anni è divenuto un dispositivo molto venduto: nel 2008 già 50'000 esemplari erano stati venduti. Arduino è un hardware che permette la progettazione rapida e l'apprendimento veloce dei principi fondamentali dell'elettronica e della programmazione. La piattaforma Arduino viene venduta in versione pre-assemblata, acquistabile da internet o in negozi specializzati.
La particolarità del progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per chiunque: si tratta quindi di un hardware open source. In questo modo, chi lo desideri può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata, scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici necessari. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo, e infatti oggi è possibile scegliere tra un'enorme quantità di schede Arduino compatibili. Grazie alla base software comune, ideata dai creatori del progetto, per tutti gli utilizzatori è stato possibile sviluppare programmi per connettere a questo hardware molti tipi di oggetti elettronici: computer, sensori, display, motorini elettrici o attuatori e molto altro. Dopo anni di sperimentazione è oggi possibile fruire di un database di informazioni vastissimo.
2
Arduino Open Source
2012/2013
Funzionamento
Arduino è un dispositivo elettronico che permette l'acquisizione di dati, l'elaborazione di questi e ha la capacità di realizzare una funzione in base all'elaborazione; questo processo è definito con il termine inglese, non traducibile in italiano, “physical computing”. Arduino permette l'apprendimento veloce dei principi fondamentali dell'elettronica, su cui è basato, e della programmazione. È composto da una piattaforma hardware per il physical computing sviluppata presso l'Interaction Design Institute, un istituto con sede a Ivrea, fondato da Olivetti e Telecom Italia. Questa si basa su un circuito stampato essenzialmente composto di un microcontrollore con PIN connessi alle porte Input/Output, un regolatore di tensione, una connessione USB che permette la comunicazione con il computer ed un connettore cilindrico con cui viene alimentato con una corrente continua a 9 volt.
A questo hardware è affiancato un ambiente di sviluppo integrato (IDE: Integrated Development Environment) multipiattaforma (per Linux, Windows e Macintosh). Il linguaggio è semplice e intuitivo, derivato da C e C++, chiamato “Wiring”; la programmazione avviene tramite “Sketch”, un programma open source, in altre parole gratuito, reperibile su internet gratuitamente.
Breve teoria sulla programmazione di uno sketch
setup()
La funzione setup() è chiamata una volta che il programma è avviato. Si usa per inizializzare le modalità pin, o iniziare la comunicazione seriale.
Esempio:
void setup() // funzione di configurazione degli Input/Output
{
pinMode(pin, OUTPUT); // assegna il 'pin' come uscita (output)
}
loop()
La funzione loop() fa esattamente quello che suggerisce il suo nome, in altre parole esegue un ciclo infinito (loop), permettendo al programma di modificare, rispondere e controllare la scheda Arduino.
Esempio:
void loop() // programma principale (main) --> ciclo infinito (loop)
{
digitalWrite(pin, HIGH); // forza il pin al livello ALTO = HIGH = ON = 1
delay(1000); // esegue una pausa di 1000 millisecondi = 1 secondo
digitalWrite(pin, LOW); // forza il pin a livello BASSO = LOW = OFF = 0
3
Arduino Open Source
2012/2013
delay(1000); // esegue una pausa di 1000 millisecondi = 1 secondo
} { } parentesi graffe
Definiscono l'inizio e la fine dei blocchi di funzione e di blocchi delle istruzioni. Una parentesi graffa aperta “{“ deve sempre essere seguita da una parentesi graffa di chiusura “}”: in altre parole il numero delle parentesi graffe deve essere sempre pari e il numero delle parentesi aperte è uguale al numero delle parentesi graffe chiuse.
L'ambiente di compilazione di Arduino include una comoda funzione per controllare il bilanciamento di parentesi graffe. Basta selezionare una parentesi, o anche scegliere il punto d'inserimento immediatamente dopo una parentesi graffa, e la sua compagna logica sarà evidenziata.
; punto e virgola
Un punto e virgola deve essere utilizzato per terminare un'istruzione e separare gli elementi o istruzioni del programma.
commento su più righe: /*… */
linea di commento// Variabili (definizione, dichiarazione)
int calcolo; // indica che la variabile che si chiama calcolo è un numero intero.
int calcolo=3; // indica che la variabile che si chiama calcolo è un numero intero e a quel punto del programma vale 3.
Costanti HIGH e LOW
Costanti che definiscono il livello di un pin: HIGH e LOW
Un tipico esempio di programma per iniziare a far pratica è quello che permette l'accensione ripetuta di un LED. Nell'ambiente di sviluppo di Arduino, l'utilizzatore potrebbe farlo con un programmino come il seguente:
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // abilita il pin 13 per l'output
}
void loop () {
digitalWrite (LED_PIN, HIGH); // accende il LED
delay (1000); // aspetta 1 secondo (1000 millisecondi)
digitalWrite (LED_PIN, LOW); // spegne il LED
delay (1000); // aspetta un secondo
} 4
Arduino Open Source
2012/2013
1° applicazione: trasduttore di temperatura LM35
Classificazione del trasduttore:
- Analogico, la tensione in uscita varia con continuità;
- Di tensione, genera direttamente una tensione in uscita;
- Diretto, non ha bisogno di alcun circuito di condizionamento.
- Passivo, ha bisogno di un'alimentazione esterna.
Un trasduttore è un componente elettronico che serve per trasformare una grandezza fisica (umidità, velocità, pressione, temperatura ecc...) in un segnale elettrico. Lo scopo di questa applicazione è di far acquisire la temperatura al trasduttore per poi riportarla su un display. Il trasduttore di temperatura, in questo caso un LM35, ha un campo di impiego che va da -55°C a +150°C con una scala di 10mV/°C e un'alimentazione compresa tra 5 e 20 V.
2° applicazione: cubo di LED
Occorrente:
- 27 LED;
- 9 resistori da 270Ω;
- 3 resistori da 10Ω;
- 3 transistor NPN 2N2222;
Tramite lo “sketch” si riesce a programmare la scheda Arduino in modo da creare effetti di luce personalizzati in base al programma scritto. I LED sono collegati in 3 righe orizzontali, con il catodo in comune, e in 9 colonne verticali con anodo in comune in modo da avere delle coordinate per accendere ciascun LED. Le uscite della scheda che vanno da 0 a 8 sono collegate alle colonne del cubo tramite una resistenza per limitare la corrente sui LED; le uscite 9, 10 e 11 vanno a 3 transistor che pilotano ciascuna delle 3 righe; infine sono collegati a massa gli emettitori dei 3 transistor.
5
Arduino Open Source
2012/2013
Diodi LED
Un diodo ad emissione luminosa o LED (Light Emitting Diode) è un dispositivo che sfrutta le proprietà ottiche di alcuni materiali semiconduttori per produrre fotoni attraverso il fenomeno dell'emissione spontanea. Il primo LED è stato sviluppato nel 1962.