Óptico#

Introducción#

El sensor óptico es un sensor basado en la luz que utiliza la luz reflejada para detectar objetos, identificar colores y medir el brillo y el tono.

También puede configurar el brillo de la luz interna del sensor. Estas herramientas son ideales para programas que necesitan reaccionar a objetos de colores, condiciones de iluminación o comentarios de sensores en tiempo real.

Esta página utiliza optical_1 como ejemplo de nombre del sensor óptico. Reemplácelo con su propio nombre configurado según sea necesario.

A continuación se muestra una lista de todos los métodos:

Acciones: encienda o apague el LED del sensor óptico.

  • set_light — Establece el estado encendido o apagado del LED.

Mutadores: ajuste el brillo del LED y la configuración de detección de objetos.

Getters: lee la presencia del objeto, el color, el brillo, el tono, el RGB y el estado del sensor.

  • is_near_object — Devuelve si un objeto detectado está cerca del sensor óptico.

  • color — Devuelve la coincidencia de color más cercana detectada.

  • brightness — Devuelve el brillo de un objeto detectado.

  • hue — Devuelve el tono de un objeto detectado.

  • rgb — Devuelve los valores RGB detectados por el sensor óptico.

  • installed — Devuelve si un sensor óptico está conectado al cerebro.

Devolución de llamada: ejecuta el código cuando se detecta o se pierde un objeto.

  • object_detected — Registra una función que se llamará cuando se detecte un objeto.

  • object_lost — Registra una función que se llamará cuando se pierda un objeto.

Constructores: inicializa y configura manualmente un sensor óptico.

  • Optical — Crea un sensor óptico.

Acciones#

set_light#

set_light establece el LED del sensor óptico en encendido, apagado o un nivel de brillo establecido.

Usage:
optical_1.set_light(state)

Parámetros

Descripción

state

El estado para establecer la luz o el porcentaje de potencia en el rango de 0 a 100. El estado puede ser cualquiera de los siguientes: LedStateType.OFF

  • LedStateType.OFF (0 por ciento)
  • LedStateType.ON (100 por ciento)
  • integer — Un valor de brillo dado como un entero de 0 a 100.
# Turn the LED on and off forever
while True:
    optical_1.set_light(LedStateType.ON)
    wait(0.5, SECONDS)
    optical_1.set_light(LedStateType.OFF)
    wait(0.5, SECONDS)

# Turn the LED on and off forever
while True:
    optical_1.set_light(100)
    wait(0.5, SECONDS)
    optical_1.set_light(0)
    wait(0.5, SECONDS)

Mutadores#

set_light_power#

set_light_power establece el brillo de la luz del sensor óptico. Si el LED aún no está encendido, este método también encenderá el LED.

Usage:
optical_1.set_light_power(value)

Parámetros

Descripción

value

El nivel de potencia para ajustar la luz de 0 a 100 como porcentaje.

# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)

object_detect_threshold#

object_detect_threshold establece el rango desde el que el sensor puede detectar objetos. Este método también devuelve el umbral recién establecido.

Los números más cercanos a 255 indican un rango más pequeño, mientras que los números más cercanos a 0 indican un rango más grande.

Usage:
optical_1.object_detect_threshold(value)

Parámetros

Descripción

value

Un número en el rango de 0 a 255. Un valor de 0 simplemente devolverá el valor actual.

def detected():
    # The Brain will print that an object was detected on
    # the Brain's screen.
    brain.screen.print("object detected")
    brain.screen.next_row()
    optical_1.object_detect_threshold(254)
    optical_1.object_detected(detected_closer)

def detected_closer():
    # Detect an object closer to the sensor.
    brain.screen.print("Detected closer")
    
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)

# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0

def detected():
    global stage
    if stage == 0:
        brain.screen.print("Get closer...")
        brain.screen.next_row()
        stage = 1
        optical_1.object_detect_threshold(254)
        optical_1.object_detected(detected_closer)

def detected_closer():
    global stage
    if stage == 1:
        brain.screen.print("Too close!")
        brain.screen.next_row()
        stage = 2

optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)

Getters#

is_near_object#

is_near_object devuelve si el sensor óptico está cerca de un objeto.

  • True : el sensor está cerca de un objeto.

  • False : el sensor no está cerca de un objeto.

Usage:
optical_1.is_near_object()

Parámetros

Descripción

Este método no tiene parámetros.

# Stop driving when Optical Sensor is 
# near an object
while True:
    if optical_1.is_near_object():
        drivetrain.stop()
    else:
        drivetrain.drive(FORWARD)

color#

color devuelve el color predefinido detectado por el sensor óptico de los siguientes colores:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

Parámetros

Descripción

Este método no tiene parámetros.

# Stop the robot if the Optical Sensor 
# detects red
while True:
    if optical_1.color() == Color.RED:
        drivetrain.stop()
    else:
        drivetrain.turn(RIGHT)

brightness#

brightness devuelve el brillo detectado por el sensor óptico.

Un porcentaje más alto significa que el sensor óptico detecta más luz. Un porcentaje más bajo significa que el sensor óptico detecta menos luz.

Usage:
optical_1.brightness(readraw)

Parámetros

Descripción

readraw

Opcional. Un valor booleano para leer datos de brillo sin procesar en lugar de porcentaje:

  • True — Devuelve los datos sin procesar.
  • False (predeterminado): devuelve el brillo como un porcentaje.

hue#

hue devuelve el valor del tono detectado por el sensor óptico como un flotador en el rango de 0 a 359,99 grados.

El tono es una forma de describir el color usando números alrededor de una rueda de color, como se muestra a continuación.

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:
optical_1.hue()

Parámetros

Descripción

Este método no tiene parámetros.

# Check the hue of a detected object
# to determine if it is pink
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    if 290 < optical_1.hue() < 350:
        brain.screen.print("Pink!")
        wait(0.1,SECONDS)
    else:
        brain.screen.print("Not pink.")
        wait(0.1,SECONDS)

rgb#

rgb devuelve los valores de rojo, verde, azul y brillo detectados por el sensor óptico como una tupla.

Usage:
optical_1.rgb(raw)

Parámetros

Descripción

raw

Opcional. Un valor booleano para determinar si devuelve valores sin procesar o procesados:

  • True — Devuelve el valor sin procesar.
  • False (predeterminado): no devuelva el valor sin procesar.
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print(optical_1.rgb())
    wait(0.1, SECONDS)

installed#

installed devuelve un booleano que indica si el sensor óptico está conectado al cerebro.

  • True : el sensor óptico está conectado al cerebro.

  • False — El sensor óptico no está conectado al cerebro.

Usage:
optical_1.installed()

Parámetros

Descripción

Este método no tiene parámetros.

# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
    brain.screen.print("Installed!")

Devolución de llamada#

object_detected#

object_detected registra una función de devolución de llamada para cuando se detecta un objeto.

Usage:
optical_1.object_detected(callback, arg)

Parámetros

Descripción

callback

Una función que se define previamente para ejecutarse cuando se detecta un objeto.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información.

def detected():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object detected")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the 
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)

object_lost#

object_lost registra una función de devolución de llamada cuando el sensor óptico pierde un objeto detectado.

Usage:
optical_1.object_lost(callback, arg)

Parámetros

Descripción

callback

Una función que se define previamente para ejecutarse cuando se pierde un objeto.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información.

def lost():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object lost")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the Optical 
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)

Constructores#

Los constructores se utilizan para crear manualmente objetos Optical , que son necesarios para configurar un sensor óptico fuera del código VEX.

Optical#

Optical crea un sensor óptico.

Usage:
Optical(smartport)

Parámetro

Descripción

smartport

El puerto inteligente al que está conectado el sensor óptico, escrito como PORTx, donde x es el número del puerto.

# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)

# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
    wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())