Bloques específicos de robots#
Introducción#
El Hero Bot, Flex, incluye un ClawMotor, un ArmMotor, un sensor de visión AI, un sensor de distancia y un sensor del sistema de posicionamiento del juego (GPS).
Todos los bloques VEXcode VR estándar están disponibles para su uso en el V5 26-27 Override Playground.
A continuación se muestra una lista de todos los bloques específicos de robots disponibles:
Transmisión: mueva y gire el robot.
Acciones
Drive — Mueve el robot hacia adelante o hacia atrás para siempre.
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.
turn for — Gira el robot a la izquierda o a la derecha un número específico de grados.
pasar al encabezado — Gira el robot para que se enfrente a un encabezado específico.
girar a rotación — Gira el robot a una rotación específica.
Stop Driving — Detiene el movimiento del robot.
Ajustes
establecer velocidad DE conducción — Le dice al robot qué tan rápido conducir.
establecer velocidad DE giro — Le dice al robot qué tan rápido debe girar.
set drive heading — Cambia el rumbo actual del robot a un nuevo rumbo.
set drive rotation — Cambia la rotación actual del robot a una nueva rotación.
set drive timeout — Establece cuántos segundos intentará el robot terminar un movimiento.
Valores
Drive is done — Informa si el robot ha terminado de moverse.
drive is moving — Informa si el robot se está moviendo.
drive heading: informa sobre el rumbo actual del robot de 0 a 359,99 grados.
impulsar rotación — Informa la rotación actual del robot.
Drive Velocity: informa de la velocidad a la que conduce el robot.
Movimiento: mueva y siga los motores del robot.
Acciones
motor giratorio – Hace girar un motor hacia adelante o hacia atrás para siempre.
motor DE giro para – Hace girar un motor para una distancia específica en grados o giros.
girar el motor a la posición – gira un motor a una posición específica.
Stop motor – Detiene el giro de un motor.
Ajustes
establecer velocidad del motor – Le dice a un motor qué tan rápido debe girar.
set motor timeout – Establece cuánto tiempo intentará un motor terminar un movimiento.
set motor position – Cambia la posición actual del motor a un nuevo valor.
Valores
motor está listo – Informa si el motor ha terminado de moverse.
motor está girando – Informa si el motor está girando.
posición del motor – Informa la posición actual del motor.
velocidad del motor – Informa qué tan rápido está girando el motor, como un porcentaje de -100% a 100%.
AI Vision – Captura y analiza objetos utilizando el sensor de visión AI.
Acciones
get object data: captura datos para una firma específica, como una clasificación de IA detectada.
Ajustes
set object item – Selecciona un objeto específico de la lista.
Valores
object exists – Devuelve si se detectó alguna clasificación.
object is – Devuelve si se detecta una clasificación.
object is AprilTag – Devuelve si el objeto detectado es un AprilTag que coincide con un ID específico.
object count – Devuelve cuántos objetos se detectaron.
object property – 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.
GPS heading – Devuelve el rumbo al que se enfrenta 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 patio de recreo.
Tren de transmisión#
La transmisión controla cómo funciona y gira el robot de realidad virtual. El tren motriz puede moverse hacia adelante o hacia atrás, girar a la izquierda o a la derecha, girar hacia los encabezados y seguir su rotación.
Acciones#
unidad#
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] ▶
unidad para#
El bloque de pila * * drive for * * mueve el robot hacia adelante o hacia atrás una distancia específica. El proyecto esperará hasta que el robot termine de moverse antes de que se ejecute 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. Esto puede ser un número entero o un decimal. |
unidad |
La unidad de distancia: mm (milímetros) o pulgadas |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
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] ▶
giro#
El bloque de apilamiento * * Turn * * gira el robot a la izquierda o a la derecha para siempre. El robot continuará girando hasta que se le dé 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 de apilamiento * * turn for * * gira 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 proyecto esperará hasta que el robot termine de girar antes de que se ejecute el siguiente bloque de la pila.
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. Esto puede ser un número entero o un decimal. |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
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] ▶
pasar al encabezado#
Un rumbo es la dirección hacia la que mira el robot, medida en grados. El bloque de apilamiento * * girar a rumbo * * hace que el robot se enfrente a un rumbo específico de -359 a 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo objetivo.
El rumbo inicial es 0 grados.
El proyecto esperará hasta que el robot termine de girar antes de que se ejecute el siguiente bloque de la pila.
girar al rumbo (90) grados ▶
Parámetros |
Descripción |
|---|---|
encabezado |
El rumbo al que debe enfrentarse el robot es de -359 a 359 grados. |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
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 a rotación#
El bloque de apilamiento * * girar a rotación * * gira el robot a una rotación específica.
La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotación también se puede configurar utilizando el bloque set drive rotation.
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 disminuye la rotación.
Por ejemplo, si el robot comienza a 0 grados y gira a una rotación de 720 grados, girará a la derecha dos veces. Si luego giras a una rotación de 360 grados, girará a la izquierda una vez, porque 360 es menos de 720.
El proyecto esperará hasta que el robot termine de girar antes de que se ejecute 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, al que girará el robot. Esto puede ser un número entero o un decimal. |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
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 velocidad de accionamiento#
El bloque de apilamiento * * establecer velocidad de accionamiento * * le dice al robot qué tan rápido conducir. Un porcentaje más alto hace que el robot conduzca más rápido y un porcentaje más bajo hace que el robot conduzca más lento.
Cada proyecto comienza con el robot conduciendo al 50% de la velocidad por defecto.
Nota: Una velocidad más alta hace que el robot conduzca más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot conduzca más lento, pero puede ser más preciso.
establecer velocidad de conducción a (50) [% v]
Parámetros |
Descripción |
|---|---|
velocidad |
La velocidad para conducir va del 0% al 100%. |
unidad |
La 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 velocidad de giro#
El bloque de apilamiento * * establecer velocidad de giro * * le dice al robot qué tan rápido girar. Un porcentaje más alto hace que el robot gire más rápido y un porcentaje más bajo hace que el robot gire más lento.
Cada proyecto comienza con el robot girando a una velocidad del 50% por defecto.
Nota: Una velocidad más alta hace que el robot gire más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot gire más lento, pero puede ser más preciso.
establecer velocidad de giro a (50) [% v]
Parámetros |
Descripción |
|---|---|
velocidad |
La velocidad para girar es de 0% a 100%. |
unidad |
La 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 encabezado de unidad#
Un rumbo es la dirección hacia la que mira el robot, medida en grados. El bloque de pila * * establecer encabezado de unidad * * cambia el encabezado actual del robot a un nuevo valor de encabezado.
Por ejemplo, si el robot ha girado hacia la derecha, establecer el rumbo en 0 grados hace que esa posición orientada hacia la derecha sea la nueva de 0 grados. Luego, el robot puede pasar a otras posiciones en función de ese nuevo encabezado.
establecer rumbo de conducción a (0) grados
Parámetros |
Descripción |
|---|---|
encabezado |
El valor de rumbo, en grados, a 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 ▶
establecer rotación de accionamiento#
La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. El bloque de apilamiento * * set drive rotation * * cambia la rotación actual del robot a un nuevo valor.
Por ejemplo, si el robot ha realizado dos giros completos a la derecha, su valor de rotación será de 720 grados. Ajustar la rotación a 0 grados restablecerá esa rotación de 720 a 0 grados. Luego, el robot puede pasar a las rotaciones en función de 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, a establecer para el robot. Esto puede ser un número entero o un 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 de espera de conducción a (1) segundos
Parámetros |
Descripción |
|---|---|
tiempo |
El número de segundos que el robot puede intentar terminar un movimiento. Esto puede ser un número entero o un decimal. |
Ejemplo
cuando inicie :: hat events
[Turn to face the Neutral Goal.]
establecer tiempo de espera de conducción a (0.8) segundos
girar [izquierda v] por (180) grados ▶
Valores#
la unidad está lista#
La unidad está lista El bloque booleano informa si el robot ha terminado de moverse. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.
Verdadero: el robot ha terminado de moverse.
Falso: el robot todavía se está moviendo.
Este bloque funciona junto con los bloques de transmisión que tienen el parámetro y no espere.
<¿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] ▶
la unidad se está moviendo#
La unidad se está moviendo El bloque booleano informa si el robot se está moviendo. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.
Verdadero: el robot se está moviendo.
Falso: el robot no se mueve.
Este bloque funciona junto con los bloques de transmisión que tienen el parámetro y no espere.
<¿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] ▶
rumbo de la unidad#
Un rumbo es la dirección hacia la que mira el robot, medida en grados. El bloque del reportero * * Drive HEAD * * informa que el rumbo va de 0 a 359,99 grados.
El rumbo 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 la unidad#
La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. El bloque indicador * * Drive ROTATION * * informa de la rotación actual del robot.
Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación. Por ejemplo, hacer dos giros completos a la derecha informará 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 accionamiento#
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 |
La 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 ArmMotor para levantar y bajar el brazo, y el ClawMotor 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.
Acciones#
motor de giro#
El bloque de pila * * motor giratorio * * hace girar un motor en una de dos direcciones para siempre. El motor continuará 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 a 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 motor giratorio para bloque de apilamiento hace girar un motor para una distancia específica. El giro es relativo a la posición actual del motor. El proyecto esperará hasta que el motor termine de girar antes de que se ejecute el siguiente bloque de la pila.
girar [ArmMotor v] [arriba v] por (90) [grados v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor a girar: ArmMotor o ClawMotor. |
dirección |
Dirección de giro del motor:
|
distancia |
La distancia que gira el motor. Los grados usan enteros. Los giros pueden usar enteros o decimales. |
unidad |
La unidad de distancia: grados o giros. |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
Ejemplo
cuando inicie
[Raise the Arm to carry the Pin to the Goal.]
girar [ArmMotor v] [arriba v] por (800) [grados v] ▶
girar el motor a la posición#
El bloque de pila girar el motor a la posición hace girar un motor a una posición específica.
La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. Al comienzo de un proyecto, la posición del ArmMotor se establece en 0 grados. El ClawMotor es la excepción: comienza a 467 grados (completamente cerrado). La posición del motor también se puede configurar utilizando el bloque set motor position.
Los valores de posición son absolutos. Esto significa que la dirección del giro depende de la posición actual del motor.
Por ejemplo, si el motor arranca a 0 grados y gira a una posición de 720 grados, girará hacia adelante dos vueltas. Si luego gira a una posición de 360 grados, girará en reversa una vuelta, porque 360 es menos de 720.
girar [ArmMotor v] a la posición (90) [grados v] ▶
Parámetros |
Descripción |
|---|---|
motor |
El motor a girar: ArmMotor o ClawMotor. |
cargo |
El valor de posición al que girará el motor. Los grados usan enteros. Los giros pueden usar enteros o decimales. |
unidad |
La unidad de posición: grados o giros. |
y no esperes |
Selecciona la flecha (▶) para expandir el bloque y decir y no esperes, para que el siguiente bloque de la pila se ejecute de inmediato. |
Ejemplo
cuando inicie
[Raise the Arm, then release the Pin.]
girar [ArmMotor v] a la 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 parar: ArmMotor o ClawMotor. |
Ejemplo
cuando inicie
[Raise the Arm partway to hold the Pin.]
girar [ArmMotor v] [arriba v]
esperar (1) segundos
detener [ArmMotor v]
Ajustes#
establecer velocidad del motor#
El bloque de apilamiento establecer velocidad del motor le dice a un motor qué tan rápido debe girar. Un porcentaje más alto hace que el motor gire más rápido y un porcentaje más bajo hace que el motor gire más lento.
Cada proyecto comienza con cada motor girando al 50% de velocidad por defecto.
Nota: Una velocidad más alta hace que el motor gire más rápido, pero puede ser menos preciso. Una velocidad más baja 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 de: ArmMotor o ClawMotor. |
velocidad |
La velocidad a la que girará el motor. Porcentaje usa 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] ▶
configurar el 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 de espera de [ArmMotor v] a [1] segundos
Parámetros |
Descripción |
|---|---|
motor |
El motor para configurar el tiempo de espera de: *ArmMotor * o ClawMotor. |
tiempo |
El número de segundos que el motor puede intentar terminar un movimiento. Esto 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 de espera 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] ▶
Cargo#
posición del motor#
La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. El bloque indicador * * posición del motor * * informa la posición actual del motor.
Al comienzo de un proyecto, la posición del ArmMotor se establece en 0 grados. El ClawMotor es la excepción: comienza a 467 grados (completamente cerrado). Si el motor gira un giro completo hacia adelante, la posición aumenta. Si el motor gira en la otra dirección, 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: ArmMotor o ClawMotor. |
unidad |
La unidad para informar la posición del motor en: grados o giros. |
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] ▶
ajustar la posición del motor#
La posición de un motor es la distancia a la que ha girado, medida en * * grados * * o giros. Un giro es igual a 360 grados. El bloque de apilamiento * * set motor position * * cambia la posición actual del motor a un nuevo valor.
Por ejemplo, si un motor ha girado a 180 grados, ajustar la posición a 0 grados restablecerá esa posición de 180 a 0 grados. Entonces el motor puede girar a posiciones basadas en ese nuevo valor.
establecer posición de [ArmMotor v] a (0) [grados v]
Parámetros |
Descripción |
|---|---|
motor |
El motor para ajustar la posición de: ArmMotor o ClawMotor. |
cargo |
El valor de posición a establecer para el motor. Los grados usan enteros. Los giros pueden usar enteros o decimales. |
unidad |
La unidad de posición: grados o giros. |
Ejemplo
cuando inicie
[Reset encoder, raise Arm, place Pin.]
establecer posición de [ArmMotor v] a (0) [grados v]
girar [ArmMotor v] a la posición (800) [grados v] ▶
girar [ClawMotor v] [abierto v] por (180) [grados v] ▶
Valores#
el motor está listo#
El motor está listo El bloque booleano informa si el motor ha terminado de moverse. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del motor.
Verdadero — El motor ha terminado de moverse.
Falso — El motor todavía está en movimiento.
Este bloque funciona junto con los siguientes bloques de movimiento que tienen el parámetro y no espere: motor de giro para y motor de giro a la posición.
<¿[ArmMotor v] terminó?>
Parámetros |
Descripción |
|---|---|
motor |
El motor para informar si ha terminado de moverse: ArmMotor o ClawMotor. |
Ejemplo
cuando inicie
[Raise the Arm while driving to the Goal.]
girar [ArmMotor v] a la 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 motor está girando El bloque booleano informa si el motor está girando. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el 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 espere: motor de giro para y motor de giro a la posición.
<¿[ArmMotor v] está girando?>
Parámetros |
Descripción |
|---|---|
motor |
El motor para informar si está girando: ArmMotor o ClawMotor. |
Ejemplo
cuando inicie
[Raise the Arm while driving to the Goal, then release the Pin.]
girar [ArmMotor v] a la 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 indicador * * 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 para informar la velocidad de: ArmMotor o ClawMotor. |
unidad |
La unidad a reportar 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 la 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 de IA#
Acciones#
obtener datos de objeto#
El bloque obtener datos del objeto filtra los datos del marco del sensor de visión de IA a una sola firma: una descripción guardada de algo que el sensor puede reconocer, como un elemento de 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 utilizando el bloque AI Vision object property. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.
obtener datos [Clasificaciones de IA v] de [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 [Clasificaciones de IA v] de [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#
establecer elemento de objeto#
El bloque set object item establece qué elemento del conjunto de datos usar.
establecer elemento de objeto de [AIVision v] a [1]
Parámetros |
Descripción |
|---|---|
artículo |
El número del elemento en el conjunto de datos 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 [Clasificaciones de IA v] de [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 existe devuelve un 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 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 [Clasificaciones de IA v] de [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 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.
<¿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 [Clasificaciones de IA v] de [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 booleano que indica si el objeto detectado es un AprilTag que coincide con un ID específico.
Verdadero: el objeto detectado es una etiqueta de abril con el ID dado.
Falso: el objeto detectado no es una etiqueta de abril con el ID dado.
<¿objeto de [AIVision v] es AprilTag [0]?>
Parámetro |
Descripción |
|---|---|
ID de AprilTag |
El número de identificación para comparar con la etiqueta de abril detectada. |
Ejemplo
cuando inicie
[Report if AprilTag 3 is detected.]
obtener datos [AprilTags v] de [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 recuento 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 [Clasificaciones de IA v] de [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 de objeto#
Hay seis propiedades que se incluyen con cada objeto (que se muestra a continuación) almacenado después de usar el bloque * * get object data * *.
(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 usar: |
ancho#
La propiedad * * width * * informa del 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 [Clasificaciones de IA v] de [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 [Clasificaciones de IA v] de [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
centerX#
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 [Clasificaciones de IA v] de [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
centerY#
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 [Clasificaciones de IA v] de [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
originX#
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 [Clasificaciones de IA v] de [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
originY#
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 [Clasificaciones de IA v] de [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 informa si el sensor de distancia detecta actualmente un objeto dentro 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 informar:
|
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] ▶
Encabezado GPS#
El bloque Rumbo GPS devuelve el rumbo al que se enfrenta actualmente el robot en función de las lecturas del sensor GPS (Game Positioning System™) del código de campo VEX GPS de 0,00 a 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