Skip to main content

Lección 2: Uso del bloque [Esperar hasta]

En esta lección, creará un proyecto utilizando el sensor de parachoques y el bloque [Esperar hasta]. En el mini-desafío, aplicarás estas habilidades para navegar desde el comienzo del laberinto de la pared hasta la letra "A".

Vista lateral del Wall Maze Playground con el VR Robot directamente frente a una pared, mostrando que las paredes son tridimensionales y el robot puede chocar con ellas.

Resultados de aprendizaje

  • Identifique que los bloques que no están en espera hacen que la pila continúe incluso si el comportamiento del bloque aún no se ha completado.
  • Identifique que un bloque en espera detiene la pila hasta que se haya completado el comportamiento de ese bloque.
  • Identifique que el resaltado de la ejecución del proyecto visualiza los bloques en espera frente a los que no lo están.
  • Identifique que el bloque [Esperar hasta] es un bloque de control que acepta valores booleanos.
  • Identifique que el bloque [Esperar hasta] comprobará repetidamente una condición booleana y no se moverá al siguiente bloque hasta que la condición SEA VERDADERA.
  • Identifique que el bloque [Esperar hasta] se utiliza con un bloque que no está en espera (por ejemplo, Drive) para verificar el estado del sensor.
  • Identifica que el <Pressing bumper> bloque reporta un valor VERDADERO o FALSO en un bloque [Esperar hasta].
  • Identifica cómo los bloques [Drive for] y [Turn for] son bloques especiales que pueden estar en espera o no.
  • Describa cómo crear un proyecto que tenga una unidad de robot VR hacia adelante hasta que se presione el sensor del parachoques.

Nombrar y guardar el proyecto

  • Inicie un nuevo proyecto en VEXcode VR y nombre el proyecto Unit4Lesson2.
Cuadro de nombre del proyecto en el centro de la barra de herramientas VEXcode VR, resaltado con un cuadro rojo, a la izquierda del botón Seleccionar parque infantil.

[Esperar hasta] Bloques

El bloque [Esperar hasta] es un bloque de control que acepta condiciones booleanas. Los bloques [Wait until] comprueban repetidamente una condición booleana y controlan el flujo del proyecto. Un proyecto no se moverá al siguiente bloque de la pila hasta que la condición en el bloque [Esperar hasta] se informe como VERDADERA. Los bloques [Esperar hasta] se utilizan junto con bloques que no están en espera, como [Conducir] o [Girar].

Para su información

Los bloques que no son de espera y de espera determinan cuándo comienza un comportamiento el siguiente bloque. Los bloques de espera, como [Drive for] y [Turn for], completan sus comportamientos antes de pasar al siguiente bloque de la pila. Los bloques que no están en espera, como [Drive] y [Turn], continúan moviéndose al siguiente bloque de la pila incluso si el comportamiento del bloque que no está en espera no está completo.

Ciertos bloques, como [Drive for] y [Turn for], pueden ser bloques en espera o no en espera. Al seleccionar la flecha en el bloque, el bloque dejará de esperar para convertirse en un bloque que no espera.

Se muestra una unidad para el bloque con la flecha a la derecha del bloque cerrada y abierta. En la parte superior, una unidad para bloque lee Conducir hacia adelante durante 200 mm. En la parte inferior, el mismo bloque se extiende para leer Drive forward durante 200 mm y no espere.

Uso de bloques de interruptores

El bloque sin espera Switch agrega un parámetro "wait=False" al final del bloque. "wait=False" es el comando de Python que le dice al bloque que no espere y que continúe moviéndose a los siguientes bloques de la pila.

El bloque Switch equivalente se muestra con la unidad de comando como un comando en espera y no en espera. En la parte superior, el comando Python en el bloque Switch lee drivetrain dot drive_for (FORWARD, 200, MM). En la parte inferior, el mismo comando se extiende para leer drivetrain dot drive _ for (FORWARD, 200, MM, wait = false).

  • Arrastre el bloque de no espera [Drive] al área de trabajo.

    Un nuevo proyecto VEXcode VR con un bloque When started con un bloque de unidad conectado y configurado para avanzar.
  • Adjunte un bloque [Esperar hasta] debajo del bloque [Conducir].

    El mismo proyecto con una espera hasta que el bloque se añada a la parte inferior de la pila. El parámetro del bloque Esperar hasta que esté vacío.
  • El bloque [Esperar hasta] acepta condiciones booleanas. Este proyecto utilizará el sensor de parachoques para conducir a través del laberinto de pared Patio de juegos. Arrastre el bloque <Pressing bumper> booleano al bloque [Esperar hasta].

    El mismo proyecto con un bloque pulsado Bumper añadido al parámetro del bloque Esperar hasta. El proyecto ahora dice Cuando se inicia, avance, espere hasta que se presione el parachoques izquierdo.
  • Arrastra un bloque [Stop driving] y añádelo al proyecto.

    El mismo proyecto con un bloque de parada de conducción añadido debajo del bloque de espera hasta. El proyecto ahora dice Cuando se inicia, avance, espere hasta que se presione el parachoques izquierdo y luego deje de conducir.
  • Inicie el Wall Maze Playground si aún no está abierto y ejecute el proyecto.
  • Observe el accionamiento del robot VR desde el inicio del laberinto de pared y deténgase cuando el sensor de parachoques sea presionado por la pared.
  • El bloque [Drive] permite que el robot VR siga avanzando mientras comprueba el estado del sensor del parachoques con el <Pressing bumper> bloque. Una vez que los <Pressing bumper> informes SEAN VERDADEROS, el robot VR se moverá al siguiente bloque de la pila y dejará de conducir.

    Proyecto VEXcode VR de esta lección dividido para mostrar el flujo del proyecto. El bloque Cuando se inicia va seguido del bloque Accionar hacia adelante. Una flecha dorada apunta hacia abajo desde el bloque de avance en el bloque Esperar hasta que el parachoques izquierdo presione. A la derecha del bloque hay 2 flechas rojas curvas que indican un movimiento circular y las palabras "no pulsadas (falso)" que muestran lo que sucede cuando el robot avanza y el interruptor del parachoques no está pulsado. Debajo del bloque Esperar hasta, una flecha verde que apunta hacia abajo en el bloque de parada de conducción con las palabras "pulsadas (verdadero)" indica que el proyecto se moverá al bloque de parada de conducción cuando se pulse el interruptor del parachoques.

    Para su información

    Para seguir una visualización de los bloques en espera frente a los que no lo están, observe la función de resaltado de ejecución de código en VEXcode VR. Al comienzo de este proyecto, el resaltado verde aparecerá alrededor del bloque [Esperar hasta] hasta que se cumpla la condición. Esto se debe a que el bloque [Esperar hasta] es un bloque de espera. El resaltado verde aparecerá para omitir los bloques que no están en espera porque estos comandos se ejecutan rápidamente.

    Proyecto VEXcode VR de esta lección con un cuadro de llamada rojo alrededor del bloque Esperar hasta, lo que indica que es un bloque de espera.

     

    Uso de bloques de interruptores 

    Este es el bloque Interruptor que contiene el comando [Esperar hasta] con el <Bumper pressed>  Boolean reporter.

    Proyecto VEXcode VR como el anterior, pero con el bloque Esperar hasta reemplazado por un bloque Switch. El comando Python en el bloque Switch lee while not left_bumper.pressed(): en la primera línea. A continuación, la sangría debajo del bloque de Python indica espera (5, ms).

    while not left_bumper.pressed(): es el comando de Python que comprueba si el parachoques izquierdo se está pulsando actualmente.

    wait (5, MSEC) es un comando de Python que detiene la ejecución de la comprobación durante 5 milisegundos (MSEC), por lo que el proyecto comprueba si se pulsa o no el parachoques izquierdo cada 5 MSEC. Esta línea de código está sangrada debajo de la primera línea de código porque este comando es el comportamiento que se repetirá hasta que se cumpla la condición (en este caso, el parachoques izquierdo presionado).

    En VEXcode VR, un comando wait siempre se agrega con un bucle condicional . El propósito del comando wait es garantizar que VEXcode VR pueda ejecutar correctamente el proyecto según lo previsto, debido a la naturaleza basada en la web de la plataforma VEXcode VR. El comando wait nunca debe eliminarse cuando se usa un bucle condicional , porque su proyecto puede no ejecutarse como se esperaba.

    Una vez pulsado el parachoques izquierdo, el robot dejará de conducir.

Seleccione el botón Siguiente para continuar con el resto de esta lección.