Python específico para robots#
Todos los comandos VEXcode VR estándar están disponibles para su uso en el patio de juegos V5RC Virtual Skills - High Stakes.
Movimiento#
motor.spin()#
El comando motor.spin(direction)
se utiliza para girar un motor indefinidamente.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.spin(direction)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
dirección |
La dirección en la que debe moverse el motor: “ADELANTE” o “ATRÁS”. |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
motor.spin_for()#
El comando motor.spin_for(direction, distance, units, wait)
se utiliza para girar un motor una cantidad determinada de grados o vueltas.
Este puede ser un comando sin espera o en espera dependiendo de si se utiliza el parámetro wait
.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.spin_for(direction, distance, units, wait)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
dirección |
La dirección en la que debe moverse el motor: “ADELANTE” o “ATRÁS”. |
distancia |
La distancia que debe recorrer el motor, expresada en un número entero. |
unidades |
Las unidades que utilizará el motor: |
esperar |
Opcional. El parámetro wait determina si el comando bloqueará los comandos subsiguientes ( |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.spin_for(FORWARD, 400, DEGREES)
motor.giro_a_posición()#
El comando motor.spin_to(angle, units, wait)
se utiliza para girar un motor a una posición determinada.
Este puede ser un comando sin espera o en espera dependiendo de si se utiliza el parámetro wait
.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.spin_for(angle, units, wait)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo específico o número de vueltas que dará el motor. |
unidades |
Las unidades que utilizará el motor: |
esperar |
Opcional. El parámetro wait determina si el comando bloqueará los comandos subsiguientes ( |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.spin_to_position(400, DEGREES)
motor.stop()#
El comando motor.stop()
se utiliza para detener un motor.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.stop()
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
motor.set_position()#
El comando motor.set_position(position, units)
se utiliza para establecer la posición del codificador de un motor en el valor de posición dado.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.set_position(position, units)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
posición |
El entero específico que se debe configurar para el codificador del motor. |
unidades |
Las unidades que utilizará el motor: “GRADOS” o “VUELTAS”. |
Devoluciones: Ninguna.
# Make the raised Arm as the new 0 degrees position.
arm_motor.spin_to_position(400, DEGREES)
arm_motor.set_position(0, DEGREES)
motor.set_velocity()#
El comando motor.set_velocity(velocity, units)
se utiliza para establecer la velocidad de un motor.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.set_velocity(velocity, units)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
velocidad |
La velocidad a la que girará el motor, que varía entre -100 y 100. |
unidades |
La unidad de velocidad del motor, “PORCENTAJE”. |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(400, DEGREES)
motor.set_timeout()#
El comando motor.set_timeout(value, units)
se utiliza para establecer un límite de tiempo para los comandos de movimiento de un motor.
Esto evita que los comandos de movimiento que no llegan a su posición prevista impidan la ejecución de los comandos posteriores.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.set_timeout(value, units)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
valor |
La cantidad de tiempo que el motor esperará antes de detenerse. |
unidades |
La unidad del temporizador del motor, “SEGUNDOS”. |
Devoluciones: Ninguna.
# Lift the Arm up before moving.
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 3, TURNS)
Eventos#
objeto óptico frontal detectado()#
front_optical.object_detected(callback)
es el mismo comando que eye.object_detected(callback)
.
El comando solo utiliza el sensor óptico de Axel front_optical
para reemplazar eye
en el comando estándar.
objeto óptico frontal perdido()#
front_optical.object_lost(callback)
es el mismo comando que eye.object_lost(callback)
.
El comando solo utiliza el sensor óptico de Axel front_optical
para reemplazar eye
en el comando estándar.
Detección#
motor.is_done()#
El comando motor.is_done()
se utiliza para devolver un valor Verdadero o Falso si el motor seleccionado ha completado su movimiento.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.is_done()
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Devuelve: Esto devuelve un valor booleano.
motor.está_girando()#
El comando motor.is_spinning()
se utiliza para devolver un valor Verdadero o Falso si el motor seleccionado se está moviendo.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.is_spinning()
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Devuelve: Esto devuelve un valor booleano.
motor.posición()#
El comando motor.position(units)
se utiliza para devolver la posición rotacional actual del motor seleccionado.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.position(units)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
unidades |
La unidad del valor devuelto, |
Devuelve: Esto devuelve un valor numérico.
# Make the raised Arm the new 0 degrees position.
arm_motor.spin_for(FORWARD, 400, DEGREES)
arm_motor.set_position(0, DEGREES)
brain.screen.print(arm_motor.position(DEGREES))
motor.velocidad()#
El comando motor.velocity(units)
se utiliza para devolver la velocidad actual del motor seleccionado.
Para utilizar este comando, reemplace motor
con el motor o grupo de motores deseado, por ejemplo: arm_motor.velocity(units)
.
Objetos |
Descripción |
---|---|
|
Sube o baja el brazo de Axel. |
|
Sube o baja el empujador para empujar los anillos fuera del brazo. |
Parámetros |
Descripción |
---|---|
unidades |
La unidad de velocidad del motor, “PORCENTAJE”. |
Devuelve: Esto devuelve un valor numérico.
# Lift the Arm up before moving.
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(400, DEGREES)
ai_objects = ai_vision.take_snapshot()#
La instrucción ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
captura la imagen actual del sensor de visión de IA y la analiza para todas las clasificaciones de IA. Las clasificaciones identificadas se almacenan en una matriz. Si bien ai_objects
es el nombre predeterminado de la matriz que se usa en los comandos de la caja de herramientas de VEXcode, puede personalizar este nombre según sus necesidades.
Importante: Deberás levantar el brazo del robot para que el sensor de visión de IA pueda obtener una instantánea clara del patio de juegos.
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta declaración devuelve una matriz de clasificaciones de IA detectadas y sus propiedades, ordenadas por su área de mayor a menor.
En este ejemplo, se tomará una instantánea y las coordenadas X e Y del centro de la clasificación de IA más grande se imprimirán en la consola de impresión repetidamente.
# Lift the Arm to not block the AI Vision Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
while True:
brain.screen.clear_screen()
# Take a snapshot with the AI Vision Sensor with the specified
# signature and store the object data into a variable
# "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty before
# pulling any data from the array.
if len(ai_objects) is not 0:
# If yes, print the data of the largest AI Classification.
brain.screen.print("Center X: ", ai_objects[0].centerX)
brain.screen.next_row()
brain.screen.print("Center Y: ", ai_objects[0].centerY)
brain.screen.next_row()
else:
brain.screen.print("No object detected.")
# Take a new snapshot every 0.2 seconds.
wait(0.2, SECONDS)
ai_objects[0].id#
La propiedad ai_objects.id
devuelve el id del índice especificado.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Cada objeto tiene una propiedad id
que identifica su tipo. Los posibles valores de id
son:
Objetivo móvil:
0
Anillo rojo:
1
Anillo azul:
2
También puedes comparar la identificación directamente con estas constantes predefinidas:
Objetivo móvil:
GameElements.MOBILE_GOAL
Anillo rojo:
GameElements.RED_RING
Anillo azul:
GameElements.BLUE_RING
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve el id del índice especificado como un entero.
En este ejemplo, el sensor de visión de IA tomará una instantánea y luego verificará si la clasificación de IA más grande detectada es un objetivo móvil.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into
# a variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty
# before pulling any data from the array.
if len(ai_objects) is not 0:
# If the array is not empty, check if the largest
# AI Classification is a Mobile Goal.
if ai_objects[0].id == GameElements.MOBILE_GOAL:
brain.screen.print("This is a Mobile Goal.")
else:
brain.screen.print("This is not a Mobile Goal.")
ai_objects[0].centerX#
La propiedad ai_objects.centerX
devuelve la coordenada X del índice especificado del centro exacto de la clasificación AI.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Las dimensiones de la pantalla del sensor de visión de IA son 320 píxeles de ancho y 240 píxeles de alto y el centro preciso de la pantalla del sensor de visión de IA corresponde a las coordenadas (160, 120).
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve la coordenada X del centro del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá la coordenada X central de la clasificación IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into a
# variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty
# before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].centerX)
ai_objects[0].centerY#
La propiedad ai_objects.id
devuelve la coordenada Y del índice especificado del centro exacto de la clasificación AI.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Las dimensiones de la pantalla del sensor de visión de IA son 320 píxeles de ancho y 240 píxeles de alto y el centro preciso de la pantalla del sensor de visión de IA corresponde a las coordenadas (160, 120).
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve la coordenada Y del centro del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá la coordenada Y central de la clasificación IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into a
# variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty
# before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].centerY)
ai_objects[0].originX#
La propiedad ai_objects.id
devuelve la coordenada X del índice especificado de la esquina superior izquierda de la clasificación AI.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Las dimensiones de la pantalla del sensor de visión de IA son 320 píxeles de ancho y 240 píxeles de alto y el centro preciso de la pantalla del sensor de visión de IA corresponde a las coordenadas (160, 120).
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve la coordenada X de origen del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá la coordenada X de origen de la clasificación IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into
# a variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is
# empty before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].originX)
ai_objects[0].originY#
La propiedad ai_objects.id
devuelve la coordenada Y del índice especificado de la esquina superior izquierda de la clasificación AI.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Las dimensiones de la pantalla del sensor de visión de IA son 320 píxeles de ancho y 240 píxeles de alto y el centro preciso de la pantalla del sensor de visión de IA corresponde a las coordenadas (160, 120).
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve la coordenada Y de origen del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá la coordenada Y de origen de la clasificación IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into
# a variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is
# empty before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].originY)
ai_objects[0].ancho#
La propiedad ai_objects.id
devuelve el ancho del índice especificado en píxeles.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve el ancho del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá el segundo ancho de clasificación de IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into a
# variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty
# before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].width)
ai_objects[0].altura#
La propiedad ai_objects.id
devuelve la altura del índice especificado en píxeles.
Primero se debe crear una matriz utilizando la declaración ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
antes de poder usar esta propiedad.
Tras crear una matriz de clasificaciones de IA, se puede acceder a objetos específicos y sus propiedades mediante su índice. La matriz se ordena por área del objeto, de mayor a menor, con índices que empiezan en 0. Esto significa que ai_objects[0] representa el objeto detectado de mayor tamaño, mientras que el índice más alto representa el de menor tamaño.
Todos los comandos posteriores del sensor de visión de IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los comandos del sensor de visión de IA, lo que les permite procesar la información visual más reciente del entorno del sensor.
Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar que su matriz no esté vacía. Puede usar la función len()
para verificarlo. Si len()
devuelve 0
, la matriz está vacía y no contiene datos de la última instantánea.
if len(ai_objects) is not 0:
Devuelve: Esta propiedad devuelve el ancho del índice especificado como un entero.
Este ejemplo tomará una instantánea e imprimirá la segunda altura de clasificación de IA más grande.
# Lift the Arm by 350 degrees to not block the AI Vision
# Sensor's field of view.
arm_motor.spin_for(FORWARD, 350, DEGREES)
# Take a snapshot with the AI Vision Sensor with the
# specified signature and store the object data into a
# variable "ai_objects".
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
# Use the len() function to check if the array is empty
# before pulling any data from the array.
if len(ai_objects) is not 0:
brain.screen.print(ai_objects[0].height)
front_optical.is_near_object()#
El comando front_optical.is_near_object()
se utiliza para informar un valor booleano si el sensor óptico está lo suficientemente cerca de un objeto para detectar un color.
Devuelve: Esto informa un valor booleano.
# Print if the Front Optical Sensor is detecting an object.
brain.screen.print(front_optical.is_near_object())
color_óptico_frontal()#
El comando front_optical.color()
se utiliza para devolver el color detectado por un sensor óptico.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Los siguientes colores se pueden utilizar como comparación con el color detectado por un sensor óptico:
ROJO
VERDE
AZUL
AMARILLO
NARANJA
PÚRPURA
CIAN
Devuelve: Esto devuelve el nombre del color detectado como una cadena.
# Identify the color of the ring on the Arm.
brain.screen.print(front_optical.color())
frontal_óptico.brillo()#
El comando front_optical.brightness()
se utiliza para informar la cantidad de luz detectada por un sensor óptico dentro de un rango de 0 a 100 por ciento.
Devuelve: Esto devuelve un valor numérico.
# Lift the Arm by 350 degrees to not block the Optical Sensor.
arm_motor.spin_for(FORWARD, 350, DEGREES)
brain.screen.print(front_optical.brightness())
frontal_óptico.hue()#
El comando front_optical.brightness()
se utiliza para informar el tono del objeto detectado por un sensor óptico dentro de un rango de 0 a 359. Este número representa la ubicación del color detectado en una rueda de color.
Devuelve: Esto devuelve un valor numérico.
# Print the hue of the ring on the Arm.
brain.screen.print("Hue: ", optical.hue())
rotación.set_position()#
El comando pusher_rotation.set_position(value, units)
se utiliza para establecer la posición de un sensor de rotación en el valor dado.
Parámetros |
Descripción |
---|---|
valor |
El valor para establecer la posición del sensor de rotación. |
unidades |
La unidad de la posición establecida, ‘GRADOS’. |
Devoluciones: Ninguna.
rotación.ángulo()#
El comando pusher_rotation.angle(value, units)
devuelve el ángulo de rotación actual del motor de empuje en grados.
Devuelve: Un número entero.
rotación.posición()#
El comando pusher_rotation.position(units)
devuelve la posición actual del motor de empuje.
Parámetros |
Descripción |
---|---|
unidades |
La unidad de la posición establecida, |
Devuelve: Un número entero.
gps.x_position()#
gps.x_position(units)
returns the X positional offset of a GPS (Game Positioning System™) Sensor or defined origin point from the center of a field.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
unidades |
La unidad del valor de desplazamiento, |
Devuelve: Esto devuelve un valor numérico.
def main():
# Print the current X positional offset of the robot.
brain.screen.print(gps.x_position(MM))
gps.y_position()#
gps.y_position(units)
returns the Y positional offset of a GPS (Game Positioning System™) Sensor or defined origin point from the center of a field.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Parámetros |
Descripción |
---|---|
unidades |
La unidad del valor de desplazamiento, |
Devuelve: Esto devuelve un valor numérico.
def main():
# Print the current Y positional offset of the robot.
brain.screen.print(gps.y_position(MM))
gps.heading()#
El comando gps.heading()
se utiliza para informar el rumbo que enfrenta actualmente un robot en función de las lecturas de un sensor GPS del código de campo GPS VEX.
Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.
Devuelve: Esto devuelve un valor numérico.
def main():
# Print the current heading of the robot.
brain.screen.print(gps.heading())