Skip to main content

Leçon 2 : Passez à la lettre « A »

Utilisation du capteur de distance pour éviter les murs 

Maintenant que vous avez appris ce que sont les opérateurs de comparaison et comment ils peuvent être utilisés dans un projet, vous allez appliquer cet apprentissage pour conduire le robot VR à la lettre « A » dans le terrain de jeu Wall Maze. Ce projet utilisera le capteur de distance pour naviguer dans le terrain de jeu du labyrinthe mural sans heurter les murs.

Nommez et enregistrez le projet

  • Lancez un nouveau projet de texte et sélectionnez le terrain de jeu Wall Maze lorsque vous y êtes invité. Tuile de sélection Wall Maze Playground.
  • Nommez le projet Unit5Lesson2.
    La barre d'outils VEXcode VR et la boîte de dialogue du nom du projet au centre lisent la leçon 2 de l'unité 5.
  • Faites glisser, saisissez ou copiez une boucle while et supprimez la commande Drivetrain qui s'affiche dans le cadre du nouveau modèle de projet Texte, de sorte que votre projet ressemble à ceci. Notez que la commande remplira une boucle while avec une commande wait à l'intérieur. Ne supprimez pas la commande wait , cela garantira que le robot VR exécute correctement le projet.

    def main() :
        while condition :
            wait(5, MSEC)
  • Faites glisser, tapez ou copiez la commande drive sans attente à l'intérieur de la boucle, de sorte que votre projet ressemble à ceci.

    def main() :
        while condition :
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
    • Vérifiez que l'indentation est correcte et que la commande drive est alignée avec la commande wait .

Ajoutez la fonction get_distance et l'opérateur supérieur à

  • Faites glisser ou tapez la commande get_distance dans la « condition » de la boucle while , de sorte que votre projet ressemble à ceci. Tapez l'opérateur plus grand que et le deuxième opérande comme '50. 
  • def main() :
        while front_distance.get_distance(MM) > 50 :
            drivetrain.drive(FORWARD)
    
            wait(5, MSEC)
  • Ajoutez une commande stop en dehors de la boucle while, afin que votre projet ressemble à ceci. Une commande stop est nécessaire après la boucle while car le robot VR continuera à rouler jusqu'à ce qu'il reçoive l'ordre de s'arrêter.

    def main() :
        while front_distance.get_distance(MM) > 50 :
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
            
        drivetrain.stop()
  • Ouvrez la fenêtre du terrain de jeu si elle n'est pas déjà ouverte, assurez-vous que le terrain de jeu du labyrinthe mural s'ouvre et exécutez le projet.
  • Regardez le robot VR avancer jusqu'à ce que le capteur de distance indique que la distance entre le robot VR et le mur ne dépasse pas 50 millimètres (mm).Une vue de haut en bas du terrain de jeu du labyrinthe mural avec le robot VR arrêté devant le premier mur en face de l'emplacement de départ.
  • Réinitialisez le terrain de jeu pour ramener le robot VR à la position de départ.

Poursuivre le projet pour atteindre la lettre « A »

En utilisant l'opérateur supérieur à (>) avec la commande get_distance comme condition de la boucle while on demande au robot VR d'avancer tant que la distance entre le robot VR et le mur est supérieure à 50 millimètres (mm). Une fois que le capteur de distance signale une distance entre le robot VR et le mur qui n'est pas supérieure à 50 millimètres, le robot VR cessera de conduire. Pour passer à la lettre « A », le robot VR doit tourner lorsqu'il s'approche du mur. 

Pour atteindre la lettre « A », le robot VR devra détecter deux murs et tourner à gauche lorsque ces murs sont détectés. Ensuite, le robot VR s'arrêtera lorsqu'il détectera le troisième mur, situé derrière la lettre « A ».
Une vue de dessus du terrain de jeu du labyrinthe mural avec le robot VR en position de départ, et trois flèches rouges montrant le chemin depuis le début jusqu'à la lettre A. La première flèche s'étend vers l'avant vers le mur opposé, la deuxième flèche s'étend de là vers la gauche pour faire face au mur suivant, et la troisième s'étend de là vers le bas jusqu'à la lettre A.

  • Remplacez la commande stop par une commande turn_for , afin que votre projet ressemble à ceci. La commande turn_for est nécessaire car une fois que le capteur de distance est à moins de 50 millimètres (mm) d'un mur, le robot VR tournera à gauche pour continuer vers la lettre « A ».

    • Réglez les paramètres du virage sur « GAUCHE, 90, DEGRÉS ».
    def main() :
        while front_distance.get_distance(MM) > 50 :
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.turn_for(LEFT, 90, DEGREES)
    • Ajoutez une autre boucle while  avec une commande drive à l'intérieur sous la commande turn_for . Définissez la condition en utilisant la commande  get_distance comme premier opérande, l'opérateur supérieur à et la constante « 50 » comme deuxième opérande.
        tandis quefront_distance.get_distance (MM) > 50
            :          drivetrain.drive(FORWARD)
            wait(5, MSEC)
    • Enfin, ajoutez les commandes suivantes sous la deuxième boucle while pour demander au robot VR de détecter le dernier mur derrière la lettre « A » puis d'arrêter de conduire. Assurez-vous que la commande turn_for et la commande stop sont en dehors de leurs boucles respectives while .
        drivetrain.turn_for(LEFT, 90, DEGREES)
    
        while front_distance.get_distance(MM) > 50 :
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
    
        drivetrain.stop()
    • Lancez le terrain de jeu Wall Maze s'il n'est pas déjà ouvert et exécutez le projet.
    • Regardez le VR Robot conduire du début du labyrinthe mural à la lettre « A », puis arrêtez-vous.

    Une vue de haut en bas de l'aire de jeux du labyrinthe mural avec le robot VR à l'emplacement de départ au centre en bas de l'aire de jeux. La lettre A est directement à gauche du robot, séparée par un mur court.

    • Notez que le robot VR ne heurte aucun mur car il conduit à la lettre « A ». Lorsque la valeur du capteur de distance indique que le robot VR ne se trouve pas à plus de 50 millimètres (mm) du mur, le robot VR est invité à tourner ou à s'arrêter dans le projet.

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