Skip to main content

Leçon 2 : Passez aux disques suivants

Lecteur vers les disques bleus

Dans le projet précédent, le robot VR tourne à droite lorsque le capteur oculaire frontal détecte un disque vert, ce qui a permis au robot VR de franchir la première étape du labyrinthe. Maintenant, nous allons continuer à construire sur le projet afin que le robot VR se dirige vers les quatre premiers disques sur le terrain de jeu Disk Maze.

En regardant où le robot VR fait face après avoir tourné à droite sur le disque vert, nous pouvons voir que pour naviguer vers les trois disques bleus suivants, le robot VR doit avancer et tourner à gauche sur chaque disque bleu. Nous pouvons utiliser la même logique de la boucle while avec la condition not pour que le robot VR continue de traverser le labyrinthe et tourne à gauche lorsqu'il détecte un disque bleu.Vue de haut en bas de l'aire de jeux du labyrinthe de disques. Le robot au premier disque vert faisant face à droite vers le premier disque bleu. Des flèches noires sont affichées pour indiquer comment le robot devra se déplacer. Cela indique que le robot va rouler vers le disque bleu, tourner à gauche, rouler vers un deuxième disque bleu, tourner à gauche et s'arrêter à un troisième disque bleu.

  • Ajoutez un autre commentaire sous turn_for dans le projet existant pour décrire les prochains comportements du robot VR. Votre projet doit ressembler à ceci :
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
  • Sous le nouveau commentaire, ajoutez une autre boucle while avec une condition not. Définissez la condition sur la commande detect et définissez les paramètres sur "BLUE", car le prochain disque que le VR Robot rencontrera est bleu.
    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect(BLUE) :
        wait(5, MSEC)
  • À l'intérieur de la boucle while , faites glisser ou tapez la commande drive sans attente. 
    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect(BLUE) :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • Faites glisser ou tapez une commande turn_for et définissez les paramètres pour tourner à gauche de 90 degrés.
    # 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)
  • Exécutez le projet pour voir comment le robot VR se déplace dans le terrain de jeu du labyrinthe de disques.Vue de haut en bas du robot VR sur le terrain de jeu du labyrinthe de disques avec une flèche noire indiquant que le robot se dirigera vers le disque vert directement en face de l'emplacement de départ, puis tournez à droite, avancez vers le disque bleu, tournez à gauche, puis arrêtez de conduire.
    • Notez que le robot VR tourne à droite lorsque le capteur oculaire frontal détecte un disque vert, et tourne à gauche lorsque le capteur oculaire frontal détecte un disque bleu.
  • Continuez à construire ce projet pour piloter le robot VR vers deux autres disques bleus sur le terrain de jeu Disk Maze à l' aide du capteur oculaire avant. Ajoutez des commandes au projet, naviguez dans le robot VR jusqu'aux deux disques suivants, puis arrêtez-vous. Votre projet complet devrait maintenant ressembler à ceci :
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, DEGRÉS)

    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect (BLUE) :
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGRÉS)

    # Drive to 3rd disk (blue), turn left
    while not front_eye.detect (BLUE) :
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGRÉS)

    # Drive to 4th disk (blue), turn left
    while not front_eye.detect (BLUE) :
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGRÉS)

Identification d'un motif dans les mouvements du robot VR

L'objectif de la navigation réussie dans le labyrinthe de disques avec le capteur oculaire avant est de créer un motif cohérent où le robot VR tourne à droite lorsque le capteur oculaire avant détecte un disque vert et à gauche lorsque le capteur oculaire avant détecte un disque bleu. Identifier des modèles comme celui-ci peut vous aider à simplifier vos projets à mesure qu'ils deviennent de plus en plus complexes.

Vue de haut en bas de l'aire de jeux du labyrinthe de disques. Le robot est sur l'emplacement de départ. Les flèches indiquent le chemin que prendra le robot Vr en montrant le lecteur vers l'avant jusqu'au premier disque vert, en tournant à droite, en conduisant jusqu'au disque bleu, en tournant à gauche, en conduisant jusqu'à un deuxième disque bleu, en tournant à gauche et en s'arrêtant à un troisième disque bleu.

Pour votre information

Notez qu'il existe également un modèle dans la séquence des commandes du projet. Il existe une série de commandes (pour les disques bleus) qui sont répétées trois fois dans le projet. Cette section de code peut être condensée en utilisant une boucle pour . Le projet présenté ici combine ces trois boucles while liées aux disques bleus en une seule boucle for.

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 discks (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)

L'utilisation d'une boucle pour peut rendre votre projet plus simple et plus facilement lisible, tout en contenant les commandes répétitives à l'intérieur d'une seule boucle.

  • Ouvrez le Disk Maze Playground s'il n'est pas déjà ouvert et exécutez le projet.
  • Regardez le robot VR naviguer sur quatre disques sur le terrain de jeu Disk Maze.

    Vue de haut en bas de l'aire de jeux du labyrinthe de disques. Le robot est sur l'emplacement de départ. Les flèches indiquent le chemin que le robot VR empruntera pour afficher le lecteur vers l'avant jusqu'au premier disque vert, en tournant à droite, en conduisant jusqu'au disque bleu, en tournant à gauche, en conduisant jusqu'à un deuxième disque bleu, en tournant à gauche et en s'arrêtant à un troisième disque bleu. Une boîte rouge se trouve sur le dernier disque bleu indiquant l'emplacement de fin.
  • Dans ce projet, le robot VR avance jusqu'à ce que le capteur oculaire frontal détecte la couleur verte.
    • Le robot VR tourne à droite à 90 degrés et avance à nouveau jusqu'à ce que la couleur bleue soit détectée.
    • Le robot VR tourne alors à gauche et avance jusqu'à ce que le capteur oculaire frontal détecte le bleu. Une fois la couleur bleue détectée, le robot VR tourne à nouveau à gauche.
    • Enfin, le robot VR avance jusqu'à ce que le capteur oculaire frontal détecte le bleu, puis s'arrête.
  • Notez que lorsque le capteur oculaire avant détecte le vert, le robot VR tourne à droite. Lorsque le capteur oculaire frontal détecte le bleu, le robot VR tourne à gauche dans ce projet.

Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.