Óptico#
Introducción#
El sensor óptico es un sensor de luz que utiliza la luz reflejada para detectar objetos, identificar colores y medir el brillo y el tono. En modo gesto, también reconoce los movimientos de la mano frente al sensor.
A continuación se muestra una lista de todos los métodos disponibles:
Métodos – Detectar objetos, colores y gestos.
object_detected – Llama a una función cuando se detecta un objeto.
object_lost – Llama a una función cuando se pierde un objeto.
gesture_up – Llama a una función cuando se detecta un gesto hacia arriba.
gesture_down – Llama a una función cuando se detecta un gesto hacia abajo.
gesture_left – Llama a una función cuando se detecta un gesto hacia la izquierda.
gesture_right – Llama a una función cuando se detecta un gesto hacia la derecha.
gesture_enable – Establece el sensor óptico en modo gesto.
gesture_disable – Establece el sensor óptico en modo de color.
set_light – Establece el estado encendido o apagado del LED.
set_light_power – Establece el brillo del LED.
is_near_object – Devuelve si un objeto detectado está o no cerca del sensor óptico.
color – Devuelve la coincidencia de color detectada más cercana.
brillo – Devuelve el brillo de un objeto detectado.
hue – Devuelve el tono de un objeto detectado.
get_gesture – Devuelve el gesto detectado.
rgb – Devuelve los valores RGB detectados por el sensor óptico.
object_detect_threshold – Establece el umbral para detectar objetos.
instalado – Devuelve si un sensor óptico está conectado o no al cerebro.
Constructores: inicializan y configuran manualmente un sensor óptico.
Óptico – Crea un sensor óptico.
Métodos#
objeto_detectado#
object_detected
registra una función de devolución de llamada cuando se detecta un objeto.
Uso:
object_detected(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán 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)
objeto_perdido#
object_lost
registra una función de devolución de llamada para cuando se pierde un objeto.
Uso:
object_lost(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán 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)
gesto_arriba#
gesture_up
registra una función de devolución de llamada cuando se detecta un gesto hacia arriba.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_up(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información. |
def detect_gesture_up():
drivetrain.drive_for(FORWARD, 100, MM)
# Run detect_gesture_up when the Optical Sensor detects
# an upward gesture
optical_1.gesture_enable()
optical.gesture_up(detect_gesture_up)
gesto_abajo#
gesture_down
registra una función de devolución de llamada cuando se detecta un gesto hacia abajo.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_down(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información. |
def detect_gesture_down():
drivetrain.drive_for(REVERSE, 100, MM)
# Run detect_gesture_down when the Optical Sensor detects
# a downward gesture
optical_1.gesture_enable()
optical.gesture_down(detect_gesture_down)
gesto_izquierda#
gesture_left
registra una función de devolución de llamada cuando se detecta un gesto hacia la izquierda.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_left(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información. |
def detect_gesture_left():
drivetrain.turn_for(LEFT, 360, DEGREES)
# Run detect_gesture_left when the Optical Sensor detects
# a leftward gesture
optical_1.gesture_enable()
optical.gesture_left(detect_gesture_left)
gesto_derecha#
gesture_right
registra una función de devolución de llamada cuando se detecta un gesto hacia la derecha.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_right(callback, arg)
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se define previamente para ejecutarse cuando cambia el valor del eje. |
arg |
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información. |
def detect_gesture_right():
drivetrain.turn_for(RIGHT, 360, DEGREES)
# Run detect_gesture_right when the Optical Sensor detects
# a rightward gesture
optical_1.gesture_enable()
optical.gesture_right(detect_gesture_right)
gesto_habilitar#
gesture_enable
habilita el modo gestos.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_enable()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
def detect_gesture_right():
drivetrain.turn_for(RIGHT, 360, DEGREES)
# Run detect_gesture_right when the Optical Sensor detects
# a rightward gesture
optical_1.gesture_enable()
optical.gesture_right(detect_gesture_right)
wait(15, MSEC)
gesto_deshabilitar#
gesture_disable
deshabilita el modo gestos.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
gesture_disable()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Display detected colors after the Optical Sensor
# detects a right gesture.
optical_1.gesture_enable()
while not optical_1.get_gesture().type == GestureType.RIGHT:
wait(20, MSEC)
# Disable gestures and return to colors.
optical_1.gesture_disable()
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print(optical_1.color())
wait(0.1, SECONDS)
establecer_luz#
set_light
establece el LED del sensor óptico en encendido o apagado.
Uso:
set_light(estado)
Parámetros |
Descripción |
---|---|
estado |
El estado para configurar la luz o el porcentaje de energía en el rango de 0 a 100. El estado puede ser cualquiera de los siguientes:
|
# 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)
establecer_potencia_de_luz#
set_light_power
establece la potencia de la luz del LED del sensor óptico.
Uso:
set_light_power(valor)
Parámetros |
Descripción |
---|---|
valor |
El nivel de potencia para configurar 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)
está_cerca_del_objeto#
is_near_object
devuelve si el sensor óptico está o no cerca de un objeto.
Verdadero
– El sensor está cerca de un objeto.Falso
– El sensor no está cerca de un objeto.
Uso:
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 detectado por el sensor óptico.
Uso:
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)
brillo#
brightness
devuelve el brillo detectado por el sensor óptico.
Uso:
brightness(readraw)
Parámetros |
Descripción |
---|---|
leer dibujo |
Opcional. Un valor booleano para leer los datos de brillo sin procesar en lugar del porcentaje:
|
# 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())
matiz#
hue
devuelve el valor del tono detectado por el sensor óptico.
Uso:
hue()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Set a variable hue, to the value of the hue detected by
# the Optical Sensor
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)
obtener_gesto#
get_gesture
devuelve el gesto detectado por el sensor óptico.
Un gesto es el movimiento de un objeto detectado por el sensor óptico. Por lo tanto, si un objeto se mueve hacia arriba en el campo de visión del sensor óptico, se trata de un gesto hacia arriba. Por otro lado, si un objeto se mueve hacia abajo, se trata de un gesto hacia abajo. Lo mismo ocurre con los gestos izquierda y derecha.
Uso:
get_gesture(newobject).type
Parámetros |
Descripción |
---|---|
nuevo objeto |
Opcional. Un valor booleano que determina si se crea o no un nuevo objeto Gesto:
|
optical_1.gesture_enable()
while True:
# Spin if a gesture is detected
if optical_1.get_gesture().type == GestureType.NONE:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("No gesture")
wait(0.5, SECONDS)
else:
drivetrain.turn_for(RIGHT, 360, DEGREES)
RGB#
rgb
devuelve el valor RGB del sensor óptico.
Uso:
rgb(raw)
Parámetros |
Descripción |
---|---|
crudo |
Opcional. Un valor booleano para determinar si se devuelven valores sin procesar o procesados:
|
# 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)
umbral de detección de objetos#
object_detect_threshold
establece el umbral de detección de objetos. Este método también devuelve el nuevo umbral establecido.
Uso:
object_detect_threshold(valor)
Parámetros |
Descripción |
---|---|
valor |
Un número en el rango 0 - 255. Un valor de 0 solo 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)
# Alternate example
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
# Detect an object first with the detect threshold at 100,
# then again at 254
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)
instalado#
installed
devuelve un valor booleano que indica si el sensor óptico está conectado al cerebro.
Verdadero
- El sensor óptico está conectado al cerebro.Falso
- El sensor óptico no está conectado al cerebro.
Uso:
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!")
Constructores#
Los constructores se utilizan para crear manualmente objetos “ópticos”, que son necesarios para configurar un sensor óptico fuera de VEXcode.
Para los ejemplos siguientes, el sensor óptico configurado se llamará “optical_1” y se utilizará en todos los ejemplos posteriores en esta documentación de API cuando se haga referencia a los métodos de la clase “Optical”.
Óptico#
Óptico
crea un sensor óptico.
Uso:
Óptico(puerto)
Parámetro |
Descripción |
---|---|
|
A qué puerto inteligente está conectado el sensor óptico se llama “PUERTO” seguido del número de puerto, que va del 1 al 12. |
# 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())