Home
Accesso / Registrazione
 di 

Come osservare la realtà tramite Arduino

arduino_acquisire

Grazie ad Arduino ed alle sue estensioni le applicazioni elettroniche più evolute sono sempre più alla portata di tutti. Con questo articolo vedremo come acquisire immagini da una telecamera analogica tramite Arduino aprendo la strada ad innumerevoli prospettive.

 

Acquisire una immagine da un flusso di dati analogico è il primo passo per realizzare un sistema in grado di interagire con la realtà che ci circonda. Tale obbiettivo è molto ambizioso poichè richiede solitamente hardware e software altamente specializzati in grado di effettuare complesse operazioni molto rapidamente. Grazie alla shield per Arduino (PCB da collegare ad Arduino) Video Experimenter, mostrata in figura sotto, possiamo però usare Arduino per compiere questo piccolo miracolo.

Vediamo subito quali sono i principali problemi per questo tipo di operazione:

- limiti di memoria di Arduino, poichè il processing in tempo reale di un flusso di dati richiede una quantità di memoria decisamente superiore a quella offerta dal buon Arduino

- velocità del ATmega usato da Arduino, poichè quando si tratta di fare processing di immagini servono calcolatori potenti, se le immagini arrivano con un flusso cotinuo di dati analogico allora servono ancora più risorse di calcolo, quindi si deve sacrificare la qualità delle immagini per far tutto con Arduino

Da cui seguono i seguenti limiti nel risultato finale:

- le immagini acquisite avranno risoluzione limitata e saranno in bianco e nero

- la profondità di colore, cioè il numero di bit disponibili per ogni pixel (punto) della matrice che forma l'immagine acquisita è limitato, poichè più bit vogliamo più tempo richiederà la procedura di acquisizione dati e più il soggetto dovrà stare fermo per acquisire una immagine accettabile.

 

Alla fine dell'articolo si potrà scaricare il codice per acquisire immagini con 3 bit di profondità (8 livelli, cioè 2 elevato 3) ed il codice LabVIEW per la gestione lato computer.

 

In pratica vogliamo acquisire un livello dell'immagine per volta, sempre per i limiti di memoria imposti da Arduino, e mandare un livello per volta appena acquisito al computer che sovrapponendo i vari livelli ricostruirà l'immagine desiderata. Quindi sarà necessario settare opportunamento i vari livelli per l'acquisizione dell'immagine in automatico. Il programma per Arduino aspetterà il segnale per iniziare l'acquisizione, ricevuto il segnale salverà temporaneamente l'immagine per poi inviarla al computer ripetendo l'operazione per i vari livelli. Il computer aspetta di ricevere i vari livelli per ricostruire l'immagine. Il risultato finale è mostrato nelle figure sottostanti

come si può notare la qualità non è neppure comparabile a quella ottenibile con una fotocamera digitale o con un cellulare di ultima generazione ma la differenza hardware in questo contesto si fa sentire inevitabilmente.

Passiamo quindi alla lista della spesa...

- Arduino

- il modulo Video Experimenter, che con molto tempo a disposizione potremmo anche realizzare, solo che il livello di complessità è piuttosto elevato

- delle resistenze con tolleranza 1% (marrone), il valore di resistenza non conta, 82k Ohm va bene, ciò che conta è la tolleranza poichè saranno usate in un convertitore DAC con rete a scala ed abbiamo bisogno di una buona precisione

- un potenziometro

In figura sottostante è riportato lo schematico della rete a scala per il convertitore DAC da collegare ad Arduino per settare i livelli per l'acquisizione dell'immagine.

 

Il codice per Arduino e LabVIEW è scaricabile.

Con l'attuale versione del codice viene acquisito un livello dell'immagine per secondo, quindi per ogni immagine sevono 8 secondi, ciò è dovuto al modo di trasmettere i dati sulla connessione seriale, infatti al momento viene trasmesso un bit per volta invece di sfruttare gli 8 bit disponibili per ogni pacchetto.

 

In conclusione non è la soluzione definitiva per acquisire immagini tramite Arduino ma sicuramente un ottimo punto di partenza per chi volesse lanciarsi in questa attività. Il codice e lo schema proposto hanno ampi margini di miglioramento ma sono una base solida da cui partire. Le possibili estensione sono molteplici, filtrare le immagini, riconoscere oggetti, salvare direttamente i dati su SD o creare un sistema di tracking automatico degli oggetti.

La scheda Arduino disponibile da Farnell

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Emanuele

Assuefazione da Arduino

Sembra ormai Arduino sia diventata la droga preferità di chiunque ci capisca un po di elettronica, dall'hobbista al professionista, dall'architetto al meccanico.

E questa probabilmente è la sua forza. Inoltre vorrei sottolineare che piu viene copiato e piu si rafforza (non credo questo concetto sia ben chiaro alle case costruttrici di microcontrollori, diverse da Atmel ovviamente)

Si trova ormai praticamente di tutto con Arduino anche se a livello professionale i progetti lasciano un pò a desiderare, non è questo il punto! Il punto è che si trova di tutto e questo tutto può andar bene all'hobbista ed essere un ottimo punto di partenza per il professionista. E questo è sicuramente un bene :)

ritratto di ardui_no

questa è una grande idea

questa è una grande idea terribile! e cmq preferisco la droga chiamata Arduino a quella che usava Amy Winehouse

ritratto di Carlos Agell

Citare l'autore

Grazie per il riferimento al progetto che ho perseguito e documentato sul mio blog. Sono lieto che la comunità italiana riceve la sua versione in modo che tutti si a giocare con Arduino e le immagini.
Ci sono stati un paio di aggiornamenti sul progetto, come controparte di elaborazione, invece di LabVIEW e un video sul sistema.

Come è un progetto opensource che mi aspettavo un preventivo per l'autore e il link al sito originale. Comunque sono contento di qualcuno il mio lavoro tradotto in italiano e sempre più persone sono esposte ad esso.

Mi scuso per l'italiano in quanto è Google-tradotto. Sono stato in grado di seguire il vostro articolo in italiano (io sono spagnolo) e ci è piaciuto.

Grazie mille

Carlos Agell

http://www.hackingelectronics.blogspot.com/

-------------------- ENGLISH VERSION --------------------------------------------

Thanks for referring to the project I pursued and documented on my blog. I am glad that the italian community gets its version so that everybody gets to play with Arduino and images.
There have been a couple of updates on the project, such as Processing counterpart instead of LabVIEW and a video on the system.

As it is an opensource project I expected a quote to the author and a link to the original website. Anyway I am glad somebody translated my work to italian and more people are exposed to it.

I apologize for the italian as it is Google-translated. I was able to follow your article in Italian (I am Spanish) and enjoyed it.

Thanks a lot

Carlos Agell

http://www.hackingelectronics.blogspot.com/

ritratto di Emanuele

Hola! Carlos

Hola! Carlos,
benvenuto sull'Elettronica Open Source.

Complimenti per l'idea che hai avuto di applicazione per Arduino ed in generale per il tuo blog.

P.S.
Citiamo sempre gli autori dei progetti che presentiamo, infatti proprio all'inizio dell'articolo :) abbiamo messo il link al tuo blog, sulla frase:
"Acquisire una immagine da un flusso di dati analogico"

ritratto di Berni

Hi Carlos

Ciao Carlos,

ti ringrazio per la partecipazione e per gli aggiornamenti
relativi al tuo progetto.

Complimenti per il tuo blog! :)

Solitamente mettiamo il link alle fonti all'inizio del blog,
come in questo caso sulla frase:
"Acquisire una immagine da un flusso di dati analogico"

Cordiali saluti,

Berni

------------------------ ENGLISH VERSION ------------------------

Hi Carlos,

thank you very much for your participation and for the updates
about your project.

Congratulations for you blog! :)

We usually put the link to the original project at the beginning
of the blog, like in this case on the sentence:
"Acquisire una immagine da un flusso di dati analogico"

Best regards,

Berni

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 21 utenti e 68 visitatori collegati.

Ultimi Commenti