- Sensor de color TCS3200:
- Componentes requeridos:
- Diagrama de circuito y conexiones:
- Explicación de trabajo:
En este proyecto vamos a detectar los colores usando el módulo sensor de color TCS3200 con Raspberry Pi. Aquí usamos código Python para Raspberry Pi para detectar los colores usando el sensor TCS3200. Para demostrar la detección de color hemos utilizado un LED RGB, este LED RGB brillará en el mismo color, del cual se presenta el objeto cerca del sensor. Actualmente hemos programado Raspberry Pi para que detecte solo los colores rojo, verde y azul. Pero puede programarlo para que detecte cualquier color después de obtener los valores RGB, ya que cada color está compuesto por estos componentes RGB. Vea el video de demostración al final.
Anteriormente hemos leído y mostrado los valores RGB de los colores usando el mismo TCS3200 con Arduino. Antes de continuar, infórmenos sobre el sensor de color TCS3200.
Sensor de color TCS3200:
TCS3200 es un sensor de color que puede detectar cualquier número de colores con la programación correcta. TCS3200 contiene matrices RGB (rojo, verde, azul). Como se muestra en la figura a nivel microscópico, se pueden ver las cajas cuadradas dentro del ojo en el sensor. Estas cajas cuadradas son matrices de matriz RGB. Cada una de estas cajas contiene tres sensores para detectar la intensidad de la luz roja, verde y azul.
Entonces tenemos matrices rojas, azules y verdes en la misma capa. Entonces, mientras detectamos el color, no podemos detectar los tres elementos simultáneamente. Cada una de estas matrices de sensores debe seleccionarse por separado una tras otra para detectar el color. El módulo se puede programar para detectar el color particular y dejar los demás. Contiene pines para ese propósito de selección, que se explica más adelante. Hay un cuarto modo que no es un modo de filtro; sin modo de filtro, el sensor detecta luz blanca.
Conectaremos este sensor a la Raspberry Pi y programaremos la Raspberry Pi para que proporcione la respuesta adecuada según el color.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Todos los requisitos básicos de hardware y software se discutieron anteriormente, puede buscarlos en la Introducción de Raspberry Pi y el Parpadeo del LED de Raspberry PI para comenzar, aparte de eso, necesitamos:
- Raspberry Pi con sistema operativo preinstalado
- Sensor de color TCS3200
- Chip contador CD4040
- LED RGB
- Resistencia de 1KΩ (3 piezas)
- Condensador 1000uF
Diagrama de circuito y conexiones:
Las conexiones que se realizan para conectar el sensor de color con Raspberry Pi se muestran en la siguiente tabla:
Pines del sensor |
Pines Raspberry Pi |
Vcc |
+ 3,3 V |
GND |
suelo |
S0 |
+ 3,3 V |
S1 |
+ 3,3 V |
S2 |
GPIO6 de PI |
S3 |
GPIO5 de PI |
OE |
GPIO22 de PI |
AFUERA |
CLK de CD4040 |
Las conexiones para el contador CD4040 con Raspberry Pi se muestran en la siguiente tabla:
Pines CD4040 |
Pines Raspberry Pi |
Vcc16 |
+ 3,3 V |
GND8 |
gnd |
Clk10 |
FUERA del sensor |
Restablecer 11 |
GPIO26 de PI |
Q0 |
GPIO21 de PI |
Q1 |
GPIO20 de PI |
Q2 |
GPIO16 de PI |
Tercer trimestre |
GPIO12 de PI |
Cuarto trimestre |
GPIO25 de PI |
Q5 |
GPIO24 de PI |
Q6 |
GPIO23 de PI |
Q7 |
GPIO18 de PI |
Q8 |
Sin conexión |
Q9 |
Sin conexión |
Q10 |
Sin conexión |
Q11 |
Sin conexión |
A continuación se muestra el diagrama de circuito completo del sensor de color de interfaz con Raspberry Pi:
Explicación de trabajo:
Cada color se compone de tres colores: rojo, verde y azul (RGB). Y si conocemos las intensidades de RGB en cualquier color, entonces podemos detectar ese color. Anteriormente hemos leído estos valores RGB usando Arduino.
Al usar el sensor de color TCS3200, no podemos detectar la luz roja, verde y azul al mismo tiempo, por lo que debemos verificarlos uno por uno. El color que necesita ser detectado por el sensor de color se selecciona mediante dos pines S2 y S3. Con estos dos pines, podemos decirle al sensor qué intensidad de luz de color se va a medir.
Digamos que si necesitamos sentir la intensidad del color rojo, entonces debemos configurar ambos pines en BAJO. Después de medir la luz ROJA, configuraremos S2 LOW y S3 HIGH para medir la luz azul. Al cambiar secuencialmente las lógicas de S2 y S3 podemos medir las intensidades de luz roja, azul y verde, de acuerdo con la siguiente tabla:
S2 |
S3 |
Tipo de fotodiodo |
Bajo |
Bajo |
rojo |
Bajo |
Alto |
Azul |
Alto |
Bajo |
Sin filtro (blanco) |
Alto |
Alto |
Verde |
Una vez que el sensor detecta las intensidades de los componentes RGB, el valor se envía al sistema de control dentro del módulo como se muestra en la figura siguiente. La intensidad de la luz medida por matriz se envía al convertidor de corriente a frecuencia dentro del módulo. El convertidor de frecuencia genera una onda cuadrada cuya frecuencia es directamente proporcional al valor enviado por la matriz. Con un valor más alto del ARRAY, el convertidor de corriente a frecuencia genera la onda cuadrada de mayor frecuencia.
La frecuencia de la señal de salida del módulo sensor de color se puede ajustar a cuatro niveles. Estos niveles se seleccionan utilizando S0 y S1 del módulo sensor como se muestra en la siguiente figura.
S0 |
S1 |
Escala de frecuencia de salida (f0) |
L |
L |
Corriente cortada |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Esta característica es útil cuando estamos interconectando este módulo con el sistema con reloj bajo. Con Raspberry Pi seleccionaremos 100%. Recuerde aquí, bajo la sombra, el Módulo Sensor de Color genera una salida de onda cuadrada cuya frecuencia máxima es 2500Hz (escala del 100%) para cada color.
Aunque el módulo proporciona una onda cuadrada de salida cuya frecuencia es directamente proporcional a la intensidad de la luz que cae sobre su superficie, no hay una manera fácil de calcular la intensidad de la luz de cada color mediante este módulo. Sin embargo, podemos saber si la intensidad de la luz aumenta o disminuye para cada color. También podemos calcular y comparar los valores de rojo, verde y azul para detectar el color de la luz o el color del objeto preestablecido en la superficie del módulo. Así que esto es más un módulo de sensor de color que un módulo de sensor de intensidad de luz.
Ahora alimentaremos esta salida de onda cuadrada a la Raspberry Pi, pero no podemos dársela directamente a PI, porque Raspberry Pi no tiene contadores internos. Entonces, primero le daremos esta salida al Contador binario CD4040 y programaremos Raspberry Pi para tomar el valor de frecuencia del contador en intervalos periódicos de 100 ms.
Entonces, el PI lee un valor de 2500/10 = 250 máx. Para cada color ROJO, VERDE y AZUL. También hemos programado Raspberry Pi para imprimir estos valores que representan las intensidades de luz en la pantalla como se muestra a continuación. Los valores se restan de los valores predeterminados para llegar a cero. Esto es útil para decidir el color.
Aquí los valores por defecto son los valores de RGB, que se han tomado sin colocar ningún objeto delante del sensor. Depende de las condiciones de luz del entorno y estos valores pueden diferir según el entorno. Básicamente, estamos calibrando el sensor para lecturas estándar. Así que primero ejecute el programa sin colocar ningún objeto y anote las lecturas. Estos valores no estarán cerca de cero, ya que siempre habrá algo de luz incidiendo sobre el sensor sin importar dónde lo coloque. Luego reste esas lecturas con las lecturas que obtendremos después de colocar un objeto para probar. De esta forma podemos obtener lecturas estándar.
Raspberry Pi también está programada para comparar los valores R, G y B para determinar el color del objeto colocado cerca del sensor. Este resultado se muestra mediante un LED RGB brillante conectado a Raspberry Pi.
En pocas palabras,
1. El módulo detecta la luz reflejada por el objeto colocado cerca de la superficie.
2. El módulo de sensor de color proporciona una onda de salida para R o G o B, elegida secuencialmente por Raspberry Pi a través de los pines S2 y S3.
3. El contador CD4040 toma la onda y mide el valor de frecuencia.
4. PI toma el valor de frecuencia del contador para cada color por cada 100 ms. Después de tomar el valor, cada vez que PI reinicia el contador para detectar el siguiente valor.
5. Raspberry Pi imprime estos valores en la pantalla y compara estos valores para detectar el color del objeto y finalmente iluminar el LED RGB en el color apropiado según el color del objeto.
Hemos seguido la secuencia anterior en nuestro código Python. El programa completo se muestra a continuación con un video de demostración.
Aquí Raspberry Pi está programado para detectar solo tres colores, puede hacer coincidir los valores R, G y B en consecuencia para detectar más colores de su agrado.