Ojo#

Introducción#

El sensor ocular VEX GO puede detectar objetos y colores. También puede informar sobre la cantidad de luz que se refleja hacia el 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 según la configuración. Por ejemplo, en la configuración Code Base 2.0 - Eye Forward, el sensor ocular apunta hacia adelante. En las configuraciones Code Base 2.0 - Eye Down, Code Base 2.0 - Eye + Electromagnet y Super Code Base 2.0, el sensor ocular apunta 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.

Existen muchas maneras de programar el sensor ocular. A continuación se muestra una lista de todos los métodos para programar el sensor ocular:

Motadores: Ajusta la configuración del sensor ocular.

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

  • set_range — Establece hasta qué distancia el sensor ocular puede detectar un objeto.

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

Obtenedores: Devuelven 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 rango.

  • 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

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 a qué distancia 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 el brillo de la luz del sensor ocular. La luz puede ayudar al sensor ocular a detectar objetos y colores con mayor claridad.

Un porcentaje mayor hace que la luz sea más brillante. Un porcentaje menor hace que la luz sea más tenue.

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

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

Uso:
eye.set_light_power(value)

Parámetros

Descripción

value

El nivel de brillo al que se ajustará la luz del sensor ocular, de 0% a 100%. Utilice 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)

Captadores#

get_color#

get_color devuelve el color detectado por el sensor ocular.

Este método puede devolver:

  • RED — Un valor de tonalidad entre 340° y 20°

  • GREEN — Un valor de tonalidad entre 75° y 154°

  • AZUL BLUE — Un valor de tonalidad entre 160° y 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 matiz es una forma de describir el color utilizando números alrededor de una rueda de colores.

Una rueda de colores circular que muestra un espectro completo de tonalidades etiquetadas con valores de grados alrededor del perímetro, aumentando en incrementos de 30 grados desde 0° en la parte superior hasta 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 qué tan brillante es 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 rango.

  • 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, basándose en el 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 buena.

Uso:
eye.is_color_detected(color)

Parámetros

Descripción

color

Color que el sensor ocular debe comprobar:

  • 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)