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.

Visión con IA: captura y analiza objetos utilizando el sensor de visión con IA.

Detección: utilice los distintos sensores del 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:

  • Motor del transportador
  • Motor de admisión

dirección

Dirección de giro:

    Motor transportador
    • arriba
    • abajo
    Motor de admisión
    • admisión
    • salida

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:

  • Motor del transportador
  • Motor de admisión

dirección

Dirección de giro:

    Motor transportador
    • arriba
    • abajo
    Motor de admisión
    • admisión
    • salida

distancia

La cantidad de rotación, como número entero o decimal.

unidad

La unidad de medida, que puede ser una de las siguientes:

  • grados
  • vueltas

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:

  • Motor del transportador
  • Motor de admisión

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:

  • grados
  • vueltas

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:

  • Motor del transportador
  • Motor de admisión

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:

  • Motor del transportador
  • Motor de admisión

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:

  • ConveyorMotor
  • IntakeMotor

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:

  • ConveyorMotor
  • IntakeMotor

unidad

La unidad de medida, que puede ser una de las siguientes:

  • grados
  • vueltas

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:

  • Motor del transportador
  • Motor de admisión

posición

El valor de posición del codificador a establecer.

unidad

La unidad de medida, que puede ser una de las siguientes:

  • grados
  • vueltas

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:

  • ConveyorMotor
  • IntakeMotor

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:

  • Motor transportador
  • Motor de admisión

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:

  • ConveyorMotor
  • IntakeMotor

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.

El bloque de pila Obtener datos del objeto.#
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:

  • Clasificaciones de IA: Detecta bloques rojos y azules.

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.

El bloque de pila de elementos del objeto Establecer visión de IA.#
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.

El objeto AI Vision existe en el bloque booleano.#
<¿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.

La clasificación de IA de AI Vision es un bloque booleano de objetos.#
<[AIVision] object is [BlueBlock v]?>

Parámetro

Descripción

objeto

¿Con qué objeto comparar el artículo?

  • Pelota deportiva
  • Barril naranja
  • Barril azul
  • Robot AIM

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.

El bloque de pila de elementos del objeto Establecer visión de IA.#
([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.

El bloque informador de propiedades de objetos de AI Vision.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en ancho.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en altura.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en centerX.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en centerY.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en originX.#
([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.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en originY.#
([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?:

  • rojo
  • verde
  • azul
  • amarillo
  • naranja
  • morado

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.

Una rueda de color circular que muestra un espectro completo de tonos etiquetados con valores de grados alrededor del perímetro, que aumentan en incrementos de 30 grados desde 0° en la parte superior hasta 360°.

([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?:

  • detecta
  • pierde

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?:

  • X
  • Y

unidades

La unidad para representar la posición:

  • mm
  • pulgadas

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]