Skip to main content

Lección 2: Usar bloques de comparación y conducir hasta cerca

En esta lección, crearás un proyecto que haga que el robot de realidad virtual navegue hasta la letra «A» utilizando el sensor de distancia con el bloque reportero <Less than> booleano. En el mini-reto, aplicarás estas habilidades para navegar desde el comienzo del laberinto de la pared hasta el número '1'.

Una vista de arriba hacia abajo del laberinto de la pared con la letra A gol resaltada en un cuadro rojo, cerca de la posición inicial del robot VR.

Resultados de aprendizaje

  • Identifique que el <Greater than> bloque es un bloque booleano que informa si el primer valor es mayor que el segundo valor.
  • Identifique que el <Less than> bloque es un bloque booleano que informa si el primer valor es menor que el segundo valor.
  • Identifique que los <Less than> bloques <Greater than> o informan un valor VERDADERO o FALSO en un bloque [Esperar hasta].
  • Describa cómo crear un proyecto que tenga un accionamiento de robot VR hacia adelante hasta que el valor del sensor de distancia sea inferior a un valor umbral de 50 milímetros (mm).

Nombrar y guardar el proyecto

  • Inicie un nuevo proyecto en VEXcode VR y nombre el proyecto Unit5Lesson2. Recuerde que puede usar bloques VEXcode, bloques Switch o una combinación de ambos tipos de bloques para su proyecto. 
Barra de herramientas VEXcode VR con el botón 'Project Name' resaltado en un cuadro rojo, a la izquierda del botón Select Playground. El nombre del proyecto se establece en la Unidad 5 Lección 2.

Utilice el sensor de distancia para evitar las paredes

  • Arrastra el bloque [Drive] al área de trabajo.
    VEXcode VR bloquea el proyecto, comenzando con un bloque When Started con un bloque Drive Forward debajo. Hay un cuadro rojo que resalta el bloque Drive Forward.
  • Adjunte un bloque [Esperar hasta] debajo del bloque [Conducir].
    El mismo VEXcode VR bloquea el proyecto como antes, pero ahora con un bloque Wait Until en la parte inferior resaltado con un cuadro rojo. El proyecto completo se lee Cuando se inicia, Conducir hacia adelante y Esperar hasta. El parámetro del bloque Esperar hasta está vacío.

Este proyecto utilizará el sensor de distancia para navegar a través del patio de recreo del laberinto de paredes sin toparse con las paredes. Utilizará el bloque (Distancia desde) dentro del bloque <Less than> booleano en este proyecto.

Los <Less than>, <Greater than>, y <Equal to> son bloques de comparación: comparan valores. También son bloques informadores booleanos que informan un valor VERDADERO cuando se cumple la condición de comparación, y FALSO cuando NO se cumple la condición.

  • <Less than> informa VERDADERO cuando el primer valor es menor que el segundo valor y FALSO cuando el primer valor es mayor o igual que el segundo valor.
    VEXcode VR Less Than boolean block, lectura '25 menos de 50'.
  • <Greater than> informa VERDADERO cuando el primer valor es mayor que el segundo valor, y FALSO cuando el primer valor es menor o igual que el segundo valor.
    VEXcode VR Mayor que el bloque booleano, que dice '100 mayor que 50'.
  • <Equal to> informa VERDADERO cuando los dos valores son exactamente iguales y FALSO cuando no lo son.
    VEXcode VR Igual al bloque booleano, leyendo '50 igual a 50'.

Los bloques de comparación pueden aceptar decimales, enteros o bloques numéricos. También aceptan bloques indicadores redondos, como el bloque (Distancia desde). El bloque (Distancia desde) puede ser con un bloque de comparación cuando se utiliza el sensor de distancia en un proyecto.

En este ejemplo, el bloque informará VERDADERO cuando la distancia desde un objeto y el sensor de distancia en un robot VR sea inferior a 50 milímetros (mm).

VEXcode VR Less Than boolean block with a Distance From block inside of it, reading 'Front Distance in millimeters less than 50'.

  • Arrastre el bloque <Less than> booleano al bloque [Esperar hasta].
  • Coloque el bloque redondo (Distancia desde) dentro del bloque informador booleano
    Proyecto VEXcode VR Blocks que reúne los pasos anteriores. Todo el proyecto ahora lee Cuando se inicia, Conduzca hacia adelante y Espere hasta que la distancia frontal en milímetros sea inferior a 50. Un cuadro rojo resalta el bloque booleano Less Than.
  • El bloque [Esperar hasta] mantendrá el robot VR avanzando hasta que se cumpla la condición y la distancia informada sea inferior a 50 milímetros (mm). Luego, el proyecto pasará al siguiente bloque de la pila, que será el bloque [Stop driving].
    Un diagrama que visualiza el flujo de la lógica en el proyecto VEXcode VR Blocks. El proyecto comienza conduciendo hacia adelante y mantiene ese comando hasta que la distancia del sensor de distancia frontal en milímetros sea inferior a 50, después de lo cual un bloque de parada de conducción finaliza el comando de avance.
  • Se necesita un bloque [Stop driving] después del bloque [Wait until] porque el VR Robot continuará conduciendo hasta que se le indique que se detenga. Añade un bloque [Stop driving] al proyecto.
    El VEXcode VR bloquea el proyecto desde antes con un bloque Stop Driving añadido después del bloque Wait Until. Todo el proyecto ahora dice: Cuando se inicia, Conduzca hacia adelante y espere hasta que la distancia delantera en milímetros sea inferior a 50, después de lo cual 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 distancia indique que está a menos de 50 milímetros (mm) de la pared.
    Una vista de arriba hacia abajo del laberinto de la pared con la letra A gol cerca de la posición inicial del robot VR. El robot VR ahora ha avanzado como resultado del proyecto Blocks.
  • Usando el <Less than> bloque con el bloque (Distancia desde) dentro del bloque [Esperar hasta], indica al robot VR que espere hasta que esté a menos de 50 milímetros (mm) de la pared antes de detenerse.
  • Reinicie el patio de recreo para mover el robot de realidad virtual de nuevo a la posición inicial.

Uso de bloques de interruptores

En esta lección, aprendiste sobre los bloques <Equal to> booleanos <Greater than> <Less than>, y. La siguiente imagen muestra los bloques de comparación de Switch Boolean. Para que un bloque booleano Switch funcione según lo previsto, las funciones de Switch Python deben introducirse con la ortografía y puntuación correctas. 

Tenga en cuenta que el <Equal to> bloque Switch utiliza dos signos iguales (==). Esto se debe a que en Python, un signo igual (=) representa una asignación de un valor (por ejemplo, x = 10), mientras que dos signos iguales (==) comprueban si dos valores son iguales. Asegúrese de usar dos signos iguales cuando utilice el <Equal to> bloque Switch. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

También vio un proyecto de ejemplo en el que el robot VR avanzará hasta que la distancia informada sea inferior a 50 milímetros (mm) de un objeto. Entonces, el robot VR se detendrá. El proyecto de la derecha muestra los comandos Python correspondientes dentro de un bloque Switch. El comando, aunque no front_distance.get_distance(MM) < 50, le dice al robot que verifique si la distancia informada es inferior a 50 MM de un objeto.

La siguiente línea de código con sangría, wait (5, MSEC), detiene el código durante 5 milisegundos. El comando que comprueba si la distancia informada es inferior a 50 MM desde un objeto esperará 5 MS antes de volver a comprobar la condición. 

Una comparación de nuestro proyecto VEXcode VR, con el bloque Wait Until convertido en un bloque de interruptores en el lado derecho. El nuevo bloque de interruptor lee en Python 'while notfront_distance.get_distance (MM) < 50: wait(5, msec)'.

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