Bloques específicos para robots#

Introducción#

El parque infantil V5RC 25-26 Push Back incluye bloques exclusivos diseñados para este modelo, entre los que se incluyen dos opciones de motor, un sensor de visión con IA, un sensor óptico y un sensor de sistema de posicionamiento de juego (GPS).

Todos los bloques VEXcode VR estándar están disponibles para su uso en el parque infantil V5RC 25-26 Push Back.

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

Movimiento: Mueve y rastrea los motores del robot.

Visión por IA: Captura y analiza objetos utilizando el sensor de visión por IA.

Detección: Utilice los diversos sensores del robot.

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

Movimiento#

Comportamiento#

motor de giro#

El bloque motor de giro hace girar un motor o grupo de motores seleccionados en una dirección específica utilizando la velocidad actual del motor.

spin [ConveyorMotor v] [up v]

Parámetros

Descripción

motor

Grupo de motores a girar:

  • Motor transportador
  • Motor de entrada

dirección

Dirección de giro:

  • Motor del transportador
    • arriba
    • abajo
  • Motor de entrada
    • entrada
    • salida

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [350] [mm v] ▶

motor de giro para#

El bloque motor de giro para hace girar un motor o grupo de motores seleccionados durante una cantidad específica de rotación utilizando la velocidad actual del motor, medida en grados o vueltas.

spin [ConveyorMotor v] [up v] for (90) [degrees v] ▶

Parámetros

Descripción

motor

Grupo de motores a girar:

  • Motor transportador
  • Motor de entrada

dirección

Dirección de giro:

  • Motor del transportador
    • arriba
    • abajo
  • Motor de entrada
    • entrada
    • salida

distancia

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

unidad

La unidad de medida que representa la distancia:

  • grados
  • vueltas

flecha expansiva

Por defecto, este es un bloque de espera, por lo que el motor terminará de moverse antes de ejecutar el siguiente bloque. Para que el motor comience a moverse y ejecute inmediatamente el siguiente bloque, expanda el bloque para que diga y no espere.

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [350] [mm v] ▶

motor de giro para posicionar#

El bloque girar motor a posición hace girar un motor o grupo de motores a una posición absoluta específica utilizando la velocidad del motor y la posición del motor actuales.

spin [ConveyorMotor v] to position (90) [degrees v] ▶

Parámetros

Descripción

motor

Grupo de motores a girar:

  • Motor transportador
  • Motor de entrada

posición

La posición objetivo a la que debe girar el grupo motor.

unidad

Unidad de medida:

  • grados
  • vueltas

flecha expansiva

Por defecto, este es un bloque de espera, por lo que el motor terminará de moverse antes de ejecutar el siguiente bloque. Para que el motor comience a moverse y ejecute inmediatamente el siguiente bloque, expanda el bloque para que diga y no espere.

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] to position [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [350] [mm v] ▶

motor de parada#

El bloque parar motor detiene inmediatamente el motor o grupo de motores seleccionado.

stop [ConveyorMotor v]

Parámetros

Descripción

motor

Grupo de motores a detener:

  • Motor transportador
  • Motor de entrada

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [350] [mm v] ▶
stop [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 Motor subsiguientes en el proyecto.

set [ConveyorMotor v] velocity to [50] [% v]

Parámetros

Descripción

motor

Grupo motor para ajustar la velocidad de:

  • Motor transportador
  • Motor de entrada

velocidad

Establece la velocidad de movimiento predeterminada de 0 a 100 como porcentaje.

unidad

La unidad que representa la velocidad:

  • %

Ejemplo

cuando empezó
[Pick up a second Block.]
set [ConveyorMotor v] velocity to [100] [% v]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [400] [mm v] ▶

establecer tiempo de espera del motor#

El bloque set motor timeout establece un límite de tiempo para que un bloque Motor espere hasta 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.

set [ConveyorMotor v] timeout to [1] seconds

Parámetros

Descripción

motor

Grupo de motores para configurar el tiempo de espera:

  • Motor transportador
  • Motor de entrada

tiempo

El número máximo de segundos que un bloque de motor funcionará antes de detenerse y pasar al siguiente bloque.

Ejemplo

cuando empezó
[Pick up a second Block.]
set [ConveyorMotor v] timeout to [0.5] seconds
spin [ConveyorMotor v] to position [1000] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [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 grupo de motores seleccionado.

([ConveyorMotor v] position in [degrees v])

Parámetros

Descripción

motor

El grupo motor para devolver la posición de:

  • Motor transportador
  • Motor de entrada

unidad

Unidad de medida:

  • grados
  • vueltas

Ejemplo

cuando empezó
[Pick up a second Block.]
while <([ConveyorMotor v] position in [degrees v]) [math_less_than v] [200]>
spin [ConveyorMotor v] [up v]
fin
stop [ConveyorMotor v]
spin [IntakeMotor v] [intake v]
drive [forward v] for [400] [mm v] ▶

establecer la posición del motor#

El bloque establecer posición del motor asigna un valor de posición específico a un motor o grupo de motores, lo que actualiza la lectura del codificador.

set [ConveyorMotor v] position to (0) [degrees v]

Parámetros

Descripción

motor

Grupo motor para establecer la posición de:

  • Motor transportador
  • Motor de entrada

posición

El valor de posición del codificador que se va a configurar.

unidad

Unidad de medida:

  • grados
  • vueltas

Ejemplo

cuando empezó
[Pick up a second Block.]
set [ConveyorMotor v] position to [-200] [degrees v]
spin [ConveyorMotor v] to position [0] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [400] [mm v] ▶

Valores#

El motor está terminado#

El bloque ¿El motor está detenido? devuelve un valor booleano que indica si el motor o el grupo de motores no está girando.

  • Cierto: el motor no está girando.

  • Falso: el motor está girando.

<[ConveyorMotor v] is done?>

Parámetros

Descripción

motor

Grupo de motores a comprobar si no gira:

  • Motor transportador
  • Motor de entrada

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] to position [300] [degrees v] ◀ and don't wait
unidad [adelante v]
spin [IntakeMotor v] [intake v]
wait until <[ConveyorMotor v] is done?>
deja de conducir
stop [IntakeMotor v]

¿El motor está girando?#

El bloque ¿El motor está girando? devuelve un valor booleano que indica si el motor está girando.

  • Cierto: el motor está girando.

  • Falso: el motor no está girando.

<[ConveyorMotor v] is spinning?>

Parámetros

Descripción

motor

Grupo de motores para comprobar si está girando:

  • Motor del transportador
  • Motor de entrada

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] to position [300] [degrees v] ◀ and don't wait
esperar [0.1] segundos
while <[ConveyorMotor v] is spinning?>
unidad [adelante v] para [200] [mm v] ▶
spin [IntakeMotor v] [intake 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] velocity in [% v] :: custom-motion)

Parámetros

Descripción

motor

El grupo motor para devolver la velocidad de:

  • Motor transportador
  • Motor de entrada

unidad

La unidad que representa la velocidad:

  • %

Ejemplo

cuando empezó
[Pick up a second Block.]
set [ConveyorMotor v] velocity to [100] [% v]
spin [ConveyorMotor v] to position [300] [degrees v] ◀ and don't wait
esperar [0.2] segundos
print ([ConveyorMotor v] velocity in [% v] :: custom-motion) ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [400] [mm v] ▶

Visión por IA#

Comportamiento#

obtener datos del objeto#

El bloque obtener datos de objeto filtra los datos del marco del sensor de visión de IA. El sensor de visión de IA puede detectar elementos 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 de AI Vision. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.

El bloque de pila Obtener datos del objeto.#
get [AI Classifications v] data from 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ó
[If an object is detected, pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
spin [IntakeMotor v] [intake v]
unidad [adelante v]
wait until <[Bumper v] pressed?>
deja de conducir
romper

Ajustes#

elemento de objeto de conjunto#

El bloque establecer elemento de objeto establece qué elemento del conjunto de datos se debe utilizar.

El bloque de pila de elementos del objeto Set AI Vision.#
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ó
[Display what object is farthest away.]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to ([AIVision v] object count)
borrar todas las filas
if <[AIVision v] object is [BlueBlock v]?> then
print [Blue Block farthest away.] ▶
demás
print [Red Block farthest away.] ▶

Valores#

¿Existe el objeto?#

El bloque ¿Existe algún objeto? 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.

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

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[If an an object is detected, pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
spin [IntakeMotor v] [intake v]
unidad [adelante v]
wait until <[Bumper v] pressed?>
deja de conducir
romper

La clasificación de IA es#

El bloque ¿El objeto de AI Vision es? 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.

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

Parámetro

Descripción

objeto

¿Con qué objeto comparar el elemento?:

  • Bloque azul
  • Bloque rojo

Ejemplo

cuando empezó
[Display what object is farthest away.]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to ([AIVision v] object count)
borrar todas las filas
if <[AIVision v] object is [BlueBlock v]?> then
print [Blue Block farthest away.] ▶
demás
print [Red Block farthest away.] ▶

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.

El bloque de pila de elementos del objeto Set AI Vision.#
([AIVision] object count)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[Display what object is farthest away.]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
set [AIVision v] object item to ([AIVision v] object count)
borrar todas las filas
if <[AIVision v] object is [BlueBlock v]?> then
print [Blue Block farthest away.] ▶
demás
print [Red Block farthest away.] ▶

propiedad del objeto#

Hay seis propiedades que se incluyen con cada objeto (que se muestra a continuación) almacenadas después de que se utiliza el bloque obtener datos del objeto.

El bloque de informe de propiedades del objeto AI Vision.#
([AIVision v] object [width v])

Algunos valores de propiedad se basan en la posición del objeto detectado en la vista del sensor de visión artificial en el momento en que se utilizó el bloque obtener datos del objeto. El sensor de visión artificial tiene una resolución de 320 x 240 píxeles.

Parámetro

Descripción

propiedad

¿Qué propiedad del objeto detectado utilizar?:

ancho#

El parámetro width devuelve el ancho del objeto detectado en píxeles como un número entero entre 1 y 320.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en ancho.#
([AIVision v] object [width v])

Ejemplo

cuando empezó
[If an an object is detected, approach and pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <([AIVision v] object [width v]) [math_greater_than v] [65]> then
deja de conducir
romper
demás
spin [IntakeMotor v] [intake v]
unidad [adelante v]
altura#

La función height devuelve la altura del objeto detectado en píxeles como un número entero entre 1 y 240.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en altura.#
([AIVision v] object [height v])

Ejemplo

cuando empezó
[If an an object is detected, approach and pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <([AIVision v] object [height v]) [math_greater_than v] [55]> then
deja de conducir
romper
demás
spin [IntakeMotor v] [intake v]
unidad [adelante v]
centroX#

centerX devuelve la coordenada x del centro del objeto detectado en píxeles como un número entero entre 0 y 320.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en centerX.#
([AIVision v] object [centerX v])

Ejemplo

cuando empezó
[Pick up a Block from the top left group.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
turn [left v] for [80] degrees ▶
unidad [adelante v] para [100] [mm v] ▶
set turn velocity to [20] [% v]
turno [izquierda v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <<[140] [math_less_than v] ([AIVision v] object [centerX v])> and <([AIVision v] object [centerX v]) [math_less_than v] [180]>> then
spin [IntakeMotor v] [intake v]
unidad [adelante v]
wait until <[Bumper v] pressed?>
deja de conducir
centroY#

centerY devuelve la coordenada y del centro del objeto detectado en píxeles como un número entero entre 0 y 240.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en centerY.#
([AIVision v] object [centerY v])

Ejemplo

cuando empezó
[If an an object is detected, approach and pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <([AIVision v] object [centerY v]) [math_greater_than v] [140]> then
deja de conducir
romper
demás
spin [IntakeMotor v] [intake 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 la pila de propiedades del objeto AI Vision con su parámetro establecido en originX.#
([AIVision v] object [originX v])

Ejemplo

cuando empezó
[Pick up a Block from the top left group.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
turn [left v] for [80] degrees ▶
unidad [adelante v] para [100] [mm v] ▶
set turn velocity to [20] [% v]
turno [izquierda v]
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <<[100] [math_less_than v] ([AIVision v] object [originX v])> and <([AIVision v] object [originX v]) [math_less_than v] [140]>> then
spin [IntakeMotor v] [intake v]
unidad [adelante v]
wait until <[Bumper v] pressed?>
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 la pila de propiedades del objeto AI Vision con su parámetro establecido en originY.#
([AIVision v] object [originY v])

Ejemplo

cuando empezó
[If an an object is detected, approach and pick it up.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
para siempre
get [AI Classifications v] data from [AIVision v]
if <[AIVision v] object exists?> then
if <[120] [math_less_than v] ([AIVision v] object [originY v])> then
deja de conducir
romper
demás
spin [IntakeMotor v] [intake v]
unidad [adelante v]
fin
fin

Detección#

Óptico#

¿El sistema óptico detectó algún objeto?#

El bloque ¿El sensor óptico ha detectado un objeto? 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 ningún objeto.

<[Optical v] found an object?>

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[Move the preloaded Block to the top of the Conveyor.]
spin [ConveyorMotor v] [up v]
wait until <[Optical v] found an object?>
stop [ConveyorMotor v]

¿Detecta el color mediante tecnología óptica?#

El bloque ¿Detecta el color el sensor óptico? 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] detects [red v]?>

Parámetros

Descripción

color

¿Qué color comprobar?:

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

Ejemplo

cuando empezó
[Pick up and move a Blue Block to the top of the Conveyor.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [360] [mm v] ▶
spin [ConveyorMotor v] [up v]
wait until <[Optical v] detects [blue v]?>
stop [ConveyorMotor v]

Brillo óptico#

El bloque Brillo óptico devuelve la cantidad de luz detectada por el sensor óptico en un rango del 0% al 100%.

([Optical v] brightness in %)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[Move the preloaded Block to the top of the Conveyor.]
spin [ConveyorMotor v] [up v]
wait until <[0] [math_less_than v] ([Optical v] brightness in %)>
stop [ConveyorMotor v]

Tonalidad óptica#

El bloque Tono óptico devuelve el valor de tono del color detectado por el sensor óptico.

Los valores de tono van de 0 a 359 grados, lo que corresponde a las posiciones en la rueda de colores que se muestra a continuación.

Una rueda de colores circular que muestra un espectro completo de tonalidades etiquetadas con valores de grados alrededor del perímetro, aumentando en incrementos de 30 grados desde 0° en la parte superior hasta 360°.

([Optical v] hue in degrees)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[Pick up and move a Blue Block to the top of the Conveyor.]
spin [ConveyorMotor v] [up v] for [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
drive [forward v] for [360] [mm v] ▶
spin [ConveyorMotor v] [up v]
wait until <[240] [math_equal v] ([Optical v] hue in degrees)>
stop [ConveyorMotor v]

cuando óptico#

El bloque when Optical ejecuta su pila cuando el sensor óptico detecta o pierde un objeto. Puedes tener varios bloques when Optical para ejecutar varias pilas de bloques a la vez.

when [Optical v] [detects v] an object

Parámetros

Descripción

acción

¿Qué acción activa el bloque de sombrero?:

  • detecta
  • pierde

GPS#

posición GPS#

El bloque Posición GPS devuelve el desplazamiento posicional del punto de referencia de giro del robot desde el centro de un campo con el sensor GPS (Game Positioning System™).

([GPS v] position [X v] in [mm v])

Parámetros

Descripción

eje

¿Qué eje reportar?:

  • X
  • Y

unidades

Unidad para representar la posición:

  • mm
  • pulgadas

Ejemplo

cuando empezó
[Pick up a second Block.]
spin [ConveyorMotor v] to position [200] [degrees v] ▶
spin [IntakeMotor v] [intake v]
unidad [adelante v]
wait until <[-450] [math_greater_than v] ([GPS v] position [Y v] in [mm v])>
deja de conducir

rumbo GPS#

El bloque rumbo GPS devuelve el rumbo hacia el que apunta actualmente el robot en función de las lecturas del sensor GPS (Game Positioning System™) del código de campo GPS VEX, desde 0,00 hasta 359,99 grados.

([GPS v] heading in degrees)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando empezó
[Score the preloaded Block into a Center Goal.]
turno [izquierda v]
wait until <[40] [math_greater_than v] ([GPS v] heading in degrees)>
drive [forward v] for [1000] [mm v] ▶
turno [derecha v]
wait until <([GPS v] heading in degrees) [math_greater_than v] [310]>
unidad [atrás v] para [200] [mm v] ▶
spin [ConveyorMotor v] [up v]