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.

Sensor de cor VEX IQ (1ª geração).

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

Utilizando um robô VEX IQ de 2ª geração? Veja aqui uma visão geral dos sensores de 2ª geração e 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 cor VEX IQ possui múltiplos modos, que permitem captar diferentes tipos de informação do ambiente. A informação recolhida é afetada pelas condições de iluminação do ambiente, bem como pela distância entre o sensor e o objeto ou superfície que está a ser lida.


Círculo cromático demonstrando como o círculo de 360 ​​graus se correlaciona com um valor de matiz. A cor vermelha está num grau de 0, a cor verde está num grau de 120 e a cor azul está num grau de 240.


Como funciona o sensor de cores

O sensor de cor consegue detetar tanto a cor como a proximidade.

Detectando Cores
VEXcode IQ Brilho do bloco que lê o brilho Color3 em %.
Esquema de um sensor de cor que deteta uma superfície brilhante e reporta um valor de 80%, e de 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 bloco de sensor de cor VEXcode IQ Set lê a cor 3 e define a intensidade da luz para 50%.
Sensor de cor mostrado acoplado a um robô num ambiente escuro. A lâmpada do sensor de cor acende para iluminar o ambiente circundante.

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 VEXcode IQ Color Sensor. A primeira é a cor do bloco que exibe o nome da cor 3. O segundo é um bloco de matiz que lê a matiz Color3 em graus. O terceiro é um bloco de deteção de cor que lê "A cor 3 não deteta nada?".

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, mas não deteta nenhum? O menu suspenso "Cor" do bloco é aberto para apresentar uma lista de cores que pode detetar. A lista inclui as seguintes cores: laranja, roxo, vermelho violeta, violeta, azul violeta, azul esverdeado, amarelo esverdeado, amarelo e laranja, e vermelho e laranja.

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 valores de matiz demonstrando como os 360 graus se correlacionam com um valor de matiz. A cor vermelha está num grau de 0, a cor verde está num grau de 120 e a cor azul está num grau de 240.

Valores de matiz.Os valores de matiz são como valores de cor, 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. 

Para detetar cores e tonalidades, é importante que o sensor de cor receba a quantidade de luz adequada. Certifique-se de testar, também conhecido como calibrar, o seu sensor de cor em diferentes níveis de luz e com a lâmpada ajustada em diferentes intensidades para determinar qual é a configuração mais fiável para o sensor de cor do seu robô.

Detectando proximidade

O sensor de cor inclui um emissor de sensor infravermelho. O emissor de infravermelhos emite uma luz invisível e depois deteta o seu reflexo. Se a maior parte da luz infravermelha for refletida de volta para o sensor, isso indica ao cérebro do robô que um objeto está próximo.

O VEXcode IQ encontrou um bloco de objeto que lê "Color3 está próximo do objeto?"

Usos comuns do sensor de cores

Os sensores de cor são utilizados em muitas aplicações tecnológicas onde ter cores específicas em ecrãs ou produtos é importante.

Alguns usos comuns no dia a dia 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. 


Algumas utilizações comuns do 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: ao detetar cores e tonalidades, é importante que o sensor de cor receba a quantidade de luz adequada. Certifique-se de testar, ou calibrar, o seu sensor de cor sempre que chegar a um novo local de competição, uma vez que diferentes níveis de luz podem afetar o seu desempenho. Teste o seu projeto com a lâmpada ajustada a diferentes níveis para determinar qual é a configuração mais fiável para o sensor de cor do seu robô. 

As informações recolhidas pelo sensor de cor são úteis para programar um robô competitivo para responder a uma variedade de condições. O sensor de cor pode melhorar o desempenho de um robô de competição das seguintes formas:

  • 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

:Para programar um Bumper Switch VEX IQ (1ª geração) em Python, este deve ser ligado a um Brain VEX IQ (2ª geração). O VEX IQ (1ª geração) Brain não suporta 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, é utilizado um cicloWhile com uma condição not com o comando color.is_near_object para fazer o robô avançar até que o sensor de cor detete um objeto próximo da frente do sensor.
cor_3. cor()

O comando color.color reporta a cor que está a ser detectada pelo sensor de cor.

drivetrain.drive(FORWARD)
while not color_3.GREEN():
    wait(20, MSEC)
drivetrain.stop()
Neste exemplo, é utilizado um laçoWhile com uma condição not 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 conduzir. Isso é ilustrado no primeiro vídeo acima.
cor_3. brilho()

O comando color.brightness reporta a quantidade de luz detectada pelo sensor de cor. Apresenta um intervalo 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.

cérebro.ecrã.print(cor_3.matiz())
transmissão.drive(PARAGEM)
enquanto não cor_3.está_perto_do_objecto():
    espera(20, MSEC)
se cor_3.matiz() > 330 e cor_3.matiz() < 30:
    transmissão.virar_para(DIREITA, 90, GRAUS)
senão:
    transmissão.virar_para(ESQUERDA, 90, GRAUS)

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: