Riconoscimento automatico dei colori con ESPertino

Riconoscimento automatico dei colori con ESPertino

Utilizzando un sensore ottico ad elevata integrazione, la scheda ESPertino può essere trasformata in un sistema per il riconoscimento automatico dei colori, diventando un efficace strumento utilizzabile in numerose applicazioni quali robotica, automazione industriale, modellismo e altro ancora. Scopriamo nell’articolo come interfacciare e come utilizzare il sensore con la scheda ESPertino, realizzando alcuni semplici sketch in ambiente Arduino.

Introduzione

Il settore della sensoristica è senza alcun dubbio uno dei più attivi in campo elettronico, con prodotti e soluzioni ad elevata densità di integrazione che si susseguono a ritmo incalzante. Abbiamo appreso da numerosi articoli apparsi su questo blog come i sensori realizzati in tecnologia MEMS offrano prestazioni di assoluto rilievo, soprattutto se confrontati con molti dispositivi elettromeccanici utilizzati in passato. La tecnologia elettronica basata sul silicio, unita alla elevata integrazione dei componenti, ha permesso la realizzazione di sensori sempre più affidabili, precisi, immuni alle vibrazioni e in grado di garantire un lungo periodo di operatività senza subire guasti o malfunzionamenti. In questo articolo ci occuperemo di una particolare categoria di sensori elettronici: i sensori ottici. Più precisamente, il sensore che utilizzeremo nel progetto si basa sul principio di conversione della radiazione luminosa in una forma d’onda di una determinata frequenza; sfruttando questa relazione è possibile risalire alle componenti rossa, verde e blu (RGB, acronimo di Red, Green, Blue) e quindi al colore la cui luce illumina il sensore.

Relazione tra colore e lunghezza d’onda

L’occhio umano è in grado di rilevare soltanto una porzione dello spettro luminoso (nota anche come luce visibile), compresa tra le lunghezze d’onda di 380 nm e 780 nm. Questa regione dello spettro elettromagnetico, alla quale l’occhio umano si è adeguato dopo un processo di evoluzione durato migliaia di anni, coincide con la finestra nell'atmosfera terrestre all’interno della quale la luce può viaggiare. Le radiazioni di frequenza maggiore, come ad esempio i raggi X, sono assorbite dall’atmosfera, allo stesso modo di quanto avviene con le radiazioni di frequenza inferiore come le microonde. La luce emessa dal sole appare normalmente bianca, in quanto è emessa in modo quasi uniforme su tutte le frequenze visibili. Viceversa, un laser è in grado di emettere radiazioni luminose solo di una determinata frequenza (o lunghezza d’onda). Il laser a elio-neon, detto anche laser He-Ne, emette ad esempio una radiazione di colore rosso intenso con lunghezza d’onda pari a 632.8 nm. I laser utilizzati nei lettori Blu-ray emettono invece luce con lunghezza d’onda pari a 405 nm, un valore che rientra nello spettro associato al colore blu (da cui il nome della tecnologia). La lista dei possibili esempi che potremmo fare è praticamente infinita, da cui si deduce come esista una stretta relazione tra lunghezza d’onda e colore. Con l’avvento della tecnologia elettronica allo stato solido, che ha permesso la realizzazione di computer, display e monitor digitali, si è scelto di identificare i colori attraverso il sistema RGB. Secondo questo modello, ad ogni colore è associata una precisa combinazione di valori delle componenti Red, Green e Blu, con range compreso tra 0 e 255. In totale è quindi possibile rappresentare 16.7 milioni di colori differenti. A causa dell’elevata complessità dell’occhio umano e della modalità con la quale si percepiscono i colori, gli esseri umani sono in grado di rilevare colori anche al di fuori della gamma prevista dalla rappresentazione RGB. A titolo di esempio si considerino i due colori rappresentati in Figura 1. La parte superiore dell’immagine, corrispondente al colore rosso, ha una lunghezza d’onda di circa 632.8 nm (come il laser He-Ne) alla quale corrisponde la codifica RGB (255, 66, 0). La parte inferiore dell’immagine, appartenente allo spettro del colore blu, ha una lunghezza d’onda pari a 405 nm (laser Blu-ray) con codifica RGB (130, 0, 200).

Figura 1: due esempi di relazione tra colore e lunghezza d’onda

Il sensore

Il cuore del progetto presentato nell’articolo è il sensore ottico della serie TCS sviluppato da Taos Inc. (Texas Advanced Optoelectronics Solutions), ora parte del gruppo Ams AG, società leader nella progettazione e produzione di sensori ad elevate prestazioni. In commercio sono disponibili tre versioni del sensore, compatibili tra loro e tutte adatte agli scopi del progetto: TCS230 (versione iniziale del sensore), TCS3200 e TCS3210 (versioni più recenti). In Figura 2 si può osservare l’aspetto esteriore del sensore, un chip con soli 8 pin, al centro del quale è collocata una matrice di fotodiodi.

Figura 2: aspetto esteriore di un sensore della serie TCS

D’ora in avanti faremo riferimento alla versione più recente e performante del sensore, ovvero il modello TCS3200. In Figura 3 si può osservare il layout del componente, sia per la versione TCS3200 che per la TCS3210.

Figura 3: layout delle versioni TCS3200 e TCS3210

Le principali caratteristiche tecniche del sensore possono essere così sintetizzate:

  • conversione ad elevata risoluzione dell’intensità di luce in frequenza;
  • tipo di colore e frequenza dell’onda quadra in uscita programmabili;
  • interfacciamento diretto con un microcontrollore;
  • tensione di alimentazione compresa tra 2.7 V e 5.5 V;
  • funzionalità di power down programmabile;
  • errore tipico di non linearità pari a 0.2% alla frequenza di 50 kHz;
  • coefficiente di temperatura stabile e pari a 200 ppm/°C;
  • package per montaggio superficiale a basso profilo.

Il sensore TCS3200 è un convertitore luce-frequenza programmabile che combina in un unico circuito integrato monolitico CMOS una matrice configurabile di fotodiodi al silicio con un circuito di conversione corrente-frequenza. Il segnale di uscita è un’onda quadra perfettamente simmetrica (50% di duty cycle) con frequenza direttamente proporzionale all’intensità della luce che illumina il sensore. Il valore di fondo scala della frequenza in uscita può essere configurato utilizzando uno dei tre preset disponibili, selezionabili attraverso due segnali di controllo. Nella versione TCS3200, il convertitore luce-frequenza legge il segnale proveniente da una matrice di 8x8 fotodiodi (si osservi la Figura 3, in cui si può anche notare come la versione TCS3210 disponga di una matrice di 6x4 fotodiodi). Dei 64 fotodiodi totali, 16 dispongono di un filtro blu, 16 di un filtro verde, 16 di un filtro rosso, mentre i rimanenti 16 non hanno associato alcun filtro. Nella versione TCS3210 la suddivisione è analoga, con la differenza che ognuno dei quattro gruppi è composto da 6 anziché da 16 fotodiodi. I quattro tipi di fotodiodo, a ciascuno dei quali è associato uno specifico colore, sono interlacciati in modo tale da minimizzare gli effetti determinati da una luce incidente non perfettamente uniforme, evitando in questo modo che la zona maggiormente illuminata provochi la saturazione di un colore rispetto agli altri. Tutti i fotodiodi dello stesso colore sono collegati in parallelo. In Figura 4 è mostrato lo schema a blocchi funzionale del sensore, in cui si può notare il segnale luminoso in ingresso, il segnale di uscita ad onda quadra ed i segnali di controllo che ora descriveremo.

Figura 4: schema a blocchi funzionale del sensore di riconoscimento colori

I pin S2 e S3, entrambi di ingresso, servono a selezionare quale gruppo di fotodiodi (rosso, verde, blu o clear) attivare. I pin di ingresso S0 e S1 servono, invece, a selezionare il fattore di scala da applicare alla frequenza di uscita. Le possibili selezioni sono riassunte in Tabella 1 (scalamento della frequenza di uscita f0) e in Tabella 2 (selezione del gruppo attivo di fotodiodi).

S0 S1 Fattore di scala per f0
L L Power down
L H 2%
H L 20%
H H 100%

Tabella 1: selezione del fattore di scala della frequenza di uscita

S2 S3 Selezione gruppo fotodiodi
L L Rosso
L H Blu
H L Clear (nessun filtro)
H H Verde

Tabella 2: selezione del gruppo di fotodiodi

Il convertitore luce-frequenza interno al componente genera un treno di impulsi di ampiezza fissa e lo scalamento è ottenuto collegando l’uscita del convertitore a una serie di divisori di frequenza. Dopo il divisore, l’uscita mantiene un duty cycle del 50% con un valore di frequenza relativa pari a 100%, 20%, o 2%. Lo scalamento della frequenza è utile per interfacciare il componente con diversi tipi di microcontrollore (quelli più lenti richiederanno una frequenza di onda quadra inferiore).

Collegamento del sensore

Il sensore è disponibile in commercio montato su un piccolo PCB corredato dei relativi pin header. Un esempio di modulo, facilmente reperibile online, è visibile in Figura 5.

Figura 5: esempio di modulo con sensore TCS3200/TCS230

Il collegamento alla scheda ESPertino può essere effettuato tramite dei comuni cavetti jumper, seguendo le indicazioni fornite in Tabella 3.

Pin modulo sensore Pin scheda ESPertino
Vcc 3.3 V
GND GND
S0 GPIO2
S1 GPIO4
S2 GPIO16
S3 GPIO17
OUT GPIO18

Tabella 3: pin utilizzati per il collegamento tra modulo sensore ed ESPertino [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3311 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend