Bloques específicos del robot#

Todos los bloques VEXcode VR estándar están disponibles para su uso en el patio de juegos V5RC Virtual Skills - High Stakes.

Movimiento#

Los bloques de este patio de juegos tendrán acceso a los parámetros Motor del brazo y Motor del empujador para todos los bloques de movimiento.

Al seleccionar una dirección para los bloques de movimiento, arriba hará girar el brazo hacia adelante y abajo lo hará girar en reversa.

Para el motor de empuje, bajar hará girar el motor de empuje hacia adelante y subir lo hará girar en reversa.

Spin#

El bloque Spin se utiliza para girar un motor indefinidamente.

Este es un bloque sin espera y permite que cualquier bloque posterior se ejecute sin demora.

girar [ArmMotor v] [arriba v]

Seleccione qué motor utilizar.

La imagen muestra un bloque de una interfaz de codificación visual donde el usuario selecciona un motor para el comando/_static/img/playgrounds/v5rc_high_stakes/motion/spin_motor.pnggiro. El motor seleccionado es “ArmMotor” y la opción alternativa en el menú desplegable es “PusherMotor”. El bloque está configurado para girar el “ArmMotor” hacia arriba.

Seleccione en qué dirección se moverá el motor.

El motor del brazo puede girar en dirección arriba o abajo.

La imagen muestra un bloque de código de una interfaz de programación visual, donde el usuario selecciona la dirección del comando «giro/_static/img/playgrounds/v5rc_high_stakes/motion/spin_direction_arm.png. El motor seleccionado es “ArmMotor” y la dirección está configurada en “arriba”, con una opción para cambiar a “abajo” en el menú desplegable.

El motor de empuje puede girar en dirección bajar o subir.

La imagen muestra un bloque de codificación visual donde se aplica el comando “girar” al “Motor de Empuje”. La dirección de giro está configurada actualmente en “bajar”, con una opción en el menú desplegable para cambiar a “subir”/_static/img/playgrounds/v5rc_high_stakes/motion/spin_direction_pusher.png

En este ejemplo, el motor del brazo girará durante 1 segundo para moverse en preparación para marcar.

cuando empezó
[Lift the Arm before moving to a Mobile Goal.]
girar [ArmMotor v] [arriba v]
esperar (1) segundos
parada [ArmMotor v]

Spin for#

El bloque Girar por se utiliza para girar un motor durante una distancia determinada.

Este puede ser un bloque sin espera o en espera dependiendo de si se utiliza la opción y no esperar.

girar [ArmMotor v] [arriba v] por [90] [grados v] ▶

Seleccione qué motor utilizar.

La imagen muestra un bloque de una interfaz de codificación visual que se utiliza para controlar un motor. En este bloque/_static/img/playgrounds/v5rc_high_stakes/motion/spin_for_motor.png, se selecciona “ArmMotor” en un menú desplegable y está configurado para girar 90 grados hacia arriba. El menú desplegable está visible y ofrece la opción de seleccionar “PusherMotor” en lugar de “ArmMotor”.

Seleccione en qué dirección se moverá el motor.

El motor del brazo puede girar en dirección arriba o abajo.

La imagen muestra un bloque de codificación visual que se utiliza para controlar un motor. En este bloque, se selecciona “ArmMotor” y la dirección se establece en “arriba” en un menú desplegable. El bloque especifica/_static/img/playgrounds/v5rc_high_stakes/motion/spin_for_direction_arm.pngel motor girará 90 grados hacia arriba. El menú desplegable es visible y ofrece la opción de seleccionar “abajo” en lugar de “arriba”.

El motor de empuje puede girar en dirección bajar o subir.

La imagen muestra un bloque de código que controla un motor denominado “Motor de Empuje”. Este bloque especifica que el motor debe girar 90 grados en la dirección “inferior”. Se muestra un menú desplegable/_static/img/playgrounds/v5rc_high_stakes/motion/spin_for_direction_pusher.pngpermite al usuario seleccionar la dirección “inferior” o “subir”.

Establezca la distancia que girará el motor ingresando un valor y eligiendo la unidad de medida (grados o vueltas).

La imagen muestra un bloque de codificación utilizado para controlar el “ArmMotor”. Este bloque está configurado para girar el motor hacia arriba durante 90 unidades. Las unidades se pueden seleccionar en un menú desplegable con opciones como “grados” o “vueltas”/_static/img/playgrounds/v5rc_high_stakes/motion/spin_for_unit.png

Por defecto, el bloque Girar durante bloqueará la ejecución de los bloques subsiguientes hasta que finalice. Al expandir el bloque Girar durante para mostrar y no esperar, los bloques continuarán ejecutándose mientras el motor esté en movimiento.

girar [ArmMotor v] [arriba v] por [90] [grados v] ◀ y no esperes

En este ejemplo, el motor del brazo girará 350 grados para no bloquear el sensor de visión de IA.

cuando empezó
[Lift the Arm to not block the AI Vision Sensor.]
girar [ArmMotor v] [arriba v] por [200] [grados v] ▶

Spin to position#

El bloque Girar a posición se utiliza para girar un motor a una posición establecida.

Este puede ser un bloque sin espera o en espera dependiendo de si se utiliza la opción y no esperar.

girar [ArmMotor v] a la posición [90] [grados v] ▶

Seleccione qué motor utilizar.

La imagen muestra un bloque de código donde se selecciona el “Motor del Brazo”/_static/img/playgrounds/v5rc_high_stakes/motion/spin_to_position_motor.pnggirar a una posición específica de 90 grados. Se puede elegir entre “Motor del Brazo” y “Motor del Empujador” para esta acción.

Establezca la distancia que girará el motor ingresando un valor y eligiendo la unidad de medida (grados o vueltas).

La imagen muestra un bloque/_static/img/playgrounds/v5rc_high_stakes/motion/spin_to_position_unit.pngcodificación donde el “Motor del Brazo” está configurado para girar a una posición de 90 unidades. Las unidades se pueden seleccionar entre “grados” y “vueltas”, con “grados” actualmente seleccionado.

Por defecto, el bloque Girar a posición bloqueará la ejecución de los bloques subsiguientes hasta que finalice. Al expandir el bloque Girar a posición para mostrar y no esperar, los bloques continuarán ejecutándose mientras el motor esté en movimiento.

girar [ArmMotor v] a la posición [90] [grados v] ◀ y no esperes

En este ejemplo, el motor del brazo girará a la posición de 350 grados para no bloquear el sensor de visión de IA.

cuando empezó
[Lift the Arm to not block the AI Vision Sensor]
girar [ArmMotor v] a la posición [350] [grados v] ▶

Stop Motor#

El bloque Detener motor se utiliza para detener el movimiento del motor.

Este es un bloque sin espera y permite que cualquier bloque posterior se ejecute sin demora.

parada [ArmMotor v]

Seleccione qué motor utilizar.

La imagen muestra un bloque de codificación donde el usuario puede seleccionar entre "ArmMotor" y "PusherMotor" para detener el motor seleccionado.

En este ejemplo, el motor del brazo girará durante 1 segundo para moverse en preparación para marcar.

cuando empezó
[Lift the Arm before moving to a Mobile Goal.]
girar [ArmMotor v] [arriba v]
esperar (1) segundos
parada [ArmMotor v]

Set Motor position#

El bloque Establecer posición del motor se utiliza para establecer la(s) posición(es) del codificador de un motor en el valor ingresado.

Este es un bloque sin espera y permite que cualquier bloque posterior se ejecute sin demora.

Establezca la posición [ArmMotor v] en [0] [grados v]

Seleccione qué motor utilizar.

La imagen muestra un bloque de codificación que establece la posición del “Motor del Brazo” a 0 grados. El menú desplegable se expande y muestra dos opciones: “Motor del Brazo” y “Motor del Empujador”. El “Motor del Brazo” está seleccionado, lo que indica que el comando/_static/img/playgrounds/v5rc_high_stakes/motion/set_motor_position_motor.pngposición se aplicará a este motor específico.

Establezca la unidad de medida a utilizar, grados o vueltas.

La imagen muestra un bloque de codificación donde la posición del “Motor del Brazo” está establecida en 0, y la unidad de medida se selecciona en un menú desplegable. El menú desplegable está expandido y muestra dos opciones: “grados” y «vueltas/_static/img/playgrounds/v5rc_high_stakes/motion/set_motor_position_unit.png. La opción “grados” está seleccionada, lo que indica que el comando de posición se ejecutará en grados.

En este ejemplo, el brazo se eleva a la posición de 350 grados y la establece como su nueva posición de 0 grados.

cuando empezó
[Make the raised Arm position the new 0 degrees position.]
girar [ArmMotor v] a la posición [350] [grados v] ▶
Establezca la posición [ArmMotor v] en [0] [grados v]

Set Motor velocity#

El bloque Establecer velocidad del motor se utiliza para establecer la velocidad de un motor.

Este es un bloque sin espera y permite que cualquier bloque posterior se ejecute sin demora.

Establezca la velocidad [ArmMotor v] en [50] [% v]

Seleccione qué motor utilizar.

La imagen muestra un bloque de código que establece la velocidad del “Motor del Brazo” al 50 %. El menú desplegable está abierto/_static/img/playgrounds/v5rc_high_stakes/motion/set_motor_velocity_motor.pngmuestra opciones para seleccionar “Motor del Brazo” o “Motor del Empujador” para la configuración de velocidad. El “Motor del Brazo” está seleccionado.

El bloque Establecer velocidad del motor aceptará un rango de -100% a 100%.

En este ejemplo, la velocidad del motor se establece al 100% antes de que se levante el brazo.

cuando empezó
[Raise Arm to not block the AI Vision Sensor.]
Establezca la velocidad [ArmMotor v] en [100] [% v]
girar [ArmMotor v] [arriba v] por [350] [grados v] ▶

Set Motor timeout#

El bloque Establecer tiempo de espera del motor se utiliza para establecer un límite de tiempo para los bloques de movimiento del motor.

Esto evita que los bloques de movimiento que no alcanzan su posición prevista impidan la ejecución de los bloques posteriores.

Este es un comando sin espera y permite que cualquier comando posterior se ejecute sin demora.

Establezca el tiempo de espera [ArmMotor v] en [1] segundo

Seleccione qué motor utilizar.

La imagen muestra un bloque de código donde el usuario puede configurar el tiempo de espera de un motor. En este caso, se selecciona “ArmMotor” en un menú desplegable, con la opción de cambiar a “PusherMotor” si se desea. El tiempo de espera se establece en 1 segundo, lo que significa que el motor seleccionado dejará de funcionar después de 1 segundo, independientemente de su tarea actual/_static/img/playgrounds/v5rc_high_stakes/motion/set_motor_timeout_motor.png

En este ejemplo, el tiempo de espera del motor se establece en 1 segundo antes de que se levante el brazo.

cuando empezó
[Raise Arm to not block the AI Vision Sensor.]
Establezca el tiempo de espera [ArmMotor v] en [1] segundo
girar [ArmMotor v] [arriba v] por [5] [giros v] ▶

Detección#

Axel tiene acceso a los bloques estándar de cerebro, transmisión, parachoques y detección de distancia.

Se ha cambiado el nombre de Detección ocular a Detección óptica para que coincida con el sensor óptico frontal.

Motor Sensing#

El motor está listo#

El bloque Motor listo se utiliza para informar si el motor o el grupo de motores seleccionado ha completado su movimiento.

<[ArmMotor v] ¿está hecho?>

Seleccione qué motor o grupo de motores utilizar.

La imagen muestra un bloque etiquetado “¿ArmMotor ha terminado?” con un menú desplegable que selecciona el motor. El menú desplegable muestra “ArmMotor” seleccionado, pero también permite al usuario elegir “PusherMotor”. Este bloque se/_static/img/playgrounds/v5rc_high_stakes/sensing/motor_done_motor.pngpara comprobar si el motor seleccionado, ya sea “ArmMotor” o “PusherMotor”, ha completado su acción, como alcanzar una posición específica o finalizar una rotación.

The Motor is done block reports True when the selected Motor or Motor Group has completed its movement.

The Motor is done block reports False when the selected Motor or Motor Group has not completed its movement.

El bloque Motor terminado se utiliza en bloques con espacios hexagonales (de seis lados).

El motor está girando#

El bloque El motor está girando se utiliza para informar si el motor o el grupo de motores seleccionado se está moviendo.

<[ArmMotor v] esta girando?>

Seleccione qué motor o grupo de motores utilizar.

La imagen muestra un bloque etiquetado “¿ArmMotor está girando?” con un menú desplegable expandido. Este menú permite elegir entre “ArmMotor” y “PusherMotor”/_static/img/playgrounds/v5rc_high_stakes/sensing/motor_spinning_motor.pngcon “ArmMotor” seleccionado. Este bloque se utiliza para comprobar si el motor seleccionado, en este caso “ArmMotor”, está girando.

The Motor is spinning block reports True when the selected Motor or Motor Group is moving.

The Motor is spinning block reports False when the selected Motor or Motor Group is not moving.

El bloque El motor está girando se utiliza en bloques con espacios hexagonales (de seis lados).

Posición del motor#

El bloque Posición del motor se utiliza para informar la posición de un motor o del primer motor de un grupo de motores.

([ArmMotor v] posición en [grados v])

Seleccione qué motor o grupo de motores utilizar.

La imagen muestra el bloque “Posición del motor del brazo en grados” con un menú desplegable/_static/img/playgrounds/v5rc_high_stakes/sensing/motor_position_motor.pngpermite seleccionar entre diferentes motores. El “motor del brazo” está seleccionado, con “motor de empuje” como otra opción disponible.

Seleccione cuándo utilizar la unidad, grados o vueltas.

La imagen muestra el bloque “Posición del motor del brazo en grados”, con un menú/_static/img/playgrounds/v5rc_high_stakes/sensing/motor_position_unit.pngque muestra “grados” como unidad seleccionada. El menú desplegable ofrece una opción adicional para medir la posición en “vueltas”.

El bloque Posición del motor se utiliza en bloques con espacios circulares.

En este ejemplo, el brazo se elevará hasta que su posición sea mayor a 300 grados.

cuando empezó
[Raise Arm to not block the AI Vision Sensor.]
girar [ArmMotor v] [arriba v]
esperar hasta <([ArmMotor v] posición en [grados v]) [math_greater_than v] [300]>
parada [ArmMotor v]

Velocidad del motor#

El bloque Velocidad del motor se utiliza para informar la velocidad actual de un motor o del primer motor de un grupo de motores.

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

Seleccione qué motor o grupo de motores utilizar.

La imagen muestra un bloque de una interfaz de codificación por bloques donde el usuario puede seleccionar un motor para obtener/_static/img/playgrounds/v5rc_high_stakes/sensing/motor_velocity_motor.pngvelocidad en porcentaje. El menú desplegable está expandido y muestra las opciones para seleccionar “ArmMotor” o “PusherMotor”. “ArmMotor” está seleccionado y la unidad de velocidad es porcentaje (“%”).

El bloque Velocidad del motor se utiliza en bloques con espacios circulares.

Rotation Sensing#

Establecer posición de rotación#

El bloque Establecer posición de rotación se utiliza para establecer la posición de rotación actual del motor de empuje en un nuevo valor.

Establezca la posición [PusherRotation v] a [0] grado

En este ejemplo, la rotación que empujará el anillo fuera del brazo se establecerá en 0 grados.

cuando empezó
[Make lower Pusher position the new 0 degrees rotation position.]
girar [PusherMotor v] [inferior v] por [270] [grados v] ▶
Establezca la posición [PusherRotation v] a [0] grado

Ángulo de rotación#

El bloque Ángulo de rotación se utiliza para informar el ángulo de rotación actual del motor de empuje en grados.

([PusherRotation v] ángulos en grados)

En este ejemplo, el empujador empujará el anillo fuera del brazo y luego informará el ángulo de rotación de los motores.

cuando empezó
[Make lower Pusher position the new 0 degrees rotation position.]
girar [PusherMotor v] [inferior v] por [270] [grados v] ▶
imprimir ([PusherRotation v] ángulos en grados) ▶

Posición de rotación#

El bloque Posición de rotación se utiliza para informar la posición actual del motor de empuje.

([PusherRotation v] posición en [grados v] :: custom-sensing)

Seleccione la unidad en la que desea informar, grados o vueltas.

La imagen muestra un bloque de código donde se puede comprobar la posición del componente “PusherRotation” en grados o vueltas. El menú desplegable está configurado actualmente en grados, pero también ofrece la opción/_static/img/playgrounds/v5rc_high_stakes/sensing/rotation_position_unit.pngcambiar a vueltas como unidad de medida.

En este ejemplo, el empujador empujará el anillo fuera del brazo y luego informará la posición de los motores en grados.

cuando empezó
[Make lower Pusher position the new 0 degrees rotation position.]
girar [PusherMotor v] [inferior v] por [270] [grados v] ▶
imprimir ([PusherRotation v] posición en [grados v] :: custom-sensing) ▶

GPS Sensing#

Posición GPS#

El bloque Posición GPS utiliza el sensor GPS (Game Positioning System™) para informar el desplazamiento posicional del punto de referencia de giro del robot con respecto al centro de un campo.

([PusherRotation v] posición [X v] en [mm v])

Seleccione el eje X o Y para informar.

La imagen muestra un bloque de codificación que permite al usuario seleccionar entre las coordenadas X e Y para obtener la posición/_static/img/playgrounds/v5rc_high_stakes/sensing/gps_position_axis.pngun sensor GPS. La opción seleccionada en el menú desplegable es “X”, pero también está disponible “Y”.

Seleccione en qué unidad desea informar el valor de desplazamiento, milímetros (MM) o pulgadas.

La imagen muestra un bloque de código que permite al usuario seleccionar entre las unidades de medida para la posición GPS, concretamente entre milímetros (mm) y pulgadas. La opción actual en el menú desplegable es “mm”, lo que indica que la posición se medirá en milímetros/_static/img/playgrounds/v5rc_high_stakes/sensing/gps_position_unit.png

rumbo GPS#

El bloque Rumbo GPS utiliza el sensor GPS (Game Positioning System™) para informar el rumbo que enfrenta actualmente un robot según las lecturas de un sensor GPS del código de campo GPS VEX.

El rumbo GPS informa un rango de 0,00 a 359,99 grados.

([GPS v] rumbo en grados)

AI Vision Sensing#

Tomar una instantánea#

El bloque Tomar instantánea capturará la imagen actual del sensor de visión de IA para procesarla y analizarla para las clasificaciones de IA.

Las clasificaciones de IA son objetivos móviles, anillos rojos y anillos azules.

[AIVision v]una instantánea de [AI Classifications v]

Todos los bloques subsiguientes del Sensor de Visión IA se basan en los datos de la instantánea más reciente. Para garantizar que trabaja con la información más actualizada, es importante tomar nuevas instantáneas periódicamente. Cada nueva instantánea actualiza los datos disponibles para todos los bloques del Sensor de Visión IA, lo que les permite procesar la información visual más reciente del entorno del sensor.

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

En este ejemplo, se toma una instantánea y el ancho y la altura de la clasificación de IA más grande detectada se imprimen en la consola de impresión.

  • De forma predeterminada, los objetos se indexan por tamaño, y el objeto más grande se encuentra en el índice 1.

  • El sensor de visión IA selecciona automáticamente el objeto más grande (índice 1) después de una instantánea.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
[Only if an AI Classification is detected, then print data from the largest AI Classification.]
imprimir [Largest object's width:] ▶
imprimir ([AIVision v] objeto [amplitud v]) ◀ y coloque el cursor en la siguiente fila
fin

La clasificación de IA es#

El bloque Clasificación de IA es informará si se ha detectado la clasificación de IA especificada.

<[AIVision v] AI Classification is [MobileGoal v]?>

Elija qué clasificación de IA desea detectar en la última instantánea.

El bloque en la imagen dice: "¿La clasificación de IA de AI Vision es MobileGoal?". El menú desplegable junto a "MobileGoal" está abierto y muestra opciones para seleccionar "MobileGoal", "RedRing" o "BlueRing".

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

En este ejemplo, después de tomar una instantánea, el código verificará si se detectó algún objetivo móvil.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
[If any AI Classification is detected, check if any of them are a Mobile Goal.]
si <[AIVision v] AI Classification is [MobileGoal v]?> entonces
imprimir [Mobile Goal is detected.] ▶
demás
imprimir [Mobile Goal is not detected.] ▶
fin
fin

Elemento de objeto de conjunto#

El bloque Establecer elemento de objeto establece el elemento de objeto (del objeto sobre el que desea obtener más información) entre los objetos detectados. De forma predeterminada, el elemento de objeto se establece en 1 al inicio de un proyecto.

Establecer el elemento de objeto [AIVision v] en [1]

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

En este ejemplo, después de tomar una instantánea, el índice del objeto actual se establece en el segundo objeto más grande detectado y su altura se imprime en la Consola de impresión.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
[Print the second-largest object's height.]
Establecer el elemento de objeto [AIVision v] en [2]
imprimir ([AIVision v] objeto [altura v]) ◀ y coloque el cursor en la siguiente fila
fin

Recuento de objetos#

El bloque Recuento de Objetos establecerá el elemento del objeto (del objeto sobre el que desea obtener más información) entre los objetos detectados. De forma predeterminada, el elemento Objeto se establece en 1 al inicio del proyecto.

([AIVision v] recuento de objetos)

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

En este ejemplo, el código verificará si se detecta una clasificación de IA después de una instantánea y, si se detecta alguna, imprimirá cuántas clasificaciones de IA se detectaron.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
imprimir ([AIVision v] recuento de objetos) ◀ y coloque el cursor en la siguiente fila
fin

El objeto existe#

El bloque El objeto existe informará si el sensor de visión de IA detecta una clasificación de IA.

<¿Existe [AIVision v] objeto?>

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

En este ejemplo, el código verificará si se detecta una clasificación de IA después de una instantánea y, si se detecta alguna, imprimirá cuántas clasificaciones de IA se detectaron.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
imprimir ([AIVision v] recuento de objetos) ◀ y coloque el cursor en la siguiente fila
fin

Objeto de visión de IA#

El bloque Objeto de visión de IA informará sobre una clasificación de IA del último uso del bloque Tomar instantánea.

([AIVision v] objeto [amplitud v])

Seleccione qué propiedad desea informar sobre la Clasificación de IA:

  • ancho: qué tan ancha es la clasificación de IA en píxeles.

  • altura: Qué altura tiene la clasificación de IA en píxeles.

  • centerX: La coordenada X en el centro exacto de la clasificación de IA.

  • centerY: La coordenada Y en el centro exacto de la clasificación de IA.

  • originX: La coordenada X en la esquina superior izquierda de la clasificación de IA.

  • originY: La coordenada Y en la esquina superior izquierda de la clasificación de IA.

La imagen muestra un conjunto de botones azules redondeados con las etiquetas “AIVision”, “Object” y “Width”, alineados horizontalmente en la parte superior. Debajo del botón “Width”, se despliega un menú desplegable con una lista/_static/img/playgrounds/v5rc_high_stakes/sensing/object_property_select.pngopciones que incluye “Width” (que está seleccionado), “Height”, “CenterX”, “CenterY”, “OrigenX” y “OrigenY”.

Antes de intentar acceder a los datos almacenados de la última instantánea, siempre debe comprobar si se detectaron las clasificaciones de IA. Para ello:

  1. Envuelve tus bloques AI Vision después de una Tomar instantánea con un bloque Si.

  2. Utilice el bloque ¿Existe el objeto? como condición para el bloque Si.

  3. Esto verificará si se detectó una clasificación de IA antes de intentar extraer datos de la última instantánea tomada.

cuando empezó
[Spin the Arm Motor up so that the AI Vision Sensor is not blocked.]
girar [ArmMotor v] [arriba v] por [270] [grados v] ▶
[AIVision v]una instantánea de [AI Classifications v]
[Check if any AI Classifications were detected in the last snapshot.]
si <¿Existe [AIVision v] objeto?> entonces
[Only if an AI Classification is detected, then print data from the largest AI Classification.]
imprimir [Largest object's width:] ▶
imprimir ([AIVision v] objeto [amplitud v]) ◀ y coloque el cursor en la siguiente fila
fin