Introduzione a Arduino

Da GolemWiki.
Jump to navigation Jump to search

Pulsante-arduino.gif Stai leggendo la guida "Arduino"


Arduino-logo.gif

Arduino è una scheda programmabile made in italy con microcontrollore, un chip che racchiude al suo interno un computer vero e proprio con la propria RAM, il proprio processore..., ma con funzione completamente diversa. Esso è fatto per eseguire applicazioni specifiche e prestabilite, ad esempio per un sistema di luci con crepuscolare o un robot. Il primo prototipo è stato realizzato ad Ivrea per gli studenti dell'Interaction Design Institute, il progetto però segue la filosofia open hardware, ovvero è privo di copyright e chiunque può apportare modifiche; infatti gli schemi elettronici e i software di programmazione sono liberamente consultabili e scaricabili da Internet, e diverse aziende hanno prodotto una loro versione di questa scheda.

Si trovano in giro diversi modelli, adattati per ogni esigenza: quelli standard sono UNO e duemilanove, e oltre a questi modelli originali, ci sono un gran numero di cloni, schede simili e compatibili alle originali ma con caratteristiche particolari, come sanguino, che ha a bordo un micro più grande e che è stato utilizzato per il progetto stampante 3D reprap.

Cos'ha di particolare questa scheda? Rispetto alle altre è più facile da usare, e costa notevolmente meno; si programma via USB attraverso l'apposito IDE e può funzionare anche mentre è collegata al computer alimentata via USB. La versione base, "duemilanove" costa circa 25 euro ed è acquistabile da vari shop.

La scheda da vicino

La scheda arduino duemilanove
Una breadboard

Il microcontrollore di arduino è (di solito) un ATmega 328 a 28 piedini (o pin) che permettono lo scambio di informazioni con la scheda. Tuttavia solo 20 di essi possono essere utilizzati per interfacciarsi con sensori e altri componenti, poiché gli altri servono per l'alimentazione e altre funzioni. I collegamenti con i componenti elettronici possono essere fatti attraverso gli strip ed è consigliabile utilizzare una breadboard per i primi esperimenti, in quanto rende più agevole la realizzazione di circuiti senza dover saldare niente. La scheda lavora a 5 Volt e quando lavora autonomamente, senza il computer, ha bisogno di un trasformatore o una batteria, ad una tensione di almeno 7 Volt.

Per programmare arduino hai bisogno dell'interfaccia grafica (IDE) scaricabile dal sito; per alcune versioni ci sono versioni già pacchettizzate nei repository, ma devi comunque installare alcuni pacchetti per la programmazione, ovvero openjdk-6-jre, avr-gcc, avr-gcc-c++, avr-libc. Una volta lanciato, l'IDE dovrebbe apparire cosí:

IDE-arduino.jpg

Nella barra degli strumenti in alto ci sono i comandi fondamentali: il pulsante Arduino-verify.gif per verificare il programma e Arduino-upload.gif per caricarlo sul chip. La prima cosa da fare è selezionare il proprio modello di scheda dal menù Tools>Board (ad es. arduino duemilanove) e, dopo aver collegato arduino all'USB, selezionare la porta di comunicazione attraverso Tools>Serial Port, (ad es. /dev/ttyUSB0). Una volta scritto il programma è sufficiente premere il pulsante upload ed i led TX ed RX della scheda lampeggeranno per qualche secondo, per indicare che il trasferimento sta avvenendo.

Errori

Qualcosa va sempre storto... gli errori appaiono di solito nel terminale nero in basso. Un probabile errore può essere nella sintassi del codice, ad esempio scrivere pinmode invece di pinMode: siccome il C è un linguaggio sensibile alla differenza maiuscole/minuscole, il precedente comando verrà contrassegnato come errore in fase di compilazione:

'pinmode' was not declared in this scope
Prova:2: error: ‘pinmode’ was not declared in this scope

Il compilatore, in parole povere, avverte che non esiste niente con il nome di pinmode, e indica che l'errore è stato commesso nella riga 2 del file Prova.

Qualcosa che succede spesso è dimenticarsi di configurare il tipo di chip quando si va a caricare; l'IDE imposta di default Arduino UNO, ma se la scheda collegata è diversa, quando il computer avvia la comunicazione, non riceve risposta da Arduino, i led RX e TX lampeggiano in modo strano e l'IDE dà errore:

avrdude: stk500_recv(): programmer is not responding

Altri errori comuni sono riassunti alla pagina Troubleshooting del sito ufficiale di Arduino.