Como usar o sensor de reconhecimento de cores TCS230/TCS3200 com Arduino

Como usar o sensor de reconhecimento de cores TCS230/TCS3200 com Arduino

A detecção de cores é o processo de identificar e distinguir cores em uma imagem, vídeo, cena ou objeto. Muitas aplicações embarcadas e robóticas exigem esse recurso, pois é útil para classificação, seleção, leitura de tiras de teste, determinação de caminho e muito mais.

Dois sensores padrão usados ​​para detecção de cores incluem TCS230 ou TCS3200. O TCS3200 reconhece várias cores com base em seu comprimento de onda e é fácil de interagir com qualquer microcontrolador usando GPIO. O TCS230 é um pouco mais sensível, detectando uma faixa mais estreita de cores com maior precisão.

Neste projeto, faremos a interface do sensor TCS230/TCS3200 (qualquer um pode ser usado) com o Arduino Mega, calibraremos o sensor e derivaremos os valores RGB para cores específicas.

Componentes necessários

  1. Arduino UNO/Arduino Mega x1
  2. Sensor de cor TCS230/TCS3200 x1
  3. Fios de conexão/DuPont

Os sensores de reconhecimento de cores
Os sensores TCS230 e TCS3200 detectam e medem a intensidade da luz em diferentes comprimentos de onda para determinar a cor de um objeto. Eles podem detectar várias cores usando uma matriz de fotodiodos com diferentes filtros.

O TCS230/TCS3200 contém quatro LEDs brancos que iluminam o objeto à sua frente.

Normalmente, os sensores de reconhecimento de cores têm quatro canais: vermelho, verde, azul e transparente (sem filtro). O TCS3200 tem uma matriz de fotodiodos com quatro filtros. No total, ele tem 16 fotodiodos com filtros vermelho, verde e azul que são sensíveis aos comprimentos de onda vermelho, verde e azul; e tem 16 fotodiodos sem filtros.

Esses sensores controlam o tempo de integração durante o qual coletam luz. Isso lhes permite flexibilidade na adaptação a diferentes condições de iluminação para maior precisão de reconhecimento de cores. TCS230/TCS3200 fornecem sinais de saída analógicos proporcionais à intensidade de luz de cada canal de cor. Eles também têm um conversor de frequência para voltagem que converte as informações de cor em um sinal de voltagem, que pode ser facilmente medido.

Além disso, o TCS230/TCS3200 usa uma técnica de modulação e filtragem para eliminar a interferência da luz ambiente, melhorando ainda mais a precisão da detecção de cores. Ao escolher seletivamente as leituras do filtro de fotodiodo, a força das cores pode ser identificada.

Esses sensores operam a uma tensão de 2,7 ~ 5,5 V DC e possuem o diagrama de pinos abaixo.

Descrição da configuração dos pinos TCS230/TCS3200:

Os pinos S2 e S3 são usados ​​para ler a intensidade de luz de uma cor específica. Os fotodiodos são conectados em paralelo, então definir S2 e S3 para LOW e HIGH em diferentes combinações permite que os fotodiodos sejam correspondidos às cores correspondentes.

As cores são selecionadas conforme a tabela a seguir.

Os pinos S0 e Si dimensionam a frequência de saída para 100%, 20% ou 2% dos parâmetros predefinidos. O dimensionamento da saída otimiza as leituras do sensor para diferentes microcontroladores ou contadores de frequência.

Ao usar Arduino, 20% é típico. O dimensionamento usando os pinos S0 e S1 é feito de acordo com a tabela a seguir.

Conexões de circuito
Para este projeto, conectaremos o sensor de cores TCS230/TCS3200 ao Arduino Mega da seguinte forma:

  • Conecte os pinos S0, S1, S2, S3 e de saída do TCS230 / TCS3200 com GPIO13, GPIO12, GPIO11, GPIO10 e GPIO9 do Arduino, respectivamente.
  • Em seguida, conecte os pinos VCC e GND do TCS230/TCS3200 com os pinos 5Vout e ground do Arduino, respectivamente.

Esboço do Arduino

Como funciona
O Arduino lê a intensidade da luz de cada cor usando o sensor TCS230/TCS3200 escolhendo os canais vermelho, verde e azul, um após o outro. Os valores “lidos” são mapeados para seus valores calibrados apropriados para uma saída colorida RBG. Observe que o valor da cor RGB só é obtido após a calibração.

O sensor é afetado pela luz ambiente. Então, a calibração de detecção de cor só é possível após a calibração da luz ambiente. Esses valores RGB não correspondem aos valores de cor RGB verdadeiros, mas são uma estimativa decente e valiosa para classificar ou selecionar objetos.

Calibração
O sensor TCS230/TCS3200 deve ser calibrado na mesma luz em que será usado. Imprima as cores vermelha (#FF0000), verde (#00FF00) e azul (#0000FF) em uma folha, junto com uma cor para teste, conforme mostrado na imagem abaixo.

Primeiro, coloque o sensor na cor “vermelho verdadeiro” e anote as leituras para os canais vermelho, verde e azul. Repita para as cores “verde verdadeiro” e “azul verdadeiro”.

Quando o sensor está na cor vermelha verdadeira, a saída de frequência do canal vermelho estará no nível mais baixo. Quando estiver em verde verdadeiro ou azul verdadeiro, a saída de frequência estará no máximo para qualquer uma das cores. A frequência mais baixa é mapeada em 255 e a frequência mais alta registrada é mapeada em 0.

Após obter os valores mínimo e máximo de cada cor, mapeie-as no esboço usando a função map . Isso já foi feito no esboço acima. Mas você precisará fazer isso com base na iluminação do seu ambiente. Desta forma, o sensor estará calibrado para as condições de luz ambiente nas condições de operação do seu projeto.

O código
O esboço começa definindo as atribuições dos pinos para o sensor de cores TCS230/TCS3200. A seguir, são declaradas as variáveis ​​para armazenamento dos valores RGB. Na função setup , os pinos conectados a S0, S1, S2 e S3 são definidos como saídas digitais e o pino conectado ao TCS230/TCS3200 é definido como entrada digital. O pino S0 está definido como HIGH e o S1 está definido como LOW – selecionando uma escala de 20%, o que é mais adequado para Arduino. A taxa de transmissão para comunicação serial é definida como 9600 bps.

Na função loop , o Arduino primeiro seleciona o canal vermelho do sensor definindo os pinos S2 e S3 como LOW. Ele lê a frequência da cor vermelha, mapeando seus valores calibrados usando a função de mapa. O valor do filtro vermelho é impresso na porta serial. O Arduino então seleciona o canal verde do sensor definindo os pinos S2 e S3 como HIGH. Ele lê a frequência da cor verde, mapeando seus valores calibrados usando a função de mapa. O valor do filtro verde é impresso na porta serial.

Por fim, o Arduino seleciona o canal azul do sensor configurando o pino S2 para LOW e o pino S3 para HIGH. Ele lê a frequência da cor azul, mapeando para seus valores calibrados usando a função map. O valor para o filtro azul é impresso na porta serial.

Isso fornece um valor de cor RGB aproximado, que é útil na seleção ou classificação de objetos.

Demonstração em vídeo

Conteúdo Relacionado

Como escolher um controlador de e-bike
O controlador do motor é um dos componentes mais...
Como solucionar problemas comuns do ESP32-CAM
ESP32-CAM é um módulo de câmera compacto que combina...
Qual o papel dos sensores automotivos nos veículos modernos?
Uma rede de sensores é incorporada em todos os...
Primeiro MPU single-core com interface de câmera MIPI CSI-2 e áudio
O mercado embarcado tem uma necessidade de soluções de...
Um guia para padrões USB de 1.0 a USB4
A evolução dos padrões USB foi fundamental para moldar...
Schurter aprimora série de seletores de tensão com revestimento prateado
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A interface serial PCI fornece conectividade confiável em ambientes extremos
A Sealevel Systems anuncia o lançamento da Interface Serial...
STMicroelectronics expande portfólio de conversão de energia com diodos Trench Schottky de 100 V
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
O que são Sistemas Globais de Navegação por Satélite (GNSS) e como são usados?
Determinar uma localização precisa é necessário em várias indústrias...
O conversor GaN de 50 W da STMicroelectronics permite projetos de energia de alta eficiência
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
Samsung e Red Hat farão parceria em software de memória de próxima geração
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
Correntes de falha do transformador: causas e proteção
Levando em conta Correntes residuais do transformadorvocê precisa entender...
Decodificação de fluência no motor de indução para melhor desempenho
Você provavelmente já se deparou com o termo 'arrastar'...
Compreendendo os isoladores de suporte em sistemas elétricos
Você provavelmente tem um Isolador de suporte Se você...
Explore Stay Insulator – segurança, instalação e manutenção
Você provavelmente já viu permanecer um isolante sente-se em...
Mais segurança e eficiência com o isolador de manilha
Você provavelmente já viu Isoladores de manilha entronizados em...
Вернуться к блогу

Комментировать

Обратите внимание, что комментарии проходят одобрение перед публикацией.