Leçon 3 : Ajout de commandes de transmission pour résoudre le labyrinthe mural
Résoudre le problème du labyrinthe mural
Maintenant que le robot de réalité virtuelle a conduit à la lettre « A » ainsi qu'au chiffre « 2 » sur le terrain de jeu du mur de labyrinthe, comment créeriez-vous un projet où le robot de réalité virtuelle se rendrait à d'autres endroits, par exemple à la lettre « B » ? Jusqu'à présent, nous avons utilisé les données du capteur de pare-chocs pour se diriger vers un mur, puis tourner pour passer au mur suivant. Pour naviguer jusqu'à la lettre « B », nous devons être en mesure de déplacer le robot VR vers un point au milieu de la surface du labyrinthe, afin qu'il puisse emprunter un chemin différent vers notre destination.
Si le code ne contenait que les commandes drive et turn_for , le robot VR pourrait rester « coincé » dans la section numéro « 2 » du labyrinthe mural, car il continuerait à tourner à gauche ou à droite sans jamais reculer.
Au lieu de cela, nous pouvons estimer la distance entre le dernier mur touché par le robot VR et l'endroit où il doit tourner. Nous pouvons ensuite utiliser les commandes Drivetrain, comme drive_for et turn_for, avec les boucles while et les données du capteur de pare-chocs dans notre projet pour résoudre le labyrinthe !
-
Commencez par modifier votre projet précédent, créez un nouveau projet ou sélectionnez « Copier » et collez ce code dans VEXcode VR pour qu'il corresponde à ce projet de base.
def main() : while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.stop()
- Le projet ci-dessus commence à conduire le robot VR à la lettre « B », cependant, pour que le robot VR le fasse, il devrait d'abord faire marche arrière, puis tourner à gauche.
- Edit the code by removing the stop command and replacing it with drive_for and turn_for commands.
- Nous pouvons estimer que le robot VR doit rouler en marche arrière sur environ 300 millimètres (mm). First, set the parameters of the drive_for command to “reverse” for 300 millimeters (mm).
-
Ensuite, définissez les paramètres de la commande turn_for pour tourner à gauche de 90 degrés. Votre projet devrait maintenant ressembler à ceci :
def main() : while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGRÉS) while not left_bumper.pressed () : drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (LEFT, 90, DEGRÉS)
- Lancez le Wall Maze Playground s'il n'est pas déjà ouvert et exécutez le projet
-
L'ajout de ces commandes orientera le robot VR dans la bonne direction pour entraîner la lettre « B ».
- Sélectionnez le bouton « Réinitialiser » pour réinitialiser le terrain de jeu et ramener le robot VR à la position de départ.
-
Maintenant que le robot VR est orienté dans la bonne direction, ajoutez les commandes suivantes sous la commande finale turn_for , pour conduire le robot VR jusqu'à la lettre « B » sur le labyrinthe Wall Playground. Assurez-vous que les commandes sont correctement indentées dans votre projet.
while not left_bumper.pressed() : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGRÉS) while not left_bumper.pressed() : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGRÉS) while not left_bumper.pressed() : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()
- Lancez le Wall Maze Playground s'il n'est pas déjà ouvert et exécutez le projet.
-
Le robot VR se dirigera désormais vers la lettre « B » sur le Wall Maze Playground.
Mini Défi
Dans ce défi, le robot VR doit naviguer jusqu'au numéro « 3 » dans le labyrinthe Wall Maze Playground en utilisant plusieurs boucles tandis que , les commandes de transmission et le capteur de pare-chocs.

Suivez ces étapes pour terminer le mini défi :
-
Regardez la vidéo de la solution ci-dessous et examinez comment le robot VR doit conduire afin de relever le mini défi. Dans le clip vidéo ci-dessous, le robot VR commence à l'emplacement de départ et suit le même schéma de conduite vers un mur jusqu'à ce que le pare-chocs soit enfoncé puis tourné. Le robot parcourt le même chemin pour commencer, qu'il l'a fait pour conduire à la lettre B. Au point de virage éloigné du mur, le robot tourne à droite pour continuer jusqu'au numéro 3. À partir de ce point, il avance et tourne à gauche deux fois pour contourner le prochain ensemble de murs, au-delà de la lettre B. Enfin, le robot avance et tourne à droite deux fois pour contourner les derniers murs pour atteindre le numéro 3.
- Créez un projet en ajoutant ou en supprimant les commandes nécessaires au projet Unit4Lesson3 pour conduire le robot VR jusqu'au numéro « 3 » sur le labyrinthe à murs Playground.
- Démarrez le projet pour tester s'il fonctionne.
- Si le projet échoue, modifiez-le et réessayez. Continuez ce processus jusqu'à ce que le défi soit terminé.
- Une fois que le robot VR atteint avec succès le numéro « 3 » sur le Wall Maze Playground, enregistrez le projet.
Félicitations ! Vous avez terminé avec succès le défi du labyrinthe mural !
Questions
Veuillez sélectionner un lien ci-dessous pour accéder au questionnaire de la leçon.
Google Doc / .docx / .pdf