Usando o sensor de cores VEX IQ (1ª geração)

O sensor de cor usa luz refletida para detectar a cor, o valor de matiz, o valor da escala de cinza, o brilho e a proximidade de um objeto.

Peça do sensor de cor VEX IQ (1ª geração).

O Sensor de Cores VEX IQ está incluído no Super Kit VEX IQ e também pode ser adquirido aqui.

Usando um robô VEX IQ de 2ª geração? Veja uma visão geral dos sensores de 2ª geração aquie informações sobre o Sensor Óptico, a versão de 2ª geração do Sensor de Cor.


Descrição do sensor de cores

O Sensor de Cores VEX IQ possui múltiplos modos, que permitem capturar diferentes tipos de informações de seu ambiente. As informações que ele coleta são afetadas pelas condições de iluminação do ambiente, bem como pela distância entre o sensor e o objeto ou superfície que está lendo.


Roda de cores demonstrando como o círculo de 360 graus se correlaciona com um valor de matiz. A cor vermelha está no grau 0, a cor verde está no grau 120 e a cor azul está no grau 240.


Como funciona o sensor de cores

O Sensor de Cor pode detectar cor e proximidade.

Detectando Cores

VEXcode IQ Brilho do bloco que lê o brilho da Cor3 em %.

Esquema de um sensor de cor que deteta uma superfície brilhante e reporta um valor de 80% e, em seguida, deteta uma superfície escura e reporta um valor de 20%.

Quando no modo de brilho, o Sensor de Cor é usado para detectar a intensidade de toda a luz no ambiente do robô. Quanto mais luz atingir o Sensor de Cor enquanto ele estiver ativo, maior será o valor percentual enviado ao Cérebro do Robô.

O VEXcode IQ define o bloco de luz do sensor de cor que lê a luz Set Color3 para 50%.

Sensor de cor mostrado ligado a um robô num ambiente escuro. A lâmpada do sensor de cor é ligada para iluminar o ambiente.

Se a porcentagem de brilho detectada for baixa ou não confiável, a lâmpada do Sensor de Cor poderá ser ligada ou a porcentagem de brilho da lâmpada poderá ser aumentada usando o seguinte conjunto de luz para bloquear:

Três blocos de sensores de cor VEXcode IQ. O primeiro é a Cor do bloco que lê o nome da cor Color3. O segundo é um bloco Matiz que lê o matiz da Cor 3 em graus. O terceiro é um bloco de deteção de cor que diz Color3 não deteta nenhum?

O Sensor de Cor pode relatar a cor que vê como um valor de cor ou como um valor de matiz.

O VEXcode IQ Color deteta o bloco que lê o Color3 e não deteta nenhum? O menu suspenso Cor do bloco é aberto para mostrar uma lista de cores para que ele detete. A lista diz laranja, roxo, violeta avermelhado, violeta, violeta azulado, verde-azulado, verde-amarelado, laranja-amarelo e laranja-avermelhado.

Valores de cores.Existem 14 cores listadas que o Sensor de Cores pode detectar. As cores que faltam na imagem do bloco são vermelho, verde, azul, branco e amarelo.

Diagrama de valor de matiz demonstrando como os 360 graus se correlacionam com um valor de matiz. A cor vermelha está no grau 0, a cor verde está no grau 120 e a cor azul está no grau 240.

Valores de matiz.Os valores de matiz são como valores de cores, mas numéricos. O valor do matiz varia de 0 a 360, como graus. Os valores de cores listados acima têm seus próprios intervalos de valores de matiz equivalentes. 

É importante, ao detectar cores e matizes, que o Sensor de Cores tenha a quantidade adequada de luz para isso. Certifique-se de testar, também conhecido como calibração, seu Sensor de Cores em diferentes níveis de luz e com a lâmpada configurada em níveis diferentes para determinar qual é a configuração mais confiável para o Sensor de Cores do seu robô.

Detectando proximidade

O Sensor de Cor inclui um sensor-emissor infravermelho. O emissor infravermelho emite uma luz invisível e então detecta seu reflexo. Se a maior parte da luz infravermelha retornar para o sensor, ela informará ao Cérebro Robô que um objeto está próximo.

VEXcode IQ Encontrou um bloco de objeto que diz Color3 está perto do objeto?

Usos comuns do sensor de cores

Sensores de cores são usados ​​em muitas aplicações tecnológicas onde é importante ter cores específicas em monitores ou produtos.

Alguns usos comuns na vida diária incluem:

  • As ferramentas de calibração de cores verificam se uma tela digital está exibindo cores precisas e ajustam as configurações de exibição conforme necessário. É importante que os artistas gráficos e qualquer designer que trabalhe com cores em uma tela digital possam ver exatamente a cor correta sendo exibida. Mal-entendidos e desperdício de recursos ocorrem quando as cores não são precisas.
  • Câmeras e filmadoras usam sensores de cores para ajustar as configurações com base nas condições de iluminação em que se encontram, a fim de aprimorar suas fotos e vídeos, maximizando os níveis de luz e realçando cores que de outra forma seriam opacas. Esses sensores também permitem ao fotógrafo focar em cores específicas em suas fotos.
  • Às vezes, sensores de cores são usados ​​na fabricação para inspecionar rapidamente se um produto tem a cor correta antes de ser enviado ao cliente. Por exemplo, frutas e vegetais que adquirem cores quando maduros ou prontos para serem consumidos podem ser digitalizados para garantir que tenham a cor correta para serem enviados ao mercado. 


Alguns usos comuns com um robô VEX IQ incluem:

  • Este sensor pode ser usado para detectar a cor de um objeto. Vê esta animação para veres um robô a avançar até que o Sensor de Cor detete um Cubo Verde.

  • Este sensor pode ser usado para detectar e/ou seguir uma linha. Veja esta animação para ver um robô a utilizar o sensor de cor para conduzir ao longo de uma linha marcada.

  • Este sensor pode detectar se um objeto está próximo.

Sensores de cores em um robô de competição

Lembre-se de que é importante, ao detectar cores e matizes, que o Sensor de Cores tenha a quantidade adequada de luz para isso. Certifique-se de testar, também conhecido como calibração, seu Sensor de Cores sempre que chegar a um novo local de competição, pois diferentes níveis de luz podem afetar o desempenho do seu Sensor de Cores. Teste seu projeto com a lâmpada configurada em diferentes níveis para determinar qual é a configuração mais confiável para o sensor de cores do seu robô. 

As informações coletadas pelo Sensor de Cores são úteis para programar um robô competitivo para responder a uma variedade de condições. O Sensor de Cores pode melhorar um robô de competição das seguintes maneiras:

  • Ele permite que o robô detecte a cor de um objeto próximo ao sensor. Isso é útil se você deseja que o robô classifique objetos de cores diferentes, dirija até um objeto de cor específica ou detecte a cor dos objetos à medida que eles passam pelo sensor.
  • Ele permite que o robô detecte quanta luz é refletida de volta para o sensor. Isso permite que seu robô dirija até atingir uma linha em uma superfície, ou até mesmo seguir uma linha.
  • Permite ao robô saber se um objeto ou superfície está próximo. Isso é útil para determinar se uma cor detectada é uma leitura de um objeto próximo ou, potencialmente, uma leitura anômala de uma superfície ou luz distante. 

Codificando o sensor de cores em blocos

VEXcode IQ Encontrou um bloco de objeto que diz Color3 está perto do objeto?

O bloco <Found an object> é um bloco repórter booleano que relata uma condição como verdadeira ou falsa. Blocos booleanos, como o bloco <Found an object> , cabem dentro de blocos com entradas hexagonais (seis lados) para outros blocos.

O bloco booleano <Found an object> reporta 'true' se 'true' se o sensor de cores detectar um objeto e 'false' se o sensor não o fizer. Para saber mais sobre blocos booleanos, visite o artigo Help ou Block Shapes and Meaning.

 

O VEXcode IQ bloqueia o projeto que utiliza um sensor de cor para avançar até encontrar um objeto. O projeto diz: Ao iniciar, siga em frente, espere até que o Color3 encontre um objeto e depois pare de conduzir.

Neste exemplo, o bloco <Found an object> é usado para detectar proximidade junto com um bloco [Wait Until], para fazer o robô avançar até que um objeto seja detectado.

O VEXcode IQ Color deteta o bloco que lê Color3 deteta verde?

O bloco <Color detects> também é um bloco repórter booleano que relata uma condição como verdadeira ou falsa. O bloco <Color detects> reporta 'true' se 'true' se o sensor de cores detectar a cor selecionada e 'false' se o sensor detectar qualquer outra cor. Para saber mais sobre blocos booleanos, visite o artigo Help ou Block Shapes and Meaning.

 

O VEXcode IQ bloqueia o projeto que utiliza um sensor de cor para avançar até detetar a cor verde. O projeto diz: Ao iniciar, siga em frente, espere até que o Color3 detete verde e depois pare de conduzir.

Neste exemplo, o bloco <Color detects> é usado junto com um bloco [Aguarde até] para fazer com que o robô avance até que o Sensor de Cor detecte um objeto verde. O robô irá então parar de dirigir. Isso é ilustrado no primeiro vídeo acima.

VEXcode IQ Brilho do bloco que lê o brilho da Cor3 em %.

O bloco (Brilho de) informa a quantidade de luz detectada pelo Sensor de Cor. É um bloco repórter utilizado dentro de outros blocos com espaços circulares.

O bloco (Brilho de) reporta um intervalo de 0% a 100%.

 

O projeto de blocos VEXcode IQ utiliza um sensor de cor virado para baixo para seguir uma linha marcada. O projeto lê Quando iniciado, defina a luz Color3 para 25%. Depois, para sempre, se o brilho da Cor3 em % for superior a 25, rode o Motor Esquerdo para a frente 35 graus, caso contrário, rode o Motor Direito para a frente 35 graus.

Neste exemplo, o bloco (Brilho de) é usado para que o robô detecte e siga uma linha, conforme mostrado no segundo vídeo acima.

VEXcode IQ Matiz do bloco que lê o matiz da Cor3 em graus.

O bloco (Matiz de) informa o matiz da cor detectada pelo Sensor de Cores. É um bloco repórter utilizado dentro de outros blocos com espaços circulares.

O bloco (Brilho de) informa um intervalo de 0 a 360.

 

O projeto de blocos VEXcode IQ utiliza um sensor ótico para avançar até atingir um objeto e, em seguida, virar à direita se estiver vermelho ou à esquerda se não estiver. O projeto lê Quando iniciado, imprima o matiz do Color3 em graus no Brain, siga em frente e aguarde até que o Color3 encontre um objeto. Se a tonalidade da Cor 3 em graus for superior a 330 e a tonalidade da Cor 3 em graus for inferior a 30, rode para a direita para 90 graus, caso contrário, rode para a esquerda para 90 graus.

Neste exemplo, o bloco (Matiz de) é usado para que o robô verifique uma faixa de valores de matiz que corresponde à cor vermelha e gire 90 graus à direita se esses valores forem detectados pelo sensor. Se quaisquer outros valores de matiz forem detectados, o robô virará 90 graus à esquerda.

O bloco (Matiz de) pode ser útil quando é necessário que o robô detecte certas cores quando as condições de luz ambiente podem ser inconsistentes.

Codificando o sensor de cores em Python

Nota:Para codificar um Bumper Switch VEX IQ (1ª geração) em Python, ele deve estar conectado a um Brain VEX IQ (2ª geração). O cérebro VEX IQ (1ª geração) não oferece suporte a Python.

cor_3.está_perto_do_objecto()

O comando color.is_near_object relata Verdadeiro quando um sensor de cor detecta um objeto ou superfície próximo à frente do sensor e Falso quando um sensor de cor não detecta um objeto ou superfície próximo à frente do sensor. sensor.

Nota:O nome do Sensor de Cor que aparece no comando corresponde ao nome que lhe é dado na configuração. 

drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
Neste exemplo, um loopWhile com uma condição e não é usado com o comando color.is_near_object para fazer o robô avançar até que o Sensor de Cor detecte um objeto próximo à frente de o sensor.
cor_3. cor()

O comando color.color informa a cor que está sendo detectada atualmente pelo Sensor de Cores.

drivetrain.drive(FORWARD)
while not color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
Neste exemplo, é utilizado um cicloWhile com uma condição não com o comando color.color para fazer o robô avançar até que o Sensor de Cor detete um objeto verde. O robô irá então parar de dirigir. Isso é ilustrado no primeiro vídeo acima.
cor_3. brilho()

O comando color.brightness informa a quantidade de luz detectada pelo sensor de cores. Ele relata uma faixa de valores de 0% a 100%.

color_3.set_light(25, PERCENT)
while True:
if color_3.brightness() > 25:
# Se o sensor de cor detetar luz, o robô move-se para a esquerda
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Se o sensor de cor detetar escuridão, o robô move-se para a direita
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
Neste exemplo, o comando color.brightness é usado para que o robô detecte e siga uma linha, conforme mostrado no segundo vídeo acima.
cor_3.matiz()

O comando color.hue informa o matiz da cor detectada pelo Sensor de Cores. Ele relata uma faixa de valores de matiz de 0 a 360.

brain.screen.print(color_3.hue())
drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
drivetrain.turn_for(LEFT, 90, DEGREES)

Neste exemplo, o comando color.hue é usado para fazer com que o robô verifique uma faixa de valores de matiz que corresponde à cor vermelha e gire 90 graus à direita se esses valores forem detectados pelo sensor. Se quaisquer outros valores de matiz forem detectados, o robô virará 90 graus à esquerda.

O comando color.hue pode ser útil quando é necessário que o robô detecte certas cores quando as condições de luz ambiente podem ser inconsistentes.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: