Skip to main content

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.Vista de arriba hacia abajo del patio de recreo del laberinto de discos. El robot en el primer disco verde mirando a la derecha hacia el primer disco azul. Se muestran flechas negras para indicar cómo deberá moverse el robot. Esto indica que el robot conducirá hacia el disco azul, girará a la izquierda, conducirá hacia un segundo disco azul, girará a la izquierda y se detendrá en un tercer 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.Vista de arriba hacia abajo del Robot VR en el Disk Maze Playground con una flecha negra que indica que el robot conducirá hacia el disco verde directamente frente a la ubicación de inicio, luego girará a la derecha, avanzará hacia el disco azul, girará a la izquierda y dejará de conducir.
    • 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.

Vista de arriba hacia abajo del patio de recreo del laberinto de discos. El robot está en la ubicación de inicio. Las flechas indican el camino que tomará el robot Vr, mostrando el avance hacia el primer disco verde, girando a la derecha, conduciendo hacia el disco azul, girando a la izquierda, conduciendo hacia un segundo disco azul, girando a la izquierda y deteniéndose en un tercer disco azul.

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.

    Vista de arriba hacia abajo del patio de recreo del laberinto de discos. El robot está en la ubicación de inicio. Las flechas indican la ruta que tomará el robot de realidad virtual que muestra el avance hacia el primer disco verde, girando a la derecha, conduciendo hacia el disco azul, girando a la izquierda, conduciendo hacia un segundo disco azul, girando a la izquierda y deteniéndose en un tercer disco azul. Hay un cuadro rojo en el disco azul final que indica la ubicación final.
  • 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.