Ojo#

Introducción#

El sensor ocular VEX GO 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 cuenta con una luz que se puede encender o apagar para ayudarle a ver objetos y colores con mayor claridad. Además, puede utilizar un rango de NEAR o de FAR para detectar objetos a diferentes distancias.

El sensor ocular se puede colocar en diferentes posiciones dependiendo de la construcción. Por ejemplo, la compilación Code Base 2.0 - Eye Forward tiene el sensor ocular orientado hacia adelante. El Code Base 2.0 - Eye Down build, Code Base 2.0 ‑ Eye + Electroimán y Super Code Base 2.0 tiene el sensor ocular hacia abajo.

Para los ejemplos que se muestran a continuación, el sensor de ojos configurado se denomina eyeEste nombre se utiliza en los ejemplos para llamar a los métodos de la clase Eye.

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_range — Establece hasta qué punto el sensor ocular puede detectar un objeto.

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

Getters: devuelve lo que detecta el sensor ocular.

  • get_color — Devuelve el color detectado por 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.

Mutadores#

set_light#

set_light enciende o apaga la luz del sensor ocular.

Uso:
eye.set_light(state)

Parámetros

Descripción

state

El estado de la luz del sensor ocular: ON o OFF.

# Build Used: Super Code Base 2.0
def main():
    # Turn the light on and off
    while True:
        eye.set_light(ON)
        wait(2, SECONDS)
        eye.set_light(OFF)
        wait(2, SECONDS)

# Start threads — Do not delete
start_thread(main)

set_range#

set_range establece qué tan lejos puede estar un objeto del sensor ocular antes de que pueda ser detectado.

Cada proyecto comienza con el sensor ocular configurado por defecto en un rango de FAR.

Uso:
eye.set_range(distance)

Parámetros

Descripción

distance

Rango de detección de objetos del sensor ocular. NEAR detecta objetos a una distancia de hasta 18 milímetros, mientras que FAR detecta objetos a una distancia de hasta 40 milímetros.

# Build Used: Code Base 2.0 - Eye Forward
def main():
    # Drive to an object with different ranges
    eye.set_range(FAR)
    drivetrain.drive(FORWARD)
    wait(0.2, SECONDS)
    while not eye.is_object_detected():
        wait(0.2, SECONDS)
    drivetrain.drive_for(REVERSE, 100, MM)
    # Closer detection range
    eye.set_range(NEAR)
    drivetrain.drive(FORWARD)
    wait(0.2, SECONDS)
    while not eye.is_object_detected():
        wait(0.2, SECONDS)
    drivetrain.stop()


# Start threads — Do not delete
start_thread(main)

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.

Uso:
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.

# Build Used: Super Code Base 2.0
def main():
    # Turn on the light at different brightnesses
    eye.set_light_power(25)
    wait(2, SECONDS)
    eye.set_light_power(50)
    wait(2, SECONDS)
    eye.set_light_power(100)

# Start threads — Do not delete
start_thread(main)

Getters#

get_color#

get_color devuelve el color detectado por el sensor ocular.

Este método puede devolver:

  • RED — Un valor de tono entre 340° - 20°

  • GREEN — Un valor de tono entre 75° - 154°

  • BLUE — Un valor de tono entre 160° - 254°

  • NONE : no se detecta ninguno de los colores disponibles.

Uso:
eye.get_color()

Parámetros

Descripción

Este método no tiene parámetros.

# Build Used: Super Code Base 2.0
def main():
    # Stop when red is detected
    drivetrain.drive(FORWARD)
    while True:
        if eye.get_color() == RED:
            break
        wait(0.2, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)

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°.

Uso:
eye.get_hue()

Parámetros

Descripción

Este método no tiene parámetros.

# Build Used: Code Base 2.0 - Eye Forward
def main():
    # Display the hue of a pink GO piece
    while True:
        console.clear()
        if 10 < eye.get_hue() < 40:
            console.print("Pink!")
            wait(0.1,SECONDS)
        else:
            console.print("Not pink.")
            wait(0.1,SECONDS)

# Start threads — Do not delete
start_thread(main)

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.

Uso:
eye.get_brightness()

Parámetros

Descripción

Este método no tiene parámetros.

# Build Used: Super Code Base 2.0
def main():
    # Monitor the brightness until red is detected
    monitor_sensor("eye.get_brightness")
    drivetrain.drive(FORWARD)
    while not eye.get_color() == RED:
        wait(0.2, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)

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.

El rango de detección se puede cambiar usando set_range.

Uso:
eye.is_object_detected()

Parámetros

Descripción

Este método no tiene parámetros.

# Build Used: Code Base 2.0 - Eye Forward
def main():
    # Drive forward until an object is detected
    drivetrain.drive(FORWARD)
    wait(0.2, SECONDS)
    while not eye.is_object_detected():
        wait(0.5, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)

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á lo suficientemente cerca como para detectarlo y la iluminación es clara.

Uso:
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°.

# Build Used: Super Code Base 2.0
def main():
    # Drive forward until a green object is detected
    drivetrain.drive(FORWARD)
    wait(0.2, SECONDS)
    while not eye.is_color_detected(GREEN):
        wait(0.5, SECONDS)
    drivetrain.stop()

# Start threads — Do not delete
start_thread(main)