- Sensor de color TCS3200:
- Components necessaris:
- Diagrama de circuit i connexions:
- Explicació de treball:
En aquest projecte, detectarem els colors mitjançant el mòdul de sensor de color TCS3200 amb Raspberry Pi. Aquí hem utilitzat el codi Python per a Raspberry Pi per detectar els colors mitjançant el sensor TCS3200. Per demostrar la detecció del color, hem utilitzat un LED RGB, aquest LED RGB brillarà amb el mateix color, del qual es presenta l'objecte a prop del sensor. Actualment hem programat Raspberry Pi per detectar només els colors vermell, verd i blau. Però podeu programar-lo per detectar qualsevol color després d’obtenir els valors RGB, ja que cada color està format per aquests components RGB. Consulteu el vídeo de demostració al final.
Prèviament, hem llegit i mostrat els valors RGB dels colors amb el mateix TCS3200 amb Arduino. Abans d’anar més lluny, informeu-vos sobre el sensor de color TCS3200.
Sensor de color TCS3200:
TCS3200 és un sensor de color que pot detectar qualsevol quantitat de colors amb una programació adequada. TCS3200 conté matrius RGB (vermell verd blau). Com es mostra a la figura a nivell microscòpic, es poden veure les caixes quadrades a l’interior de l’ull del sensor. Aquestes caixes quadrades són matrius de matriu RGB. Cadascuna d’aquestes caixes conté tres sensors per detectar la intensitat de la llum vermella, verda i blava.
Per tant, tenim matrius vermells, blaus i verds a la mateixa capa. Per tant, mentre detectem el color no podem detectar els tres elements simultàniament. Cadascuna d’aquestes matrius de sensors s’ha de seleccionar per separat per detectar el color. El mòdul es pot programar per detectar el color concret i deixar els altres. Conté pins per a aquest propòsit de selecció, que s’han explicat més endavant. Hi ha un quart mode que no és un mode de filtre; sense mode de filtre, el sensor detecta llum blanca.

Connectarem aquest sensor a Raspberry Pi i programarem el Raspberry Pi per proporcionar una resposta adequada en funció del color.
Components necessaris:
Aquí fem servir Raspberry Pi 2 Model B amb Raspbian Jessie OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la Introducció de Raspberry Pi i al LED Raspberry PI Parpellejant per començar, a part del que necessitem:
- Raspberry Pi amb sistema operatiu preinstal·lat
- Sensor de color TCS3200
- Xip de comptador CD4040
- LED RGB
- Resistència 1KΩ (3 peces)
- Condensador de 1000uF
Diagrama de circuit i connexions:
Les connexions que es fan per connectar el sensor de color amb Raspberry Pi es donen a la taula següent:
|
Pins del sensor |
Raspberry Pi Pins |
|
Vcc |
+ 3,3v |
|
GND |
terra |
|
S0 |
+ 3,3v |
|
S1 |
+ 3,3v |
|
S2 |
GPIO6 de PI |
|
S3 |
GPIO5 de PI |
|
OE |
GPIO22 de PI |
|
Fora |
CLK de CD4040 |
Les connexions del comptador CD4040 amb Raspberry Pi es donen a la taula següent:
|
CD4040 Pins |
Raspberry Pi Pins |
|
Vcc16 |
+ 3,3v |
|
Gnd8 |
gnd |
|
Clk10 |
SENSE el sensor |
|
Restableix11 |
GPIO26 de PI |
|
Q0 |
GPIO21 de PI |
|
P1 |
GPIO20 de PI |
|
P2 |
GPIO16 de PI |
|
P3 |
GPIO12 de PI |
|
P4 |
GPIO25 de PI |
|
P5 |
GPIO24 de PI |
|
Q6 |
GPIO23 de PI |
|
Q7 |
GPIO18 de PI |
|
Q8 |
Sense conexió |
|
P9 |
Sense conexió |
|
Q10 |
Sense conexió |
|
Q11 |
Sense conexió |
A continuació es mostra el diagrama complet del circuit de la interfície del sensor de color amb Raspberry Pi:

Explicació de treball:
Tots els colors estan formats per tres colors: vermell, verd i blau (RGB). I si coneixem la intensitat del RGB en qualsevol color, podem detectar aquest color. Anteriorment hem llegit aquests valors RGB mitjançant Arduino.
Mitjançant el sensor de color TCS3200, no podem detectar la llum vermella, verda i blava al mateix temps, de manera que hem de comprovar-los un per un. El color que ha de detectar el sensor de color és seleccionat per dos pins S2 i S3. Amb aquests dos pins, podem indicar al sensor quina intensitat de llum de color s’ha de mesurar.
Digueu si hem de detectar la intensitat del color vermell, hem de configurar els dos pins a BAIXA. Després de mesurar la llum VERMELLA, configurarem S2 LOW i S3 HIGH per mesurar la llum blava. Canviant seqüencialment les lògiques de S2 i S3 podem mesurar les intensitats de llum vermella, blava i verda, segons la taula següent:
|
S2 |
S3 |
Tipus de fotodiode |
|
baix |
baix |
Vermell |
|
baix |
Alt |
Blau |
|
Alt |
baix |
Sense filtre (blanc) |
|
Alt |
Alt |
Verd |
Un cop el sensor detecta la intensitat dels components RGB, el valor s’envia al sistema de control dins del mòdul tal com es mostra a la figura següent. La intensitat de llum mesurada per la matriu s’envia al convertidor de corrent a freqüència dins del mòdul. El convertidor de freqüència genera una ona quadrada la freqüència és directament proporcional al valor enviat per la matriu. Amb un valor més alt de la matriu, el convertidor de corrent a freqüència genera l’ona quadrada de freqüència més alta.

La freqüència del senyal de sortida del mòdul del sensor de color es pot ajustar a quatre nivells. Aquests nivells es seleccionen utilitzant S0 i S1 del mòdul del sensor, tal com es mostra a la figura següent.
|
S0 |
S1 |
Escala de freqüència de sortida (f0) |
|
L |
L |
S'apagui |
|
L |
H |
2% |
|
H |
L |
20% |
|
H |
H |
100% |
Aquesta característica és útil quan estem relacionant aquest mòdul amb el sistema amb un rellotge baix. Amb Raspberry Pi seleccionarem el 100%. Recordeu aquí, sota l'ombra, el mòdul del sensor de color genera una sortida d'ona quadrada la freqüència màxima de la qual és de 2500Hz (escala 100%) per a cada color.
Tot i que el mòdul proporciona una ona quadrada de sortida la freqüència de la qual és directament proporcional a la intensitat de llum que cau sobre la seva superfície, no hi ha cap manera fàcil de calcular la intensitat de llum de cada color mitjançant aquest mòdul. No obstant això, podem saber si la intensitat de la llum augmenta o disminueix per a cada color. També podem calcular i comparar els valors de vermell, verd i blau per detectar el color de la llum o el color de l’objecte predefinit a la superfície del mòdul. Per tant, es tracta més d’un mòdul de sensor de color en lloc de mòdul de sensor d’intensitat de llum.
Ara alimentarem aquesta sortida d’ona quadrada al Raspberry Pi, però no el podem donar directament a PI, perquè Raspberry Pi no té comptadors interns. Per tant, primer donarem aquesta sortida al comptador binari CD4040 i programarem Raspberry Pi per prendre el valor de freqüència del comptador a intervals periòdics de 100 ms.
Per tant, el PI llegeix un valor de 2500/10 = 250 màxim per a cada color VERMELL, VERD i BLAU. També hem programat Raspberry Pi per imprimir aquests valors que representen les intensitats de llum a la pantalla com es mostra a continuació. Els valors es resten dels valors predeterminats per arribar a zero. Això és útil per decidir el color.
Aquí els valors predeterminats són els valors de RGB, que s'han pres sense col·locar cap objecte davant del sensor. Depèn de les condicions de llum circumdants i aquests valors poden variar segons l’entorn. Bàsicament estem calibrant el sensor per a lectures estàndard. Per tant, primer executeu el programa sense col·locar cap objecte i observeu les lectures. Aquests valors no seran propers a zero, ja que sempre hi haurà una mica de llum que caurà sobre el sensor independentment d’on el col·loqueu. A continuació, resteu aquestes lectures amb les lectures que obtindrem després de col·locar un objecte per provar. D’aquesta manera podem obtenir lectures estàndard.


Raspberry Pi també està programat per comparar els valors R, G i B per determinar el color de l’objecte situat a prop del sensor. Aquest resultat es mostra mitjançant un LED RGB brillant connectat a Raspberry Pi.
Així que en poques paraules,
1. El mòdul detecta la llum reflectida per l'objecte situat a prop de la superfície.
2. El mòdul del sensor de color proporciona una ona de sortida per R o G o B, escollida seqüencialment per Raspberry Pi a través dels pins S2 i S3.
3. El comptador CD4040 pren l'ona i mesura el valor de la freqüència.
4. PI pren el valor de freqüència del comptador per a cada color per cada 100 ms. Després de prendre el valor cada vegada que PI restableix el comptador per detectar el següent valor.
5. Raspberry Pi imprimeix aquests valors a la pantalla i compara aquests valors per detectar el color de l'objecte i, finalment, encendre el LED RGB amb el color adequat en funció del color de l'objecte.
Hem seguit la seqüència anterior al nostre codi Python. A continuació es mostra el programa complet amb un vídeo de demostració.
Aquí Raspberry Pi està programat per detectar només tres colors, podeu coincidir amb els valors R, G i B en conseqüència per detectar més colors que vulgueu.
