Arduino ESPLORA: i creatori di Arduino presentano, nel dicembre 2012, questa nuova scheda. Basata sul progetto della scheda Arduino Leonardo, essa dispone già, di serie, di molti sensori, che permettono di essere subito operativi nel campo dell’elettronica. Il design della scheda ESPLORA ricorda quello tradizionale di un gamepad con un joystick analogico sulla sinistra e quattro pulsanti a destra. Scopriamo com’è fatta!
La nuova Arduino ESPLORA è una scheda a microcontrollore, le sue dimensioni sono di circa 163x60 mm; nella parte alta, a lato della porta USB, sono presenti dei connettori compatibili Tinkerkit che sporgono leggermente dal profilo della scheda. Per fissarla ad una superficie sono presenti quattro fori.
La scheda ESPLORA si differenzia da tutte le schede Arduino precedenti poiché su di essa sono già montati, di serie, diversi sensori. Essa è, inoltre, dotata di una porta di comunicazione USB, che può essere riconosciuta dal computer come un mouse o una tastiera, oltre ad una porta seriale COM / virtuale (CDC).
In particolare sulla scheda ESPLORA sono presenti i seguenti dispositivi:
- Un joystick analogico a due assi (X e Y) con pulsante centrale.
- 4 pulsanti disposti a rombo - Un potenziometro lineare a cursore.
- Un microfono per rilevare il rumore ambientale.
- Un sensore di luce per la misurazione dell’intensità luminosa.
- Un sensore per la misurazione della temperatura ambiente.
- Un accelerometro triassiale (X, Y e Z).
- Un buzzer per produrre suoni.
- Un LED luminoso tipo RGB con elementi Rosso Verde e Blu.
- 2 Ingressi per collegare i moduli sensore della serie Tinkerkit.
- 2 uscite per collegare i moduli attuatori della serie Tinkerkit.
- Un connettore per display tipo TFT a colori opzionale, dotato di uno slot per scheda SD, o altri dispositivi che utilizzano il protocollo SPI.
Analisi del circuito
Dal sito Arduino è possibile scaricare lo schema della scheda, che presenta le seguenti caratteristiche:
- Microcontroller ATMEGA32U4;
- Tensione di funzionamento 5V;
- Flash Memory 32 KB di cui 4 KB utilizzati dal bootloader;
- SRAM 2.5 KB EEPROM 1 KB;
- Velocità di clock 16 MHz .
Schema elettrico della scheda Arduino Esplora
Alimentazione
L’alimentazione della scheda è derivata dalla presa USB, e sebbene la maggior parte dei computer fornisca una protezione interna, questa è protetta da un fusibile resettabile che, nel caso di un assorbimento superiore ai 500 mA, interromperà automaticamente la connessione finché non sarà rimosso il corto o il sovraccarico.
Zona processore
Come detto in precedenza, la scheda utilizza lo stesso processore della Arduino Leonardo, un microcontrollore AVR tipo ATMEGA32U4, che opera a una frequenza di 16 MHz: è connesso ad una porta USB ed è in grado di agire come un dispositivo client USB, come un mouse o una tastiera. Nel circuito è presente un pulsante di reset, con cui è possibile riavviare la scheda.
Ci sono quattro LED di stato: ON [verde] indica se la scheda è alimentata. L [giallo] collegata direttamente al microcontrollore, accessibile attraverso il pin 13. RX e TX [giallo] che indicano che i dati sono trasmessi o ricevuti nel corso della comunicazione USB.
Per la comunicazione la scheda ESPLORA dispone già di una serie di servizi per la connessione con un computer, un altro Arduino, o con altri microcontrollori.
L’ATMEGA32U4 appare come una porta COM virtuale per software sul computer. Il chip funziona anche come dispositivo USB secondo lo standard 2.0. L’integrato supporta, inoltre, la comunicazione SPI a cui si può accedere tramite la libreria SPI.
All’interno della memoria è già presente il bootloader che permette di caricare un nuovo codice senza l'uso di un programmatore hardware esterno. Esso comunica utilizzando il protocollo AVR109.
È anche possibile bypassare il bootloader e programmare il microcontrollore attraverso l'ICSP (In Circuit Serial Programming) presente sulla scheda.
Joystick analogico con pulsante centrale.
Il joystick analogico è posto alla sinistra della scheda ed è formato da due potenziometri connessi a croce, premendo il joystick si attiva poi un pulsante.
I tre segnali: J-XOUT, J-YOUT, J-SW sono collegati all’integrato IC3 tipo 74HC4067D che è un multiplexer/demultiplexer a 16 canali. Questo permette di utilizzare il numero totale di sensori disponibili. Ciò significa che un singolo ingresso analogico del microcontrollore è condiviso tra tutti i canali d’ingresso (eccetto l'accelerometro a tre assi).
Quattro ulteriori pin del microcontrollore permettono di scegliere il canale da leggere.
4 pulsanti disposti a rombo.
Sul lato destro della scheda, sono presenti quattro pulsanti disposti a rombo: ognuno ha la propria resistenza di pull up da 10 kohm per mantenere l'uscita a livello alto quando il pulsante non è premuto; come per il Joystick, le 4 uscite A-S1, A-S2, A-S3, A-S4 sono connesse all’integrato IC3.
Un potenziometro lineare a cursore
Nella parte bassa della scheda, è presente un potenziometro lineare da 1 kohm, collegato come partitore resistivo per variare il livello di tensione in uscita sul pin A-LINEAR connesso sempre all’integrato IC3.
Il valore letto sarà un numero con una risoluzione pari a 10 bit, ed è possibile leggerlo tramite il comando di libreria Esplora.readSlider().
Un microfono per rilevare il rumore ambientale.
La capsula microfonica tipo PMOF-9745P-Q è un microfono omnidirezionale a condensatore Electret, ha una frequenza di funzionamento compresa tra i 20 e i 16000 Hz, il massimo valore del livello di pressione pari a 120 dB S.P.L., un rapporto segnale/rumore di 60 dB.
Nel circuito, il segnale in uscita, è amplificato tramite due amplificatori operazionali contenuti all’interno di un integrato tipo LMV358 del tipo rail-to rail.
Anche in questo caso l’uscita A-MIC è collegata all’integrato IC3, il valore può essere letto tramite il comando di libreria Esplora.readMicrophone().
Sensore di luce per la misurazione dell’intensità luminosa
Per la misurazione dell’intensità luminosa, la scheda ESPLORA ha una fotoresistenza, anche se nello schema e sullo stampato figura un fototransistor.
Le fotoresistenze sono delle particolari resistenze il cui valore dipende dall’intensità e dal colore della luce che le colpisce; in genere sono dei sottili film di solfato di cadmio su un supporto rigido, chiusi in involucri protettivi trasparenti.
Il modello montato presenta a 10 lux valori di resistenza compresi tra 12 kohm e 36 kohm, e un valore massimo di resistenza al buio di 500 kohm
L’uscita A-LIGHT è collegata all’integrato IC3, il valore può essere letto tramite il comando di libreria Esplora.readLightSensor(), che legge l'intensità della luce che colpisce il sensore come un numero a 10 bit. Ciò significa che mapperà tensioni di ingresso comprese tra 0 e 5 volt in valori interi compresi tra 0 e 1023. Questo produce una risoluzione tra le letture di: 5 volt / 1024 unità, 0,0049 volt (4,9 mV) per unità.
Sensore di temperatura per la misurazione della temperatura ambiente.
Per la misurazione della temperatura, la scheda ESPLORA utilizza un integrato tipo TMP36 che è un sensore di temperatura di precisione alimentabile a bassa tensione.
Il sensore fornisce una tensione di uscita che è linearmente proporzionale, la temperatura è in gradi Celsius. Il sensore non richiede nessuna regolazione esterna per fornire precisioni tipiche di ± 1 ° C a +25 ° C e ± 2 ° C nel range compreso tra i -40 ° C e i +125 ° C. L'uscita lineare e la calibrazione di precisione semplificano l'interfacciamento al circuito di controllo della temperatura e ADC. Il sensore è utilizzabile con singola alimentazione con valori compresi tra un minimo di 2,7 V e un massimo di 5,5 V. La corrente assorbita dal sensore è minore di 50 μA, questo permette un basso auto-riscaldamento tipicamente inferiore a 0,1 ° C in aria calma.
Il TMP36 fornisce un uscita di 750 mV a 25 ° C, e opera a 125 ° C con soli 2,7 V di alimentazione.
L’uscita A_TEMP è collegata all’integrato IC3, il valore può essere letto tramite il comando di libreria Esplora.readTemperature(scale) a seconda dell’argomento, il valore della temperatura può essere in Celsius o in Fahrenheit.
Accelerometro triassiale (X, Y e Z).
L’accelerometro triassiale utilizzato sulla scheda ESPLORA, è il modello a basso costo tipo MMA7361 LCR2 prodotto dalla Freescale, misura solamente 3x5x1 mm, ha un consumo di 400uA e opera con una tensione compresa tra i 2.2 e i 3.6V. Presenta una sensibilità di 800 mV / g @1.5g: agendo sul pin G-SEL è possibile scegliere la sensibilità per 1.5 o 6g, agendo sul pin S-TEST si può impostare l’auto test. I tre pin di uscita XOUT, YOUT, ZOUT sono connessi all’integrato IC3 e possono essere letti tramite il comando di libreria Esplora.readAccelerometer(axis) singolarmente, impostando il parametro asse che può essere X_AXIS, Y-AXIS, o Z_AXIS.
Buzzer per produrre suoni.
Per la produzione dei suoni, è presente un buzzer connesso alla porta PD7 del processore. Per non sovraccaricare la porta è presente un transistor tipo NPN BC847. Per la sua gestione sono presenti due comandi della libreria ESPLORA.tone() e ESPLORA.noTone(). Nel primo caso, il comando genera un'onda quadra di frequenza specificata, può essere specificata la durata in millisecondi, altrimenti l'onda continua finché non è richiamato il comando ESPLORA.noTone().
Led RGB con elementi Rosso Verde e Blu per la miscelazione del colore.
Sulla scheda ESPLORA, è presente un led RGB tipo CLP-6C-FKP, il led si presenta come un piccolo rettangolo delle dimensioni di 6x5mm.
Al suo interno sono presenti tre led: Rosso (619-624nm), Verde (520-540nm), Blu (460-480nm) che possiedono un’intensità luminosa di 560-1120 mcd per il led rosso, 1120-2240mcd per il led verde e tra i 280-560 mcd per il led blu. L’angolo di vista è di 120° e per ogni led è prevista una resistenza di limitazione da 1kohm. Per il pilotaggio dei led, sono presenti diversi comandi della libreria come Esplora.writeRGB(red, green, blue) che permettono di miscelare i vari colori, oppure Esplora.writeRed(value), Esplora.writeGreen(value), Esplora.writeBlue(value) per comandare l’emissione dei singoli colori a diverse intensità.
Ingressi e uscite Tinkerkit
La scheda ESPLORA ha quattro connettori compatibili con il sistema Tinkerkit, due ingressi di colore bianco e due di uscita di colore arancio. Questi hanno tre terminali, due per l’alimentazione (+5V e GND) e uno per l’ingresso o l’uscita del segnale. A questi connettori possono essere collegati i moduli della serie Tinkerkit, tra cui moduli sensore come: accelerometri, pulsanti, giroscopi, sensori di tilt, di tocco, magnetici oppure moduli attuatori come led alta potenza, relè, relè allo stato solido, servomotori.
Connettore per display tipo TFT a colori opzionale.
La scheda ESPLORA può essere dotata, di un display tipo TFT (Thin Film Transistor), in italiano transistor a pellicola sottile: è una tecnologia applicata ai display piatti a cristalli liquidi (LCD) o OLED (Organic Light Emitting Diode ovvero diodo organico ad emissione di luce) che vengono in questo modo, identificati come display a matrice attiva. Il display TFT utilizzato è di tipo retroilluminato e misura 1,77" di diagonale, con risoluzione di 160 x 128 pixel, basato sul chip ST7735 che è un controller / driver a chip singolo per 262K colori.
LINK Schema elettrico del display
Questo chip, è in grado di collegarsi direttamente a un microprocessore esterno tramite un’interfaccia SPI. I dati possono essere memorizzati all’interno della memoria RAM on-chip. La retroilluminazione del display è dimmerabile tramite il pilotaggio PWM del mosfet T1.
Il modulo misura 40x44mm circa, nella parte posteriore è presente uno slot per schede micro-SD che, tra le altre cose, permette di memorizzare le immagini bitmap da visualizzare sullo schermo.
Lo schema di alimentazione del modulo, è molto semplice: l’alimentazione a +5V è ridotta al valore di 3,3V con un integrato regolatore LP2985 del tipo a basso rumore e basso valore di dropout che eroga sino a 150 mA.
Per la comunicazione, il display utilizza un protocollo SPI (Serial Peripheral Interface). In questo caso, la scheda ESPLORA è il dispositivo master mentre il display è il dispositivo slave. Abbiamo le tre linee di controllo:
- MISO (Master In Slave Out) - La linea Slave per l'invio dei dati al master.
- MOSI (Master Out Slave In) - La linea principale per l'invio dei dati alle periferiche.
- SCK (Serial Clock) - Gli impulsi di clock che sincronizzano la trasmissione di dati generati dal master.
Lo slot micro-SD riceve l’alimentazione a +3,3V tramite il regolatore presente sulla scheda. L’accesso al contenuto della scheda è possibile tramite la libreria SD Library, questa supporta file systems FAT16 o FAT32 per schede standard SD oppure SDHC.
Per la gestione del display, è disponibile un’apposita libreria che è inclusa in quelle disponibili per l’IDE 1.0.5 e successive. Il comando ESPLORATFT permette alla scheda ESPLORA di comunicare con lo schermo LCD TFT e semplifica il processo di disegno di forme, linee, immagini e testo sullo schermo.
Conclusione e progetti futuri
È così terminata l’analisi della scheda Arduino Esplora, che sembra avere le carte in regola per diventare un’interfaccia di comando wireless.
Il progetto prevede di dotare la scheda di un modulo BlueSMiRF-42 RN che è un modem wireless Bluetooth che può sostituire un collegamento di tipo seriale mediante cavo.
In questo modo sarà possibile comandare un piccolo robot, e ricevere dei dati di telemetria da visualizzare sul display.
I risultati e le prove saranno oggetto di un prossimo articolo.
Interessante… sembra sofisticata ma al tempo stesso molto accessibile.
Una domanda sola, perchè m’è sfuggito: come si programma?
L’IDE di Arduino ora non serve più?
Domando scusa se rispondo prima dell’autore ma mi son trovato a passare 😀
Al di là di quanto possa esserci già caricato, si può e si deve programmare con l’IDE 🙂
Se fai un giro su arduino.cc trovi sketch esempio e altri codici interessanti che possono essere trasferiti tramite quella GUI.
Sulla versione sinceramente non saprei darti nè dritte nè suggerimenti nè consigli e pertanto lascerò che sia l’autore a darne 😀
Si la scheda si programma sempre con l’IDE, questo deve essere la versione 1.0.3 o superiore, attualmente è disponibile la versione 1.0.5
http://arduino.cc/en/Main/Software
Con questa versione è disponibile il driver che è richiesto al momento che la scheda viene riconosciuta dal sistema.
Sono disponibili driver per il sistema Windows 7 validi anche per Windows XP, per Linux Ubuntu 12.04 e per il sistema Mac OS X.
Con l’IDE è inoltre fornita la libreria, presente nella cartella Libraries\Esplora con alcuni esempi d’uso, divisi in Beginners e Experts.
http://arduino.cc/en/Reference/EsploraLibrary
Con gli esempi nella sezione per “principianti” è possibile testare i vari sensori presenti, mentre nella sezione per esperti vi sono esempi più elaborati che fanno anche uso del display, tra l’altro sono presenti alcuni giochi come Kart e Pong.
Nel prossimo articolo parlerò appunto della sua programmazione e illustrerò meglio i comandi disponibili. Per il momento maggiori informazioni possono essere trovate sul sito al link
http://arduino.cc/en/Guide/ArduinoEsplora
salve
Scheda molto interessante sembra fatta a posta per costruirci semplici videogiochi o comandi per robot.
Inoltre il prezzo è molto basso per le funzionalità che offre (circa 40 euro) come sempre del resto quando si parla di arduino forse l’unica pecca è che manca è un giroscopio che può essere molto utile ad esempio per comandare robot con il movimento della scheda.
Sarà il mio prossimo acquisto devo solo pensare l’applicazione giusta da realizzare magari insieme a Raspberry Pi.
Una domanda, esiste un case commerciale apposito per tale scheda? data la sua forma particolare e le sue funzionalità sarebbe una soluzione interessante per poterla proteggere e dare all’applicazione un aspetto più professionale.
Non mi sembra sia ancora stato messo in vendita un case adatto.
L’unico esempio che ho trovato è questo, ma per realizzarlo occorre una stampante 3D.
http://www.thingiverse.com/thing:45880
Il modello proposto sembra una buona base ma a mio parere manca la possibilità di alloggiare al suo interno un sistema per alimentare la scheda in modo autonomo.
Infanti, nel modello proposto la scheda deve essere alimentata tramite il cavo USB, per cui si ha poco raggio d’azione.
Se si vuole utilizzare invece l’Arduino Esplora nella versione autonoma magari per comandare in modo wireless un dispositivo, occorre alimentare la scheda tramite una batteria e un circuito regolatore che fornisca una tensione di 5V, poiché non è presente, a differenza dei precedenti modelli di Arduino un regolatore specifico.
Pensavo di utilizzare una batteria Li – Po con un circuito convertitore CC-CC da 3,7 V a 5V 1A di tipo step-up, in questo modo si avrebbe un dispositivo completamente autonomo.
Credo comunque, che a breve, se la scheda avrà successo, cominceranno a essere commercializzati vari modelli di case, come è stato fatto per la scheda Raspberry.
ciao si mentre leggevo il tuo commento ho pensato la stessa soluzione da te proposta cioè una batteria con un regolatore però io pensavo di usare 2 celle in serie (circa 7V) e un regolatore step-down che generalmente ha un rendimento maggiore e quindi si allunga la durata della batteria.Secondo me non è presente il sistema di alimentazione perchè la scheda è pensata come un sistema di controllo (radiocomando) affiancato magari ad un modulo arduino classico montato sul sistema mobile che effettua la comunicazione e controlla fisicamente il dispositivo. A questo proposito avrei un ulteriore domanda:c’è la possibilità di eseguire politiche di consumo di potenza mettendo le periferiche in sleep mode?
Si l’idea di usare due celle potrebbe essere valida soprattutto se si collegano moduli di comunicazione radio (Bluetooth o XBee, e il display.
Per quanto riguarda l’idea che il dispositivo sia pensato per essere collegato ad una seconda scheda Arduino la vedo macchinosa in quanto il collegamento dovrebbe, a mio parere, essere eseguito tramite il cavo USB per cui la scheda Arduino dovrebbe comunque essere equipaggiata con un USB Host Shield.
Molto più probabilmente la Esplorer è stata realizzata per semplificare l’apprendimento dell’utilizzo dei vari sensori.
Vedremo se nel futuro saranno creati shield specifici magari condividendo il connettore del display.
Per il momento proverò ad interfacciare il mio robot Little bot http://www.adrirobot.it/menu_new/index/index_littlebot.htm
con Arduino Esplora tramite una coppia di moduli bluetooth BlueSMiRF Silver
http://www.adrirobot.it/BlueSMiRF_Silver/modulo_BlueSMiRF_Silver.htm
Per quanto riguarda la modalità sleep mode, ammetto che ne so poco, occorre vedere poi l’applicabilità per il processore della scheda ATMEGA32U4.
Per il momento ho trovato questo, ma è soprattutto per ATmega328
http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/
ciao ma perché scomodare l’usb non ha l’ I2c siccome i comandi da gestire non sono poi tanti e la distanza neanche potrebbe andare bene.
Per la sleep mode forse non mi sono spiegato al meglio non intendevo quella del microprocessore (presente ormai su tutti )che penso sia gestita in automatico spegnendo le periferiche che non vengono utilizzate nel codice ma intendevo proprio la sleep mode delle periferiche esterne con cui tramite un pin del micro si potevano mandare in risparmio energetico ,per esempio, l’accelerometro anche se non usato consuma la stessa energia allora può essere comodo spegnerlo aumentando la durata delle batterie o comunque per ridurre la corrente assorbita.
In fine mi volevo congratulare con te per il sito è spettacolare per uno come me patito di robotica e non ti nego ci ho preso tanti spunti e idee.
Salve gente, sono novizio di Arduino e di Esplora, la versione che ho appena acquistato per cercare di realizzare un progetto piuttosto semplice … un datalogger per accelerazioni.
Vi seguo con piacere da un po’ di tempo ed ho letto con interesse questa presentazione di Esplora … avrei bisogno di una delucidazione da parte degli esperti.
Ho visto che agendo sul pin G-SEL è possibile settare la sensibilità dell’accelerometro … mi sapreste dire qual è il sistema più rapido per procedere al settaggio?
Ho letto e riletto il materiale disponibile sul sito ufficiale ma non sono riuscito a rintracciare nulla che mi potesse aiutare.
Grazie mille e scusate se la domanda vi sembrerà banale 🙂
Saluti
Tesone
Ciao Tesone
Benvenuto nella comunità.
Come sempre uno può rileggere mille volte una cosa ma gli scappa sempre qualcosa.
Se guardavi meglio nel mio articolo, e in particolare nel dettaglio dello schema elettrico della sezione dell’accelerometro avresti notato due Jumper siglati SJ1 e SJ2.
Come hai detto, il sensore permette di modificare la sua sensibilità che è di 800 mV/g a 1.5g o 206 mV/g a 6g.
Per fare questo occorre agire sul pin G-SEL, effettuando un ponticello sul Jumper SJ1.
Di default è presente una resistenza ( R6 da 0 ohm) tra il pin 2 (G-SEL) e GND per cui è impostata la sensibilità di 1.5 g.
Il sensore dispone anche di una funzione di test automatico che consente di verificare l’integrità meccanica ed elettrica dell’accelerometro in qualsiasi momento prima o dopo l’installazione.
Per ottenere questa funzione occorre agire su Jumper SJ2, di default è presente una resistenza (R13 da 0 ohm) tra il pin 2 (S-TEST) e GND, per cui la funzione è disabilitata.
Per meglio chiarirti dove sono questi Jumper guarda la foto
http://www.adrirobot.it/arduino/Arduino_esplora/immagini/Arduino_esplora_accelerometer_jumper.jpg
Altre informazioni le potrai trovare nell’apposita sezione del mio sito
http://www.adrirobot.it/menu_new/index/index_arduino_esplora.htm
Ciao
Adriano
Grande Adriano, ti ringrazio molto … in effetti leggi e rileggi avevo visto che dovevano esserci questi benedetti jumper ma, onestamente, immaginavo fossero jumper “mastodontici” 🙂 tanto da poter fare un ponticello manualmente.
Adesso è tutto chiaro.
Ti ringrazio ancora per la disponibilità e la rapidità nella risposta.
Alla prossima.
Ciao
Tesone