Bloques específicos de robots#

Introducción#

El Hero Bot, Flop, incluye un IntakeMotor, un ArmMotor y un sensor de visión IQ AI.

Todos los bloques VEXcode VR estándar están disponibles para su uso en el IQ 26-27 Level Up Playground.

A continuación se muestra una lista de todos los bloques específicos de robots disponibles:

Movimiento: mueva y siga los motores del robot.

AI Vision: captura y analiza objetos utilizando el sensor de visión AI de IQ.

  • Acciones

    • get object data: captura datos para una firma específica, como una clasificación de IA detectada.

  • Ajustes

  • Valores

    • object exists - Devuelve si se detectó alguna clasificación.

    • object is - Devuelve si se detecta una clasificación específica.

    • object is AprilTag - Devuelve si el objeto detectado es un AprilTag que coincide con un ID específico.

    • object count - Devuelve cuántos objetos se detectaron.

    • object property - Devuelve width, height, centerX, centerY, originX u originY.

Los ejemplos de esta página utilizan la posición de inicio predeterminada de Playground.

Movimiento#

Flop utiliza el motor de admisión para recoger y expulsar los elementos del juego. El motor del brazo sube y baja el brazo.

Cada motor tiene sus propias opciones de dirección. Los nombres de las direcciones describen cómo se mueve ese motor en Flop.

Acciones#

motor de giro#

El bloque de pila * * motor giratorio * * hace girar un motor en una de dos direcciones para siempre. El motor continuará girando hasta que se le dé otra acción, como girar en una dirección diferente o detenerse.

girar [IntakeMotor v] [admisión v]

Parámetros

Descripción

motor

El motor a girar: IntakeMotor o ArmMotor.

dirección

Dirección de giro del motor:

  • Motor de admisión — admisión o salida
  • Motor del brazo — arriba o abajo

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

motor de giro para#

El motor giratorio para bloque de apilamiento hace girar un motor para una distancia específica. El giro es relativo a la posición actual del motor. El proyecto esperará hasta que el motor termine de girar antes de que se ejecute el siguiente bloque de la pila.

girar [ArmMotor v] [arriba v] por (500) [grados v] ▶

Parámetros

Descripción

motor

El motor a girar: IntakeMotor o ArmMotor.

dirección

Dirección de giro del motor:

  • Motor de admisión — admisión o salida
  • Motor del brazo — arriba o abajo

distancia

La distancia que gira el motor. Los grados usan enteros. Los giros pueden usar enteros o decimales.

unidad

La unidad de distancia: grados o giros.

y no esperes

Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

girar el motor a la posición#

El bloque de pila girar el motor a la posición hace girar un motor a una posición específica.

La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. Al comienzo de un proyecto, la posición del motor se establece en 0 grados. La posición del motor también se puede configurar utilizando el bloque set motor position.

Los valores de posición son absolutos. Esto significa que la dirección del giro depende de la posición actual del motor.

Por ejemplo, si el motor arranca a 0 grados y gira a una posición de 720 grados, girará hacia adelante dos vueltas. Si luego gira a una posición de 360 grados, girará en reversa una vuelta, porque 360 es menos de 720.

girar [ArmMotor v] a la posición (500) [grados v] ▶

Parámetros

Descripción

motor

El motor a girar: IntakeMotor o ArmMotor.

cargo

El valor de posición al que girará el motor. Los grados usan enteros. Los giros pueden usar enteros o decimales.

unidad

La unidad de posición: grados o giros.

y no esperes

Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] a la posición (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

motor de parada#

El bloque parar motor detiene el motor seleccionado.

detener [IntakeMotor v]

Parámetros

Descripción

motor

El motor a parar: IntakeMotor o ArmMotor.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]
esperar (1) segundos
detener [IntakeMotor v]

Ajustes#

establecer velocidad del motor#

El bloque de apilamiento establecer velocidad del motor le dice a un motor qué tan rápido debe girar. Un porcentaje más alto hace que el motor gire más rápido y un porcentaje más bajo hace que el motor gire más lento.

Cada proyecto comienza con cada motor girando al 50% de velocidad por defecto.

Nota: Una velocidad más alta hace que el motor gire más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el motor gire más lento, pero puede ser más preciso.

establecer velocidad de [IntakeMotor v] a [50] [% v]

Parámetros

Descripción

motor

El motor para ajustar la velocidad de: IntakeMotor o ArmMotor.

velocidad

La velocidad a la que girará el motor. Porcentaje usa números enteros del 0% al 100%.

unidad

La unidad de velocidad: %.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
establecer velocidad de [IntakeMotor v] a [100] [% v]
girar [IntakeMotor v] [toma v]

configurar el tiempo de espera del motor#

El bloque set motor timeout de la pila establece cuánto tiempo intentará un motor completar un movimiento. Si el motor no puede terminar en ese tiempo, dejará de intentarlo y pasará al siguiente bloque de la pila. Esto evita que el motor se quede atascado en un movimiento.

establecer tiempo de espera de [ArmMotor v] a [1] segundos

Parámetros

Descripción

motor

El motor para configurar el tiempo de espera de: *IntakeMotor * o ArmMotor.

tiempo

El número de segundos que el motor puede intentar terminar un movimiento. Esto puede ser un número entero o decimal.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
establecer tiempo de espera de [ArmMotor v] a [2] segundos
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

Cargo#

posición del motor#

La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. El bloque indicador * * posición del motor * * informa la posición actual del motor.

Al comienzo de un proyecto, la posición del motor se establece en 0 grados. Si el motor gira una vuelta completa hacia adelante, la posición será de 360 grados o 1 vuelta. Si el motor gira en la otra dirección, la posición será negativa.

(posición de [ArmMotor v] en [grados v])

Parámetros

Descripción

motor

El motor para informar la posición de: IntakeMotor o ArmMotor.

unidad

La unidad para informar la posición del motor en: grados o giros.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
mientras <(posición de [ArmMotor v] en [grados v]) [math_less_than v] [360]>
girar [ArmMotor v] [arriba v]
esperar (0.002) segundos
fin
detener [ArmMotor v]
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

ajustar la posición del motor#

La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. El bloque de apilamiento * * set motor position * * cambia la posición actual del motor a un nuevo valor.

Por ejemplo, si un motor ha girado a 180 grados, ajustar la posición a 0 grados restablecerá esa posición de 180 a 0 grados. Entonces el motor puede girar a posiciones basadas en ese nuevo valor.

establecer posición de [ArmMotor v] a (0) [grados v]

Parámetros

Descripción

motor

El motor para ajustar la posición de: IntakeMotor o ArmMotor.

cargo

El valor de posición a establecer. Los grados usan enteros. Los giros pueden usar enteros o decimales.

unidad

La unidad de posición: grados o giros.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
establecer posición de [ArmMotor v] a [0] [grados v]
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

Valores#

el motor está listo#

El motor está listo El bloque booleano informa si el motor ha terminado de moverse. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del motor.

  • Verdadero — El motor ha terminado de moverse.

  • Falso — El motor todavía está en movimiento.

Este bloque funciona junto con los siguientes bloques de movimiento que tienen el parámetro y no espere: motor de giro para y motor de giro a la posición.

<¿[ArmMotor v] terminó?>

Parámetros

Descripción

motor

El motor para informar si ha terminado de moverse: IntakeMotor o ArmMotor.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] a la posición (1) [vueltas v] ◀ y no esperar
esperar hasta <¿[ArmMotor v] terminó?>
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]

el motor está girando#

El motor está girando El bloque booleano informa si el motor está girando. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del motor.

  • Verdadero — El motor está girando.

  • Falso — El motor no está girando.

Este bloque funciona junto con los siguientes bloques de movimiento que tienen el parámetro y no espere: motor de giro para y motor de giro a la posición.

<¿[IntakeMotor v] está girando?>

Parámetros

Descripción

motor

El motor para informar si está girando: IntakeMotor o ArmMotor.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]
esperar hasta <no <¿[IntakeMotor v] está girando?>>
detener [IntakeMotor v]

velocidad del motor#

El bloque indicador * * velocidad del motor * * informa qué tan rápido está girando el motor, como un porcentaje de -100% a 100%.

(velocidad de [IntakeMotor v] en [% v] :: custom-motion)

Parámetros

Descripción

motor

El motor para informar la velocidad de: IntakeMotor o ArmMotor.

unidad

La unidad a reportar la velocidad del motor en: %.

Ejemplo

cuando inicie
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grados ▶
conducir [adelante v] por (35) [pulgadas v] ▶
girar [derecha v] por (90) grados ▶
girar [ArmMotor v] [arriba v] por (1) [vueltas v] ▶
conducir [adelante v] por (40) [pulgadas v] ▶
girar [IntakeMotor v] [toma v]
esperar [0.2] segundos
imprimir (velocidad de [IntakeMotor v] en [% v] :: custom-motion) ▶

Visión de IA#

Acciones#

obtener datos de objeto#

El bloque obtener datos del objeto filtra los datos del marco del sensor de visión IQ AI en una sola firma: una descripción guardada de algo que el sensor puede reconocer, como un elemento de juego en el campo.

El conjunto de datos almacena objetos ordenados de mayor a menor por ancho, comenzando en el índice 0. Se puede acceder a las propiedades de cada objeto utilizando el bloque propiedad del objeto. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.

El bloque de pila de datos del objeto get.#
obtener datos [Clasificaciones de IA v] de [AIVision v]

Parámetro

Descripción

firma

Filtra el conjunto de datos para incluir solo los datos de la firma dada. Las firmas disponibles son:

  • Clasificaciones de IA — Detecta la bolsa de frijoles rojos, la bolsa de frijoles azules y la bolsa de frijoles amarillos.
  • AprilTags: detecta los ID de AprilTag que se encuentran a los lados de los Objetivos.

Ejemplo

cuando inicie :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Find and face the nearest red Bean Bag.]
establecer velocidad de giro a (30) [% v]
establecer [object_counter v] a [1]
obtener datos [Clasificaciones de IA v] de [AIVision v]
repetir (cantidad de objetos de [AIVision v])
establecer elemento de objeto de [AIVision v] a (object_counter)
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
if <(objeto [centroX v] de [AIVision v]) < (140)> then
girar [izquierda v]
else if <([AIVision v] object [centerX v]) > (180)> then
girar [derecha v]
si no
detener conducción
fin
interrumpir
fin
cambiar [object_counter v] en [1]
fin

Ajustes#

establecer elemento de objeto#

El bloque set object item establece qué elemento del conjunto de datos usar.

El bloque de pila de elementos de objeto establecido.#
establecer elemento de objeto de [AIVision v] a [1]

Parámetros

Descripción

artículo

El número del elemento en el conjunto de datos a utilizar.

Ejemplo

cuando inicie :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Find the index of the nearest red Bean Bag.]
establecer [object_counter v] a [1]
obtener datos [Clasificaciones de IA v] de [AIVision v]
repetir (cantidad de objetos de [AIVision v])
establecer elemento de objeto de [AIVision v] a (object_counter)
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
imprimir (unir [Nearest Red Bean Bag is ] (object_counter)) ▶
interrumpir
si no
cambiar [object_counter v] en [1]
fin
fin

Valores#

el objeto existe#

El bloque existe devuelve un booleano que indica si se detecta algún objeto en el conjunto de datos.

  • Verdadero: el conjunto de datos incluye un objeto detectado.

  • Falso: el conjunto de datos no incluye ningún objeto detectado.

El objeto AI Vision existe como bloque booleano.#
<¿existe objeto de [AIVision v]?>

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Turn until a Bean Bag is detected.]
establecer velocidad de giro a (30) [% v]
girar [derecha v]
repetir hasta <¿existe objeto de [AIVision v]?>
obtener datos [Clasificaciones de IA v] de [AIVision v]
fin
detener conducción

el objeto es#

El bloque object is devuelve un booleano que indica si un objeto detectado coincide con una clasificación específica.

  • Verdadero: el elemento del conjunto de datos es el objeto específico.

  • Falso: el elemento del conjunto de datos no es el objeto específico.

El objeto es un bloque booleano.#
<¿objeto de [AIVision v] es [RedBeanBag v]?>

Parámetro

Descripción

objeto

Con qué objeto comparar el artículo: RedBeanBag, BlueBeanBag o YellowBeanBag.

Ejemplo

cuando inicie :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Find the index of the nearest red Bean Bag.]
establecer [object_counter v] a [1]
obtener datos [Clasificaciones de IA v] de [AIVision v]
repetir (cantidad de objetos de [AIVision v])
establecer elemento de objeto de [AIVision v] a (object_counter)
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
imprimir (unir [Nearest Red Bean Bag is ] (object_counter)) ▶
interrumpir
si no
cambiar [object_counter v] en [1]
fin
fin

el objeto es AprilTag#

El bloque object is AprilTag devuelve un booleano que indica si el objeto detectado es un AprilTag que coincide con un ID específico.

  • Verdadero: el objeto detectado es una etiqueta de abril con el ID dado.

  • Falso: el objeto detectado no es una etiqueta de abril con el ID dado.

El objeto es el bloque booleano AprilTag.#
<¿objeto de [AIVision v] es AprilTag [0]?>

Parámetro

Descripción

ID de AprilTag

El número de identificación para comparar con la etiqueta de abril detectada.

Ejemplo

cuando inicie :: hat events
[Stop when you see the Red Goal!]
establecer velocidad de giro a (30) [% v]
girar [derecha v]
repetir hasta <¿objeto de [AIVision v] es AprilTag [1]?>
obtener datos [AprilTags v] de [AIVision v]
fin
detener conducción
imprimir [Found the Red Goal!] ▶

recuento de objetos#

El bloque recuento de objetos devuelve el número de objetos detectados en el conjunto de datos como un número entero.

El bloque reportero de recuento de objetos.#
(cantidad de objetos de [AIVision v])

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Print how many Bean Bags are detected.]
obtener datos [Clasificaciones de IA v] de [AIVision v]
imprimir (cantidad de objetos de [AIVision v]) ▶

propiedad de objeto#

Hay seis propiedades que se incluyen con cada objeto almacenado después de usar el bloque * * get object data * *.

El bloque de reportero de propiedad de objeto AI Vision.#
(objeto [ancho v] de [AIVision v])

Todos los valores de las propiedades describen la posición y el tamaño del objeto detectado en la vista del sensor de visión IQ AI en el momento en que se utilizó el bloque obtener datos del objeto. Estos valores se miden en píxeles, según la resolución de 320 x 240 píxeles del sensor.

Parámetro

Descripción

propiedad

Qué propiedad del objeto detectado usar: * * width * , * height, centerX, centerY, originX o originY.

ancho#

La propiedad * * width * * informa del ancho del objeto detectado en píxeles como un número entero del 1 al 320.

El bloque del reportero de propiedades del objeto AI Vision con el ancho seleccionado.#
(objeto [ancho v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Approach the Bean Bag, then pick it up.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
if <([AIVision v] object [width v]) > (180)> then
conducir [adelante v] por [50] [mm v] ▶
girar [IntakeMotor v] [admisión v] por [90] [grados v] ▶
interrumpir
si no
conducir [adelante v]
fin
fin
fin
fin
altura#

La propiedad altura informa la altura del objeto detectado en píxeles como un número entero del 1 al 240.

El bloque de reportero de propiedad de objeto AI Vision con la altura seleccionada.#
(objeto [alto v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Approach the Bean Bag, then pick it up.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
if <([AIVision v] object [height v]) > (100)> then
conducir [adelante v] por [50] [mm v] ▶
girar [IntakeMotor v] [admisión v] por [90] [grados v] ▶
interrumpir
si no
conducir [adelante v]
fin
fin
fin
fin
centerX#

La propiedad * * centerX* * informa la coordenada x del centro del objeto detectado en píxeles como un número entero de 0 a 320.

El bloque de reportero de propiedad de objeto AI Vision con centerX seleccionado.#
(objeto [centroX v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Steer to keep the Bean Bag centered while approaching.]
establecer velocidad de giro a (30) [% v]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
if <(objeto [centroX v] de [AIVision v]) < (140)> then
girar [izquierda v] por (5) grados ▶
si no
conducir [adelante v] por (150) [mm v] ▶
girar [IntakeMotor v] [admisión v]
interrumpir
fin
fin
fin
fin
centerY#

La propiedad *centerY * informa la coordenada y del centro del objeto detectado en píxeles como un número entero de 0 a 240.

El bloque de reportero de propiedad de objeto AI Vision con centerY seleccionado.#
(objeto [centroY v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Print the y-position of the Bean Bag.]
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
imprimir (objeto [centroY v] de [AIVision v]) ▶
fin
fin
originX#

La propiedad originX informa la coordenada x de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 320.

El bloque de reportero de propiedad de objeto AI Vision con originX seleccionado.#
(objeto [origenX v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Steer to keep the left edge centered.]
establecer velocidad de giro a (30) [% v]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
if <(objeto [origenX v] de [AIVision v]) < (100)> then
girar [izquierda v] por (5) grados ▶
si no
conducir [adelante v] por (150) [mm v] ▶
girar [IntakeMotor v] [admisión v]
interrumpir
fin
fin
fin
fin
originY#

La propiedad *originY * informa la coordenada y de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 240.

El bloque de reportero de propiedad de objeto AI Vision con originY seleccionado.#
(objeto [origenY v] de [AIVision v])

Ejemplo

cuando inicie
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [toma v] por (180) [grados v] ▶
girar [izquierda v] por (90) grados ▶
[Print the y-position of the Bean Bag's top edge.]
obtener datos [Clasificaciones de IA v] de [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a [1]
si <¿objeto de [AIVision v] es [RedBeanBag v]?> entonces
imprimir (objeto [origenY v] de [AIVision v]) ▶
fin
fin