Ojo#

Introducción#

El robot VEX 123 tiene un sensor ocular incorporado que puede detectar objetos y colores. También puede informar cuánta luz se refleja de vuelta al sensor y el valor de tono del color detectado.

El sensor ocular tiene una luz que se puede encender o apagar para ayudarlo a ver objetos y colores con mayor claridad.

Hay muchas maneras de codificar el sensor ocular. A continuación se muestra una lista de todos los métodos oculares:

Mutadores: ajuste la configuración del sensor ocular.

  • set_light — Enciende o apaga la luz del sensor ocular.

  • set_light_power — Establece el nivel de potencia de la luz del sensor ocular.

Getters: devuelve lo que detecta el sensor ocular.

  • get_hue — Devuelve el tono detectado por el sensor ocular.

  • get_brightness — Devuelve el brillo detectado por el sensor ocular.

  • is_object_detected — Devuelve si el sensor ocular detecta un objeto dentro del alcance.

  • is_color_detected — Devuelve si el sensor ocular detecta un color específico.

  • is_bright — Devuelve si el sensor ocular detecta un objeto brillante.

Mutadores#

set_light#

set_light enciende o apaga la luz del sensor ocular.

Usage:
robot.eye.set_light(state)

Parámetros

Descripción

state

El estado de la luz del sensor ocular: OFF o 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 establece qué tan brillante es la luz del sensor ocular. La luz puede ayudar al sensor ocular a detectar objetos y colores con mayor claridad.

Un porcentaje más alto hace que la luz sea más brillante. Un porcentaje más bajo hace que la luz se atenúe.

Si la luz del sensor ocular está apagada, ajustar la potencia de la luz por encima del 0% encenderá la luz.

Si la luz del sensor ocular está encendida, ajustar la potencia de la luz al 0% apagará la luz.

Usage:
robot.eye.set_light_power(value)

Parámetros

Descripción

value

El brillo para ajustar la luz del sensor ocular, de 0% a 100%. Usa números enteros.

# 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 devuelve el color detectado por el sensor ocular como un número entero de 0 a 359.00 grados.

El tono es una forma de describir el color usando números alrededor de una rueda de color.

Una rueda de color circular que muestra un espectro completo de tonos etiquetados con valores de grado alrededor del perímetro, aumentando en incrementos de 30 grados de 0° en la parte superior a 360°.

Usage:
robot.eye.get_hue()

Parámetros

Descripción

Este método no tiene 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 devuelve el brillo de la luz detectada, como un número entero del 0% al 100%.

Un porcentaje más alto significa que se refleja más luz hacia el sensor ocular. Un porcentaje más bajo significa que se refleja menos luz.

Usage:
robot.eye.get_brightness()

Parámetros

Descripción

Este método no tiene 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 devuelve un Boolean que informa si el sensor ocular detecta o no un objeto dentro del alcance.

  • True : el sensor ocular detecta un objeto.

  • False : el sensor ocular no detecta ningún objeto.

Usage:
robot.eye.is_object_detected()

Parámetros

Descripción

Este método no tiene 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 devuelve un Boolean que informa si el sensor ocular detecta un color específico, en función del valor de tono detectado.

  • True : el sensor ocular detecta el color seleccionado.

  • False : el sensor ocular no detecta el color seleccionado.

El sensor ocular funciona mejor cuando el objeto está cerca y la iluminación es clara.

Usage:
robot.eye.is_color_detected(color)

Parámetros

Descripción

color

El color para que el sensor ocular lo compruebe:

  • BLUE – Valor de tono entre 160° y 254°.
  • GREEN – Valor de tono entre 75° y 154°.
  • NONE
  • RED – Valor de tono entre 340° y 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 devuelve un Boolean que informa si el objeto detectado por el sensor ocular es brillante.

Un objeto se considera brillante cuando refleja más del 70% de brillo en el sensor ocular.

  • True : el objeto detectado refleja más del 70% de brillo.

  • False : el objeto detectado refleja un 70% de brillo o menos.

Usage:
robot.eye.is_bright()

Parámetros

Descripción

Este método no tiene 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.")