Skip to main content

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é.Le code du projet se trouve sur le côté gauche, le terrain de jeu étant affiché sur le côté droit. Le robot VR se trouve au-dessus de la bordure rouge de la cour de récréation et a cessé de bouger pour ne pas tomber du bord de la cour de récréation.

 

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.

Une vue angulaire du terrain de jeu Dynamic Castle Crasher montrant le robot VR poussant le bloc d'un château. Le robot VR s'est arrêté avant que le bloc du château ne soit poussé du bord de la cour de récréation.

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.Une vue du bas du VR Robot, avec le capteur Down Eye du VR Robot en surbrillance.

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.
    La barre d'outils VEXcode VR affichant les noms du projet est mise en évidence par une case rouge. Le nom du projet indique Unité 9 Leçon 3.
  • 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 vue de haut en bas de l'aire de jeu Dynamic Castle Crasher montrant le robot VR poussant un château hors du bord de l'aire de jeu mais ne tombant pas non plus de l'aire 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.