Skip to main content

Leçon 3 : Utilisation des blocs [If then]

Dans le défi du labyrinthe de disques, le robot VR vérifie l'état du capteur oculaire avant pour voir quelle couleur est signalée. Chacune des couleurs correspond à un comportement différent que le robot VR doit effectuer.

VEXcode VR If Then C block with a boolean parameter of 'Front Eye detects red ?'.
  • Démarrez un nouveau projet et nommez-le Unit7Lesson3.

    VEXcode VR Toolbar avec le bouton « Project Name » surligné dans une case rouge, à gauche du bouton Select Playground. Le nom du projet est défini sur Unité 7 Leçon 3.
  • Faites glisser un bloc [If then] dans l'espace de travail et attachez-le au bloc [When started].

    VEXcode VR bloque le programme avec un bloc When Started et un bloc If Then C vide.

    Pour votre information

    Le bloc [If then] est un bloc C qui accepte les blocs rapporteurs booléens comme entrée. En utilisant les modèles observés lors de la résolution du labyrinthe de disques dans la leçon 2, un projet peut être créé où le robot VR prend une décision si la condition EST VRAIE ou FAUSSE.

    VEXcode VR If Then C block with a red box highlighting the boolean parameter space.

    Le bloc [If then] s'exécutera une fois dans un projet. Dans cet exemple, le capteur oculaire avant signalera VRAI si un objet vert est détecté et exécutera la commande à l'intérieur du bloc C - tournez à droite sur 90 degrés. Si aucun objet vert n'est détecté, le projet passera à la commande suivante dans la pile.

    VEXcode VR bloque le projet qui tourne à droite si l'œil avant détecte la couleur verte. Le projet se lit comme suit : Au démarrage, si l'œil avant détecte le vert, tournez à droite sur 90 degrés. En dehors de l'instruction if, il y a un bloc d'arrêt de conduite.

    Utilisation des blocs de commutation 


    L'image ci-dessous montre l'instruction de bloc Changer [Si alors] pour l'exemple de projet de cette leçon. 

    Le même projet de blocs VR VEXcode, mais avec des blocs de commutation inclus, qui tourne à droite si l'œil avant détecte la couleur verte. Le projet commence par un bloc Quand a commencé et est suivi par une version de bloc C de commutateur d'un bloc Si alors. Le code Python indique « if front_eye.detect(GREEN) : drivetrain.turn_for(RIGHT, 90, DEGREES) ». En dehors de l'instruction if, il y a un bloc d'arrêt de conduite.

    Le projet ci-dessous comprend les mêmes commandes converties en un seul bloc Switch.  

    La première ligne de code, si front_eye.detect(VERT) : est la boucle conditionnelle qui vérifie si le capteur frontal détecte la couleur verte. Notez qu'il devrait y avoir un deux-points (:) à la fin de cette ligne. 

    La deuxième ligne de code, drivetrain.turn_for(DROITE, 90 DEGRÉS) indique au robot de tourner à droite sur 90 degrés lorsque le capteur oculaire avant détecte la couleur verte. Cette ligne est mise en retrait par défaut de 4 espaces car c'est le comportement spécifique qui sera effectué si le capteur oculaire frontal détecte le vert. 

    Le même projet de blocs VR VEXcode, mais avec des blocs de commutation inclus, qui tourne à droite si l'œil avant détecte la couleur verte. Le projet commence par un bloc Quand a commencé et est suivi par une version de bloc C de commutateur d'un bloc Si alors. Le code Python indique « if front_eye.detect(GREEN) : drivetrain.turn_for(RIGHT, 90, DEGREES) ». En dehors de l'instruction if, il y a un bloc d'arrêt de conduite.

  • Faites glisser un <Color sensing> bloc dans l'espace de travail dans l'entrée hexagonale du bloc [If then].

    VEXcode VR bloque le projet qui utilise une instruction if pour détecter la couleur d'un disque. Cela commence par un bloc Quand a commencé, puis un bloc de commentaire indiquant « si Front Eye détecte le vert, tournez à droite ». Enfin, il y a un bloc If Then vide avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye détecte le rouge ? ».
  • Modifiez le paramètre du <Color sensing> bloc sur « vert ».

    VEXcode VR bloque le projet qui utilise une instruction if pour détecter un disque vert. Cela commence par un bloc Quand a commencé, puis un bloc de commentaire indiquant « si Front Eye détecte le vert, tournez à droite ». Enfin, il y a un bloc If Then vide avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye détecte le vert ? ». Le menu déroulant des couleurs est ouvert pour changer la couleur du rouge au vert.
  • Lorsque le capteur oculaire avant détecte un disque vert, le robot VR devra tourner à droite de 90 degrés pour commencer à résoudre le labyrinthe de disques. Faites glisser un bloc [Turn for] dans le bloc [If then].

    VEXcode VR bloque le projet qui utilise une instruction if pour détecter un disque vert, puis tourner à droite. Cela commence par un bloc Quand a commencé, puis un bloc de commentaire indiquant « si Front Eye détecte le vert, tournez à droite ». Enfin, il y a un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « L'œil avant détecte le vert ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If qui se déclenchera si le booléen est vrai.
  • Suivez ces mêmes étapes pour ajouter un autre bloc [If then] pour les trois couleurs du labyrinthe de disques (vert, bleu et rouge). Chaque couleur est associée à un comportement différent. Les blocs à l'intérieur du bloc [If then] devront correspondre à ce comportement prévu. Ajoutez les blocs suivants au projet. Lorsque le robot VR détecte la couleur « bleu », le robot VR tourne à gauche de 90 degrés.

    Le même VEXcode VR bloque le projet d'avant mais avec une instruction if ajoutée pour tourner à gauche s'il y a un disque bleu. Cela commence par un bloc When Started, puis il y a un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye detects green ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Enfin, il en va de même si le bloc et la pile de blocs de virage sont modifiés pour tourner à gauche sur 90 degrés si la couleur bleue est détectée.
  • Lorsque le robot VR atteint la fin du labyrinthe, il détecte la couleur « rouge ».

    Robot VR dans l'aire de jeux VR Disk Maze, le robot est arrêté et regarde vers un disque rouge.
  • Pour arrêter le robot VR, un autre bloc [If then] doit être ajouté avec des instructions sur ce qu'il faut faire lorsque le robot VR détecte « rouge ». Ajoutez les blocs suivants au projet.

    Le même VEXcode VR bloque le projet d'avant mais avec une instruction if ajoutée pour arrêter la conduite s'il y a un disque rouge. Il commence par un bloc When Started, puis il y a un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye detects green ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Ensuite, il en va de même si le bloc et tournez la pile de blocs, mais changé pour tourner à gauche sur 90 degrés si la couleur bleue est détectée. Enfin, il en va de même si la pile de blocs et de blocs de virage est utilisée, mais remplacée par Arrêter la conduite si la couleur rouge est détectée.
  • Le robot VR peut également prendre une décision s'il ne voit pas une couleur en utilisant la valeur « aucun ». Au point de départ du labyrinthe de disques, le robot VR ne détecte aucune couleur.

    La vue du terrain de jeu VR avec le tableau de bord ouvert et une boîte rouge mettant en évidence les valeurs de détection Front Eye du robot. La valeur « Objet » actuelle est fausse et la valeur « Couleur » actuelle est nulle.
  • Étant donné que le capteur oculaire avant ne détecte pas de couleur au début du labyrinthe de disques, le robot VR devra avancer jusqu'à ce qu'il détecte le disque vert. Un autre bloc [If then] peut être ajouté pour indiquer au robot VR ce qu'il faut faire lorsqu'aucune couleur n'est détectée.

    Bloc VEXcode VR Color Sensing, qui indique « Front Eye detects none ? ». Il y a un menu déroulant ouvert pour montrer comment l'utilisateur peut changer la couleur cible en aucune.
  • Ajoutez les blocs suivants au projet. Lorsque le robot VR ne détecte aucune couleur, le robot VR avance.

    Le même VEXcode VR bloque le projet d'avant mais avec une instruction if ajoutée pour avancer s'il n'y a pas de disque détecté. Cela commence par un bloc When Started, puis il y a un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye detects green ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Ensuite, il en va de même si le bloc et tournez la pile de blocs, mais changé pour tourner à gauche sur 90 degrés si la couleur bleue est détectée. Ensuite, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Arrêter la conduite si la couleur rouge est détectée. Enfin, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Drive Forward si aucune couleur n'est détectée.
  • Le robot VR a maintenant des instructions pour chaque couleur détectée par le capteur oculaire.
    • Le capteur oculaire avant détecte « vert » ?
      • Tourner à droite à 90 degrés
    • Le capteur oculaire avant détecte « bleu ? »
      • Tourner à gauche de 90 degrés
    • Le capteur oculaire avant détecte « rouge ? »
      • Arrêter de conduire
    • Le capteur oculaire frontal détecte « aucun ? »
      • Conduire en avant
  • Ouvrez le Disk Maze Playground et exécutez le projet.

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