Skip to main content

Leçon 2 : Utilisation des blocs de comparaison et conduite jusqu'à proximité

Dans cette leçon, vous allez créer un projet qui fait naviguer le robot VR jusqu'à la lettre « A » à l'aide du capteur de distance avec le bloc rapporteur <Less than> booléen. Dans le mini-challenge, vous appliquerez ces compétences pour naviguer du début du labyrinthe mural au nombre « 1 ».

Une vue de haut en bas du labyrinthe mural avec le but de la lettre A surligné dans une boîte rouge, près de la position de départ du robot VR.

Résultats d'apprentissage

  • Identifiez que le <Greater than> bloc est un bloc booléen qui signale si la première valeur est supérieure à la deuxième valeur.
  • Identifiez que le <Less than> bloc est un bloc booléen qui signale si la première valeur est inférieure à la deuxième valeur.
  • Identifiez que les <Less than> blocs <Greater than> ou signalent une valeur VRAIE ou FAUSSE dans un bloc [Attendre jusqu'à].
  • Décrire comment créer un projet qui a un robot VR qui avance jusqu'à ce que la valeur du capteur de distance soit inférieure à une valeur seuil de 50 millimètres (mm).

Nommez et enregistrez le projet

  • Lancez un nouveau projet dans VEXcode VR et nommez le projet Unit5Lesson2. N'oubliez pas que vous pouvez utiliser des blocs VEXcode, des blocs Switch ou une combinaison des deux types de blocs pour votre projet. 
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é 5 Leçon 2.

Utilisez le capteur de distance pour éviter les murs

  • Faites glisser le bloc [Drive] dans l'espace de travail.
    VEXcode VR bloque le projet, en commençant par un bloc When Started avec un bloc Drive Forward en dessous. Il y a une case rouge mettant en surbrillance le bloc Drive Forward.
  • Fixez un bloc [Attendre jusqu'à] sous le bloc [Lecteur].
    Le même projet de blocs VR VEXcode qu'auparavant, mais maintenant avec un bloc Attendre jusqu'en bas mis en évidence par une boîte rouge. Le projet complet se lit comme suit : Au démarrage, Avancez et Attendez jusqu'à. Le paramètre Attendre jusqu'à ce que le bloc soit vide.

Ce projet utilisera le capteur de distance pour naviguer dans le terrain de jeu du labyrinthe mural sans heurter les murs. Vous utiliserez le bloc (Distance de) à l'intérieur du bloc <Less than> booléen dans ce projet.

Les blocs <Less than>, <Greater than>, et <Equal to> sont des blocs de comparaison - ils comparent les valeurs. Il s'agit également de blocs rapporteurs booléens qui rapportent une valeur VRAIE lorsque la condition de comparaison est remplie et une valeur FAUSSE lorsque la condition N'EST PAS remplie.

  • <Less than> rapporte VRAI lorsque la première valeur est inférieure à la deuxième valeur et FAUX lorsque la première valeur est supérieure ou égale à la deuxième valeur.
    VEXcode VR Less Than boolean block, reading '25 less than 50'.
  • <Greater than> signale VRAI lorsque la première valeur est supérieure à la deuxième valeur, et FAUX lorsque la première valeur est inférieure ou égale à la deuxième valeur.
    VEXcode VR supérieur au bloc booléen, indiquant « 100 supérieur à 50 ».
  • <Equal to> signale VRAI lorsque les deux valeurs sont exactement les mêmes, et FAUX lorsqu'elles ne le sont pas.
    VEXcode VR égal au bloc booléen, en lisant '50 égal à 50'.

Les blocs de comparaison peuvent accepter des décimales, des entiers ou des blocs numériques. Ils acceptent également les blocs rapporteurs ronds, tels que le bloc (Distance de). Le bloc (Distance depuis) peut être associé à un bloc de comparaison lors de l'utilisation du capteur de distance dans un projet.

Dans cet exemple, le bloc indiquera VRAI lorsque la distance d'un objet et du capteur de distance sur un robot VR est inférieure à 50 millimètres (mm).

VEXcode VR Less Than boolean block with a Distance From block inside of it, reading 'Front Distance in millimeters less than 50'.

  • Faites glisser le bloc <Less than> booléen dans le bloc [Attendre].
  • Placez le bloc rond (Distance de) à l'intérieur du bloc rapporteur booléen
    Projet VEXcode VR Blocks qui rassemble les étapes précédentes. L'ensemble du projet indique désormais Au démarrage, Avancer et Attendre jusqu'à ce que la distance avant en millimètres soit inférieure à 50. Une case rouge met en surbrillance le bloc Moins que booléen.
  • Le bloc [Attendre jusqu'à] maintiendra le robot VR en marche avant jusqu'à ce que la condition soit remplie et que la distance signalée soit inférieure à 50 millimètres (mm). Ensuite, le projet passera au bloc suivant de la pile, qui sera le bloc [Arrêter de conduire].
    Un diagramme visualisant le flux de logique dans le projet VEXcode VR Blocks. Le projet commence par avancer et maintient cette commande jusqu'à ce que la distance du capteur de distance avant en millimètres soit inférieure à 50, après quoi un bloc Stop Driving termine la commande Drive Forward.
  • Un bloc [Arrêter la conduite] est nécessaire après le bloc [Attendre jusqu'à] car le robot VR continuera à conduire jusqu'à ce qu'il reçoive l'instruction de s'arrêter. Ajoutez un bloc [Arrêter de conduire] au projet.
    Le VEXcode VR bloque le projet d'avant avec un bloc Stop Driving ajouté après le bloc Wait Until. L'ensemble du projet se lit désormais comme suit : Au démarrage, avancez et attendez que la distance avant en millimètres soit inférieure à 50, après quoi arrêtez de conduire.
  • Lancez le terrain de jeu Wall Maze 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 distance signale qu'il se trouve à moins de 50 millimètres (mm) du mur.
    Une vue de haut en bas du labyrinthe mural avec la lettre A but près de la position de départ du robot VR. Le robot VR a maintenant progressé à la suite du projet blocks.
  • En utilisant le <Less than> bloc avec le bloc (Distance de) à l'intérieur du bloc [Attendre jusqu'à], demande au robot VR d'attendre jusqu'à ce qu'il soit à moins de 50 millimètres (mm) du mur avant de s'arrêter.
  • Réinitialisez le terrain de jeu pour ramener le robot VR à la position de départ.

Utilisation des blocs de commutation

Dans cette leçon, vous avez appris à connaître les blocs <Greater than> <Less than>, , et <Equal to> booléens. L'image ci-dessous montre les blocs de comparaison booléens Switch. Pour qu'un bloc booléen de commutation fonctionne comme prévu, les fonctions Python de commutation doivent être saisies avec l'orthographe et la ponctuation correctes. 

Notez que le <Equal to> bloc Switch utilise deux signes égaux (==). En effet, en Python, un signe égal (=) représente une affectation d'une valeur (par exemple, x = 10), tandis que deux signes égaux (==) vérifient si deux valeurs sont égales. Assurez-vous d'utiliser deux signes égaux lorsque vous utilisez le <Equal to> bloc de commutation. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

Vous avez également vu un exemple de projet dans lequel le robot VR avancera jusqu'à ce que la distance signalée soit inférieure à 50 millimètres (mm) d'un objet. Ensuite, le robot VR s'arrêtera. Le projet de droite affiche les commandes Python correspondantes à l'intérieur d'un bloc Switch. La commande, bien qu'elle ne soit pas front_distance.get_distance (MM) < 50, indique au robot de vérifier si la distance signalée est inférieure à 50 MM d'un objet.

La ligne de code indentée suivante, wait (5, MSEC), met le code en pause pendant 5 millisecondes. La commande qui vérifie si la distance signalée est inférieure à 50 MM d'un objet attendra 5 MS avant de vérifier à nouveau la condition. 

Une comparaison de notre projet VEXcode VR, avec le bloc Attendre jusqu'à la conversion en bloc de commutation sur le côté droit. Le nouveau bloc de commutation lit en Python « while notfront_distance.get_distance (MM) < 50 : wait(5, msec) ».

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