Skip to main content

Leçon 2 : Conduisez au nombre « 5 »

Dans cette leçon, le robot VR conduira au nombre « 5 » et reviendra au nombre « 1 » sur le terrain de jeu de la carte de la grille numérique!

Image de haut en bas du terrain de jeu Number Grid Map. Le robot VR peut être vu dans le coin inférieur gauche sur le numéro 1. Une légende peut être vue au centre de la rangée du bas sur le numéro 5.

Notez que le robot VR se déplacera le long de l'axe X avec des valeurs X augmentant pour passer au nombre « 5 » sur le terrain de jeu de la carte de la grille numérique.

Numéroter le terrain de jeu de la carte de la grille avec l'axe x superposé au centre du terrain de jeu. Le centre de chaque carré est marqué par la valeur de l'axe X, commençant par -900 sur le côté gauche et augmentant de 200 chaque carré pour atteindre 900 sur le côté droit. Un robot VR peut être vu sur le numéro 1 dans le coin inférieur gauche avec une flèche pointant vers le numéro 5.

Le robot VR se rendra à l'emplacement du nombre « 5 » sur le terrain de jeu de la carte de la grille numérique. Cependant, avant que le robot VR puisse naviguer jusqu'à ce numéro, il faut lui dire où se trouve ce numéro. Commençant au centre de l'aire de jeux, les coordonnées du nombre « 5 » sont (-100, -900).

Coin inférieur gauche du terrain de jeu de la carte à grille numérique d'avant avec les axes x et y superposés. Une flèche est affichée de moins 100 sur l'axe des x au nombre 5 et moins 900 sur l'axe des y au nombre 5. Le robot VR est toujours sur le numéro 1 avec les coordonnées négatives 900, négatives 900 en dessous du robot.

  • Pour commencer, le robot VR doit faire face au nombre « 5 ». Faites glisser ou tapez une commande turn_for.
# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)
  • Faites glisser une boucle while sous la commande turn_for . Votre projet doit ressembler à ceci :
# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition :
        wait(5, MSEC)
  • Tout comme l'unité de capteur de distance, ce projet utilisera l'état de la position du capteur de localisation avec un opérateur de comparaison pour naviguer sur le terrain de jeu de la carte de la grille numérique. Définissez la condition de la boucle while sur la position de la commande sur l'axe X à moins de -100 en millimètres (mm). Votre projet doit ressembler à ceci :
# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100 :
        wait(5, MSEC)
  • Faites glisser ou tapez la commande sans attente drive à l'intérieur de la boucle while. Votre projet doit ressembler à ceci :
# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100 :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • Notez que l'opérateur less than est utilisé à la place de l'opérateur greater than parce que le robot VR conduit vers la droite à partir du côté gauche de l'aire de jeux. Le robot VR démarre à une valeur X de -900 millimètres (mm). Au fur et à mesure que le robot VR avance, les valeurs X augmentent, et donc le robot continuera à avancer alors que la valeur X est inférieure à -100.

Coin inférieur gauche du terrain de jeu de la carte à grille numérique d'avant avec les axes x et y superposés. Une flèche est affichée de moins 100 sur l'axe des x au nombre 5 et moins 900 sur l'axe des y au nombre 5. Le robot VR est toujours sur le numéro 1 avec les coordonnées négatives 900, négatives 900 en dessous du robot.

Pour votre information

Vous devrez choisir l'opérateur de comparaison à utiliser dans votre projet, en fonction de la direction dans laquelle vous souhaitez que le robot VR se déplace le long de l'axe X ou Y. Lorsque le robot VR se déplace vers une valeur plus grande, l'opérateur inférieur à (<) sera utilisé avec une boucle while ; et lorsque le robot VR se déplace vers une valeur plus petite, l'opérateur supérieur à (>) sera utilisé avec une boucle while .

Cela s'aligne avec les mouvements à gauche et à droite lorsque vous regardez le terrain de jeu. Si le robot VR se déplace de gauche à droite ou de bas en haut (valeurs plus grandes), l'opérateur less than est utilisé pour conduire lorsque la position est inférieure à la valeur cible. 

Deux vues descendantes du terrain de jeu de la carte à grille numérique. Dans le premier, le robot VR est représenté sur le numéro 51 avec une flèche indiquant que le robot va se déplacer vers la droite jusqu'au numéro 60. Le texte ci-dessus indique « conduire alors que la position est inférieure à ». Dans le second, le robot VR est représenté sur le numéro 6 avec une flèche indiquant que le robot va se déplacer jusqu'au numéro 96. Le texte ci-dessus indique « conduire alors que la position est inférieure à ».

Si le robot VR se déplace de droite à gauche ou de haut en bas (valeurs plus petites), l'opérateur supérieur à est utilisé pour conduire lorsque la position est supérieure à la valeur cible.

Deux vues descendantes du terrain de jeu de la carte à grille numérique. Dans le premier, le robot VR est représenté sur le numéro 60 avec une flèche indiquant que le robot va se déplacer vers la gauche jusqu'au numéro 51. Le texte ci-dessus indique « conduire tant que la position est supérieure à ». Dans le second, le robot VR est représenté sur le numéro 96 avec une flèche indiquant que le robot va se déplacer vers le bas jusqu'au numéro 6. Le texte ci-dessus indique « conduire tant que la position est supérieure à ».

En utilisant les opérateurs de comparaison, le robot VR se déplacera lorsque la valeur signalée par le capteur de localisation est supérieure à (>) ou inférieure à (<) la valeur seuil. Dans cet exemple, le robot VR naviguera jusqu'à 500 millimètres (mm) positifs sur l'axe X. Le robot VR conduira lorsque la position sur l'axe X est comprise entre 0 et 499 positifs. Lorsque le capteur de localisation signale que la position est 501 ou plus, le robot VR arrête de conduire. 

# Add project code in "main"
def main() :
    monitor_sensor(location.position)
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500 :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Notez que la valeur indiquée par le capteur de localisation n'est pas exactement de 500 millimètres (mm). Comme le capteur de distance, les opérateurs de comparaison sont utilisés en raison du temps nécessaire au robot VR pour parcourir le projet et rapporter les valeurs.

  • Faites glisser ou tapez une commande stop en dehors de la boucle while. Votre projet doit ressembler à ceci :
# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100 :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • Ouvrez la fenêtre Playground  si elle n'est pas déjà ouverte. Assurez-vous que le terrain de jeu Number Grid Map s'ouvre et exécutez le projet.
  • Regardez le lecteur VR Robot jusqu'au numéro « 5 » sur le terrain de jeu Number Grid Map.

Image de haut en bas du terrain de jeu Number Grid Map. Le robot VR peut être vu en bas sur le numéro 5.

  • Dans ce projet, le robot VR se dirige vers le nombre « 5 » sur le terrain de jeu de la carte de la grille numérique. La boucle while est utilisée pour que le robot VR continue d'avancer tant que la valeur X est moins que la valeur X de la coordonnée sur laquelle se trouve le numéro indiqué.
  • Une fois que la valeur X est supérieure à -100, le projet passe à la commande suivante en dehors de la boucle, qui est une commande stop. Étant donné que la valeur X du nombre « 5 » est -100, le robot VR cessera de conduire une fois que la valeur X sera supérieure à -100.

Flux du projet python qui vient d'être lancé. Une flèche indique que le robot se déplace vers la boucle while une fois que le virage à droite de 90 degrés est terminé. Une flèche cyclique se trouve à côté de la boucle while avec le texte suivant : « x value less than negative 100 returns True, VR Robot drives forward ». En dessous, il y a une flèche rouge avec un texte qui indique 'x valeur supérieure à moins 100, renvoie False. VR Robot arrête de conduire.'

Pour votre information

Notez que la valeur indiquée par le capteur de localisation peut ne pas être exactement de -100 millimètres (mm). Comme le capteur de distance, les opérateurs de comparaison sont utilisés en raison du temps nécessaire au robot VR pour parcourir le projet et rapporter les valeurs.

Tableau de bord dans la fenêtre Playground agrandi pour montrer que la valeur x signalée du capteur de localisation est négative de 90 millimètres.

Dans VEXcode VR Python, vous pouvez utiliser un opérateur de comparaison supérieur ou égal à (>=) ou inférieur ou égal à (<=) dans votre projet pour avoir une précision supplémentaire dans vos mouvements.

# Add project code in "main"
def main() :
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100 :
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

En fonction de la vitesse du robot VR et de la rapidité avec laquelle le projet itère dans la boucle, vous pouvez voir que le robot VR est capable de s'arrêter plus près de la valeur seuil lorsque le ou égal à (<= ou >=) est ajouté à l'opérateur.

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