Sensor óptico#

Introducción#

El sensor óptico V5 detecta el color, el brillo y la presencia de objetos cercanos utilizando una combinación de un sensor de color RGB y un sensor de proximidad. También puede usar su LED incorporado para iluminar objetos para una detección más precisa.

El sensor óptico VEX V5.

Esta página utiliza optical_sensor 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 los métodos disponibles:

  • set_light – Enciende o apaga el LED del sensor óptico.

  • set_light_power – Establece el nivel de potencia de la luz del sensor óptico.

  • is_near_object – Devuelve si el sensor óptico detecta un objeto dentro del alcance.

  • color – Devuelve el color detectado por el sensor óptico.

  • brightness – Devuelve la cantidad de luz reflejada por el objeto.

  • hue – Devuelve el tono detectado por el sensor óptico.

  • object_detected – Registra una función que se llamará cuando el sensor óptico detecte un objeto.

  • object_lost – Registra una función que se llamará cuando el sensor óptico pierda un objeto.

Constructor: inicializa manualmente un sensor óptico.

  • Optical – Crea un sensor óptico.

set_light#

set_light enciende o apaga el LED del sensor óptico. Esto puede ayudar a aumentar la precisión del sensor al detectar colores.

Usage:
optical_sensor.set_light(state)

Parámetros

Descripción

estado

Enciende o apaga el LED. LEDStateType.ON enciende la luz al 100% de brillo. LEDStateType.OFF apaga.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

set_light_power#

set_light_power establece el brillo del LED del sensor óptico. La luz puede ayudar al sensor óptico a detectar objetos y colores con mayor claridad.

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

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

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.

Usage:
optical_sensor.set_light_power(percent, units)

Parámetros

Descripción

por ciento

El brillo para ajustar el LED como un número entero.

unidades

Opcional. La unidad para representar el brillo: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

is_near_object#

is_near_object devuelve un booleano que indica si el sensor óptico detecta o no un objeto dentro del alcance.

  • True : el sensor óptico detecta un objeto.

  • False – El sensor óptico no detecta un objeto.

Usage:
optical_sensor.is_near_object()

Parámetros

Descripción

Este método no tiene parámetros.

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

color#

color devuelve una instancia de una Color clase, basada en el valor de tono detectado. Estos se pueden comparar con objetos Color predefinidos para crear declaraciones condicionales.

Los colores posibles son:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Un valor de tono entre 340° - 20°

  • Color.GREEN - Un valor de tono entre 80° - 140°

  • Color.BLUE - Un valor de tono entre 200° - 240°

  • Color.YELLOW - Un valor de tono entre 40° - 60°

  • Color.ORANGE - Un valor de tono entre 20° - 40°

  • Color.PURPLE - Un valor de tono entre 240° - 280°

  • Color.CYAN - Un valor de tono entre 140° - 200°

Nota: El sensor óptico está buscando rangos de tonalidad que coincidan con el color especificado. Para detectar rangos de tonalidad específicos, consulte hue.

Usage:
optical_sensor.color()

Parámetros

Descripción

Este método no tiene parámetros.

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

brillo#

el brightness devuelve la cantidad de luz reflejada desde el objeto como un decimal (float) que representa un porcentaje.

Un porcentaje más alto significa que se refleja más luz al sensor óptico. Un porcentaje más bajo significa que se refleja menos luz.

Usage:
optical_sensor.brightness()

Parámetros

Descripción

Este método no tiene parámetros.

matiz#

hue devuelve el valor de tono del color detectado como un decimal (float) de 0 a 359.

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

La rueda de color VEX muestra los grados de los colores alrededor de un círculo, con el rojo a 0 grados y la transición a través del arco iris a medida que aumenta el valor.

Usage: optical_sensor.hue()

Parámetros

Descripción

Este método no tiene parámetros.

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

object_detected#

object_detected registra una función que se llamará cada vez que el sensor óptico detecte un nuevo objeto.

Usage:
optical_sensor.object_detected(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando el sensor óptico detecta un nuevo objeto.

arg

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

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

object_lost#

object_lost registra una función que se llamará cada vez que el sensor óptico pierda un objeto detectado.

Usage:
optical_sensor.object_lost(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando el sensor óptico pierde un objeto detectado.

arg

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

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Constructor#

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 Ports.PORTx donde x es el número del puerto.

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)