Skip to main content

Leçon 2 : Utilisation des opérateurs de comparaison

Dans cette leçon, vous vous pencherez sur les opérateurs de comparaison et les utiliserez dans un projet avec les données du capteur de distance. Ensuite, vous créerez un projet qui navigue avec le robot VR jusqu'à la lettre « A » à l'aide du capteur de distance avec les boucles while et l'opérateur supérieur à (>). 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 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. Le chiffre 1 se trouve dans le coin droit du robot, séparé par un mur vertical et horizontal.

Résultats d'apprentissage

  • Identifiez que supérieur à (>), inférieur à (<) et égal à (==) sont des opérateurs de comparaison qui comparent deux valeurs, appelées opérandes.  
  • Identifiez que l' opérateur supérieur à (>) compare deux valeurs et signale Vrai si la valeur de gauche est supérieure à la valeur de droite.
  • Identifiez que l'opérateur less than (<) compare deux valeurs et signale True si la valeur de gauche est inférieure à la valeur de droite.
  • Identifiez que les opérateurs supérieurs à (>) ou inférieurs à (<) signalent une valeur Vrai ou Faux lorsqu'ils sont utilisés comme condition dans une boucle while .
  • Décrivez comment créer un projet doté d'un robot VR jusqu'à ce que la valeur du capteur de distance soit inférieure à un certain montant.

Opérateurs de comparaison

Les opérateurs inférieur à (<), supérieur à (>) et égal à (==) comparent deux valeurs, également appelées opérandes. La valeur à gauche de l'opérateur est le premier opérande, et la valeur à droite est le deuxième opérande. Les opérateurs rapportent des valeurs booléennes et renvoient une valeur True lorsque la comparaison est correcte et False lorsque la comparaison N'EST PAS correcte.

  • Dans ces exemples utilisant l'opérateur less than (<), lorsque l'instruction est numériquement correcte, elle indique True.Pour les lignes inférieures aux opérateurs - la ligne supérieure indique 50 moins de 25 et est étiquetée comme « signale faux ». La ligne du bas indique 25 moins de 50 et est étiquetée comme « rapports vrais ».
  • De même, dans ces exemples utilisant l'opérateur supérieur à (>), l'instruction numériquement correcte indiquera True.Aux lignes supérieures aux opérateurs - la ligne supérieure indique 50 supérieur à 25 et est étiquetée comme « rapports vrais ». La ligne du bas indique 25 supérieur à 50 et est étiquetée comme « rapports faux ».
  • L'opérateur égal à (==) signale Vrai lorsque les deux valeurs sont exactement les mêmes, et Faux lorsqu'elles ne le sont pas.Aux lignes égales aux opérateurs - la ligne du haut indique 50 = = 50 et est étiquetée comme « rapports vrais ». La ligne du bas indique 25 = =  50 et est étiquetée comme « rapports faux ».
    • Notez que le signe double égal signifie « égal à » et compare les deux valeurs. Un seul signe égal est un opérateur d'affectation qui attribue une valeur à une variable.

Les opérateurs de comparaison peuvent comparer des décimales, des entiers ou des commandes de rapport numérique.

Utilisation d'opérateurs de comparaison avec des données de capteur de distance

Les opérateurs de comparaison sont particulièrement utiles lorsque vous utilisez les données numériques d'un capteur, comme le capteur de distance, pour que le robot VR prenne une décision. Dans l'unité précédente, les données du capteur de pare-chocs ont été utilisées pour faire tourner le robot VR lorsque le capteur de pare-chocs était enfoncé. Cependant, avec un opérateur de comparaison, nous pouvons utiliser les données du capteur de distance pour faire tourner le robot VR à un endroit plus précis. Ceci est utile pour éviter de conduire dans les murs, ou pour faire naviguer le robot VR vers un endroit spécifique sur une aire de jeux. 

Les données du capteur de distance peuvent être utilisées comme l'une des valeurs de l'opérateur de comparaison.

front_distance.get_distance(MM) > 50

Par exemple, si nous voulions que le robot VR se dirige vers un objet, comme un mur, puis s'arrête lorsqu'il est proche de l'objet, nous pourrions le faire en utilisant un opérateur de comparaison et la fonction get _distance. Essentiellement, nous demandons au robot VR de conduire alors que la distance entre le robot et l'objet est supérieure à une valeur seuil, comme 50 millimètres (mm).Une vue rapprochée du centre inférieur de l'aire de jeux Wall Maze, avec le robot VR sur la case de départ. Une flèche verte s'étend de l'avant du robot à environ 50 mm de la première paroi opposée, illustrant l'endroit où la distance get supérieure à 50 mm est signalée comme vraie. Une flèche rouge s'étend de l'avant de la flèche verte au mur, illustrant où la distance get supérieure à 50 mm est signalée comme fausse.

Bien que le capteur de distance indique qu' il est supérieur à 50 millimètres (mm) ou que la valeur est supérieure à (>) 50, le robot VR peut conduire librement. Lorsque le capteur de distance indique qu'il est  inférieur à 50 millimètres (mm) ou que la valeur n'est pas supérieure à (>) 50, le robot VR doit s'arrêter ou tourner avant d'entrer en collision avec le mur. 

Pour votre information

Le choix de l'opérateur de comparaison à utiliser peut être un choix stylistique. L'opérateur greater than (>) a été utilisé dans l'exemple ci-dessus pour rendre le projet aussi clair et lisible que possible. Lorsque le robot VR est à une distance supérieure à 50 millimètres, avancez. Vous pouvez atteindre le même objectif en inversant l'ordre des valeurs dans l'opérateur et en utilisant un opérateur inférieur à (<).

tandis que > 50  front_distance.get_distance(MM) :

Ici, le robot VR conduisait alors que 50 millimètres étaient supérieurs à la valeur indiquée par le capteur de distance. Le robot VR effectuerait le même comportement, cependant, le projet est légèrement moins clair et lisible. 

En fonction des données du capteur que vous utilisez, l'opérateur égal à (==) peut ne pas faire fonctionner le robot VR comme prévu. Par exemple, si l'objectif est que le robot VR s'arrête à 50 millimètres d'un objet, vous pouvez penser à utiliser l'opérateur égal à (==).

while front_distance.get_distance(MM) == 50 :

Cependant, dans le labyrinthe mural par exemple, l'utilisation d'un opérateur égal à (==) avec le capteur de distance nécessiterait une lecture si précise du capteur, pour être exactement de 50 millimètres, que la vitesse du robot VR rendrait presque impossible d'obtenir ce niveau de précision en temps réel. Ainsi, le robot VR continuerait probablement à dépasser le seuil car s'il rapporte une valeur de 100 millimètres ou 25 millimètres, aucun de ceux-ci n'est égal à 50 mm, de sorte que l'opérateur ne déclare jamais comme vrai. 

Opérateurs de comparaison et problème du labyrinthe mural

Une boucle while peut être utilisée avec les opérateurs de comparaison et le capteur de distance, de sorte que le robot VR vérifie en permanence les données du capteur et évalue la comparaison. Cela peut permettre au robot VR d'effectuer un comportement alors qu' une valeur est supérieure ou inférieure à un certain seuil. Dans le labyrinthe mural, le résultat souhaité est que le robot VR avance alors que le capteur de distance est à plus de 50 millimètres (mm) du mur. Ensuite, il devrait s'arrêter ou tourner pour continuer à travers le labyrinthe.

def main() :
    while front_distance.get_distance(MM) > 50 :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Dans cet exemple de clip vidéo, la boucle while du projet illustré à gauche permettra au robot VR de continuer à avancer depuis l'emplacement de départ, à condition que la condition soit remplie et que la distance entre le robot VR et l'objet le plus proche (le premier mur en face) soit signalée comme supérieure à 50 millimètres (mm). Le robot s'arrête alors lorsqu'il s'approche du premier mur et la distance signalée est inférieure à 50 mm.

Fichier vidéo

Cette image explique le déroulement du projet ci-dessus :

  • Tant que le capteur de distance est à plus de 50 millimètres (mm) du mur, l'opérateur indique Vrai et reste dans la boucle while
  • Lorsque la distance entre le mur et la ligne est inférieure à 50 millimètres (mm), l'opérateur signale Faux et sort de la boucle while .

Diagramme de flux de projet de la boucle while dans le projet ci-dessus. La boucle while continue de fonctionner lorsque la distance par rapport au mur est supérieure à 50 mm, et cette condition est vraie, ce qui oblige le robot à avancer. Lorsque la distance du mur n'est pas supérieure à 50, la condition est fausse et le projet existe la boucle while, ce qui provoque l'arrêt de la conduite du robot.

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