Lección 2: Conducir a los siguientes discos
Drive to the Blue Disks
El proyecto anterior hace que el robot VR gire a la derecha cuando el sensor del ojo frontal detecta un disco verde, que llevó al robot VR a través del primer paso en el laberinto. Ahora, continuaremos construyendo sobre el proyecto para que el Robot VR conduzca a los primeros cuatro discos en el Disk Maze Playground.
Mirando hacia dónde se enfrenta el Robot VR después de girar a la derecha en el disco verde, podemos ver que para navegar a los siguientes tres discos azules, el Robot VR debe avanzar y girar a la izquierda en cada disco azul. Podemos usar la misma lógica del bucle mientras con la condición no para que el robot VR continúe avanzando por el laberinto y gire a la izquierda cuando detecte un disco azul.
- Añade otro comentario debajo del turn_for en el proyecto existente para describir los próximos comportamientos del robot de realidad virtual. Tu proyecto debería verse así:
def main():
# Drive to 1st disk (green), turn right
while not front_eye.detect(GREEN):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left- Debajo del nuevo comentario, agregue otro bucle while con una condición not. Establezca la condición en el comando detect y establezca los parámetros en "BLUE", ya que el próximo disco que encontrará el robot VR es azul.
# Drive to 2nd disk (azul), gire a la izquierda
mientras no estéfront_eye.detect (AZUL):
espere(5, MSEC)- Dentro del bucle while , arrastre o escriba el comando sin espera drive.
# Conduzca al segundo disco (azul), gire a la izquierda
mientras no esté front_eye.detect (AZUL)
:drivetrain.drive (ADELANTE)
espere(5, MSEC)- Arrastre o escriba un comando turn_for y configure los parámetros para girar 90 grados a la izquierda.
# Drive to 2nd disk (azul), gire a la izquierda
mientras no esté FRONT_EYE.DETECT (AZUL)
:drivetrain.drive (ADELANTE)
espere(5, MSEC
)drivetrain.turn_for (IZQUIERDA, 90, GRADOS)- Ejecuta el proyecto para ver cómo se mueve el robot de realidad virtual a través del patio de juegos del laberinto de discos.
- Observe que el robot VR gira a la derecha cuando el sensor del ojo delantero detecta un disco verde y gira a la izquierda cuando el sensor del ojo delantero detecta un disco azul.
- Continúe construyendo este proyecto para conducir el Robot VR a dos discos azules más en el Disk Maze Playground utilizando el Sensor de Ojo Delantero. Añade comandos al proyecto, desplaza el robot de realidad virtual a los siguientes dos discos y detente. Tu proyecto completo ahora debería verse así:
def main():
# Drive to 1st disk (green), turn right
while not front_eye.detect
(GREEN): drivetrain.drive (FORWARD)
wait
(5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGREES)
# Drive to 2nd disk (BLUE)
, turn left
while not front_eye.detect (blue)
: drivetrain.drive (FORWARD)
wait (5, MSEC) drivetrain.turn_for (left, 90, DEGREES)
# Drive to
3rd disk (
BLUE), turn LEFT
while not front_eye.detect (blue): drivetrain.drive (FORWARD)
wait (5, MSEC
) drivetrain.turn_for (left, 90
, degrees)
# Drive to 4th disk
(LEFT, 90, DEGREES)Identificación de un patrón en los movimientos del robot de realidad virtual
El objetivo de navegar con éxito por el Laberinto de Discos con el Sensor de Ojo Frontal es crear un patrón consistente donde el Robot VR gire a la derecha cuando el Sensor de Ojo Frontal detecte un disco verde, y a la izquierda cuando el Sensor de Ojo Frontal detecte un disco azul. Identificar patrones como este puede ayudarte a simplificar tus proyectos a medida que crecen en complejidad.

Para su información
Observe que también hay un patrón en la secuencia de comandos en el proyecto. Hay una serie de comandos (para los discos azules) que se repiten tres veces en el proyecto. Esta sección de código se puede condensar utilizando un bucle for . El proyecto que se muestra aquí combina esos tres bucles para relacionados con los discos azules en un solo bucle para.
def main():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (RIGHT, 90, DEGREES)
# Drive to the next 3 disks (blue), turn left
for value in range(3):
while not front_eye.detect (BLUE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)El uso de un bucle para puede hacer que su proyecto sea más simple y más fácil de leer, pero conteniendo los comandos repetitivos dentro de un bucle.
- Abra el Disk Maze Playground si aún no está abierto y ejecute el proyecto.
-
Observa cómo el robot VR navega a cuatro discos en el Disk Maze Playground.

- En este proyecto, el robot VR avanza hasta que el sensor del ojo frontal detecta el color verde.
- El robot VR gira a la derecha 90 grados y vuelve a avanzar hasta que se detecta el color azul.
- El robot VR gira a la izquierda y avanza hasta que el sensor del ojo delantero detecta azul. Una vez que se detecta el color azul, el robot VR vuelve a girar a la izquierda.
- Finalmente, el robot VR avanza hasta que el sensor del ojo frontal detecta azul y luego se detiene.
- Observe el patrón que cuando el sensor del ojo delantero detecta verde, el robot VR gira a la derecha. Cuando el sensor del ojo frontal detecta azul, el robot VR gira a la izquierda en este proyecto.
Seleccione el botón Siguiente para continuar con el resto de esta lección.