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.
- 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.
- 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.

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.

- 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.