- Sensore di colore TCS3200:
- Componenti richiesti:
- Schema elettrico e collegamenti:
- Spiegazione di lavoro:
In questo progetto rileveremo i colori utilizzando il modulo sensore di colore TCS3200 con Raspberry Pi. Qui abbiamo utilizzato il codice Python per Raspberry Pi per rilevare i colori utilizzando il sensore TCS3200. Per dimostrare il rilevamento del colore abbiamo utilizzato un LED RGB, questo LED RGB si illuminerà dello stesso colore, di cui l'oggetto è presentato vicino al sensore. Attualmente abbiamo programmato Raspberry Pi per rilevare solo i colori rosso, verde e blu. Ma puoi programmarlo per rilevare qualsiasi colore dopo aver ottenuto i valori RGB, poiché ogni colore è costituito da questi componenti RGB. Guarda il video dimostrativo alla fine.
Abbiamo precedentemente letto e visualizzato i valori RGB dei colori utilizzando lo stesso TCS3200 con Arduino. Prima di andare oltre, informiamoci sul sensore di colore TCS3200.
Sensore di colore TCS3200:
TCS3200 è un sensore di colore in grado di rilevare qualsiasi numero di colori con la corretta programmazione. TCS3200 contiene array RGB (rosso verde blu). Come mostrato nella figura a livello microscopico, si possono vedere le caselle quadrate all'interno dell'occhio sul sensore. Queste scatole quadrate sono array di matrice RGB. Ciascuna di queste scatole contiene tre sensori per il rilevamento dell'intensità della luce rossa, verde e blu.
Quindi abbiamo array rosso, blu e verde sullo stesso livello. Quindi durante la rilevazione del colore non possiamo rilevare tutti e tre gli elementi contemporaneamente. Ciascuno di questi array di sensori deve essere selezionato separatamente uno dopo l'altro per rilevare il colore. Il modulo può essere programmato per rilevare il colore particolare e lasciare gli altri. Contiene pin per tale scopo di selezione, che è stato spiegato in seguito. C'è una quarta modalità che non è una modalità di filtro; senza la modalità filtro il sensore rileva la luce bianca.
Collegheremo questo sensore a Raspberry Pi e programmeremo il Raspberry Pi per fornire una risposta appropriata a seconda del colore.
Componenti richiesti:
Qui stiamo usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi e LED Raspberry PI lampeggiante per iniziare, oltre a quello di cui abbiamo bisogno:
- Raspberry Pi con sistema operativo preinstallato
- Sensore di colore TCS3200
- Chip contatore CD4040
- LED RGB
- Resistenza da 1KΩ (3 pezzi)
- Condensatore 1000uF
Schema elettrico e collegamenti:
I collegamenti effettuati per collegare il sensore di colore con Raspberry Pi sono riportati nella tabella seguente:
Pin del sensore |
Perni Raspberry Pi |
Vcc |
+ 3.3v |
GND |
terra |
S0 |
+ 3.3v |
S1 |
+ 3.3v |
S2 |
GPIO6 di PI |
S3 |
GPIO5 di PI |
OE |
GPIO22 di PI |
SU |
CLK di CD4040 |
I collegamenti per il contatore CD4040 con Raspberry Pi sono riportati nella tabella seguente:
Perni CD4040 |
Perni Raspberry Pi |
Vcc16 |
+ 3.3v |
Gnd8 |
gnd |
Clk10 |
FUORI dal sensore |
Reimposta 11 |
GPIO26 di PI |
Q0 |
GPIO21 di PI |
Q1 |
GPIO20 di PI |
Q2 |
GPIO16 di PI |
Q3 |
GPIO12 di PI |
Q4 |
GPIO25 di PI |
Q5 |
GPIO24 di PI |
Q6 |
GPIO23 di PI |
Q7 |
GPIO18 di PI |
Q8 |
Nessuna connessione |
Q9 |
Nessuna connessione |
Q10 |
Nessuna connessione |
Q11 |
Nessuna connessione |
Di seguito è riportato lo schema del circuito completo dell'interfaccia del sensore di colore con Raspberry Pi:
Spiegazione di lavoro:
Ogni colore è composto da tre colori: rosso, verde e blu (RGB). E se conosciamo le intensità di RGB in qualsiasi colore, allora possiamo rilevare quel colore. Abbiamo già letto questi valori RGB utilizzando Arduino.
Utilizzando il sensore di colore TCS3200, non siamo in grado di rilevare la luce rossa, verde e blu contemporaneamente, quindi dobbiamo controllarli uno per uno. Il colore che deve essere rilevato dal sensore di colore è selezionato da due pin S2 e S3. Con questi due pin, possiamo dire al sensore quale intensità di luce del colore deve essere misurata.
Diciamo che se dobbiamo rilevare l'intensità del colore rosso, dobbiamo impostare entrambi i pin su BASSO. Dopo aver misurato la luce ROSSA, imposteremo S2 BASSO e S3 ALTO per misurare la luce blu. Cambiando sequenzialmente le logiche di S2 e S3 possiamo misurare le intensità della luce rossa, blu e verde, secondo la tabella seguente:
S2 |
S3 |
Tipo di fotodiodo |
Basso |
Basso |
Rosso |
Basso |
Alto |
Blu |
Alto |
Basso |
Nessun filtro (bianco) |
Alto |
Alto |
verde |
Una volta che il sensore rileva le intensità dei componenti RGB, il valore viene inviato al sistema di controllo all'interno del modulo come mostrato nella figura sottostante. L'intensità della luce misurata dall'array viene inviata al convertitore da corrente a frequenza all'interno del modulo. Il convertitore di frequenza genera un'onda quadra la cui frequenza è direttamente proporzionale al valore inviato dall'array. Con un valore più alto da ARRAY, il convertitore da corrente a frequenza genera l'onda quadra di frequenza più alta.
La frequenza del segnale di uscita dal modulo sensore di colore può essere regolata su quattro livelli. Questi livelli vengono selezionati utilizzando S0 e S1 del modulo sensore come mostrato nella figura sottostante.
S0 |
S1 |
Scala frequenza di uscita (f0) |
L |
L |
Spegnimento |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Questa funzione è utile quando interfacciamo questo modulo al sistema con un clock basso. Con Raspberry Pi selezioneremo il 100%. Ricorda qui, sotto l'ombra, il Color Sensor Module genera un'onda quadra in uscita la cui frequenza massima è 2500Hz (100% in scala) per ogni colore.
Sebbene il modulo fornisca un'onda quadra in uscita la cui frequenza è direttamente proporzionale all'intensità della luce che cade sulla sua superficie, non esiste un modo semplice per calcolare l'intensità della luce di ciascun colore da questo modulo. Tuttavia possiamo dire se l'intensità della luce aumenta o diminuisce per ogni colore. Inoltre possiamo calcolare e confrontare i valori di Rosso, Verde, Blu per rilevare il colore della luce o il colore dell'oggetto preimpostato sulla superficie del modulo. Quindi questo è più un modulo sensore di colore piuttosto che un modulo sensore di intensità luminosa.
Ora alimenteremo questa uscita ad onda quadra al Raspberry Pi ma non possiamo darla direttamente a PI, perché Raspberry Pi non ha contatori interni. Quindi prima daremo questo output al contatore binario CD4040 e programmeremo Raspberry Pi per prendere il valore di frequenza dal contatore a intervalli periodici di 100 msec.
Quindi il PI legge un valore di 2500/10 = 250 max per ogni colore ROSSO, VERDE e BLU. Abbiamo anche programmato Raspberry Pi per stampare questi valori che rappresentano le intensità della luce sullo schermo come mostrato di seguito. I valori vengono sottratti dai valori predefiniti per arrivare a zero. Questo è utile quando si decide il colore.
Qui i valori di default sono i valori di RGB, che sono stati presi senza posizionare alcun oggetto davanti al sensore. Dipende dalle condizioni di luce circostanti e questi valori possono variare a seconda dell'ambiente circostante. Fondamentalmente stiamo calibrando il sensore per letture standard. Quindi esegui prima il programma senza posizionare alcun oggetto e prendi nota delle letture. Questi valori non saranno vicini allo zero poiché ci sarà sempre un po 'di luce che cade sul sensore, indipendentemente da dove lo posizioni. Quindi sottrarre quelle letture con le letture che otterremo dopo aver posizionato un oggetto da testare. In questo modo possiamo ottenere letture standard.
Raspberry Pi è anche programmato per confrontare i valori R, G e B per determinare il colore dell'oggetto posizionato vicino al sensore. Questo risultato è mostrato dal LED RGB acceso collegato a Raspberry Pi.
Quindi, in poche parole,
1. Il modulo rileva la luce riflessa dall'oggetto posto vicino alla superficie.
2. Il modulo sensore di colore fornisce un'onda di uscita per R o G o B, scelta sequenzialmente da Raspberry Pi tramite i pin S2 e S3.
3. Il contatore CD4040 prende l'onda e misura il valore della frequenza.
4. PI prende il valore di frequenza dal contatore per ogni colore per ogni 100 ms. Dopo aver preso il valore ogni volta che PI resetta il contatore per rilevare il valore successivo.
5. Raspberry Pi stampa questi valori sullo schermo e li confronta per rilevare il colore dell'oggetto e infine illumina il LED RGB con il colore appropriato a seconda del colore dell'oggetto.
Abbiamo seguito la sequenza di cui sopra nel nostro codice Python. Il programma completo è fornito di seguito con un video dimostrativo.
Qui Raspberry Pi è programmato per rilevare solo tre colori, puoi abbinare i valori R, G e B di conseguenza per rilevare più colori di tuo gradimento.