Capitolo Zero

Unisciti a noi seguendo questo corso e imparando a conoscere l’elettronica e Arduino. Attraverso questa serie di puntate, vorrei condividere con voi un percorso di conoscenza ed esplorazione del sistema Arduino, facendo alcuni esempi divertenti, utili, interessanti e cose pratiche. Queste lezioni saranno pubblicate nel modo più regolare possibile. Invece di guardare un video in cui qualcuno parla molto velocemente, è possibile leggere e seguire il corso con il proprio ritmo, guardando gli esempi e i circuiti in azione, imparando molto per poi poter realizzare qualcosa di proprio.

Cerchiamo di iniziare…

Ci sono più di quaranta lezioni di questa serie, ma si dovrebbe iniziare sempre da questa (capitolo zero).
Tuttavia è possibile trovare l’elenco completo di tutte le puntate del tutorial e partire da quella che si vuole.
Dopo essersi attrezzati con i componenti necessari e aver seguito le prime tredici puntate, sarete pronti per saltare a qualsiasi altra puntata. Nelle prossime puntate del corso si farà riferimento al libro:

Getting started with Arduino (Il libro è di Massimo Banzi ed è scritto in inglese).

Se hai bisogno di chiarimenti puoi contattarci qui o scriverci sulla pagina facebook.


Prima di tutto, cerchiamo di scomporre il sistema nelle parti fondamentali in cui si divide. Da li possiamo capire cos’è Arduino. ecco una piccola parte estrapolata dal libro Getting started with Arduino:

"Arduino is an open source physical computing platform based on a simple input/output board and a development environment that implements the processing language (www.processing.org). Arduino can be used to develop stand-alone interactive objects, or be connected to software on your computer."

Ed ecco la traduzione per chi non se la cava bene con l'inglese:
Arduino è una piattaforma open source di physical computing basata su una semplice scheda di ingressi/uscite e di un ambiente di sviluppo che implementa il linguaggio Processing (www.processing.org). Arduino può essere usato per sviluppare oggetti interattivi ed autonomi o essere collegato al software sul computer.   

Quindi, abbiamo una parte hardware e una software. Il nostro hardware sarà una specie di personal computer in grado di eseguire il software IDE di Arduino (l’ambiente di sviluppo integrato), e l’Arduino stesso e l’elettronica per funzionare con esso.

Il nostro programma è l’IDE – software molto simile ad un programma di scrittura (word e similari), ma in grado di inviare il programma Arduino (o sketch) al microcontrollore stesso. Questi sketch sono programmi che sono scritti nel linguaggio di programmazione – molto simile al C. Questi sono interpretati da un bootloader – software nel microprocessore che permette di capire il vostro sketch. Poiché Arduino è open source, chiunque può acquistare un microcontrollore vergine e mettere il bootloader su di esso, o anche scrivere il proprio bootloader o modificare quello originale.

Ora parliamo di Arduino. Ma cos’è Arduino? Diamo un’occhiata…

Quello che abbiamo nell’immagine è la scheda Arduino  Uno che utilizza il microcontrollore ATMEGA328. La scheda è composta da un microcontrollore installato in un circuito che ha un’interfaccia USB, una presa corrente DC, e molte linee di ingresso/uscita. Abbiamo inoltre dei LED di stato e altri componenti vari.
Sono sul mercato anche schede più grandi, più piccole, con differenti dimensioni fisiche, interfacce diverse e sketch e dati di memoria a disposizione. Un’ottima scheda con miglioramenti rispetto alle schede Arduino è la serie di Freetronics.

Lo scopo della scheda è quello di semplificare l’accesso al microcontrollore, permettendo di interfacciarsi facilmente con ingressi, uscite, aggiungendo l’alimentazione, e la connessione al PC per la programmazione permettendo di dialogare con altri circuiti. Tuttavia la scheda è più per la convenienza, e si può effettivamente utilizzare il microcontrollore programmato per progetti veri e propri senza usare tutta la scheda Arduino.

Per riassumere, con Arduino è possibile collegare varie forme di ingresso e di uscita, e creare un programma per elaborare e rispondere agli ingressi e alle uscite. Ad esempio, è possibile creare un allarme di temperatura – quando la temperatura sale al di sopra di un valore soglia, l’Arduino potrebbe far suonare un allarme.

Gli ingressi possono comprendere: pulsanti, interruttori, sensori di movimento, sensori di temperatura, sensori di luce, sensore di gas, quadranti che possono essere accesi ( ad esempio una manopola del volume), i ricevitori di dati wireless, ecc.
Le uscite possono comprendere: luci, speaker, motori, pompe, altri circuiti, display a cristalli liquidi, ecc.
In sostanza, tutto quello che può essere acceso o spento, o controllato da elettricità, può essere utilizzato con Arduino.

Per costruire piccoli prototipi molto velocemente, puoi comprare o costruirti delle schede chiamate shield. Queste sono delle interfacce che si incastrano perfettamente nei connettori di Arduino.
Esistono diversi tipi di circuiti che si possono collegare e/o costruire come shield.

Questo significa che con un skecht di programma adatto al circuito elettronico, usando anche delle shield, è possibile fare quasi tutto, dal semplice lampeggiante alla stazione meteo.

Ottimo!

Per fortuna, questo è tutto quello che abbiamo bisogno di imparare per adesso. Ora è il momento di iniziare a fare qualcosa, per applicare le conoscenze teoriche e per capire il funzionamento dei componenti.

Ecco cosa abbiamo bisogno:

• Un computer con Linux, MacOS o Windows con una porta USB e con una connessione ad Internet,

• Un cavo USB con l’attacco della vostra board Arduino,

• Una scheda Arduino o una compatibile. Alcune schede vengono vendute con il cavo USB, controlla prima di acquistarla.

E ora, per iniziare a programmare, installa Arduino IDE seguendo le istruzioni qui. Se stai usando Ubuntu, qui c’è un’ottima guida.

 

Quindi, cosa hai fatto? Sei già riuscito a far lampeggiare un led? Se si, sei stato ipnotizzato dalla cosa, sei rimasto con lo sguardo fisso sul LED lampeggiante?
È ok, puoi ammetterlo. Era la prima volta per ognuno di noi.

Quando si lavora attraverso questa serie di tutorial, potete incontrare file con estensione “.ino”; questa è l’estensione degli sketch di Arduino IDE. In ogni tutorial sarà possibile scaricare gli sketch di esempio per poterli eseguire subito sul proprio Arduino.

A questo punto mi auguro ti sia reso conto che Arduino può essere alimentato dalla porta USB del tuo computer. Tuttavia, se prevedi di utilizzare l’Arduino programmato lontano dal computer, devi prevedere un bel connettore DC con un’alimentazione esterna adatta a far funzionare il tuo circuito.

Ci sono cose davvero di base per iniziare, in rispetto per  i creatori di Arduino. È possibile fare il primo passo, e cioè quello di far lampeggiare il led della board Arduino insieme a noi. Seguiremo passo passo il libro “Getting started with Arduino” che ne parla per un capitolo e cercheremo di  riassumere il tutto.

Blink (lampeggio)

Far lampeggiare un led, è il primo programma che si consiglia di fare non appena la board Arduino è correttamente installata sul computer. È allo stesso tempo il primo esercizio che andiamo a fare con la scheda proprio perché è molto utile per capire il suo funzionamento e le basi di programmazione.

Il LED è un piccolo componente elettronico in grado di emettere luce quando viene attraversato da corrente, funziona con valori molto piccoli di tensione ed è spesso paragonato alla lampadina.

Arduino è dotato di un piccolo LED che è alloggiato sulla scheda stessa. La scritta di fianco a questo LED è la scritta “L”.

Ora andremo a eseguire il programma in cui scriveremo le istruzione che il microcontrollore dovrà eseguire.
Una volta aperto il programma andiamo a selezionare File>Esempi>01.Basics>Blink e si aprirà il programma. Prima di veder lampeggiare il LED è necessario verificare se il programma è scritto correttamente (1). Alla scritta “Compilazione terminata” non ci resta che premere il tasto carica(2) e aspettare un paio di secondi.
Mentre lo sketch viene caricato potrete notare che gli altri due LED (tx e rx) installati sulla board Lampeggeranno allegramente.

Riassumiamo attraverso una serie di immagini quello che dovresti fare:

1. Prendi Arduino e il cavo USB per connetterlo al computer.

2. Collega Arduino al computer

3. Passiamo alla parte di programmazione e seguiamo le indicazioni sopra.

4. Dopo aver inviato lo sketch tramite l'IDE passiamo a guardare la scheda Arduino per verificare se funziona davvero.

Esercizio 0.1

Oro passiamo ad un esercizio più divertente con i led lampeggianti. Ti ricordi supercar (http://it.wikipedia.org/wiki/Supercar) con David Hasselhoff? Michael guidava una macchina automatizzata che era dotata di un’intelligenza artificiale. Quella macchina possedeva una luce lampeggiante in sequenza sotto il cofano.

La tua missione è quella di ricreare questo effetto luminoso mediate l’uso di Arduino e dei led.
Bisognerà fare in modo che il programma faccia accendere in sequenza i led 1-2-3-4-5-6-7-8-7-6-5-4-3-2-1-2-3… il tutto con un ritardo di un secondo.

Per fare questo avrai bisogno di:

• la configurazione standard di Arduino (computer con Arduino IDE, cavo usb, Arduino Uno o compatibile),
• 8 Led rossi (bastano i normali led a 2V 20mA)
• 8 resistenze da 560 ohm ¼ Watt (è stato scelto questo valore di resistenza per abbassare la corrente e proteggere i led, ma potrai mettere resistenze da 150 ohm per ottenere la massima intensità luminosa dei led)
• una breadboard e alcuni cavi di collegamento(jumper).
• una telecamera (opzionale): per documentare il tuo successo!

Suggerimento: è più comodo utilizzare una variabile per poter variare il ritardo di accensione dei led

Dall’esercizio precedente (Blink) abbiamo visto che il led doveva essere collegato al pin 13 (uscita digitale); in questo esercizio utilizzeremo i pin digitali 2-9. La parte Hardware di questo esercizio e molto facile, basta seguire lo schema qui di seguito collegando ai pin di Arduino l’anodo di ogni LED (polo positivo) e poi dal catodo (polo negativo) collegare la resistenza da 470 ohm verso terra. Ecco lo schema:

 

A breve saranno disponibili immagini e video.

 

Ora è il momento di fare qualcosa – scrivere il codice!
Prima di farlo però, dobbiamo pianificare come si devono comportare i LED. di seguito trovi come dovrebbe essere…


Esercizio  0.1 piano di funzionamento
creare una variabile delay per memorizzare la durata del ritardo (in millisecondi)
avviare un ciclo infinito:
Portare a livello alto il pin 2 (led 1 ON) attendere la durata del ritardo e portare il pin 2 a livello basso (led 1 OFF)
Portare a livello alto il pin 3 (led 2 ON) attendere la durata del ritardo e portare il pin 3 a livello basso (led 2 OFF)
Ripetere la stessa cosa per i pin 4-9
Poi rifare accendere i led ma nell’ordine opposto (dal pin 8 al 4 poiché il led collegato al pin 9 si accende una volta sola)
Fine del ciclo infinito

Sei riuscito a scrivere tutti i comandi e a far funzionare il circuito subito al primo colpo? Bravo, se cosi non fosse puoi prendere lo sketch di seguito e analizzarlo per capire quali sono i tuoi errori; Ricorda,  sbagliando si impara. E se hai delle domande, lascia un commento in fondo alla pagina che ti risponderò e cercheremo di rispondere a tutte le tue domande.
Ed ecco di seguito lo sketch di questo esercizio:


/*
esercizio 0.1
Creato 11/06/2013
By Simone Sormani

http://myweb96.altervista.org

LED lampeggianti dalle uscite dei pin 2~9 con effetto luminoso simile supercar (avanti-indietro)
il circuito:
8 led sono collegati alle uscite dei pin dal 2 al 9 e tramite una resistenza da 150 ohm fa a massa (GND)

Basato sullo sketch di John Boxall
*/

// Il setup() viene avviato una volta, poi lo sketch inizia
int del=100; // imposta una valore di ritardo (delay time), equivalente a 100 millisecondi (un centesimo di secondo)
void setup()
{
// inizializza i pin digitali come uscite:
// dopo viene definito il loro utilizzo
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
// Il loop() fa si che lo sketch venga ripetuto per un tempo infinito fino a quando non si scollega l'alimentazione
void loop()
{
digitalWrite(2, HIGH);   // turn on LED on pin 2
delay(del);              // wait (length determined by value of 'del')
digitalWrite(2, LOW);    // turn it off
digitalWrite(3, HIGH);   // turn on LED on pin 3
delay(del);              // wait
digitalWrite(3, LOW);    // turn it off
digitalWrite(4, HIGH);   // turn on LED on pin 4
delay(del);              // wait
digitalWrite(4, LOW);    // turn it off
digitalWrite(5, HIGH);   // turn on LED on pin 5
delay(del);              // wait
digitalWrite(5, LOW);    // turn it off
digitalWrite(6, HIGH);   // turn on LED on pin 6
delay(del);              // wait
digitalWrite(6, LOW);    // turn it off
digitalWrite(7, HIGH);   // turn on LED on pin 7
delay(del);              // wait
digitalWrite(7, LOW);    // turn it off
digitalWrite(8, HIGH);   // turn on LED on pin 8
delay(del);              // wait
digitalWrite(8, LOW);    // turn it off
digitalWrite(9, HIGH);   // turn on LED on pin 9
delay(del);              // wait
digitalWrite(9, LOW);    // turn it off
digitalWrite(8, HIGH);   // turn on LED on pin 8
delay(del);              // wait
digitalWrite(8, LOW);    // turn it off
digitalWrite(7, HIGH);   // turn on LED on pin 7
delay(del);              // wait
digitalWrite(7, LOW);    // turn it off
digitalWrite(6, HIGH);   // turn on LED on pin 6
delay(del);              // wait
digitalWrite(6, LOW);    // turn it off
digitalWrite(5, HIGH);   // turn on LED on pin 5
delay(del);              // wait
digitalWrite(5, LOW);    // turn it off
digitalWrite(4, HIGH);   // turn on LED on pin 4
delay(del);              // wait
digitalWrite(4, LOW);    // turn it off
digitalWrite(3, HIGH);   // turn on LED on pin 3
delay(del);              // wait
digitalWrite(3, LOW);    // turn it off
}

Così oggi hai imparato come impostare un computer per programmare il tuo Arduino,  hai scritto alcuni sketch e hai capito come funzionano le uscite e i ritardi. Anche se non era più di tanto, da qualche parte bisognava iniziare…e ricorda che seguiranno cose molto più grandi.

Alla prossima!

Condividi su: