Leçon 3 : Ajout du capteur du bas de l'œil
Dans la leçon précédente, le capteur de distance a été utilisé pour déterminer si le robot VR a détecté un objet ou non, et si oui, s'est dirigé vers l'objet. Cependant, aucune valeur de capteur n'a été utilisée pour déterminer si le robot VR était proche du bord du terrain de jeu pour l'arrêter. Arrêter le robot VR lorsqu'il était près du bord de l'aire de jeux l'empêcherait de s'éloigner du côté.
Tel quel, le projet répète les comportements d'aller de l'avant et de tourner, pour toujours. Cependant, il n'y a aucune condition pour vérifier la bordure rouge autour du terrain de jeu. Ainsi, le robot VR peut tomber du terrain de jeu en allant de l'avant.

Ajout du capteur Down Eye
Un autre capteur est nécessaire pour que le robot VR puisse déterminer s'il est proche du bord du terrain de jeu ou non. Le capteur Down Eye peut être utilisé pour déterminer si le robot VR est proche du bord du terrain de jeu en détectant la bordure rouge autour du terrain de jeu.
Les comportements de conduite en avant et de virage ne doivent être répétés que jusqu'à ce que le Down Eye Sensor signale que la bordure rouge est détectée. Ainsi, la boucle infinie while peut être remplacée par une boucle while avec une condition not , afin de répéter les comportements de conduite en marche avant et de virage jusqu'à ce que la condition de détection de la bordure rouge soit remplie.
-
Chargez le projet Unit9Lesson2 de la leçon précédente.
def main() : while True : # Le capteur de distance détecte-t-il un château ? if front_distance.found_object() : # Crash castle detected by Distance Sensor drivetrain.drive(FORWARD) else : # Turn to find a castle using the Distance Sensor drivetrain.turn(RIGHT) wait(5, MSEC)
- Renommer le projet Unit9Lesson3.
-
Ajoutez un commentaire pour noter comment la boucle while va être utilisée avec le capteur Down Eye. Votre projet devrait maintenant ressembler à ceci :
def main() : # Cherche un bâtiment alors que la bordure rouge n'est pas détectée alors que True : # Le capteur de distance détecte-t-il un château ? if front_distance.found_object() : # Crash castle detected by Distance Sensor drivetrain.drive(FORWARD) else : # Turn to find a castle using the Distance Sensor drivetrain.turn(RIGHT) wait(5, MSEC)
-
Une commande est nécessaire pour vérifier en permanence le capteur du bas de l'œil. Le robot VR devra répéter ces comportements tandis que le capteur oculaire vers bas ne détecte pas la couleur rouge. Modifiez la condition de boucle while en plaçant le mot-clé not devant la condition. Votre projet devrait maintenant ressembler à ceci :
def main() : # Rechercher un bâtiment alors que la bordure rouge n'est pas détectée alors qu'elle n'est pas vraie : # Le capteur de distance détecte-t-il un château ? if front_distance.found_object() : # Crash castle detected by Distance Sensor drivetrain.drive(FORWARD) else : # Turn to find a castle using the Distance Sensor drivetrain.turn(RIGHT) wait(5, MSEC)
-
Ensuite, changez la condition de True à la commande down_eye.detect. Réglez le paramètre sur « ROUGE ». Votre projet devrait maintenant ressembler à ceci :
def main() : # Rechercher un bâtiment alors que la bordure rouge n'est pas détectée alors quedown_eye.detect (ROUGE) : # Le capteur de distance détecte-t-il un château ? if front_distance.found_object() : # Crash castle detected by Distance Sensor drivetrain.drive(FORWARD) else : # Turn to find a castle using the Distance Sensor drivetrain.turn(RIGHT) wait(5, MSEC)
- Ouvrez le terrain de jeu Dynamic Castle Crasher s'il n'est pas déjà ouvert et exécutez le projet. Le robot VR se comporte-t-il comme prévu ?
-
Lorsque ce projet est exécuté, le robot VR se dirigera vers un objet détecté et tournera à droite sinon. Cependant, même si le capteur Down Eye recherche la bordure rouge, le robot VR ne sait pas quoi faire une fois qu'il détecte le rouge, il continue donc à conduire et finit par tomber du terrain de jeu.
Une fois la condition de la boucle while remplie, le flux du projet s'exécutera en dehors de la boucle while.
Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.