Skip to main content

Lección 3: Flujo del proyecto con múltiples bucles While

Ahora que ha creado un proyecto de texto para navegar el robot VR hasta la letra "A" en el laberinto de pared Patio de juegos, ampliará sus habilidades usando condicionales y valores de sensores. En esta lección, navegarás con el robot VR hasta el número "2" en el laberinto de pared Patio de juegosy luego explorarás por qué se necesitan comandos adicionales para conducir hasta la letra "B". En el mini-reto, aplicarás estas habilidades para navegar desde el comienzo del laberinto de la pared hasta el número ‘3’.

Una vista de arriba hacia abajo del patio de recreo del laberinto de pared con el robot de realidad virtual comenzando en la flecha verde en el centro inferior del patio de recreo. El número 2 está resaltado en un recuadro rojo y se coloca en el centro del cuadrante inferior izquierdo del laberinto, más a la izquierda más allá de la letra A. El número 2 en una esquina creada por tres paredes que lo rodean.

Resultados de aprendizaje

  • Describa el flujo del programa en un proyecto que tiene un accionamiento de robot VR hacia adelante hasta que se presiona el sensor del parachoques.

Cambiar el nombre del proyecto

  • Si el proyecto de la lección anterior aún no está cargado, cargue el proyecto Unit4Lesson2.
  • Cambie el nombre del proyecto Unit4Lesson3.La barra de herramientas de VEXcode VR que muestra la Lección 3 de la Unidad 4 como el nombre del proyecto. El nombre del proyecto está resaltado con un recuadro rojo.

     

 

Flujo del proyecto para conducir a la letra ‘A’

En la lección anterior, el robot VR se dirigió a la letra 'A' en el laberinto de pared Patio de juegos. Desglosemos el flujo del proyecto mientras nos preparamos para navegar a una nueva ubicación en el laberinto de muros.

Una vista de arriba hacia abajo del patio de recreo del laberinto de pared con el robot de realidad virtual en la ubicación inicial en la parte inferior central del patio de recreo. La letra A está directamente a la izquierda del robot, separada por una pared corta.
  • Para comprender mejor el flujo del proyecto para conducir hasta la letra ‘A’ en el Wall Maze Playground, comience modificando su proyecto anterior o cree un nuevo proyecto para que coincida con este proyecto base.

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Cuando un proyecto utiliza un bucle while con una condición not , el flujo del programa del proyecto aún sigue la misma secuencia de arriba a abajo. El bucle while permite que el flujo del programa se "pause" en un punto determinado, mientras se cumple una condición. El operador no  permite que el proyecto permanezca en el bucle hasta que la condición se informe como Falso. Luego, el proyecto pasará al siguiente comando fuera del bucle. Una condición booleana, como el parachoques izquierdo presionado, informará un valor verdadero o falso. En este código para conducir el robot VR a la letra ‘A’, el robot VR avanzará hasta que la condición booleana del parachoques izquierdo que se presiona sea verdadera.
    El flujo de proyecto del proyecto para conducir a la letra 'A' se vería así:Un diagrama de flujo del proyecto que describe el flujo del proyecto anterior para navegar hasta la letra A, que se muestra a la izquierda. A la derecha, las flechas indican cómo fluye el proyecto. Primero, una flecha cíclica roja ilustra que mientras no se presiona el parachoques, la condición del bucle while devuelve false, por lo que el robot avanza. A continuación, una flecha verde hacia abajo ilustra que cuando se presiona el parachoques, la condición se informa como verdadera, por lo que el proyecto sale de ese bucle y el robot gira 90 grados a la izquierda. Esta secuencia se repite para cada bucle del proyecto.

El comportamiento del robot VR muestra cómo se ejecuta cada bucle mientras . Desglosando junto con el movimiento del Robot VR, podemos ver claramente hacia dónde se ha dirigido el Robot VR después de cada bucle mientras que se ejecutó en el proyecto.A la izquierda se muestra el código Python que contiene tres bucles while secuenciales, cada uno de los cuales indica al robot que avance hasta que se pulse el parachoques izquierdo. Una vez que se pulsa el parachoques en cada bucle, el robot realiza una acción específica.  En el primer bucle, el robot avanza hasta que se presiona el parachoques, luego gira 90 grados a la izquierda. La imagen de la derecha muestra la posición del robot en un laberinto después de esta acción, marcada por un círculo amarillo.  En el segundo bucle, el robot vuelve a avanzar hasta que se presiona el parachoques y luego gira 90 grados a la izquierda. La segunda imagen muestra la posición actualizada del robot en el laberinto después de este turno.  En el tercer y último bucle, el robot avanza hasta que se presiona el parachoques. Cuando se pulsa el parachoques, el robot deja de moverse. La imagen final muestra la posición de parada del robot dentro del laberinto, nuevamente resaltada por un círculo amarillo.

 

Conduce hasta el número '2'

En esta lección, se editará el proyecto para que el robot VR conduzca hasta el número "2" en el laberinto de pared ¡Patio de juegos!

Una vista de arriba hacia abajo del patio de recreo del laberinto de pared con el robot de realidad virtual comenzando en la flecha verde en el centro inferior del patio de recreo. El número 2 está resaltado en un recuadro rojo y se coloca en el centro del cuadrante inferior izquierdo del laberinto, más a la izquierda más allá de la letra A. El número 2 en una esquina creada por tres paredes que lo rodean.
  • El proyecto de la Lección 2 tiene el robot de realidad virtual girando a la izquierda para conducir hasta la letra "A". Para llegar al número ‘2‘, el robot de realidad virtual tendrá que girar a la derecha, avanzar y luego girar a la izquierda.

    Una vista de arriba hacia abajo del patio de recreo del laberinto de la pared donde el robot VR está colocado sobre el marcador A, frente a la pared izquierda. Una flecha roja apunta hacia A, y tres flechas verdes muestran el camino previsto hacia el número 2. Las flechas verdes apuntan hacia arriba hacia la pared opuesta a A, luego hacia la izquierda hacia la siguiente pared a la izquierda del número 2, luego hacia abajo en la esquina que sostiene el número 2.
  • Cambie la dirección del segundo giro_para el comando a la derecha en lugar de a la izquierda. Tu proyecto ahora debería verse así:

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (RIGHT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Inicie el Wall Maze Playground si aún no está abierto y ejecute el proyecto.
  • Observe cómo el robot VR comienza a conducir hasta el número ‘2’, pero deténgase en una pared. Por lo tanto, el robot VR debe girar a la izquierda una vez que presiona contra la pared en lugar de detenerse.

    Una vista de arriba hacia abajo del parque infantil Wall Maze con el robot VR mirando hacia la pared opuesta a la letra A, apuntando hacia arriba.
  • Seleccione el botón "Restablecer" para restablecer el patio de recreo y mover el robot VR de nuevo a la posición inicial.El patio de recreo del laberinto de la pared que muestra toda la interfaz del patio de recreo. El botón de reinicio en la parte inferior izquierda de la interfaz del patio de recreo está resaltado con un cuadro rojo.

     

  • Edite el código eliminando el comando stop y reemplazándolo con los siguientes comandos para conducir el robot VR al número '2'.

    def main():
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (RIGHT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop ()
  • Inicie el Wall Maze Playground si aún no está abierto y ejecute el proyecto.
  • ¡Mira cómo el robot VR se dirige al número "2" en el laberinto de pared del patio de juegos!

    Una vista de arriba hacia abajo del parque infantil Wall Maze. El VR Robot ahora está colocado sobre el marcador 2, mirando hacia la pared inferior con su parte frontal presionada contra la pared.
  • Seleccione el botón "Restablecer" para restablecer el patio de recreo y mover el robot VR de nuevo a la posición inicial.

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