
Il modulo PixyCam con microcontrollore della NXP e sensore immagine della OminiVision è adatto per diverse applicazioni di elaborazione immagini da impiegare nei robot o in altre soluzioni. L'elaborazione dati richiesta è notevolmente elevata: decine di megabyte al secondo, con il coinvolgimento di una elettronica di processori tale da soddisfare le richeste in un determinato tempo. L'elaborazione avviene per mezzo di un microcontrollore che elabora le immagini del sensore con un frame rate di 50 Hz. L'informazione può viaggiare su diverse interfacce, quali UART, SPI, I2C e USB. Una serie di accessori facilita il posizionamento e il controllo.
Introduzione
Il modulo PixyCam è un sensore di immagini da impiegare per le principali schede open source quali, Arduino, Raspberry Pi, Banana Pi e pcDuino. Il sensore Pixy utilizza un algoritmo di filtraggio del colore, con la possibilità di impiegare ben 4 moduli per un rilevamento a 360°. Opportunamente programmato, Pixy riesce a riconoscere centinaia di oggetti, calcolando la tonalità e la saturazione di ogni pixel RGB del sensore di immagine e utilizzando tutte le informazioni come parametri primari per il rilevamento dell'immagine. Ciò significa che l'illuminazione o esposizione non influenzerà il rilevamento di un elemento, che è un problema frustrante con molti sensori di immagine. Il dispositivo riesce a catturare 50 fotogrammi al secondo e si adatta perfettamente alle librerie di Arduino, Raspberry Pi, Banana Pi e pcDuino con supporto per C/C++ e Python. Pixy ricorda fino a 7 diverse firme di colore, il che significa che se si dispone di 7 oggetti diversi con colori unici, l'algoritmo di filtro colore della scheda Pixy non avrà alcun problema di identificazione. Il PixyCam è anche programmabile in modo da poter inviare solo determinate immagini, ovvero come un "cerca oggetti". E' facile e veloce e ha un programma open source chiamato PixyMon. PixyMon è un'applicazione che gira su Windows, MacOS e Linux. Esso permette di vedere ciò che vede Pixy. Consente inoltre di configurare il modulo sensore, impostare la porta di uscita e di gestire le firme di colore. L'applicazione PixyMon comunica con il sensore PixyCam con un mini-cavo USB standard.
Caratteristiche
Il PixyCam è un sensore per immagini da implementare nel riconoscimento di oggetti con firmware completamente open source. Il sistema è basato sul processore NXP LPC4330 204 MHz Dual Core con sensore Omnivision OV9715 e lente standard M12, con angolo lente di 75° orizzontale, 47° verticale (Figura 1 e 2). In tabella 1 riportiamo alcune caratteristiche.
Categoria | Pixy |
Compatibilità | Arduino, Raspberry Pi, Banana Pi, pcDuino |
Interfacce | UART, SPI, I2V, USB |
Tensione ingresso max. | 10 V |
Tensione di lavoro | 6 - 10 V |
Tensione di lavoro | 6V/DC, 10 V/DC |
Tensione di ingresso min. | 6 V |
Uscite digitali | UART seriale, SPI, I2C, USB, digitlae |
Larghezza | 53 mm |
Altezza | 50 mm |
Memoria Flash | 1 MB |
Assorbimento di corrente | 140 mA |
Lunghezza | 36 mm |
Tabella 1: Caratteristiche del PixyCam
LPC4330 è un microcontrollore con core ARM Cortex-M 4 rivolto particolarmente per applicazioni Embedded, che include ARM Cortex-M0 coprocessor, fino a 264 kB di SRAM, SCTimer/PWM, Serial General-Purpose I/O (SGPIO) interface, 2 high-speed USB controllers, Ethernet, LCD e varie periferiche analogiche e digitali.
Il microcontrollore (MCU) della NXP opera a frequenze fino a 204 MHz. L'ARM Cortex-M4 è un core a 32 bit che offre miglioramenti del sistema in termini energetici (low power), funzionalità di debug avanzate e un alto livello di integrazione. ARM Cortex-M4 utilizza un'architettura di Harvard con istruzioni e dati bus locali separati, nonché un terzo bus per le periferiche e una prefetch unit (Figura 3).
Il sensore OV9715 offre una soluzione 720p video HD a 30/50 fotogrammi al secondo (fps), con tecnologia proprietaria della OminiVision ad alta sensibilità ideale per l'uso in telecamere di sicurezza e sorveglianza. Il sensore OV9715 1/4-inch fornisce full-frame con le immagini sub-campionati o finestrate 8-bit / 10-bit in formato RAW RGB tramite la porta video digitale, e con un controllo completo da parte dell'utente sulla qualità delle immagini, la formattazione e il trasferimento dei dati in uscita. OV9715 incorpora funzioni avanzate di elaborazione delle immagini, compreso il controllo di esposizione, bilanciamento del bianco, correzione lente e la correzione dei pixel difettosi, programmabile tramite l'interfaccia seriale bus di controllo della fotocamera (SCCB). OV9715 è disponibile in un package CSP2 ed è in grado di funzionare in un intervallo di temperatura da -30 °C a + 85 °C (Figura 4).
Il sensore PixyCam è dotato di un accessorio per il facile montaggio e per un controllo servo ottimale a due assi che ne facilita la gestione. L'accessorio Pixy Linker Kit supporta un servomotore a due assi, quest'ultimo attraverso la sua elettronica di controllo gestisce le operazioni di acquisizione immagine per il pilotaggio successivo di un sistema robotico (Figura 5).
Conclusioni e considerazioni
Il sensore di immagine PixyCam di dimensioni circa 50 x 50 mm è un dispositivo di visione che può rapidamente essere programmato come "cerca oggetti" o "identifica oggetti", collegandosi direttamente ad Arduino e altri controller. Un ottimo impiego è quello della robotica per l'implementazione intelligente del riconoscimento oggetti, con conseguente azione del raccogliere un oggetto, inseguire una palla, localizzare una stazione di ricarica. Da implementare anche con altri moduli per migliorare l'identificazione della posizione attraverso soluzioni ad ultrasuoni. PixyCam elabora un intero frame immagine 640x400 ogni 1/50° di secondo (20 millisecondi), ottenendo così un aggiornamento completo delle posizioni di tutti gli oggetti rilevati ogni 20ms.
IL SENSORE VISIVO PIXY SAINT SMART E IL SUPPORTO PIXY LINKER KIT SONO DISPONIBILI A CATALOGO CONRAD CON SPEDIZIONE 24 H

La tecnologia CMOS per l’imaging è in grande spolvero: molti di questi sensori trovano spazio in vari settori a cominciare anche dalla microscopia. Il modulo si presta molto bene anche nei sistemi di sorveglianza, implementando algoritmi di allarme non appena il sensore individua un rilevamento anomalo.
Se non ho capito male, per ottenere un sistema di riconoscimento immagini è necessario interfacciare tre blocchi: la scheda Arduino (per esempio), il modulo PixyCam e il software PixyMon. Si trovano in rete esempi per questo tipo di applicazione?
Il sensore lavora con Arduino o Raspberry che hanno una vasta community di sviluppatori dove eventualmente puoi trovare molte “pre-soluzioni” (i.e. gestione bus I2C) da implementare nel tuo sistema. In ogni caso sul sito del produttore http://cmucam.org trovi molte informazioni.
Va bene, farò una ricerca, grazie.
Avete per caso già trattato applicazioni di lettura dei segnali provenienti da sensori di tipo induttivo in qualche articolo (es. con Arduino, tanto per rimanere in tema) ?
esempio di sensore: http://www.contrinex.com/product/dw-ad-603-03/
Prova a fare una ricerca anche nella categoria “Raspberry Pi” http://it.emcelettronica.com/category/raspberry-pi
Intanto grazie in anticipo.
Io avrei la necessità di riconoscere delle conchiglie della stessa grandezza, ma di diversa forma, una più tonda, l’ altra lunga. Mi dareste due consigli? Grazie mille
Hai bisogno di una camera tipo questo, e poi sviluppare del codice per il tipo di risconoscimento richiesto. Questa scheda è arduino compatibile.
Mi potresti indirizzare da qualcuno che sia in grado di farlo?
Buongiorno ho un nastro trasportatore dove passano delle piastrine avrei la necessità di selezionare delle piastrine in ferro che hanno una lettera o un segno distintivo , quando arrivano quelle senza lettera o segno attivare un’uscita.
Grazie
Salvatore u
Il sensore andrebbe bene. Bisogna programmare il software in maniera adeguata per rivelare le differenze.
Grazie , ma programmare il software del sensore? ho programmare il Raspberry? a me basterebbe che il sensore rilevando una lettera stampigliata sulla piastrina dia un’uscita , poi il resto della gestione la farei con gli I/O del raspberry.
Grazie
Sul blog trovi il corso raspberry…dovresti trovare qualche esempio.