Bloques específicos para robots#
Introducción#
El Hero Bot, Flex, incluye un motor de garra, un motor de brazo, un sensor de visión con IA, un sensor de distancia y un sensor de sistema de posicionamiento de juego (GPS).
Todos los bloques VR VEXcode estándar están disponibles para su uso en el V5 26-27 Override.
A continuación se muestra una lista de todos los bloques específicos para robots disponibles:
Sistema de transmisión: Mover y girar el robot.
Comportamiento
drive — Mueve el robot hacia adelante o hacia atrás indefinidamente.
drive for — Mueve el robot hacia adelante o hacia atrás una distancia específica.
giro — Gira el robot hacia la izquierda o hacia la derecha indefinidamente.
girar para — Gira el robot hacia la izquierda o hacia la derecha un número específico de grados.
girar rumbo — Gira el robot para que mire hacia un rumbo específico.
girar a rotación — Gira el robot a una rotación específica.
detener conducción — Detiene el movimiento del robot.
Ajustes
establecer velocidad de conducción — Indica al robot a qué velocidad debe conducir.
establecer velocidad de giro — Indica al robot a qué velocidad debe girar.
establecer rumbo de conducción — Cambia el rumbo actual del robot a un nuevo rumbo.
establecer rotación de accionamiento — Cambia la rotación actual del robot a una nueva rotación.
set drive timeout — Establece cuántos segundos el robot intentará terminar un movimiento.
Valores
el movimiento ha terminado — Informa si el robot ha terminado de moverse.
el accionamiento se está moviendo — Informa si el robot se está moviendo.
dirección de conducción — Informa la dirección actual del robot de 0 a 359,99 grados.
rotación de accionamiento — Informa la rotación actual del robot.
velocidad de conducción — Indica la velocidad a la que se desplaza el robot.
Movimiento: Mueve y rastrea los motores del robot.
Comportamiento
motor de giro – Hace girar un motor hacia adelante o hacia atrás 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.
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.
posición del motor – Informa la posición actual del motor.
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.
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.
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 detalles como:
Detección: Utilice los diversos sensores del robot.
Distancia
Distancia encontrada un objeto – Informa si el sensor de distancia detecta un objeto dentro del alcance.
distancia del objeto – Informa la distancia entre el sensor de distancia y el objeto detectado más cercano.
GPS
Posición GPS – Devuelve la posición X o Y del sensor GPS.
Rumbo GPS – Devuelve el rumbo hacia el que apunta actualmente el robot.
Los ejemplos de esta página utilizan la ubicación de inicio C de la lista de verificación previa al partido del Playground.
Tren de transmisión#
El sistema de transmisión controla cómo se desplaza y gira el robot de realidad virtual. Este sistema puede avanzar o retroceder, girar a la izquierda o a la derecha, orientarse y seguir su propio movimiento de rotación.
Comportamiento#
conducir#
El bloque de accionamiento mueve el robot hacia adelante o hacia atrás indefinidamente. El robot seguirá moviéndose hasta que se le indique otra acción, como girar o detenerse.
conducir [adelante v]
Parámetros |
Descripción |
|---|---|
dirección |
La dirección en la que se mueve el robot: hacia adelante o hacia atrás. |
Ejemplo
cuando inicie :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v]
esperar (0.5) segundos
detener conducción
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
impulso para#
El bloque de la pila drive for mueve el robot hacia adelante o hacia atrás una distancia específica. El proyecto esperará a que el robot termine de moverse antes de ejecutar el siguiente bloque de la pila.
conducir [adelante v] por (200) [mm v] ▶
Parámetros |
Descripción |
|---|---|
dirección |
La dirección en la que se mueve el robot: hacia adelante o hacia atrás. |
distancia |
La distancia que recorre el robot. Puede ser un número entero o decimal. |
unidad |
Unidad de distancia: mm (milímetros) o pulgadas |
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 inicie :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
doblar#
El bloque de pila girar hace girar al robot hacia la izquierda o hacia la derecha indefinidamente. El robot seguirá girando hasta que se le asigne otra acción, como conducir o detenerse.
girar [derecha v]
Parámetros |
Descripción |
|---|---|
dirección |
La dirección en la que gira el robot: izquierda o derecha. |
Ejemplo
cuando inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar [izquierda v]
esperar (0.78) segundos
detener conducción
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar para#
El bloque turn for hace girar el robot hacia la izquierda o hacia la derecha un número específico de grados. El giro es relativo a la posición actual del robot. El programa esperará a que el robot termine de girar antes de ejecutar el siguiente bloque.
girar [derecha v] por (90) grados ▶
Parámetros |
Descripción |
|---|---|
dirección |
La dirección en la que gira el robot: izquierda o derecha. |
ángulo |
El número de grados que gira el robot. Puede ser un número entero o decimal. |
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 inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar [izquierda v] por (110) grados ▶
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar hacia el encabezamiento#
El rumbo es la dirección hacia la que apunta el robot, medida en grados. El bloque girar a rumbo hace que el robot gire para apuntar a un rumbo específico, desde -359 hasta 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo deseado.
El rumbo inicial es de 0 grados.
El proyecto esperará a que el robot termine de girar antes de ejecutar el siguiente bloque de la pila.
girar al rumbo (90) grados ▶
Parámetros |
Descripción |
|---|---|
título |
La dirección hacia la que debe apuntar el robot, desde -359 hasta 359 grados. |
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 inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar al rumbo (-110) grados ▶
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar para rotar#
El bloque apilable girar para rotar hace que el robot gire a una rotación específica.
La rotación indica cuánto ha girado el robot, medida en grados. Al inicio de un proyecto, el valor de rotación se establece en 0 grados. La rotación también se puede configurar mediante el bloque establecer rotación de accionamiento.
Los valores de rotación son absolutos. Esto significa que la dirección del giro depende de la rotación actual del robot. Girar a la derecha aumenta la rotación, y girar a la izquierda la disminuye.
Por ejemplo, si el robot comienza en 0 grados y se le da una rotación de 720 grados, girará dos veces a la derecha. Si luego se le da una rotación de 360 grados, girará una vez a la izquierda, ya que 360 es menor que 720.
El proyecto esperará a que el robot termine de girar antes de ejecutar el siguiente bloque de la pila.
girar a la rotación (90) grados ▶
Parámetros |
Descripción |
|---|---|
rotación |
El valor de rotación, en grados, que alcanzará el robot. Puede ser un número entero o decimal. |
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 inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar a la rotación (-110) grados ▶
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
dejar de conducir#
El bloque de apilamiento detener conducción detiene el movimiento del robot.
detener conducción
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v]
esperar (0.5) segundos
detener conducción
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
Ajustes#
establecer la velocidad de accionamiento#
El bloque establecer velocidad de conducción indica al robot a qué velocidad debe conducir. Un porcentaje mayor hace que el robot conduzca más rápido y un porcentaje menor hace que conduzca más despacio.
Todos los proyectos comienzan con el robot conduciendo al 50% de su velocidad por defecto.
Nota: Una mayor velocidad hace que el robot se desplace más rápido, pero puede ser menos preciso. Una menor velocidad hace que el robot se desplace más despacio, pero puede ser más preciso.
establecer velocidad de conducción a (50) [% v]
Parámetros |
Descripción |
|---|---|
velocidad |
La velocidad de conducción varía del 0% al 100%. |
unidad |
Unidad de velocidad: % |
Ejemplo
cuando inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar [izquierda v] por (110) grados ▶
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
establecer velocidad de conducción a (100) [% v]
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
establecer la velocidad de giro#
El bloque de pila establecer velocidad de giro indica al robot la velocidad a la que debe girar. Un porcentaje mayor hace que el robot gire más rápido y un porcentaje menor hace que gire más lento.
Todos los proyectos comienzan con el robot girando al 50% de su velocidad por defecto.
Nota: Una mayor velocidad hace que el robot gire más rápido, pero puede ser menos preciso. Una menor velocidad hace que el robot gire más despacio, pero puede ser más preciso.
establecer velocidad de giro a (50) [% v]
Parámetros |
Descripción |
|---|---|
velocidad |
La velocidad de giro varía del 0% al 100%. |
unidad |
Unidad de velocidad: % |
Ejemplo
cuando inicie :: hat events
[Turn to face the Neutral Goal faster.]
establecer velocidad de giro a (100) [% v]
girar [izquierda v] por (110) grados ▶
establecer dirección de conducción#
El rumbo es la dirección hacia la que apunta el robot, medida en grados. El bloque de pila establecer rumbo de conducción cambia el rumbo actual del robot a un nuevo valor.
Por ejemplo, si el robot ha girado para mirar hacia la derecha, al establecer la orientación a 0 grados, esa posición mirando hacia la derecha se convierte en la nueva posición de 0 grados. Entonces, el robot puede girar a otras posiciones en función de esa nueva orientación.
establecer rumbo de conducción a (0) grados
Parámetros |
Descripción |
|---|---|
título |
El valor de rumbo, en grados, que se debe establecer para el robot. |
Ejemplo
cuando inicie :: hat events
[Make facing the Neutral Goal the new heading.]
establecer rumbo de conducción a (110) grados
girar al rumbo (0) grados ▶
ajuste de la rotación de la transmisión#
La rotación indica cuánto ha girado el robot, medida en grados. Al inicio de un proyecto, el valor de rotación se establece en 0 grados. El bloque establecer rotación de accionamiento modifica la rotación actual del robot a un nuevo valor.
Por ejemplo, si el robot ha dado dos vueltas completas a la derecha, su valor de rotación será de 720 grados. Si se establece la rotación en 0 grados, esta volverá a su valor original. A partir de ahí, el robot podrá girar según ese nuevo valor.
establecer rotación de conducción a (0) grados
Parámetros |
Descripción |
|---|---|
rotación |
El valor de rotación, en grados, que se debe configurar para el robot. Puede ser un número entero o decimal. |
Ejemplo
cuando inicie :: hat events
[Make facing the Neutral Goal the new rotation.]
establecer rotación de conducción a (110) grados
girar a la rotación (0) grados ▶
establecer tiempo de espera de la unidad#
El bloque set drive timeout de la pila establece cuántos segundos intentará el robot completar un movimiento. Si el robot no puede terminar en ese tiempo, dejará de intentarlo y pasará al siguiente bloque de la pila. Esto evita que el robot se quede atascado en un movimiento.
establecer tiempo límite de conducción a (1) segundos
Parámetros |
Descripción |
|---|---|
tiempo |
El número de segundos que el robot puede intentar para completar un movimiento. Puede ser un número entero o decimal. |
Ejemplo
cuando inicie :: hat events
[Turn to face the Neutral Goal.]
establecer tiempo límite de conducción a (0.8) segundos
girar [izquierda v] por (180) grados ▶
Valores#
El viaje ha terminado.#
El bloque booleano drive is done indica si el robot ha terminado de moverse. Esto permite controlar la sincronización de otras acciones en función del movimiento del robot.
Verdadero — El robot ha terminado de moverse.
Falso — El robot sigue en movimiento.
Este bloque funciona junto con los bloques de transmisión que tienen el parámetro y no esperar.
<¿conducción terminada?>
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Score a Pin in a Neutral Goal.]
girar [izquierda v] por (110) grados ▶
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ◀ y no esperar
esperar hasta <¿conducción terminada?>
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
El impulso se está moviendo#
El bloque booleano drive is moving indica si el robot se está moviendo. Esto permite controlar la sincronización de otras acciones en función del movimiento del robot.
Verdadero — El robot se está moviendo.
Falso — El robot no se está moviendo.
Este bloque funciona junto con los bloques de transmisión que tienen el parámetro y no esperar.
<¿conducción en movimiento?>
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Raise the Arm once stopped near the Goal.]
girar [izquierda v] por (110) grados ▶
conducir [adelante v] por (25) [pulgadas v] ◀ y no esperar
mientras <¿conducción en movimiento?>
esperar (0.005) segundos
fin
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
dirección de conducción#
El rumbo es la dirección hacia la que apunta el robot, medida en grados. El bloque de informe rumbo de conducción informa ese rumbo desde 0 hasta 359,99 grados.
La dirección inicial del robot es de 0 grados.
(rumbo de conducción en grados)
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Turn to the Goal, then show heading.]
girar [derecha v] por (450) grados ▶
imprimir (rumbo de conducción en grados) en pantalla ◀ y mover cursor a la siguiente fila
rotación de accionamiento#
La rotación indica cuánto ha girado el robot, medida en grados. Al inicio de un proyecto, el valor de rotación se establece en 0 grados. El bloque de informe drive rotation informa sobre la rotación actual del robot.
Girar a la derecha aumenta la rotación, y girar a la izquierda la disminuye. Por ejemplo, al dar dos vueltas completas a la derecha se registrará una rotación de 720 grados.
(rotación de conducción en grados)
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Spin to find a Pin, then show rotation.]
girar [derecha v] por (450) grados ▶
imprimir (rotación de conducción en grados) en pantalla ◀ y mover cursor a la siguiente fila
velocidad de conducción#
El bloque de informe de velocidad de conducción indica la velocidad a la que se desplaza el robot.
(velocidad de conducción en [% v])
Parámetros |
Descripción |
|---|---|
unidad |
Unidad de velocidad: % |
Ejemplo
cuando inicie :: hat events
[Show speed while driving to the Goal.]
conducir [adelante v] por (150) [mm v] ▶
imprimir (velocidad de conducción en [% v]) en pantalla ◀ y mover cursor a la siguiente fila
Movimiento#
Flex utiliza el motor del brazo para levantar y bajar el brazo, y el motor de la garra para abrir y cerrar la garra.
Cada motor tiene sus propias opciones de dirección. Los nombres de las direcciones describen cómo se mueve ese motor en Flex.
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.
girar [ArmMotor v] [arriba v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para girar: ArmMotor o ClawMotor. |
dirección |
Dirección de giro del motor:
|
Ejemplo
cuando inicie
[Raise the Arm before driving toward a Pin.]
girar [ArmMotor v] [arriba v]
esperar (1) segundos
detener [ArmMotor 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.
girar [ArmMotor v] [arriba v] por (90) [grados v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor para girar: ArmMotor o ClawMotor. |
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 inicie
[Raise the Arm to carry the Pin to the Goal.]
girar [ArmMotor v] [arriba v] por (800) [grados 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 mide en grados o vueltas. Una vuelta equivale a 360 grados. Al inicio del proyecto, la posición del motor del brazo se establece en 0 grados. El motor de la garra es la excepción: comienza en 467 grados (completamente cerrado). La posición del motor también se puede configurar 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.
girar [ArmMotor v] a posición (90) [grados v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor para girar: ArmMotor o ClawMotor. |
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 inicie
[Raise the Arm, then release the Pin.]
girar [ArmMotor v] a posición (800) [grados v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
motor de parada#
El bloque parar motor detiene el motor seleccionado.
detener [ArmMotor v]
Parámetros |
Descripción |
|---|---|
motor |
El motor a detener: Motor del brazo o Motor de la garra. |
Ejemplo
cuando inicie
[Raise the Arm partway to hold the Pin.]
girar [ArmMotor v] [arriba v]
esperar (1) segundos
detener [ArmMotor 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.
establecer velocidad de [ArmMotor v] a [50] [% v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para ajustar la velocidad es: Motor del brazo o Motor de la garra. |
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 inicie
[Raise the Arm fast to release the Pin.]
establecer velocidad de [ArmMotor v] a [100] [% v]
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados 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.
establecer tiempo límite de [ArmMotor v] a [1] segundos
Parámetros |
Descripción |
|---|---|
motor |
Motor para configurar el tiempo de espera: ArmMotor o ClawMotor. |
tiempo |
El número de segundos que el motor puede intentar completar un movimiento. Puede ser un número entero o decimal. |
Ejemplo
cuando inicie
[Score a Pin in a Neutral Goal.]
girar [izquierda v] por (110) grados ▶
establecer tiempo límite de [ArmMotor v] a [1] segundos
girar [ArmMotor v] [arriba v] por (1800) [grados v] ▶
conducir [adelante v] por (25) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados 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 de un proyecto, la posición del motor del brazo se establece en 0 grados. El motor de la garra es la excepción: comienza en 467 grados (completamente cerrado). Si el motor gira una vuelta completa hacia adelante, la posición aumenta. Si gira en sentido contrario, la posición disminuye.
(posición de [ArmMotor v] en [grados v])
Parámetros |
Descripción |
|---|---|
motor |
El motor para informar la posición de: Motor del brazo o Motor de la garra. |
unidad |
La unidad informa la posición del motor en: grados o vueltas. |
Ejemplo
cuando inicie
[Raise the Arm, then release the Pin.]
mientras <(posición de [ArmMotor v] en [grados v]) < (800)>
girar [ArmMotor v] [arriba v]
esperar (0.002) segundos
fin
detener [ArmMotor v]
girar [ClawMotor v] [abierto v] por (180) [grados 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.
establecer posición de [ArmMotor v] a (0) [grados v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para establecer la posición de: Motor del brazo o Motor de la garra. |
posición |
Valor de posición para el motor. Grados: usar números enteros. Vueltas: usar números enteros o decimales. |
unidad |
La unidad de medida de la posición: grados o vueltas. |
Ejemplo
cuando inicie
[Reset encoder, raise Arm, place Pin.]
establecer posición de [ArmMotor v] a (0) [grados v]
girar [ArmMotor v] a posición (800) [grados v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados 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] terminó?>
Parámetros |
Descripción |
|---|---|
motor |
El motor que indica si ha terminado de moverse es: ArmMotor o ClawMotor. |
Ejemplo
cuando inicie
[Raise the Arm while driving to the Goal.]
girar [ArmMotor v] a posición (800) [grados v] ◀ y no esperar
esperar (0.1) segundos
mientras <no <¿[ArmMotor v] terminó?>>
conducir [adelante v]
esperar (0.005) segundos
fin
detener conducción
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.
<¿[ArmMotor v] está girando?>
Parámetros |
Descripción |
|---|---|
motor |
El motor que indica si está girando es: ArmMotor o ClawMotor. |
Ejemplo
cuando inicie
[Raise the Arm while driving to the Goal, then release the Pin.]
girar [ArmMotor v] a posición (800) [grados v] ◀ y no esperar
esperar (0.1) segundos
mientras <¿[ArmMotor v] está girando?>
conducir [adelante v] por (20) [mm v] ▶
fin
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
velocidad del motor#
El bloque de informe de velocidad del motor informa qué tan rápido está girando el motor, como un porcentaje de -100% a 100%.
(velocidad de [ArmMotor v] en [% v] :: custom-motion)
Parámetros |
Descripción |
|---|---|
motor |
El motor que debe informar la velocidad es: Motor del brazo o Motor de la garra. |
unidad |
La unidad para informar la velocidad del motor en: %. |
Ejemplo
cuando inicie
[Show Arm Motor velocity while raising.]
establecer velocidad de [ArmMotor v] a [100] [% v]
girar [ArmMotor v] a posición (800) [grados v] ◀ y no esperar
esperar (0.2) segundos
imprimir (velocidad de [ArmMotor v] en [% v] :: custom-motion) en pantalla ◀ y mover cursor a la siguiente fila
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 de IA 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 AI Vision. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.
obtener datos de [Clasificaciones de IA v] desde [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 inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Turn to face the Pin.]
establecer velocidad de giro a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision 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
interrumpir
fin
fin
fin
Ajustes#
elemento de objeto de conjunto#
El bloque establecer elemento de objeto establece qué elemento del conjunto de datos se debe utilizar.
establecer elemento de objeto de [AIVision v] a [1]
Parámetros |
Descripción |
|---|---|
artículo |
El número del elemento del conjunto de datos que se va a utilizar. |
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿existe objeto de [AIVision v]?> entonces
[If any AI Classification is detected, check if any of them are a specific game element.]
si <¿objeto de [AIVision v] es [RedBluePin v]?> entonces
imprimir [RedBluePin detected.] ▶
si no
imprimir [No RedBluePin detected.] ▶
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.
<¿existe objeto de [AIVision v]?>
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿existe objeto de [AIVision v]?> entonces
imprimir (cantidad de objetos de [AIVision v]) ◀ y mover cursor a la siguiente fila
fin
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.
<¿objeto de [AIVision v] es [RedBluePin v]?>
Parámetro |
Descripción |
|---|---|
objeto |
¿Con qué objeto comparar el artículo?:
|
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <¿objeto de [AIVision v] es [RedBluePin v]?> entonces
imprimir [RedBluePin detected.] ▶
si no
imprimir [No RedBluePin detected.] ▶
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.
<¿objeto de [AIVision v] es 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 inicie
[Report if AprilTag 3 is detected.]
obtener datos de [AprilTags v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <¿objeto de [AIVision v] es AprilTag [3]?> entonces
imprimir [That is 3!] ▶
si no
imprimir [That isn't 3!] ▶
fin
fin
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.
(cantidad de objetos de [AIVision])
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
imprimir (cantidad de objetos de [AIVision v]) ◀ y mover cursor a la siguiente fila
fin
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.
(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 artificial 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 utilizar?: |
ancho#
La propiedad width informa el ancho del objeto detectado en píxeles como un número entero del 1 al 320.
(objeto [ancho v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Approach the next Cup and Pin.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <([AIVision v] object [width v]) > (140)> then
detener conducción
interrumpir
si no
conducir [adelante v]
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.
(objeto [alto v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Approach the next Cup and Pin.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <([AIVision v] object [height v]) > (200)> then
detener conducción
interrumpir
si no
conducir [adelante v]
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.
(objeto [centroX v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Turn and approach the next Cup and Pin.]
establecer velocidad de giro a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <(objeto [centroX v] de [AIVision v]) < (140)> then
girar [izquierda v] por (5) grados ▶
si no
conducir [adelante v] por (25) [pulgadas v] ▶
interrumpir
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.
(objeto [centroY v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Approach the next Cup and Pin.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <([AIVision v] object [centerY v]) > (230)> then
detener conducción
interrumpir
si no
conducir [adelante v]
fin
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.
(objeto [origenX v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Turn and approach the next Cup and Pin.]
establecer velocidad de giro a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <(objeto [origenX v] de [AIVision v]) < (100)> then
girar [izquierda v] por (5) grados ▶
si no
conducir [adelante v] por (25) [pulgadas v] ▶
interrumpir
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.
(objeto [origenY v] de [AIVision v])
Ejemplo
cuando inicie
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
girar [izquierda v] por (70) grados ▶
[Approach the next Cup and Pin.]
establecer velocidad de conducción a (30) [% v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
if <([AIVision v] object [originY v]) > (140)> then
detener conducción
interrumpir
si no
conducir [adelante v]
fin
fin
fin
Detección#
Distancia#
Distancia encontrada un objeto#
El bloque booleano Distancia encontrada un objeto indica si el sensor de distancia detecta actualmente un objeto a menos de 2000 mm.
Verdadero — El sensor de distancia detecta un objeto.
Falso — El sensor de distancia no detecta ningún objeto.
<¿[FrontDistance v] encontró un objeto?>
Parámetros |
Descripción |
|---|---|
sensor de distancia |
El sensor de distancia a utilizar. Elija entre los sensores de distancia disponibles para Flex. |
Ejemplo
cuando inicie :: hat events
[Turn until something is detected, then release the Pin.]
girar [derecha v]
esperar hasta <¿[FrontDistance v] encontró un objeto?>
detener conducción
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
distancia del objeto#
El bloque de informe de distancia del objeto informa la distancia entre el sensor de distancia y el objeto detectado más cercano.
(distancia de [FrontDistance v] en [mm v])
Parámetros |
Descripción |
|---|---|
sensor de distancia |
El sensor de distancia a utilizar. Elija entre los sensores de distancia disponibles para Flex. |
unidad |
La unidad de distancia: mm o pulgadas. |
Ejemplo
cuando inicie :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
conducir [adelante v]
esperar hasta <(distancia de [FrontDistance v] en [mm v]) < (200)>
detener conducción
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
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™).
(posición [X v] de [GPS v] en [mm v])
Parámetros |
Descripción |
|---|---|
eje |
¿Qué eje reportar?:
|
unidades |
La unidad para representar la posición: mm o pulgadas |
Ejemplo
cuando inicie :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
detener conducción
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
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.
(rumbo de [GPS v] en grados)
Parámetros |
Descripción |
|---|---|
Este bloque no tiene parámetros. |
Ejemplo
cuando inicie :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [arriba v] por (300) [grados v] ▶
conducir [adelante v] por (10) [pulgadas v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
[Turn left to face the Neutral Goal.]
establecer velocidad de giro a (30) [% v]
girar [izquierda v]
esperar hasta <(rumbo de [GPS v] en grados) < (18)>
detener conducción