Skip to main content

Leçon 2 : Utilisation du bloc [Attendre]

Dans cette leçon, vous allez créer un projet à l'aide du capteur de pare-chocs et du bloc [Attendre jusqu'à]. Dans le mini-challenge, vous appliquerez ces compétences pour naviguer du début du labyrinthe mural à la lettre « A ».

Vue latérale du terrain de jeu du labyrinthe mural avec le robot VR directement devant un mur, montrant que les murs sont tridimensionnels et que le robot peut entrer en collision avec eux.

Résultats d'apprentissage

  • Identifiez que les blocs sans attente permettent à la pile de continuer même si le comportement du bloc n'est pas encore terminé.
  • Identifiez qu'un bloc d'attente met la pile en pause jusqu'à ce que le comportement de ce bloc soit terminé.
  • Identifiez que la mise en évidence de l'exécution du projet visualise les blocs en attente par rapport aux blocs sans attente.
  • Identifiez que le bloc [Attendre jusqu'à] est un bloc de contrôle qui accepte les valeurs booléennes.
  • Identifiez que le bloc [Attendre jusqu'à] vérifiera à plusieurs reprises une condition booléenne et ne passera pas au bloc suivant tant que la condition ne sera pas VRAIE.
  • Identifiez que le bloc [Attendre jusqu'à] est utilisé avec un bloc sans attente (par exemple, Drive) afin de vérifier l'état du capteur.
  • Identifiez que le <Pressing bumper> bloc rapporte une valeur VRAIE ou FAUSSE dans un bloc [Attendre].
  • Identifiez comment les blocs [Drive for] et [Turn for] sont des blocs spéciaux qui peuvent être en attente ou sans attente.
  • Décrivez comment créer un projet qui a un robot VR qui avance jusqu'à ce que le capteur de pare-chocs soit enfoncé.

Nommez et enregistrez le projet

  • Lancez un nouveau projet dans VEXcode VR et nommez le projet Unit4Lesson2.
Zone Nom du projet au centre de la barre d'outils VEXcode VR, surlignée par une case rouge, à gauche du bouton Sélectionner un terrain de jeu.

[Attendre] Blocs

Le bloc [Attendre jusqu'à] est un bloc de contrôle qui accepte les conditions booléennes. [Attendez] que les blocs vérifient à plusieurs reprises une condition booléenne et contrôlent le flux du projet. Un projet ne passera pas au bloc suivant de la pile tant que la condition du bloc [Attendre] n'aura pas été VÉRIFIÉE. Les blocs [Attendre jusqu'à] sont utilisés conjointement avec des blocs sans attente tels que [Conduire] ou [Tourner].

Pour votre information

Les blocs de non-attente et d'attente déterminent quand le bloc suivant commence un comportement. Les blocs en attente, comme [Drive for] et [Turn for], terminent leurs comportements avant de passer au bloc suivant dans la pile. Les blocs sans attente, tels que [Drive] et [Turn], continuent de passer au bloc suivant dans la pile même si le comportement du bloc sans attente n'est pas terminé.

Certains blocs, comme [Drive for] et [Turn for] peuvent être en attente ou non. La sélection de la flèche sur le bloc transformera le bloc en attente en un bloc sans attente.

Un entraînement pour le bloc est représenté avec la flèche à droite du bloc fermé et ouvert. Sur le dessus, un lecteur pour bloc indique Drive forward for 200mm. En bas, le même bloc est étendu pour lire Drive forward pour 200 mm et n'attendez pas.

Utilisation des blocs de commutation

Le bloc Switch non-waiting ajoute un paramètre "wait=False" à la fin du bloc. "wait=False" est la commande Python qui indique au bloc de ne pas attendre et de continuer à passer aux blocs suivants de la pile.

Le bloc de commutation équivalent est affiché avec le lecteur de commande en tant que commande en attente et sans attente. En haut, la commande Python dans le bloc Switch indique drivetrain dot drive_for (FORWARD, 200, MM). En bas, la même commande est étendue pour lire drivetrain dot drive _ for (FORWARD, 200, MM, wait = false).

  • Faites glisser le bloc [Drive] sans attente dans l'espace de travail.

    Un nouveau projet VEXcode VR avec un bloc Quand a commencé avec un bloc d'entraînement attaché et configuré pour transférer.
  • Fixez un bloc [Attendre jusqu'à] sous le bloc [Lecteur].

    Le même projet avec un bloc d'attente ajouté au bas de la pile. Le paramètre de l'attente jusqu'à ce que le bloc soit vide.
  • Le bloc [Attendre] accepte les conditions booléennes. Ce projet utilisera le capteur de pare-chocs pour traverser le labyrinthe mural Playground. Faites glisser le bloc <Pressing bumper> booléen dans le bloc [Attendre].

    Le même projet avec un bloc Bumper pressé ajouté au paramètre du bloc Wait until. Le projet indique maintenant Au démarrage, avancez, attendez que le pare-chocs gauche soit enfoncé.
  • Faites glisser un bloc [Arrêter de conduire] et ajoutez-le au projet.

    Le même projet avec un bloc d'arrêt de conduite ajouté sous le bloc d'attente. Le projet indique désormais Au démarrage, avancez, attendez que le pare-chocs gauche soit enfoncé, puis arrêtez de conduire.
  • Lancez le Wall Maze Playground s'il n'est pas déjà ouvert et exécutez le projet.
  • Regardez le robot VR conduire depuis le début du labyrinthe mural et arrêtez-vous lorsque le capteur de pare-chocs est pressé par le mur.
  • Le bloc [Drive] permet au robot VR de continuer à avancer tout en vérifiant l'état du capteur de pare-chocs avec le <Pressing bumper> bloc. Une fois que <Pressing bumper> les rapports sont VRAIS, le robot VR passera au bloc suivant dans la pile et cessera de conduire.

    Le projet VEXcode VR de cette leçon a été décomposé pour montrer le flux du projet. Le bloc When started est suivi du bloc drive forward. Une flèche dorée pointe vers le bas à partir du bloc d'entraînement vers l'avant au niveau du bloc d'attente jusqu'à ce que le pare-chocs gauche appuie sur le bloc. À droite du bloc se trouvent 2 flèches rouges incurvées indiquant un mouvement circulaire et les mots "non pressés (faux)" montrant ce qui se passe lorsque le robot avance et que l'interrupteur de pare-chocs n'est pas pressé. Sous le bloc Attendre jusqu'à, une flèche verte pointant vers le bas sur le bloc d'arrêt d'entraînement avec les mots "pressés (vrai)" indique que le projet se déplacera vers le bloc d'arrêt d'entraînement lorsque l'interrupteur de pare-chocs est enfoncé.

    Pour votre information

    Pour suivre une visualisation des blocs en attente par rapport aux blocs sans attente, regardez la fonction de surbrillance d'exécution de code dans VEXcode VR. Au début de ce projet, la surbrillance verte apparaîtra autour du bloc [Attendre] jusqu'à ce que la condition soit remplie. En effet, le bloc [Attendre jusqu'à] est un bloc d'attente. La surbrillance verte apparaîtra pour ignorer les blocs sans attente car ces commandes sont rapidement exécutées.

    Projet VEXcode VR de cette leçon avec une zone de légende rouge autour du bloc Attendre jusqu'à, indiquant qu'il s'agit d'un bloc en attente.

     

    Utilisation des blocs de commutation 

    Il s'agit du bloc Switch contenant la commande [Attendre jusqu'à] avec le <Bumper pressed>  Journaliste booléen.

    Projet VEXcode VR comme ci-dessus, mais avec le bloc Wait until remplacé par un bloc Switch. La commande Python dans le bloc Switch lit while not left_bumper.pressed() : sur la première ligne. Puis indenté sous le bloc Python lit wait (5, msec).

    while not left_bumper.pressed() : est la commande Python qui vérifie si le pare-chocs gauche est actuellement enfoncé.

    wait (5, MSEC) est une commande Python qui met en pause l'exécution de la vérification pendant 5 millisecondes (MSEC), de sorte que le projet vérifie si le pare-chocs gauche est appuyé ou non toutes les 5 MSEC. Cette ligne de code est mise en retrait sous la première ligne de code car cette commande est le comportement qui se répétera jusqu'à ce que la condition (dans ce cas, le pare-chocs gauche appuyé) soit remplie.

    Dans VEXcode VR, une commande wait est toujours ajoutée avec une boucle conditionnelle . Le but de la commande wait est de s'assurer que VEXcode VR peut exécuter correctement le projet comme prévu, en raison de la nature Web de la plate-forme VEXcode VR. La commande wait ne doit jamais être supprimée lors de l'utilisation d'une boucle conditionnelle , car votre projet risque de ne pas fonctionner comme prévu.

    Une fois que le pare-chocs gauche est enfoncé, le robot arrête de conduire.

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