- Sensor de cor TCS3200:
- Componentes necessários:
- Diagrama de circuito e conexões:
- Explicação de trabalho:
Neste projeto iremos detectar as cores usando o módulo TCS3200 Color Sensor Module com Raspberry Pi. Aqui, usamos o código Python para Raspberry Pi para detectar as cores usando o sensor TCS3200. Para demonstrar a detecção de cores usamos um LED RGB, este LED RGB acenderá na mesma cor, cujo objeto é apresentado próximo ao sensor. Atualmente, programamos o Raspberry Pi para detectar apenas as cores vermelho, verde e azul. Mas você pode programá-lo para detectar qualquer cor após obter os valores RGB, já que cada cor é composta por esses componentes RGB. Confira o vídeo de demonstração no final.
Anteriormente, lemos e exibimos os valores RGB das cores usando o mesmo TCS3200 com Arduino. Antes de prosseguir, vamos saber sobre o TCS3200 Color Sensor.
Sensor de cor TCS3200:
TCS3200 é um sensor de cores que pode detectar qualquer número de cores com a programação correta. TCS3200 contém matrizes RGB (Red Green Blue). Conforme mostrado na figura em nível microscópico, pode-se ver as caixas quadradas dentro do olho no sensor. Essas caixas quadradas são matrizes de matriz RGB. Cada uma dessas caixas contém três sensores para detectar a intensidade da luz vermelha, verde e azul.
Portanto, temos matrizes Red, Blue e Green na mesma camada. Portanto, enquanto detectamos a cor, não podemos detectar todos os três elementos simultaneamente. Cada uma dessas matrizes de sensores deve ser selecionada separadamente, uma após a outra, para detectar a cor. O módulo pode ser programado para detectar uma cor específica e deixar as outras. Ele contém pinos para essa finalidade de seleção, que será explicada posteriormente. Há um quarto modo que não é modo de filtro; sem modo de filtro, o sensor detecta luz branca.
Conectaremos esse sensor ao Raspberry Pi e programaremos o Raspberry Pi para fornecer a resposta apropriada dependendo da cor.
Componentes necessários:
Aqui, estamos usando o Raspberry Pi 2 Model B com o Raspbian Jessie OS. Todos os requisitos básicos de hardware e software foram discutidos anteriormente. Você pode consultá-los na introdução do Raspberry Pi e no LED Raspberry PI piscando para começar, exceto pelo que precisamos:
- Raspberry Pi com sistema operacional pré-instalado
- TCS3200 sensor de cor
- Chip contador CD4040
- LED RGB
- Resistor de 1KΩ (3 peças)
- Capacitor 1000uF
Diagrama de circuito e conexões:
As conexões que são feitas para conectar o sensor de cor com Raspberry Pi são fornecidas na tabela abaixo:
Pinos do sensor |
Alfinetes Raspberry Pi |
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 |
As conexões para o contador CD4040 com Raspberry Pi são fornecidas na tabela abaixo:
Pinos CD4040 |
Alfinetes Raspberry Pi |
Vcc16 |
+ 3.3v |
Gnd8 |
gnd |
Clk10 |
FORA do sensor |
Reiniciar 11 |
GPIO26 de PI |
Q0 |
GPIO21 de PI |
T1 |
GPIO20 de PI |
2º trimestre |
GPIO16 de PI |
3º T |
GPIO12 de PI |
Q4 |
GPIO25 de PI |
Q5 |
GPIO24 de PI |
Q6 |
GPIO23 de PI |
Q7 |
GPIO18 de PI |
Q8 |
Sem conexão |
Q9 |
Sem conexão |
Q10 |
Sem conexão |
Q11 |
Sem conexão |
Abaixo está o diagrama de circuito completo da interface do sensor de cores com Raspberry Pi:
Explicação de trabalho:
Cada cor é composta por três cores: Vermelho, Verde e Azul (RGB). E se conhecermos as intensidades de RGB em qualquer cor, podemos detectar essa cor. Lemos anteriormente esses valores RGB usando o Arduino.
Usando o TCS3200 Color Sensor, não podemos detectar a luz vermelha, verde e azul ao mesmo tempo, portanto, precisamos verificá-los um por um. A cor que precisa ser detectada pelo sensor de cores é selecionada por dois pinos S2 e S3. Com esses dois pinos, podemos dizer ao sensor qual a intensidade da luz colorida que deve ser medida.
Digamos que se precisamos sentir a intensidade da cor vermelha, precisamos definir ambos os pinos como BAIXO. Após obter a luz VERMELHA medida, definiremos S2 BAIXO e S3 ALTO para medir a luz azul. Alterando sequencialmente as lógicas de S2 e S3, podemos medir as intensidades da luz vermelha, azul e verde, de acordo com a tabela abaixo:
S2 |
S3 |
Tipo de fotodiodo |
Baixo |
Baixo |
Vermelho |
Baixo |
Alto |
Azul |
Alto |
Baixo |
Sem filtro (branco) |
Alto |
Alto |
Verde |
Uma vez que o sensor detecta as intensidades dos componentes RGB, o valor é enviado para o sistema de controle dentro do módulo conforme mostrado na figura abaixo. A intensidade da luz medida pela matriz é enviada ao conversor de corrente para frequência dentro do módulo. O conversor de freqüência gera uma onda quadrada cuja freqüência é diretamente proporcional ao valor enviado pela matriz. Com o valor mais alto do ARRAY, o conversor de corrente para frequência gera a onda quadrada de frequência mais alta.
A frequência do sinal de saída pelo módulo do sensor de cor pode ser ajustada em quatro níveis. Esses níveis são selecionados usando S0 e S1 do módulo do sensor, conforme mostrado na figura abaixo.
S0 |
S1 |
Escala de frequência de saída (f0) |
eu |
eu |
Desligar |
eu |
H |
2% |
H |
eu |
20% |
H |
H |
100% |
Este recurso é útil quando estamos conectando este módulo ao sistema com clock baixo. Com Raspberry Pi, selecionaremos 100%. Lembre-se aqui, sob a sombra, o Módulo Sensor de Cores gera uma saída de onda quadrada cuja frequência máxima é 2500 Hz (escala de 100%) para cada cor.
Embora o módulo forneça uma onda quadrada de saída cuja frequência seja diretamente proporcional à intensidade da luz que incide sobre sua superfície, não há uma maneira fácil de calcular a intensidade da luz de cada cor por este módulo. No entanto, podemos dizer se a intensidade da luz está aumentando ou diminuindo para cada cor. Também podemos calcular e comparar os valores de Vermelho, Verde e Azul para detectar a cor da luz ou a cor do objeto predefinido na superfície do módulo. Portanto, este é mais um módulo do sensor de cores do que um módulo do sensor de intensidade de luz.
Agora, alimentaremos essa saída de onda quadrada para o Raspberry Pi, mas não podemos fornecê-la diretamente para o PI, porque o Raspberry Pi não tem nenhum contador interno. Portanto, primeiro forneceremos essa saída para o contador binário CD4040 e programaremos o Raspberry Pi para obter o valor da frequência do contador em intervalos periódicos de 100 ms.
Portanto, o PI lê um valor de 2500/10 = 250 máx. Para cada cor VERMELHA, VERDE e AZUL. Também programamos o Raspberry Pi para imprimir esses valores representando as intensidades de luz na tela, conforme mostrado abaixo. Os valores são subtraídos dos valores padrão para chegar a zero. Isso é útil para decidir a cor.
Aqui, os valores padrão são os valores de RGB, que foram tirados sem colocar nenhum objeto na frente do sensor. Depende das condições de luz do ambiente e esses valores podem variar de acordo com o ambiente. Basicamente, estamos calibrando o sensor para leituras padrão. Portanto, primeiro execute o programa sem colocar nenhum objeto e observe as leituras. Esses valores não serão próximos de zero, pois sempre haverá alguma luz incidindo sobre o sensor, não importa onde você o coloque. Em seguida, subtraia essas leituras com as leituras que obteremos depois de colocar um objeto para teste. Dessa forma, podemos obter leituras padrão.
O Raspberry Pi também é programado para comparar os valores R, G e B para determinar a cor do objeto colocado próximo ao sensor. Este resultado é mostrado pelo LED RGB aceso conectado ao Raspberry Pi.
Então, em poucas palavras,
1. O módulo detecta a luz refletida pelo objeto colocado próximo à superfície.
2. O módulo do sensor de cores fornece onda de saída para R, G ou B, escolhida sequencialmente por Raspberry Pi por meio dos pinos S2 e S3.
3. O contador CD4040 pega a onda e mede o valor da frequência.
4. PI obtém o valor de frequência do contador para cada cor a cada 100 ms. Após obter o valor, cada vez que o PI zera o contador para detectar o próximo valor.
5. Raspberry Pi imprime esses valores na tela e os compara para detectar a cor do objeto e, finalmente, acender o LED RGB na cor apropriada, dependendo da cor do objeto.
Seguimos a sequência acima em nosso Código Python. O programa completo é fornecido abaixo com um vídeo de demonstração.
Aqui, o Raspberry Pi está programado para detectar apenas três cores, você pode combinar os valores R, G e B de acordo para detectar mais cores de sua preferência.