Olho#

Introdução#

O robô VEX 123 possui um sensor ocular integrado que deteta objetos e cores. Também informa a quantidade de luz refletida de volta para o sensor e o valor de matiz da cor detetada.

O sensor ocular possui uma luz que pode ser ligada ou desligada para ajudar a ver objetos e cores com mais clareza.

Existem muitas formas de programar o sensor ocular. Abaixo está uma lista de todos os métodos de programação ocular:

Modificadores — Ajustam as definições do sensor ocular.

  • set_light — Liga ou desliga a luz do sensor ocular.

  • set_light_power — Define o nível de potência luminosa do sensor ocular.

Getters — Devolvem o que o sensor ocular deteta.

  • get_hue — Devolve a tonalidade detectada pelo sensor ocular.

  • get_brightness — Retorna o brilho detectado pelo sensor ocular.

  • is_object_detected — Retorna se o sensor ocular deteta um objeto dentro do alcance.

  • is_color_detected — Retorna se o sensor ocular deteta uma cor específica.

  • is_bright — Retorna se o sensor ocular deteta um objeto brilhante.

Mutantes#

set_light#

set_light liga ou desliga a luz do sensor ocular.

Usage:
robot.eye.set_light(state)

Parâmetros

Descrição

state

Estado da luz do sensor ocular: OFF ou ON.

# Continuously blink the light.
while True:
    robot.eye.set_light(ON)
    wait(2, SECONDS)
    robot.eye.set_light(OFF)
    wait(2, SECONDS)

set_light_power#

set_light_power define a intensidade da luz do sensor ocular. Esta luz pode ajudar o sensor a detetar objetos e cores com mais clareza.

Uma percentagem maior torna a luz mais brilhante. Uma percentagem mais baixa torna a luz mais fraca.

Se a luz do sensor ocular estiver desligada, definir a potência da luz acima de 0% irá acendê-la.

Se a luz do sensor ocular estiver acesa, definir a potência da luz para 0% irá desligá-la.

Usage:
robot.eye.set_light_power(value)

Parâmetros

Descrição

value

O nível de brilho para o qual o sensor ocular deve ser configurado, de 0% a 100%. Utilize números inteiros.

# Set the light to different power levels.
robot.eye.set_light_power(25)
wait(2, SECONDS)
robot.eye.set_light_power(50)
wait(2, SECONDS)
robot.eye.set_light_power(100)

Getters#

get_hue#

get_hue devolve a cor detectada pelo sensor ocular como um número inteiro de 0 a 359,00 graus.

O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

Uma roda de cores circular exibindo um espectro completo de tonalidades rotuladas com valores em graus em torno do perímetro, aumentando em incrementos de 30 graus de 0° no topo até 360°.

Usage:
robot.eye.get_hue()

Parâmetros

Descrição

Este método não tem parâmetros.

# Display if an object is pink.
while True:
    console.clear()
    if 290 < robot.eye.get_hue() < 350:
        console.print("Pink!")
    else:
        console.print("Not pink!")
    wait(0.1, SECONDS)

get_brightness#

get_brightness devolve o brilho da luz detectada, como um número inteiro de 0% a 100%.

Uma percentagem mais elevada significa que mais luz é refletida de volta para o sensor ocular. Uma percentagem mais baixa significa que menos luz é refletida de volta.

Usage:
robot.eye.get_brightness()

Parâmetros

Descrição

Este método não tem parâmetros.

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.get_brightness() < 70:
    console.print("Object not bright.")
else:
    console.print("Bright object!")

is_object_detected#

is_object_detected devolve um Boolean que informa se o sensor ocular detecta ou não um objecto dentro do alcance.

  • True — O sensor ocular deteta um objeto.

  • False — O sensor ocular não detetou qualquer objeto.

Usage:
robot.eye.is_object_detected()

Parâmetros

Descrição

Este método não tem parâmetros.

# Stop driving after detecting an object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
robot.stop()

is_color_detected#

is_color_detected devolve um Boolean que informa se o sensor ocular detecta uma cor especificada, com base no valor de matiz detectado.

  • True — O sensor ocular deteta a cor selecionada.

  • False — O sensor ocular não detetou a cor selecionada.

O sensor ocular funciona melhor quando o objeto está próximo e a iluminação é clara.

Usage:
robot.eye.is_color_detected(color)

Parâmetros

Descrição

color

A cor que o sensor ocular deve verificar:

  • BLUE – Valor de matiz entre 160° e 254°.
  • GREEN – Valor de matiz entre 75° e 154°.
  • NONE
  • RED – Valor de matiz entre 340° e 20°.

# Stop driving after detecting a green object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_color_detected(GREEN):
    wait(0.1, SECONDS)
robot.stop()

is_bright#

is_bright devolve um Boolean que informa se o objecto detectado pelo sensor ocular é brilhante.

Um objeto é considerado brilhante quando reflete mais de 70% do seu brilho de volta para o sensor ocular.

  • True — O objeto detetado reflete mais de 70% de brilho.

  • False — O objeto detetado reflete 70% de brilho ou menos.

Usage:
robot.eye.is_bright()

Parâmetros

Descrição

Este método não tem parâmetros.

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.is_bright():
    console.print("Bright object!")
else:
    console.print("Object not bright.")