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

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.

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

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.

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

-
Fixez un bloc [Attendre jusqu'à] sous le bloc [Lecteur].

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

-
Faites glisser un bloc [Arrêter de conduire] et ajoutez-le au projet.

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

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.

Utilisation des blocs de commutation
Il s'agit du bloc Switch contenant la commande [Attendre jusqu'à] avec le <Bumper pressed>
Journaliste booléen. 
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.