Bloques específicos para robots#

Introducción#

El Hero Bot, Dex, incluye 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 VR VEXcode estándar están disponibles para su uso en el V5 25-26 Push Back.

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.

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.

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
[Drive forward, then stop.]
conducir [adelante v]
esperar (2) segundos
detener conducción

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
[Drive forward.]
conducir [adelante v] por (500) [mm 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
[Turn right, then stop.]
girar [derecha v]
esperar (2) segundos
detener conducción

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
[Turn left, then turn around to the right.]
girar [izquierda v] por (90) grados ▶
girar [derecha v] por (180) grados ▶

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
[Turn to face the cardinal directions.]
girar al rumbo (90) grados ▶
esperar (2) segundos
girar al rumbo (180) grados ▶
esperar (2) segundos
girar al rumbo (270) grados ▶
esperar (2) segundos
girar al rumbo (0) grados ▶
esperar (2) segundos

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
[Turn left, then spin in a circle clockwise and face right.]
girar a la rotación (-90) grados ▶
esperar (2) segundos
girar a la rotación (450) grados ▶

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
[Drive forward, then stop.]
conducir [adelante v]
esperar [4] segundos
detener conducción

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
[Drive forward at the default velocity.]
conducir [adelante v] por (100) [mm v] ▶
esperar (1) segundos
[Move slower.]
establecer velocidad de conducción a (20) [% v]
conducir [adelante v] por (100) [mm v] ▶
esperar (1) segundos
[Move faster.]
establecer velocidad de conducción a (100) [% v]
conducir [adelante v] por (100) [mm v] ▶
esperar (1) segundos

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 at default velocity.]
girar [derecha v] por (100) grados ▶
esperar (1) segundos
[Turn slower.]
establecer velocidad de giro a (20)%
girar [derecha v] por (100) grados ▶
esperar (1) segundos
[Turn faster.]
establecer velocidad de giro a (100)%
girar [derecha v] por (100) grados ▶
esperar (1) segundos

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
[Turn to the left.]
establecer rumbo de conducción a (90) grados
girar al rumbo (0) grados ▶

ajuste de la rotación del 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 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
[Spin counterclockwise two times.]
establecer rotación de conducción a (720) 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

Al arrancar, limita el tiempo de conducción a 1 segundo y luego gira 90 grados.#
cuando inicie :: hat events
[Drive forward for 1 second, then turn.]
establecer tiempo límite de conducción a (1) segundos
conducir [adelante v] por (25) [pulgadas v] ▶
girar [derecha v] por (90) 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
[Start spinning when the drive is complete.]
conducir [adelante v] por (200) [mm v] ◀ y no esperar
esperar hasta <¿conducción terminada?>
girar [derecha v] por (360) grados ▶

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
[Print that the robot is moving while it is still driving.]
conducir [adelante v] por (200) [mm v] ◀ y no esperar
mientras <¿conducción en movimiento?>
imprimir [Still Moving...] ▶
esperar (0.1) segundos
limpiar pantalla
fin
imprimir [Done!] ▶

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
[Display the heading after turning.]
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
[Display the rotation after turning.]
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
[Display the velocity after driving.]
conducir [adelante v] por (200) [mm v] ▶
imprimir (velocidad de conducción en [% v]) en pantalla ◀ y mover cursor a la siguiente fila

Movimiento#

Dex utiliza el motor de entrada para introducir los bloques en el robot. El motor de la cinta transportadora mueve los bloques desde la entrada hasta la parte superior del robot para que puedan ser empujados hacia una meta.

Cada motor tiene sus propias opciones de dirección. Los nombres de las direcciones describen cómo se mueve ese motor en Dex.

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 [ConveyorMotor v] [arriba v]

Parámetros

Descripción

motor

El motor a girar: Motor transportador o Motor de entrada.

dirección

Dirección de giro del motor:

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

Ejemplo

cuando inicie
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [350] [mm 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 [ConveyorMotor v] [arriba v] por (90) [grados v] ▶

Parámetros

Descripción

motor

El motor a girar: Motor transportador o Motor de entrada.

dirección

Dirección de giro del motor:

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

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
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [350] [mm 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 refiere a cuánto ha girado, medido en grados o vueltas. Una vuelta equivale a 360 grados. Al inicio de un proyecto, la posición del motor se establece en 0 grados. También se puede establecer la posición del motor 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 [ConveyorMotor v] a posición (90) [grados v] ▶

Parámetros

Descripción

motor

El motor a girar: Motor transportador o Motor de entrada.

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
[Pick up a second Block.]
girar [ConveyorMotor v] a posición [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [350] [mm v] ▶

motor de parada#

El bloque parar motor detiene el motor seleccionado.

detener [ConveyorMotor v]

Parámetros

Descripción

motor

El motor que se debe detener es: Motor del transportador o Motor de entrada.

Ejemplo

cuando inicie
[Pick up a second Block.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [350] [mm v] ▶
detener [IntakeMotor 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 [ConveyorMotor v] a [50] [% v]

Parámetros

Descripción

motor

El motor para ajustar la velocidad es: MotorTransportador o MotorIngreso.

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
[Pick up a second Block.]
establecer velocidad de [ConveyorMotor v] a [100] [% v]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [400] [mm 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 [ConveyorMotor v] a [1] segundos

Parámetros

Descripción

motor

Motor para configurar el tiempo de espera: MotorTransportador o MotorDeAtención.

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
[Pick up a second Block.]
establecer tiempo límite de [ConveyorMotor v] a [0.5] segundos
girar [ConveyorMotor v] a posición [1000] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [400] [mm 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 del proyecto, la posición del motor se establece en 0 grados. Si el motor gira una vuelta completa hacia adelante, la posición será de 360 ​​grados o 1 vuelta. Si el motor gira en sentido contrario, la posición será negativa.

(posición de [ConveyorMotor v] en [grados v])

Parámetros

Descripción

motor

El motor que debe informar la posición de: Motor del transportador o Motor de entrada.

unidad

La unidad informa la posición del motor en: grados o vueltas.

Ejemplo

cuando inicie
[Pick up a second Block.]
mientras <(posición de [ConveyorMotor v] en [grados v]) [math_less_than v] [200]>
girar [ConveyorMotor v] [arriba v]
fin
detener [ConveyorMotor v]
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [400] [mm 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 [ConveyorMotor v] a (0) [grados v]

Parámetros

Descripción

motor

El motor para establecer la posición de: Motor del transportador o Motor de entrada.

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.

Ejemplo

cuando inicie
[Pick up a second Block.]
establecer posición de [ConveyorMotor v] a [-200] [grados v]
girar [ConveyorMotor v] a posición [0] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [400] [mm 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.

<¿[ConveyorMotor v] terminó?>

Parámetros

Descripción

motor

El motor que debe indicar si ha terminado de moverse es: MotorTransportador o MotorIngreso.

Ejemplo

cuando inicie
[Pick up a second Block.]
girar [ConveyorMotor v] a posición [300] [grados v] ◀ y no esperar
conducir [adelante v]
girar [IntakeMotor v] [consumo v]
esperar hasta <¿[ConveyorMotor v] terminó?>
detener conducción
detener [IntakeMotor v]

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.

<¿[ConveyorMotor v] está girando?>

Parámetros

Descripción

motor

El motor que indica si está girando es: MotorTransportador o MotorIngreso.

Ejemplo

cuando inicie
[Pick up a second Block.]
girar [ConveyorMotor v] a posición [300] [grados v] ◀ y no esperar
esperar [0.1] segundos
mientras <¿[ConveyorMotor v] está girando?>
conducir [adelante v] por [200] [mm v] ▶
girar [IntakeMotor v] [consumo v]

velocidad del motor#

El bloque de informe de velocidad del motor indica la velocidad de giro del motor, expresada como un porcentaje entre -100% y 100%.

(velocidad de [ConveyorMotor v] en [% v] :: custom-motion)

Parámetros

Descripción

motor

El motor que debe informar la velocidad es: MotorTransportador o MotorDeAtención.

unidad

La unidad para informar la velocidad del motor en: %.

Ejemplo

cuando inicie
[Pick up a second Block.]
establecer velocidad de [ConveyorMotor v] a [100] [% v]
girar [ConveyorMotor v] a posición [300] [grados v] ◀ y no esperar
esperar [0.2] segundos
imprimir (velocidad de [ConveyorMotor v] en [% v] :: custom-motion) ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [400] [mm v] ▶

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.

El bloque de pila Obtener datos del objeto.#
obtener datos de [Clasificaciones de IA v] desde AI Vision

Parámetro

Descripción

firma

Filtra el conjunto de datos para incluir solo los datos de la firma especificada. Las firmas disponibles son:

  • Clasificaciones de IA - Detecta bloques rojos y azules.

Ejemplo

cuando inicie
[If an object is detected, pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
esperar hasta <¿[Bumper v] presionado?>
detener conducción
interrumpir

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.#
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
[Display what object is farthest away.]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a (cantidad de objetos de [AIVision v])
limpiar todas las filas
si <¿objeto de [AIVision v] es [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
si no
imprimir [Red Block farthest away.] ▶

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.

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

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie
[If an an object is detected, pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
esperar hasta <¿[Bumper v] presionado?>
detener conducción
interrumpir

El objeto es#

El bloque AI Vision 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.

El objeto AI Vision es un bloque booleano.#
<¿objeto de [AIVision v] es [BlueBlock v]?>

Parámetro

Descripción

objeto

¿Con qué objeto comparar el elemento?:

  • Bloque azul
  • Bloque rojo

Ejemplo

cuando inicie
[Display what object is farthest away.]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a (cantidad de objetos de [AIVision v])
limpiar todas las filas
si <¿objeto de [AIVision v] es [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
si no
imprimir [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.#
(cantidad de objetos de [AIVision])

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie
[Display what object is farthest away.]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
establecer elemento de objeto de [AIVision v] a (cantidad de objetos de [AIVision v])
limpiar todas las filas
si <¿objeto de [AIVision v] es [BlueBlock v]?> entonces
imprimir [Blue Block farthest away.] ▶
si no
imprimir [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.#
(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.

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

Ejemplo

cuando inicie
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <(objeto [ancho v] de [AIVision v]) [math_greater_than v] [65]> entonces
detener conducción
interrumpir
si no
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
altura#

La propiedad altura informa la altura del objeto detectado en píxeles como un número entero del 1 al 240.

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

Ejemplo

cuando inicie
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <(objeto [alto v] de [AIVision v]) [math_greater_than v] [55]> entonces
detener conducción
interrumpir
si no
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
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.

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

Ejemplo

cuando inicie
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [izquierda v] por [80] grados ▶
conducir [adelante v] por [100] [mm v] ▶
establecer velocidad de giro a [20] [% v]
girar [izquierda v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <<[140] [math_less_than v] (objeto [centroX v] de [AIVision v])> y <(objeto [centroX v] de [AIVision v]) [math_less_than v] [180]>> entonces
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
esperar hasta <¿[Bumper v] presionado?>
detener conducción
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.

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

Ejemplo

cuando inicie
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <(objeto [centroY v] de [AIVision v]) [math_greater_than v] [140]> entonces
detener conducción
interrumpir
si no
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
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.

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

Ejemplo

cuando inicie
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [izquierda v] por [80] grados ▶
conducir [adelante v] por [100] [mm v] ▶
establecer velocidad de giro a [20] [% v]
girar [izquierda v]
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <<[100] [math_less_than v] (objeto [origenX v] de [AIVision v])> y <(objeto [origenX v] de [AIVision v]) [math_less_than v] [140]>> entonces
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
esperar hasta <¿[Bumper v] presionado?>
detener conducción
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.

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

Ejemplo

cuando inicie
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
por siempre
obtener datos de [Clasificaciones de IA v] desde [AIVision v]
si <¿existe objeto de [AIVision v]?> entonces
si <[120] [math_less_than v] (objeto [origenY v] de [AIVision v])> entonces
detener conducción
interrumpir
si no
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
fin
fin

Detección#

Óptico#

El sistema óptico detectó un objeto.#

El bloque booleano Objeto detectado por el sensor óptico indica si el sensor óptico detecta o no un objeto dentro del alcance.

  • Verdadero — El sensor óptico detecta un objeto.

  • Falso — El sensor óptico no detecta ningún objeto.

<¿[Optical v] encontró un objeto?>

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v]
esperar hasta <¿[Optical v] encontró un objeto?>
detener [ConveyorMotor v]

El sensor óptico detecta el color.#

El bloque booleano Detección óptica de color indica si el sensor óptico detecta un color específico, basándose en el valor de tono detectado.

  • Verdadero – El sensor detecta el color especificado.

  • Falso – El sensor no detecta el color especificado.

<¿[Optical v] detecta [rojo v]?>

Parámetros

Descripción

color

¿Qué color buscar?:

  • rojo – Un valor de tono detectado entre 340° y 20°.
  • verde – Un valor de tono detectado entre 80° y 140°.
  • azul – Un valor de tono detectado entre 200° y 240°.
  • amarillo – Un valor de tono detectado entre 40° y 60°.
  • naranja – Un valor de tono detectado entre 20° y 40°.
  • púrpura – Un valor de tono detectado entre 240° y 280°.
  • cian – Un valor de tono detectado entre 140° y 200°.

Ejemplo

cuando inicie
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [360] [mm v] ▶
girar [ConveyorMotor v] [arriba v]
esperar hasta <¿[Optical v] detecta [azul v]?>
detener [ConveyorMotor v]

Brillo óptico#

El bloque de indicadores de brillo óptico informa la cantidad de luz que se refleja de vuelta al sensor óptico, como un porcentaje del 0 % al 100 %.

(brillo de [Optical v] en %)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v]
esperar hasta <[0] [math_less_than v] (brillo de [Optical v] en %)>
detener [ConveyorMotor v]

Tonalidad óptica#

El bloque de informe de tono óptico informa el tono detectado por el sensor óptico como un número de 0 a 359 grados.

El matiz es una forma de describir el color utilizando números alrededor de una rueda de colores.

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°.

(tono de [Optical v] en grados)

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

cuando inicie
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [arriba v] por [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v] por [360] [mm v] ▶
girar [ConveyorMotor v] [arriba v]
esperar hasta <[240] [math_equal v] (tono de [Optical v] en grados)>
detener [ConveyorMotor v]

cuando óptico#

El bloque when Optical ejecuta la pila de bloques adjunta cada vez que el sensor óptico detecta o pierde un objeto.

cuando [Optical v] [detecta v] un objeto

Parámetros

Descripción

estado

Cuando se ejecute la pila de bloques adjunta: detecta se ejecuta cuando se detecta un objeto no detectado, mientras que pierde se ejecuta cuando un objeto detectado ya no se detecta.

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

  • X
  • Y

unidades

La unidad para representar la posición: mm o pulgadas

Ejemplo

cuando inicie
[Pick up a second Block.]
girar [ConveyorMotor v] a posición [200] [grados v] ▶
girar [IntakeMotor v] [consumo v]
conducir [adelante v]
esperar hasta <[-450] [math_greater_than v] (posición [Y v] de [GPS v] en [mm v])>
detener conducción

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
[Score the preloaded Block into a Center Goal.]
girar [izquierda v]
esperar hasta <[40] [math_greater_than v] (rumbo de [GPS v] en grados)>
conducir [adelante v] por [1000] [mm v] ▶
girar [derecha v]
esperar hasta <(rumbo de [GPS v] en grados) [math_greater_than v] [310]>
conducir [marcha atrás v] por [200] [mm v] ▶
girar [ConveyorMotor v] [arriba v]