Analizziamo la neonata Arduino UNO,

la scheda di sviluppo e prototipazione

creata per sostituire la popolare Duemilanove

Alla fine di settembre dell’anno scorso il team di Arduino ha annunciato alla stampa l’imminente disponibilità di due nuove schede, una delle quali è Arduino UNO; in questa puntata del corso riguardante il mondo Arduino vogliamo introdurvi ed insegnarvi ad utilizzare proprio questa novità.

L’origine Italiana del prodotto è (come non mai) esaltata dal nome, il quale, non a caso, è UNO e non ONE (come si direbbe in inglese) e dalla presenza di un ben ecidente marchio “Made in italy” sulla contefione (e sul prodotto), con tanto di simbolo geografico dell’ Italia.

Arduino UNO è la prima su cui appare il nuovo logo scelto dal progetto Arduino, che è il simbolo matematico di infinito, scelto probabilmente per simboleggiare le infinite possibilità d’uso della scheda o la sconfinata espandibilità del progetto open-source da cui Arduino trae origine acquistando Arduino UNO, all’intorno della confezione trovate alcuni adesivi ed un piccolo manuale -riportante lo indicazioni principali sulla licenza di utilizzo- in lingua inglese, come aspettarsi da un prodotto internazionale open-source.

L’impressione che si ha, prendendo in mano questo nuovo hardware, è eccellente: la scheda è di buona qualità e lo stampato è di ottima fattura, con una serigrafia molto precisa e completa.

 

Schema Elettrico

 

La particolarità dell’Arduino UNO e quindi ciò che la distingue nettamente da tutte le altre versioni proposte in questi annii, è che in essa per la connessione USB non viene più utilizzato il convertitore USB-Seriale della FDTI bensì un microcontrollore ATmega8U2 programmato per funzionare come convertitore USB-Seriale. Questo nuovo prodotto della ATMEL e infatti un microcontrollore con a bordo un modulo Transceiver USB liberamente programmabile, come lo hanno ad esempio alcuni PIC della serie 18F della Microchip.

Il nuovo Arduino ha anche ricevuto la certificazione FCC sulle emissioni elettromagnetiche; le diciture “ROHS Compliant” e “Zero carbon footprint” fanno emergere l’interesse del team Arduino per la tutela dell’ambiente.

Arduino UNO è ancora basato sul microcontrollore ATmega328 ( in formato DIP ) e dispone di 14 pin di I/O (di cui 6 utilizzabili come uscite PWM), 6 ingressi analogici, un oscillatore a 16MHz, un connettore per la programmazione In-Circuit ed un Plug per l’alimentazione. Come nelle ultimi versioni di Arduino, è presente un connettore USB che, semplicemente connesso ad un Personal Computer, permette sia di alimentare la scheda, sia di programmarla.

Questa versione di Arduino è da intendersi come la 1.0 basata sulla nuova tecnologia per la connessione alla USB; la pagina di riferimento per comparare tutte le versioni hardware è la seguente: http://arduino.cc/en/Main/Boards. Al solito, il sito Internet di riferimento dove vedere le caratteristiche e trovare tutto quello che riguarda Arduino UNO è www.arduino.cc ( in lingua inglese ).

La Tabella 1 riepiloga le caratteristiche più importanti della scheda Arduino UNO. L’ alimentazione della scheda può avvenire tramite la porta USB, ma e disponibile il solito connettore plug che accetta, in ingresso, una tensione non regolata con valoro compreso tra 7 e 12 volt; in questo caso un semplice alimentatore non stabilizzato universale impostato sul valore di 9 volt è l’ideale, ma nulla vieta di alimentare la scheda tramite una batteria a 9 o 12 volt.

La sorgente di alimentazione viene riconosciuta in automatico e non serve impostare alcun deviatore. La porta USB è comunque protetta da accidentali cortocircuiti nella scheda e comunque da essa non vengono prelevati più dei 500 mA massimi ammessi.

I pin di alimentazione nella scheda Arduino sono i seguenti:

  • VIN; questo, semplicemente replica la tensione fornita in ingresso sul connettore plug e può essere usato per alimentare altri circuiti che dispongano già di un regolatore di tensione (ad esempio gli shield applicati al modulo);
  • 5 V; fornisce i 5 volt dello stabilizzatore di tensione interno alla scheda ed è utile per alimentare altri circuiti compatibili con i 5 volt;
  • 3V3; questo pin fornisce i 3,3 volt ricavati dallo stabilizzatore interno alla scheda e consente di alimentare circuiti compatibili con tensioni di 3,3 volt (la massima corrente prelevabile è di 50 mA);
  • GND; è il contatto di massa (GND).


Installare Arduino UNO su Seven

 

Seven è strutturato in modo da installare in automatico ogni periferica eventualmente cercando in rete i driver più opportuni. Arduino è però una periferica molto particolare, ragion per cui la procedura automatica potrebbe non andare a buon fine.

Quando inserite Arduino il sistema operativo identifica la presenza di una nuova periferica senza però riuscire ad installare i driver, e ovviamente non disponete del CD di installazione, in questo caso dovete procedere manualmente all’installazione dei driver.

Dopo aver inserito la scheda Arduino Cliccate su Avvio-Pannello di controllo-Gestione dispositivi, troverete evidenziata la periferica Arduino con un punto esclamativo in quanto presente ma non correttamente installata.

Cliccate con il pulsante destro del mouse sopra la periferica e selezionate Aggiornamento software Driver… Quindi selezionate a mano la cartella “driver” del software Arduino, la procedura proseguirà adesso in automatico sino alla completa installazione. A questo punto sarà presente la periferica Arduino correttamente installata e verrà indicato quale COM le è stata assegnata.


Caratteristiche di Arduino UNO

Vediamo adesso le prerogative e la dotazione della nuova scheda Arduino, a partire dalla memoria: il microcontrolloro ATmega328 dispone di 32 kB di memoria di programma, della quale 0,5 kB sono usali per il bootloader.

Dispone inoltre di 2 kB di SRAM ed 1 kB di EEPROM utilizzabile, quest’ultima, per il salvataggio di dati permanenti (mantiene i dati anche in assenza di alimentazione).

Quanto agli ingressi e alle uscite, ciascuno dei 14 pin di I/O può essere usato come pin di input o output e può erogare, assorbire una corrente massima di 40 mA; inoltre dispone di una resistenza di pull-UP del valore di 20÷50 kohm (attivabile tramite programmazione). Arduino UNO dispone di sei ingressi analogici (A0,A1,A2,A3.A4 e A5) che per impostazione predefinita hanno risoluzione di 10 bit ed accettano una tensione compresa fra 0 e 5 volt; tuttavia è possibile usare l’ingresso Aref per modificare il rango di misura.

Arduino UNO prevede degli interrupt esterni localizzati ai pin 2 e 3; questi possono essere configurati come trigger per eventi esterni, come ad esempio il rilevamento di un fronte di salita o di discesa di un segnale in ingresso. Il modulo PWM del microcontrollore ATmega si può assegnare ai pin 3, 5, 6, 9,10, e 11. Questi ultimi possono essere configurati via Software per generare segnali l’PWM con risoluzione di 8 bit. Tramite un semplice filtro RC è possibile ottenere tensioni continue di valore variabile. Veniamo alle porte di comunicazione: la seriale fa capo ai pin TX(1) e RX(0) che sono i corrispondenti dell’USART interno al microcontrollore e sono connessi al convertitore USB-Seriale della scheda.

Sempre in tema di comunicazione, va detto che il microcontrollore ATmega328 utilizza il modulo UART interno per comunicare, con livelli logici 0/5 volt, via seriale con altri dispositivi o con un PC. I segnali coi rispondenti sono disponobili sui pin esterni ( TX e RX ) e risultano connessi anche al convertitore USB-Seriale della scheda, il che permette la comunicazione tramite la porta USB del computer. A differenza del chip della FDTI, per il quale ora necessario installare appositi driver, con l’utilizzo dell’integrato ATmega8U2 ciò non è più necessario, in quanto vengono usati i driver comuni della periferica USB già disponibili con il sistema operativo. Tuttavia, con sistemi operativi Windows, per la corretta creazione di una porta COM virtuale è necessario installare un driver aggiuntivo. Allo scopo ricordiamo che Arduino UNO è compatibile con i sistemi operativi Windows, Mac OS X e Linux, per i quali sono previsti i driver.

Il bus SPI fa capo ai pin 10 (SS). Il (MOSI, 12 (MISO), 13 (SCK) i quali possono essere programmati per realizzare una comunicazione SPI, appunto.

Arduino UNO prevede anche un bus I2C, localizzalo ai piedini 4 (SDA) e 5 (SCL) che permettono di realizzare una comunicazione nello standard I2C a due fili, in abbinamento alla libreria Wire.

Concludiamo la carrellata sulle funzionalità di Arduino UNO con il piedino LED (pin 13) che è connesso a un LED interno alla scheda, utile per segnalazioni di diagnostica. Infine abbiamo il Reset: questo contatto, portato a livello logico basso resetta il microcontrollore. La funzione corrispondente può essere attivata anche tramite il pulsante presente nella scheda Arduino.

 

Installazione ed Utilizzo

Per il corretto utilizzo di questa nuova versione di Arduino è opportuno disporre dell’ultima versione del software -la 21- scaricabile gratuitamente all’indirizzo http://arduino.cc/en/Main/Software, la quale contiene sia i driver per Arduino INO sia i Driver per il chip FTDI vh Arduino 2009.

Con sistema operativo Windows, appena connettete Arduino al PC , esso verrà riconosciuto come nuovo hardware e vi verrà chiesta l’installazione del driver, allora non dovrete far altro che specificare come percorso la cartella “driver” del software Arduino (Arduino UNO.inf); Il sistema operativo provvederà alla sua installazione ed alla creazione della porta COM virtuale.

Fatto ciò avviate il software Arduino e specificare l’utilizzo di Arduino UNO, oltre alla COM alla quale è connesso. Il semplice esempio applicativo chiamato File-Esempi-1.Basics-Blink vi permetterà di testare il funzionamento della scheda. Inoltre sono disponibili tutorial e documentazione agli indirizzi web http://arduino.cc/playgrounds/italiano/Tutorials ed http://arduino.cc/en/Reference/HomePage.

Grazie al Bootloader preinstallato a bordo, non e necessario utilizzare alcun programmatore esterno ne è necessario rimuovere il microcontrollore, la connessione USB tra PC e Arduino è sufficiente a permettere la programmazione e la gestione della comunicazione.

La funzione di autoreset interna alla scheda permette la programmazione con un Solo click del mouse. Su questa nuova versione di Arduino è presente un nuovo bootloader basato sul protocollo STK-500, che occupa un quarto di memoria rispetto alla versione precedente.

Adesso sono sufficienti 512 byte di memoria al posto dei 2 kb della precedente versione; inoltre, il nuovo bootloader può gestire la velocità di comunicazione sino a 115 kbps, contro i 57,6 k della precedente versione. Tutta la documentazione sia hardware che software, compresi i sorgenti, è disponibile per il download sul sito di Arduino.

Arduino UNO è predisposta per comunicare in seriale con il PC semplicemente avviando il tools “Serial monitor” sull’ambiente di sviluppo; in questo modo un dato acquisito dalla scheda può essere facilmente visualizzato a video.

Il microcontrollore ATmega8U2 usato come convertitore USB-seriale può essere facilmente programmato in quanto, al suo interno, è già precaricato il bootloader. In questo caso è possibile utilizzare le apposite piazzole di programmazione dopo aver attivato la modalità di programmazione saldando il piccolo jumper disponibile sul retro della scheda.

Il software necessario per lo sviluppo dei programmi per l’ATmega8U2 si chiama Atmel’s FLIP software per Windows ( si scarica dalla pagina web http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886 ) e DFU programmer per Mac OS X e Linux ( si scarica da http://dfu-programmer.sourceforge.net/ ).

Ai più preparati non passerà inosservato il grosso vantaggio di avere il convertitore USB-Seriale programmabile; infatti sino ad ora Arduino poteva essere visto dal PC solo come una periferica seriale e infatti i driver del convertitore della FDTI creavano una seriale virtuale. Adesso, invece, potendo programmate il convertitore, Arduino può essere visto dal sistema operativo del PC come una periferica ad-hoc.

Nulla vieterebbe di far rilevare Arduino come una stampante e quindi, qualora inviaste il comando di stampa da un qualsiasi software, i dati giungerebbero ad Arduino, il quale, magari, può cosi controllare una macchina CNC! Allo stesso modo si potrebbe inventare un nuovo sistema di puntamento che una volta connesso al PC , verrebbe riconosciuto come periferica tipo mouse ed il cursore sullo schermo si muoverebbe guidato da questa nuova periferica.

Vi lasciamo immaginare quale interessante scenario Arduino UNO apre su quanto riguarda lo sviluppo di nuove periferiche per PC.

dal sito Elettronica per cominciare, di Raffaele Ilardo

Share This