Bloques específicos para robots#
Introducción#
El robot héroe, Flop, incluye un motor de admisión, un motor de brazo y un sensor de visión con IA IQ.
Todos los bloques VR VEXcode estándar están disponibles para su uso en el IQ 26-27 Level Up.
A continuación se muestra una lista de todos los bloques específicos para robots disponibles:
Movimiento: Mueve y rastrea los motores del robot.
Comportamiento
girar motor – Hace girar un motor en una de sus direcciones indefinidamente.
girar motor durante – Hace girar un motor durante una distancia específica en grados o vueltas.
girar motor a posición – Gira un motor a una posición específica.
detener motor – Detiene el giro de un motor.
Ajustes
establecer velocidad del motor – Indica al motor a qué velocidad debe girar.
establecer tiempo de espera del motor – Establece cuánto tiempo intentará un motor terminar un movimiento.
Posición
posición del motor – Informa la posición actual del motor.
establecer posición del motor – Cambia la posición actual del motor a un nuevo valor.
Valores
el motor ha terminado – Informa si el motor ha terminado de moverse.
el motor está girando – Informa si el motor está girando.
velocidad del motor – Indica la velocidad de giro del motor, como un porcentaje de -100% a 100%.
Visión por IA: Captura y analiza objetos utilizando el sensor de visión por IA IQ.
Comportamiento
obtener datos del objeto - Captura datos para una firma específica, como una clasificación de IA detectada.
Ajustes
establecer elemento de objeto - Selecciona un objeto específico de la lista.
Valores
objeto existe - Devuelve si se detectó alguna clasificación.
object is - Devuelve si se detecta una clasificación específica.
el objeto es AprilTag - Devuelve si el objeto detectado es un AprilTag que coincide con un ID específico.
contador de objetos - Devuelve cuántos objetos se detectaron.
propiedad del objeto - Devuelve ancho, alto, centroX, centroY, origenX u origenY.
Los ejemplos de esta página utilizan la posición de inicio predeterminada del Playground.
Movimiento#
Flop utiliza el motor de entrada para recoger y expulsar los elementos del juego. El motor del brazo lo eleva y lo baja.
Cada motor tiene sus propias opciones de dirección. Los nombres de las direcciones describen cómo se mueve ese motor en Flop.
Comportamiento#
motor de giro#
El bloque motor giratorio hace girar un motor en una de dos direcciones indefinidamente. El motor seguirá girando hasta que se le dé otra acción, como girar en una dirección diferente o detenerse.
spin [IntakeMotor v] [intake v]
Parámetros |
Descripción |
|---|---|
motor |
El motor a girar: Motor de admisión o Motor del brazo. |
dirección |
Dirección de giro del motor:
|
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
motor de giro para#
El bloque spin motor for hace girar un motor una distancia específica. El giro es relativo a la posición actual del motor. El proyecto esperará a que el motor termine de girar antes de ejecutar el siguiente bloque de la pila.
spin [ArmMotor v] [up v] for (500) [degrees v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor a girar: Motor de admisión o Motor del brazo. |
dirección |
Dirección de giro del motor:
|
distancia |
La distancia que gira el motor. Los grados usan números enteros. Las vueltas pueden usar números enteros o decimales. |
unidad |
La unidad de distancia: grados o vueltas. |
y no esperes |
Seleccione la flecha ( ▶ ) para expandir el bloque y decir y no espere, de modo que el siguiente bloque en la pila se ejecutará inmediatamente. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
motor de giro para posicionar#
El bloque de apilamiento girar motor para posicionar hace girar un motor hasta una posición específica.
La posición de un motor se refiere a cuánto ha girado, medido en grados o vueltas. Una vuelta equivale a 360 grados. Al inicio de un proyecto, la posición del motor se establece en 0 grados. También se puede establecer la posición del motor mediante el bloque establecer posición del motor.
Los valores de posición son absolutos. Esto significa que la dirección de giro depende de la posición actual del motor.
Por ejemplo, si el motor parte de 0 grados y gira hasta una posición de 720 grados, girará dos vueltas hacia adelante. Si luego gira hasta una posición de 360 grados, girará una vuelta hacia atrás, ya que 360 es menor que 720.
spin [ArmMotor v] to position (500) [degrees v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor a girar: Motor de admisión o Motor del brazo. |
posición |
El valor de posición al que girará el motor. Los grados se expresan con números enteros. Las vueltas pueden expresarse con números enteros o decimales. |
unidad |
La unidad de medida de la posición: grados o vueltas. |
y no esperes |
Seleccione la flecha ( ▶ ) para expandir el bloque y decir y no espere, de modo que el siguiente bloque en la pila se ejecutará inmediatamente. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] to position (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
motor de parada#
El bloque parar motor detiene el motor seleccionado.
stop [IntakeMotor v]
Parámetros |
Descripción |
|---|---|
motor |
El motor a detener: Motor de admisión o Motor del brazo. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
esperar (1) segundos
stop [IntakeMotor v]
Ajustes#
establecer la velocidad del motor#
El bloque establecer velocidad del motor indica a un motor a qué velocidad debe girar. Un porcentaje mayor hace que el motor gire más rápido y un porcentaje menor hace que gire más lento.
Cada proyecto comienza con cada motor girando al 50% de su velocidad máxima por defecto.
Nota: Una mayor velocidad hace que el motor gire más rápido, pero puede ser menos preciso. Una menor velocidad hace que el motor gire más lento, pero puede ser más preciso.
set [IntakeMotor v] velocity to [50] [% v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para ajustar la velocidad es: Motor de admisión o Motor del brazo. |
velocidad |
La velocidad a la que girará el motor. Porcentaje utiliza números enteros del 0% al 100%. |
unidad |
La unidad de velocidad: %. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
set [IntakeMotor v] velocity to [100] [% v]
spin [IntakeMotor v] [outtake v]
establecer 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.
Establezca el tiempo de espera [ArmMotor v] en [1] segundo
Parámetros |
Descripción |
|---|---|
motor |
El motor para configurar el tiempo de espera es: IntakeMotor o ArmMotor. |
tiempo |
El número de segundos que el motor puede intentar completar un movimiento. Puede ser un número entero o decimal. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
set [ArmMotor v] timeout to [2] seconds
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
Posición#
posición del motor#
La posición de un motor se refiere a cuánto ha girado, medido en grados o vueltas. Una vuelta equivale a 360 grados. El bloque de informe de posición del motor informa la posición actual del motor.
Al inicio del 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 sentido contrario, la posición será negativa.
([ArmMotor v] position in [degrees v])
Parámetros |
Descripción |
|---|---|
motor |
El motor para informar la posición de: Motor de admisión o Motor del brazo. |
unidad |
La unidad informa la posición del motor en: grados o vueltas. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
while <([ArmMotor v] position in [degrees v]) [math_less_than v] [360]>
girar [ArmMotor v] [arriba v]
wait (0.002) seconds
fin
parada [ArmMotor v]
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
establecer la posición del motor#
La posición de un motor se refiere a cuánto ha girado, medido en grados o vueltas. Una vuelta equivale a 360 grados. El bloque de pila establecer posición del motor cambia la posición actual del motor a un nuevo valor.
Por ejemplo, si un motor ha girado 180 grados, al ajustar la posición a 0 grados, dicha posición volverá a su estado original. A partir de ahí, el motor podrá girar a posiciones que dependan de ese nuevo valor.
Establezca la posición [ArmMotor v] en (0) [grados v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para establecer la posición de: Motor de admisión o Motor del brazo. |
posición |
El valor de posición a establecer. Los grados usan números enteros. Los giros pueden usar números enteros o decimales. |
unidad |
La unidad de medida de la posición: grados o vueltas. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
Establezca la posición [ArmMotor v] en [0] [grados v]
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
Valores#
El motor está terminado#
El bloque booleano motor is done indica si el motor ha terminado de moverse. Esto permite controlar la sincronización de otras acciones en función del movimiento del motor.
Verdadero — El motor ha terminado de moverse.
Falso — El motor sigue en movimiento.
Este bloque funciona junto con los siguientes bloques de movimiento que tienen el parámetro y no esperar: girar motor para y girar motor a posición.
<[ArmMotor v] ¿está hecho?>
Parámetros |
Descripción |
|---|---|
motor |
El motor que debe indicar si ha terminado de moverse es: IntakeMotor o ArmMotor. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] to position (1) [turns v] ◀ and don't wait
wait until <[ArmMotor v] is done?>
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
El motor está girando#
El bloque booleano el motor está girando indica si el motor está girando. Esto permite controlar la sincronización de otras acciones en función del 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 esperar: girar motor para y girar motor a posición.
<[IntakeMotor v] is spinning?>
Parámetros |
Descripción |
|---|---|
motor |
El motor que indica si está girando es: IntakeMotor o ArmMotor. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
wait until <not <[IntakeMotor v] is spinning?>>
stop [IntakeMotor v]
velocidad del motor#
El bloque de informe de velocidad del motor indica la velocidad de giro del motor, expresada como un porcentaje entre -100% y 100%.
([IntakeMotor v] velocity in [% v] :: custom-motion)
Parámetros |
Descripción |
|---|---|
motor |
El motor que debe informar la velocidad de: Motor de admisión o Motor del brazo. |
unidad |
La unidad para informar la velocidad del motor en: %. |
Ejemplo
cuando empezó
[Score a Bean Bag in a Blue Goal.]
girar [izquierda v] por (90) grado ▶
drive [forward v] for (35) [inches v] ▶
girar [derecha v] por (90) grado ▶
spin [ArmMotor v] [up v] for (1) [turns v] ▶
drive [forward v] for (40) [inches v] ▶
spin [IntakeMotor v] [outtake v]
esperar [0.2] segundos
print ([IntakeMotor v] velocity in [% v] :: custom-motion) ▶
Visión por IA#
Comportamiento#
obtener datos del objeto#
El bloque obtener datos de objeto filtra los datos del fotograma del sensor de visión IQ AI a una única firma: una descripción guardada de algo que el sensor puede reconocer, como un elemento del juego en el campo.
El conjunto de datos almacena objetos ordenados de mayor a menor ancho, comenzando en el índice 0. Se puede acceder a las propiedades de cada objeto mediante el bloque propiedad del objeto. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.
get [AI Classifications v] data from [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:
|
Ejemplo
cuando empezó :: hat events
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Find and face the nearest red Bean Bag.]
set turn velocity to (30) [% v]
set [object_counter v] to [1]
get [AI Classifications v] data from [AIVision v]
repeat ([AIVision v] object count)
set [AIVision v] object item to (object_counter)
if <[AIVision v] object is [RedBeanBag v]?> then
if <([AIVision v] object [centerX v]) < (140)> then
turno [izquierda v]
else if <([AIVision v] object [centerX v]) > (180)> then
turno [derecha v]
demás
deja de conducir
fin
romper
fin
change [object_counter v] by [1]
fin
Ajustes#
elemento de objeto de conjunto#
El bloque establecer elemento de objeto establece qué elemento del conjunto de datos se debe utilizar.
set [AIVision v] object item to [1]
Parámetros |
Descripción |
|---|---|
artículo |
El número del elemento del conjunto de datos que se va a utilizar. |
Ejemplo
cuando empezó :: hat events
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Find the index of the nearest red Bean Bag.]
set [object_counter v] to [1]
get [AI Classifications v] data from [AIVision v]
repeat ([AIVision v] object count)
set [AIVision v] object item to (object_counter)
if <[AIVision v] object is [RedBeanBag v]?> then
print (join [Nearest Red Bean Bag is ] (object_counter)) ▶
romper
demás
change [object_counter v] by [1]
fin
fin
Valores#
El objeto existe#
El bloque object exists devuelve un valor booleano que indica si se ha detectado 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.
<[AIVision v] object exists?>
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Turn until a Bean Bag is detected.]
set turn velocity to (30) [% v]
turno [derecha v]
repeat until <[AIVision v] object exists?>
get [AI Classifications v] data from [AIVision v]
fin
deja de conducir
El objeto es#
El bloque object is devuelve un valor booleano que indica si un objeto detectado coincide con una clasificación específica.
Verdadero: el elemento en el conjunto de datos es el objeto específico.
Falso: el elemento en el conjunto de datos no es el objeto específico.
<[AIVision v] object is [RedBeanBag v]?>
Parámetro |
Descripción |
|---|---|
objeto |
¿Con qué objeto comparar el artículo: RedBeanBag, BlueBeanBag o YellowBeanBag? |
Ejemplo
cuando empezó :: hat events
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Find the index of the nearest red Bean Bag.]
set [object_counter v] to [1]
get [AI Classifications v] data from [AIVision v]
repeat ([AIVision v] object count)
set [AIVision v] object item to (object_counter)
if <[AIVision v] object is [RedBeanBag v]?> then
print (join [Nearest Red Bean Bag is ] (object_counter)) ▶
romper
demás
change [object_counter v] by [1]
fin
fin
El objeto es AprilTag#
El bloque object is AprilTag devuelve un valor booleano que indica si el objeto detectado es un AprilTag que coincide con un ID específico.
Verdadero: el objeto detectado es un AprilTag con el ID proporcionado.
Falso: El objeto detectado no es un AprilTag con el ID proporcionado.
<[AIVision v] object is AprilTag [0] ?>
Parámetro |
Descripción |
|---|---|
ID de etiqueta de abril |
El número de identificación que se comparará con la etiqueta AprilTag detectada. |
Ejemplo
cuando empezó :: hat events
[Stop when you see the Red Goal!]
set turn velocity to (30) [% v]
turno [derecha v]
repeat until <[AIVision v] object is AprilTag [1] ?>
get [AprilTags v] data from [AIVision v]
fin
deja de conducir
print [Found the Red Goal!] ▶
recuento de objetos#
El bloque conteo de objetos devuelve el número de objetos detectados en el conjunto de datos como un número entero.
([AIVision v] object count)
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Print how many Bean Bags are detected.]
get [AI Classifications v] data from [AIVision v]
print ([AIVision v] object count) ▶
propiedad del objeto#
Hay seis propiedades que se incluyen con cada objeto almacenado después de que se utiliza el bloque obtener datos del objeto.
([AIVision v] object [width 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 se debe utilizar: ancho, alto, centroX, centroY, origenX o origenY? |
ancho#
La propiedad width informa el ancho del objeto detectado en píxeles como un número entero del 1 al 320.
([AIVision v] object [width v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Approach the Bean Bag, then pick it up.]
set drive velocity to (30) [% v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
if <([AIVision v] object [width v]) > (180)> then
drive [forward v] for [50] [mm v] ▶
spin [IntakeMotor v] [intake v] for [90] [degrees v] ▶
romper
demás
unidad [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.
([AIVision v] object [height v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Approach the Bean Bag, then pick it up.]
set drive velocity to (30) [% v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
if <([AIVision v] object [height v]) > (100)> then
drive [forward v] for [50] [mm v] ▶
spin [IntakeMotor v] [intake v] for [90] [degrees v] ▶
romper
demás
unidad [adelante v]
fin
fin
fin
fin
centroX#
La propiedad centerX informa la coordenada x del centro del objeto detectado en píxeles como un número entero de 0 a 320.
([AIVision v] object [centerX v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Steer to keep the Bean Bag centered while approaching.]
set turn velocity to (30) [% v]
set drive velocity to (30) [% v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
if <([AIVision v] object [centerX v]) < (140)> then
turn [left v] for (5) degrees ▶
demás
drive [forward v] for (150) [mm v] ▶
spin [IntakeMotor v] [intake v]
romper
fin
fin
fin
fin
centroY#
La propiedad centerY informa la coordenada y del centro del objeto detectado en píxeles como un número entero de 0 a 240.
([AIVision v] object [centerY v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Print the y-position of the Bean Bag.]
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
print ([AIVision v] object [centerY v]) ▶
fin
fin
origenX#
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.
([AIVision v] object [originX v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Steer to keep the left edge centered.]
set turn velocity to (30) [% v]
set drive velocity to (30) [% v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
if <([AIVision v] object [originX v]) < (100)> then
turn [left v] for (5) degrees ▶
demás
drive [forward v] for (150) [mm v] ▶
spin [IntakeMotor v] [intake v]
romper
fin
fin
fin
fin
origenY#
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.
([AIVision v] object [originY v])
Ejemplo
cuando empezó
[Drop the preloaded Bean Bag.]
spin [IntakeMotor v] [outtake v] for (180) [degrees v] ▶
girar [izquierda v] por (90) grado ▶
[Print the y-position of the Bean Bag's top edge.]
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to [1]
if <[AIVision v] object is [RedBeanBag v]?> then
print ([AIVision v] object [originY v]) ▶
fin
fin