Bloques específicos del robot#
Introducción#
El patio de juegos V5RC 25-26 Push Back presenta bloques exclusivos para la construcción diseñada para este patio de juegos, incluidas dos opciones de motor, sensor de visión de inteligencia artificial, sensor óptico y sistema de posicionamiento de juego (GPS).
Todos los bloques VEXcode VR estándar están disponibles para su uso en el patio de juegos V5RC 25-26 Push Back.
A continuación se muestra una lista de todos los bloques específicos de Playground disponibles:
Movimiento: mueve y rastrea los motores del robot.
Comportamiento
spin – Hace girar el motor o el grupo de motores seleccionado indefinidamente.
girar por – Hace girar un motor o grupo durante una distancia específica en grados o vueltas.
girar a posición – Gira un motor o un grupo de motores a una posición establecida.
detener motor – Detiene el giro de un motor o un grupo de motores específico.
Ajustes
establecer velocidad del motor – Establece la velocidad de un motor o grupo de motores como un porcentaje.
establecer tiempo de espera del motor – Limita el tiempo que un bloque de motor espera antes de darse por vencido si se bloquea el movimiento.
Posición
posición del motor – Devuelve la posición de rotación actual del motor en grados o vueltas.
establecer posición del motor – Establece el valor del codificador de un motor o grupo de motores.
Valores
¿El motor está listo? – Devuelve un valor booleano que indica si el motor ya no está girando.
¿El motor está girando? – Devuelve un valor booleano que indica si el motor está girando actualmente.
velocidad del motor – Devuelve la velocidad actual del motor en %.
Visión con IA: captura y analiza objetos utilizando el sensor de visión con IA.
Comportamiento
obtener datos de objeto – Captura datos para un tipo de objeto específico, como colores, objetos entrenados previamente o AprilTags.
Ajustes
establecer elemento de objeto – Selecciona un objeto específico de la lista.
Valores
¿existe el objeto? – Devuelve si se detectó alguna clasificación.
La clasificación de IA es – Regresa si se detecta una clasificación.
número de objetos – Devuelve la cantidad de objetos que se detectaron.
propiedad del objeto – Devuelve detalles como:
Detección: utilice los distintos sensores del robot.
Óptico
¿Objeto óptico encontrado? – Devuelve si se detectó un objeto.
¿Ópticamente detecta color? – Devuelve si se detecta un color específico.
Brillo óptico – Devuelve el brillo en %.
Tono óptico – Devuelve el tono del color detectado.
cuando es óptico – Ejecuta bloques adjuntos cuando el sensor óptico detecta o pierde un objeto.
GPS
Posición GPS – Devuelve la posición X o Y del sensor GPS.
Rumbo GPS – Devuelve el rumbo hacia el que se encuentra orientado actualmente el robot.
Los ejemplos de este proyecto utilizan la posición de inicio del patio de juegos predeterminada.
Movimiento#
Comportamiento#
girar#
El bloque spin hace girar un motor o un grupo de motores seleccionado en una dirección específica utilizando la velocidad actual del motor.
girar [ConveyorMotor v] [arriba v]
Parámetros |
Descripción |
---|---|
motor |
El grupo motor a girar:
|
dirección |
Dirección de giro:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [350] [mm v] ▶
girar para#
El bloque girar para hace girar un motor o un grupo de motores seleccionado durante una cantidad específica de rotación usando la velocidad actual del motor, medida en grados o vueltas.
girar [ConveyorMotor v] [arriba v] por (90) [grados v] ▶
Parámetros |
Descripción |
---|---|
motor |
El grupo motor a girar:
|
dirección |
Dirección de giro:
|
distancia |
La cantidad de rotación, como número entero o decimal. |
unidad |
La unidad de medida, que puede ser una de las siguientes:
|
flecha expansiva |
By default, this is a waiting block, so the motor will finish moving before running the next block. To make the motor start moving and immediately run the next block right away, expand the block to say and don’t wait. |
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [350] [mm v] ▶
girar a la posición#
El bloque girar a posición hace girar un motor o un grupo de motores a una posición absoluta específica utilizando la velocidad del motor y la posición del motor actuales.
girar [ConveyorMotor v] a la posición (90) [grados v] ▶
Parámetros |
Descripción |
---|---|
motor |
El grupo motor a girar:
|
posición |
La posición de destino hacia la cual girar el grupo motor. |
unidad |
La unidad de medida, que puede ser una de las siguientes:
|
flecha expansiva |
By default, this is a waiting block, so the motor will finish moving before running the next block. To make the motor start moving and immediately run the next block right away, expand the block to say and don’t wait. |
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] a la posición [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [350] [mm v] ▶
detener el motor#
El bloque detener motor detiene inmediatamente el motor o el grupo de motores seleccionado.
parada [ConveyorMotor v]
Parámetros |
Descripción |
---|---|
motor |
El grupo motor a detener:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [350] [mm v] ▶
parada [IntakeMotor v]
Ajustes#
establecer la velocidad del motor#
El bloque establecer velocidad del motor establece la velocidad de giro predeterminada de un motor o grupo de motores como un porcentaje para todos los bloques de motor posteriores en el proyecto.
set [ConveyorMotor v] velocity to (50) [% v]
Parámetros |
Descripción |
---|---|
motor |
El grupo de motores para establecer la velocidad de:
|
velocidad |
Establece la velocidad de movimiento predeterminada de 0 a 100 como porcentaje. |
unidad |
La unidad que representa la velocidad:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
set [ConveyorMotor v] velocity to [100] [% v]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [400] [mm v] ▶
establecer el tiempo de espera del motor#
El bloque establecer tiempo de espera del motor establece un límite de tiempo que un bloque de motor esperará para alcanzar su objetivo. Si el robot no puede completar el movimiento dentro del tiempo establecido, se detendrá automáticamente y continuará con el siguiente bloque.
Nota: El límite de tiempo del motor se utiliza para evitar que los bloques del motor que no alcanzan su posición objetivo detengan la ejecución de otros bloques en la pila.
Establezca el tiempo de espera [ConveyorMotor v] en [1] segundo
Parámetros |
Descripción |
---|---|
motor |
El grupo de motores para establecer el tiempo de espera de:
|
tiempo |
La cantidad máxima de segundos que un bloque de motor funcionará antes de detenerse y pasar al siguiente bloque. |
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
Establezca el tiempo de espera [ConveyorMotor v] en [0.5] segundo
girar [ConveyorMotor v] a la posición [1000] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [400] [mm v] ▶
Posición#
posición del motor#
El bloque posición del motor devuelve la distancia total que ha girado el motor o el grupo de motores seleccionado.
([ConveyorMotor v] posición en [grados v])
Parámetros |
Descripción |
---|---|
motor |
El grupo de motores para devolver la posición de:
|
unidad |
La unidad de medida, que puede ser una de las siguientes:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
mientras <([ConveyorMotor v] posición en [grados v]) [math_less_than v] [150]>
girar [ConveyorMotor v] [arriba v]
fin
parada [ConveyorMotor v]
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [400] [mm v] ▶
establecer la posición del motor#
El bloque establecer posición del motor establece un valor de posición específico para un motor o grupo de motores, que actualiza la lectura del codificador.
Establezca la posición [ConveyorMotor v] en (0) [grados v]
Parámetros |
Descripción |
---|---|
motor |
El grupo de motores para establecer la posición de:
|
posición |
El valor de posición del codificador a establecer. |
unidad |
La unidad de medida, que puede ser una de las siguientes:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
Establezca la posición [ConveyorMotor v] en [-150] [grados v]
girar [ConveyorMotor v] a la posición [0] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [400] [mm v] ▶
Valores#
El motor está listo#
El bloque ¿El motor está listo? devuelve un valor booleano que indica si el motor o el grupo de motores no está girando.
Verdadero – El motor no gira.
Falso – El motor está girando.
<[ConveyorMotor v] ¿está hecho?>
Parámetros |
Descripción |
---|---|
motor |
El grupo motor para comprobar si no está girando:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] a la posición [300] [grados v] ◀ y no esperes
unidad [adelante v]
girar [IntakeMotor v] [consumo v]
esperar hasta <[ConveyorMotor v] ¿está hecho?>
deja de conducir
parada [IntakeMotor v]
¿El motor está girando?#
El bloque ¿el motor está girando? devuelve un valor booleano que indica si el motor está girando.
Verdadero – El motor está girando.
Falso – El motor no gira.
<[ConveyorMotor v] esta girando?>
Parámetros |
Descripción |
---|---|
motor |
Grupo motor para comprobar si está girando:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] a la posición [300] [grados v] ◀ y no esperes
esperar [0.1] segundos
mientras <[ConveyorMotor v] esta girando?>
unidad [adelante v] para [200] [mm v] ▶
girar [IntakeMotor v] [consumo v]
velocidad del motor#
El bloque velocidad del motor devuelve la velocidad de rotación actual del motor o grupo de motores en un rango de -100% a 100%.
([ConveyorMotor v] velocidad en [% v])
Parámetros |
Descripción |
---|---|
motor |
El grupo de motores para devolver la velocidad de:
|
unidad |
La unidad que representa la velocidad:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
set [ConveyorMotor v] velocity to [100] [% v]
girar [ConveyorMotor v] a la posición [300] [grados v] ◀ y no esperes
esperar [0.2] segundos
imprimir ([ConveyorMotor v] velocidad en [% v]) ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [400] [mm v] ▶
Visión de IA#
Comportamiento#
obtener datos del objeto#
El bloque obtener datos del objeto filtra los datos del marco del sensor de visión de IA. Este sensor puede detectar elementos del 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 mediante el bloque AI Vision object property. Si no se detectan objetos coincidentes, se devuelve un conjunto de datos vacío.
obtener [AI Classifications v] datos de AI Vision
Parámetro |
Descripción |
---|---|
firma |
Filtra el conjunto de datos para incluir solo datos de la firma dada. La única firma disponible es:
|
Ejemplo
cuando empezó :: hat events
[If an object is detected, pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
esperar hasta <[Bumper v] presionado?>
deja de conducir
romper
Ajustes#
elemento de objeto establecido#
El bloque establecer objeto de elemento establece qué elemento del conjunto de datos utilizar.
Establecer el elemento de objeto [AIVision v] en [1]
Parámetros |
Descripción |
---|---|
artículo |
El número del elemento en el conjunto de datos que se utilizará. |
Ejemplo
cuando empezó :: hat events
[Display what object is farthest away.]
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
Establecer el elemento de objeto [AIVision v] en ([AIVision v] recuento de objetos)
borrar todas las filas
si <[AIVision v] object is [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
demás
imprimir [Red Block farthest away.] ▶
Valores#
¿Existe el objeto?#
El bloque ¿existe el objeto? devuelve un valor 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.
<¿Existe el objeto AI Vision?>
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[If an an object is detected, pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
esperar hasta <[Bumper v] presionado?>
deja de conducir
romper
La clasificación de IA es#
El bloque ¿El objeto AI Vision es? devuelve un valor 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.
<[AIVision] object is [BlueBlock v]?>
Parámetro |
Descripción |
---|---|
objeto |
¿Con qué objeto comparar el artículo?
|
Ejemplo
cuando empezó :: hat events
[Display what object is farthest away.]
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
Establecer el elemento de objeto [AIVision v] en ([AIVision v] recuento de objetos)
borrar todas las filas
si <[AIVision v] object is [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
demás
imprimir [Red Block farthest away.] ▶
recuento de objetos#
El bloque conteo de objetos devuelve la cantidad de objetos detectados en el conjunto de datos como un entero.
([AIVision] recuento de objetos)
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Display what object is farthest away.]
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
Establecer el elemento de objeto [AIVision v] en ([AIVision v] recuento de objetos)
borrar todas las filas
si <[AIVision v] object is [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
demás
imprimir [Red Block farthest away.] ▶
propiedad del objeto#
Hay seis propiedades que se incluyen con cada objeto (que se muestran a continuación) almacenado después de que se utiliza el bloque obtener datos del objeto.
([AIVision v] objeto [amplitud v])
Algunos valores de propiedad se basan en la posición del objeto detectado en la vista del sensor de visión de IA al momento de usar el bloque obtener datos del objeto. El sensor de visión de IA tiene una resolución de 320 x 240 píxeles.
Parámetro |
Descripción |
---|---|
propiedad |
¿Qué propiedad del objeto detectado utilizar?: |
ancho#
width devuelve el ancho del objeto detectado en píxeles como un entero de 1 a 320.
([AIVision v] objeto [amplitud v])
Ejemplo
cuando empezó :: hat events
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <([AIVision v] objeto [amplitud v]) [math_greater_than v] [65]> entonces
deja de conducir
romper
demás
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
altura#
altura devuelve la altura del objeto detectado en píxeles como un entero de 1 a 240.
([AIVision v] objeto [altura v])
Ejemplo
cuando empezó :: hat events
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <([AIVision v] objeto [altura v]) [math_greater_than v] [55]> entonces
deja de conducir
romper
demás
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
centroX#
centerX devuelve la coordenada x del centro del objeto detectado en píxeles como un entero de 0 a 320.
([AIVision v] objeto [centroX v])
Ejemplo
cuando empezó :: hat events
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [izquierda v] por [80] grado ▶
unidad [adelante v] para [100] [mm v] ▶
establecer la velocidad de giro a [20] [% v]
turno [izquierda v]
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <<[140] [math_less_than v] ([AIVision v] objeto [centroX v])> y <([AIVision v] objeto [centroX v]) [math_less_than v] [180]>> entonces
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
esperar hasta <[Bumper v] presionado?>
deja de conducir
centroY#
centerY devuelve la coordenada y del centro del objeto detectado en píxeles como un entero de 0 a 240.
([AIVision v] objeto [centroY v])
Ejemplo
cuando empezó :: hat events
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <([AIVision v] objeto [centroY v]) [math_greater_than v] [140]> entonces
deja de conducir
romper
demás
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
origenX#
originX devuelve 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] objeto [origenX v])
Ejemplo
cuando empezó :: hat events
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [izquierda v] por [80] grado ▶
unidad [adelante v] para [100] [mm v] ▶
establecer la velocidad de giro a [20] [% v]
turno [izquierda v]
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <<[100] [math_less_than v] ([AIVision v] objeto [origenX v])> y <([AIVision v] objeto [origenX v]) [math_less_than v] [140]>> entonces
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
esperar hasta <[Bumper v] presionado?>
deja de conducir
origenY#
originY devuelve 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] objeto [origenY v])
Ejemplo
cuando empezó :: hat events
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
para siempre
obtener [AI Classifications v] datos de [AIVision v]
si <¿Existe [AIVision v] objeto?> entonces
si <[120] [math_less_than v] ([AIVision v] objeto [origenY v])> entonces
deja de conducir
romper
demás
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
fin
fin
Detección#
Óptico#
¿Objeto óptico encontrado?#
El bloque ¿Objeto óptico encontrado? devuelve un valor booleano que indica si el sensor óptico ha detectado un objeto.
Verdadero: el sensor óptico ha detectado un objeto.
Falso: el sensor óptico no ha detectado un objeto.
<[Optical v] Encontraste un objeto?>
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v]
esperar hasta <[Optical v] Encontraste un objeto?>
parada [ConveyorMotor v]
¿La tecnología óptica detecta el color?#
El bloque ¿El sensor óptico detecta color? devuelve un valor booleano que indica si el sensor óptico ha detectado un color específico.
Verdadero: el sensor óptico ha detectado el color especificado.
Falso: el sensor óptico no ha detectado el color especificado.
<[Optical v] detecta [rojo v]?>
Parámetros |
Descripción |
---|---|
color |
¿Qué color buscar?:
|
Ejemplo
cuando empezó :: hat events
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [360] [mm v] ▶
girar [ConveyorMotor v] [arriba v]
esperar hasta <[Optical v] detecta [azul v]?>
parada [ConveyorMotor v]
Brillo óptico#
El bloque Brillo óptico devuelve la cantidad de luz detectada por el sensor óptico en un rango de 0% a 100%.
([Optical v] brillo en %)
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v]
esperar hasta <[0] [math_less_than v] ([Optical v] brillo en %)>
parada [ConveyorMotor v]
Tono óptico#
El bloque Tono óptico devuelve el valor de tono del color detectado por el sensor óptico.
Los valores de tono varían de 0 a 359 grados, correspondientes a las posiciones en la rueda de color que se muestran a continuación.
([Optical v] tono en grados)
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v] por [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v] para [360] [mm v] ▶
girar [ConveyorMotor v] [arriba v]
esperar hasta <[240] [math_equal v] ([Optical v] tono en grados)>
parada [ConveyorMotor v]
Cuando óptico#
El bloque cuando es óptico ejecuta su pila cuando el sensor óptico detecta o pierde un objeto. Puedes tener varios bloques cuando es óptico para ejecutar varias pilas de bloques a la vez.
cuando [Optical v] [detects v] un objeto :: hat events
Parámetros |
Descripción |
---|---|
acción |
¿Qué acción activa el bloqueo del sombrero?:
|
Ejemplo
¡Próximamente un ejemplo!
GPS#
Posición GPS#
The GPS position block returns the positional offset of the robot’s turning reference point from the center of a field with the GPS (Game Positioning System™) Sensor.
([GPS v] posición [X v] en [mm v])
Parámetros |
Descripción |
---|---|
eje |
¿Qué acis reportar?:
|
unidades |
La unidad para representar la posición:
|
Ejemplo
cuando empezó :: hat events
[Pick up a second Block.]
girar [ConveyorMotor v] a la posición [150] [grados v] ▶
girar [IntakeMotor v] [consumo v]
unidad [adelante v]
esperar hasta <[-450] [math_greater_than v] ([GPS v] posición [Y v] en [mm v])>
deja de conducir
rumbo GPS#
The GPS heading block returns the heading that the robot is currently facing based on the GPS (Game Positioning System™) Sensor’s readings from the VEX GPS Field Code from 0.00 to 359.99 degrees.
([GPS v] rumbo en grados)
Parámetros |
Descripción |
---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando empezó :: hat events
[Score the preloaded Block into a Center Goal.]
turno [izquierda v]
esperar hasta <[40] [math_greater_than v] ([GPS v] rumbo en grados)>
unidad [adelante v] para [1000] [mm v] ▶
turno [derecha v]
esperar hasta <([GPS v] rumbo en grados) [math_greater_than v] [310]>
unidad [atrás v] para [200] [mm v] ▶
girar [ConveyorMotor v] [arriba v]