Skip to main content

Leçon 3 : Flux de projet avec plusieurs boucles pendantes

Maintenant que vous avez créé un projet de texte pour diriger le robot VR jusqu'à la lettre « A » sur le labyrinthe mural Playground, vous allez développer vos compétences en utilisant des conditions et des valeurs de capteur. Dans cette leçon, vous dirigerez le robot VR jusqu'au numéro « 2 » dans le labyrinthe  Wall Maze  Playground , puis découvrirez pourquoi des commandes supplémentaires sont nécessaires pour conduire jusqu'à la lettre « B ». Dans le mini-challenge, vous appliquerez ces compétences pour naviguer du début du labyrinthe mural au nombre « 3 ».

Une vue de haut en bas de l'aire de jeux Wall Maze avec le robot VR commençant sur la flèche verte en bas au centre de l'aire de jeux. Le chiffre 2 est mis en surbrillance dans une boîte rouge, et est positionné au centre du quadrant inférieur gauche du labyrinthe, plus loin à gauche au-delà de la lettre A. Le chiffre 2 dans un coin créé par trois murs qui l'entourent.

Résultats d'apprentissage

  • Décrivez le déroulement du programme dans un projet qui a un robot VR qui avance jusqu'à ce que le capteur de pare-chocs soit enfoncé.

Renommer le projet

  • Si le projet de la leçon précédente n'est pas déjà chargé, chargez le projet Unit4Lesson2.
  • Renommer le projet Unit4Lesson3.La barre d'outils VEXcode VR montrant l'unité 4 leçon 3 comme nom du projet. Le nom du projet est surligné par une case rouge.

     

 

Flux du projet à conduire à la lettre « A »

Dans la leçon précédente, le robot VR s'est rendu à la lettre « A » sur le Wall Maze Playground. Décomposons le flux du projet alors que nous nous préparons à naviguer vers un nouvel emplacement dans le labyrinthe mural.

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.
  • Pour mieux comprendre le déroulement du projet pour conduire jusqu'à la lettre « A » sur le Wall Maze Playground, commencez par modifier votre projet précédent ou créez un nouveau projet pour correspondre à 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 (LEFT, 90, DEGRÉS)
    
    	while not left_bumper.pressed () :
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Lorsqu'un projet utilise une boucle while avec une condition not , le flux du programme du projet suit toujours la même séquence de haut en bas. La boucle while permet au flux du programme de « s'arrêter » à un certain moment, pendant qu'une condition est remplie. L'opérateur et non  permet au projet de rester dans la boucle jusqu'à ce que la condition soit signalée comme Fausse. Ensuite, le projet passera à la commande suivante en dehors de la boucle. Une condition booléenne, telle que la pression sur le pare-chocs gauche, indique une valeur Vrai ou Faux. Dans ce code pour conduire le robot VR à la lettre « A », le robot VR avancera jusqu'à ce que l'état booléen du pare-chocs gauche enfoncé soit Vrai.
    Le flux de projet du projet à conduire à la lettre « A » ressemblerait à ceci :Un organigramme du projet décrivant le déroulement du projet ci-dessus pour naviguer jusqu'à la lettre A, qui est affichée à gauche. À droite, des flèches indiquent le déroulement du projet. Tout d'abord, une flèche cyclique rouge illustre que lorsque le pare-chocs n'est pas enfoncé, l'état de la boucle while retourne false, de sorte que le robot avance. Une flèche verte vers le bas illustre ensuite que lorsque le pare-chocs est enfoncé, la condition est vraie, de sorte que le projet se détache de cette boucle et que le robot tourne à gauche de 90 degrés. Cette séquence est répétée pour chaque boucle du projet.

Le comportement du robot VR montre comment chaque boucle while est exécutée. Décomposé à côté du mouvement du robot VR, nous pouvons clairement voir où le robot VR a conduit après chaque exécution de la boucle du projet.Sur la gauche, le code Python contient trois boucles séquentielles, chacune demandant au robot d'avancer jusqu'à ce que le pare-chocs gauche soit enfoncé. Une fois le pare-chocs enfoncé dans chaque boucle, le robot effectue une action spécifique.  Dans la première boucle, le robot avance jusqu'à ce que le pare-chocs soit enfoncé, puis tourne à gauche de 90 degrés. L'image de droite montre la position du robot dans un labyrinthe après cette action, marquée par un cercle jaune.  Dans la deuxième boucle, le robot avance à nouveau jusqu'à ce que le pare-chocs soit enfoncé, puis tourne à gauche de 90 degrés. La deuxième image montre la position mise à jour du robot dans le labyrinthe après ce tour.  Dans la troisième et dernière boucle, le robot avance jusqu'à ce que le pare-chocs soit enfoncé. Lorsque le pare-chocs est enfoncé, le robot s'arrête de bouger. L'image finale montre la position d'arrêt du robot dans le labyrinthe, à nouveau mise en évidence par un cercle jaune.

 

Conduisez jusqu'au numéro « 2 »

Dans cette leçon, le projet sera modifié pour que le robot VR se dirige vers le numéro « 2 » sur le Wall Maze Playground !

Une vue de haut en bas de l'aire de jeux Wall Maze avec le robot VR commençant sur la flèche verte en bas au centre de l'aire de jeux. Le chiffre 2 est mis en surbrillance dans une boîte rouge, et est positionné au centre du quadrant inférieur gauche du labyrinthe, plus loin à gauche au-delà de la lettre A. Le chiffre 2 dans un coin créé par trois murs qui l'entourent.
  • Le projet de la leçon 2 a le robot VR tournant à gauche pour conduire à la lettre « A ». Afin de naviguer jusqu'au numéro « 2 », le robot VR devra plutôt tourner à droite, avancer, puis tourner à gauche.

    Une vue de haut en bas de l'aire de jeux Wall Maze où le robot VR est positionné au-dessus du marqueur A, face au mur gauche. Une flèche rouge pointe vers A, et trois flèches vertes indiquent le chemin prévu vers le numéro 2. Les flèches vertes pointent vers le haut vers le mur opposé à A, puis vers la gauche vers le mur suivant à gauche du numéro 2, puis vers le bas dans le coin tenant le numéro 2.
  • Changez la direction du deuxième tour_pour la commande vers la droite au lieu de la gauche. 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.stop()
  • Lancez le terrain de jeu Wall Maze s'il n'est pas déjà ouvert et exécutez le projet.
  • Regardez le robot VR commencer à rouler jusqu'au numéro « 2 », mais arrêtez-vous devant un mur. Ainsi, le robot VR doit tourner à gauche une fois qu'il appuie contre le mur au lieu de s'arrêter.

    Une vue de haut en bas du terrain de jeu Wall Maze avec le robot VR face au mur en face de la lettre A, pointant vers le haut.
  • Sélectionnez le bouton « Réinitialiser » pour réinitialiser le terrain de jeu et ramener le robot VR à la position de départ.Le terrain de jeu Wall Maze montrant toute l'interface du terrain de jeu. Le bouton de réinitialisation en bas à gauche de l'interface du terrain de jeu est mis en surbrillance avec une case rouge.

     

  • Modifiez le code en supprimant la commande stop et en la remplaçant par les commandes suivantes afin de conduire le robot VR au numéro « 2 ».

    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.turn_for (LEFT, 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.
  • Regardez le robot VR se diriger vers le numéro « 2 » sur le Wall Maze Playground !

    Une vue de haut en bas de l'aire de jeux Wall Maze. Le robot VR est maintenant positionné au-dessus du marqueur 2, face à la paroi inférieure avec sa face avant pressée contre le mur.
  • Sélectionnez le bouton « Réinitialiser » pour réinitialiser le terrain de jeu et ramener le robot VR à la position de départ.

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