Contrôleur : Tank Drive Exploration - C++
Boîte à outils de l'enseignant
-
Le but de cette activité
L'utilisation de l'exemple de projet Tank Control permet aux étudiants de contrôler le Clawbot à l'aide du contrôleur. Les étudiants devront ajuster les paramètres dans les instructions LeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin (), RightMotor.spin (), leftMotorSpeed = Controller1.Axis3.position () et rightMotorSpeed = Controller1.Axis2.position() pour contrôler la vitesse de chacun des moteurs du Clawbot et permettre au contrôleur de contrôler les fonctions du moteur.
Pour plus d'informations sur l'une des instructions, consultez l' aide de la section C++ dans VEXcode V5.
Voici un aperçu de ce que les élèves feront dans cette activité :
-
Explorez l'exemple de projet Tank Control.
-
Comprendre l'utilisation de la structure en boucle infinie while True.
-
Relevez le défi Robo-Slalom !
Conseils à l'enseignant
Si c'est la première fois que l'étudiant utilise VEXcode V5, il peut accéder à de nombreux articles utiles dans la base de connaissances VEX.
| Quantité | Matériel nécessaire |
|---|---|
| 1 |
Kit de démarrage de salle de classe VEX V5 (avec micrologiciel à jour) |
| 1 |
VEXcode V5 (dernière version, Windows, macOS) |
| 1 |
Carnet d'ingénierie |
| 1 |
Exemple de projet de contrôle de réservoir |
| 2 ou plus |
Articles de classe à utiliser comme obstacles |
Conseils à l'enseignant
-
Utilisation de la saisie semi-automatique
La saisie semi-automatique est une fonctionnalité de VEXcode V5 qui prédit le reste de la commande que vous tapez. Pendant que les élèves travaillent dans VEXcode V5, encouragez-les à utiliser la fonction de saisie semi-automatique pour les aider avec la syntaxe. L' article Saisie semi-automatique explique comment utiliser la fonction de saisie semi-automatique.

Cette activité vous donnera les outils pour programmer votre contrôleur.
Étape 1 : Commençons à programmer le contrôleur.
- Ouvrez l' exemple de projet Tank Control.
-

Procédez comme suit dans votre cahier d'ingénierie :
Prédisez ce que le Clawbot fera dans le cadre de ce projet. Expliquez plus que le fait que le projet utilise le contrôleur.
Comment les joysticks déplacent-ils le robot ? Que fait le Clawbot ?int main() { // Initializing Robot Configuration. DO NOT REMOVE! vexcodeInit(); // Begin project code. // Main Controller loop to set motors to controller axis positions while (true) { LeftMotor.setVelocity(Controller1.Axis3.position(), percent); RightMotor.setVelocity(Controller1.Axis2.position(), percent); LeftMotor.spin(forward); RightMotor.spin(forward); wait(5, msec); } return 0; }
Boîte à outils de l'enseignant
-
Réponses
- Ce projet utilisera la structure en boucle infinie while True pour vérifier en permanence où se trouvent les positions du joystick gauche et droit. Lorsque le joystick gauche (ou droit) est poussé vers le haut, la vitesse est définie pour la distance à laquelle le joystick est poussé vers l'avant.
- Ainsi, plus le joystick est poussé vers l'avant, plus la vitesse sera réglée rapidement et plus les moteurs se déplaceront rapidement. La même idée fonctionne pour repousser le joystick. Plus le joystick est poussé vers l'arrière, plus les moteurs se déplacent rapidement en marche arrière.
- Enregistrez, téléchargez et exécutez(C++) l' exemple de projet Tank Control.
-
Pour obtenir de l' aide, consultez les sections de la bibliothèque VEX sur C++ ou consultez le tutoriel dans VEXcode V5 qui explique comment télécharger et exécuter un projet.

- Vérifiez vos explications du projet dans votre cahier d'ingénierie et ajoutez des notes pour les corriger au besoin.
Étape 2 : Contrôleur : Contrôle du réservoir
Boîte à outils de l'enseignant
-
The while True Infinite Loop Structures
Cette étape traite de l'importance de la structure en boucle infinie while True. Vous devriez examiner les informations en tant que classe. Vous pouvez modéliser le comportement avec votre Clawbot et votre contrôleur, ou si le temps le permet, demandez aux étudiants d'exécuter le programme sans la structure en boucle infinie while True.
Quels sont les avantages d'utiliser la structure en boucle infinie while True ?
Voici notre projet sans la structure en boucle infinie while True:
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Begin project code.
// Main Controller loop to set motors to controller axis postiions
LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
RightMotor.setVelocity(Controller1.Axis2.position(), percent);
LeftMotor.spin(forward);
RightMotor.spin(forward);
}
Selon vous, que se passerait-il si ce programme était exécuté ? Discutez-en en groupe. Notez votre prévision dans le cahier d'ingénierie.
Boîte à outils de l'enseignant
-
Comprendre la structure
Sans la boucle infinie while True, la valeur de la vitesse pour chaque moteur est définie dès que le projet est exécuté, et cette valeur reste constante jusqu'à l'arrêt du projet. En d'autres termes, si vous exécutez le projet sans déplacer l'un ou l'autre joystick, car la position par défaut du joystick sur son axe est 0, la vitesse des deux moteurs restera à 0, même si vous déplacez le joystick.
De même, supposons que vous déplaciez le joystick gauche vers le haut aussi loin qu'il ira le long de l'axe 3 et que vous le mainteniez là. Si vous exécutez le projet ci-dessus, le moteur gauche se déplacera à pleine vitesse et restera à cette vitesse même si vous déplacez le joystick vers le bas le long de l'axe 3. En effet, Clawbot reçoit ses instructions initiales du contrôleur dès que le projet est exécuté ; cependant, sans boucle, cette valeur initiale ne peut pas être mise à jour.
La boucle while True Infinite indique au Clawbot de mettre à jour constamment la vitesse et de fonctionner pendant toute la durée du projet. En d'autres termes, la boucle infinie while True, dans ce projet, vous permet de modifier la vitesse de chaque moteur en déplaçant le joystick le long de l'axe 2 ou 3, et le Clawbot répondra en conséquence jusqu'à ce que vous arrêtiez le projet ou éteigniez le Clawbot.
Étape 3 : Naviguez dans un parcours de slalom !
Boîte à outils de l'enseignant
-
Configurer l'activité
Organisez les élèves en petits groupes de 2 ou 4 élèves. Un élève doit être désigné comme le conducteur - la personne qui utilisera le contrôleur pour manœuvrer le Clawbot.
Demandez aux élèves de terminer ce slalom en utilisant le contrôleur pour déplacer le Clawbot le long de l'extérieur de chaque « drapeau ». Le chemin du Clawbot doit l'empêcher de toucher un drapeau et lui permettre de franchir la ligne d'arrivée. Les drapeaux peuvent être tout matériel/objet de classe que vous avez à portée de main (gomme, rouleau de ruban adhésif, boîte à mouchoirs) et peuvent être mis en place avant d'utiliser le Clawbot.
Si le temps le permet, demandez aux élèves de changer de rôle pour donner aux autres la possibilité de conduire le Clawbot. Vous pouvez même transformer cela en une compétition au sein des groupes ou entre les groupes en voyant à quelle vitesse chaque pilote peut naviguer sur le slalom.

Les slaloms sont des cours que le participant doit parcourir autour des drapeaux ou des marqueurs définis. Les slaloms de ski sont un sport d'hiver populaire et sont inclus dans les Jeux olympiques d'hiver.
Maintenant que le contrôleur est jumelé et que le projet C++ est téléchargé, vous êtes prêt à déplacer votre Clawbot à l'aide du contrôleur !
- Ramassez les quatre objets de classe que vous utiliserez comme drapeaux dans votre slalom auprès de l'enseignant.
- Collaborez pour mettre les drapeaux en place pour que le pilote puisse naviguer dans le Clawbot, selon le diagramme de slalom.
- Téléchargez le projet Tank Control Example. Si vous avez des questions sur la façon de télécharger un projet, consultez le didacticiel Télécharger et exécuter un projet.
Étape 4 : Robo-Slalom

Utilisez le contrôleur pour déplacer votre Clawbot le long de l'extérieur de chaque « drapeau ». La trajectoire du robot doit l'empêcher de toucher un drapeau et lui permettre de franchir la ligne d'arrivée.
- Exécutez le projet et faites avancer et reculer le Clawbot, puis tournez à gauche et à droite à l'aide des deux joysticks.
- Temps qu'il faut au Clawbot pour terminer le cours. Documenter les heures dans le cahier d'ingénierie.
- À quelle vitesse pouvez-vous faire suivre le cours de slalom à Clawbot ?
Motiver la discussion
-
Réfléchir à l'activité
Q : Le Clawbot a-t-il répondu au contrôleur comme vous vous y attendiez ?
R : Les réponses varieront ; cependant, le but de cette question est de promouvoir la pensée cognitive. Les élèves ont commencé par prédire les comportements avant de les tester, de documenter leurs résultats et de réfléchir.
Q : Quel est le plus grand défi pour faire avancer ou reculer le Clawbot en ligne droite ?
R : Bien que les réponses puissent varier, une réponse commune devrait être que les deux joysticks doivent se déplacer en synchronisation l'un avec l'autre pour s'assurer que les moteurs du Clawbot se déplacent dans la même direction et à la même vitesse
Q : Comment l'utilisation de la boucle à boucle infinie while True vous permet-elle d'utiliser en permanence le contrôleur pour déplacer le Clawbot ?
R : Sans la boucle infinie while True , le Clawbot n'exécuterait les comportements déterminés par les instructions du projet qu'une seule fois. La boucle while True Infinite indique au Clawbot de mettre à jour constamment la vitesse et de fonctionner pendant toute la durée du projet. En d'autres termes, la boucle while True Infinite vous permet d'utiliser le contrôleur pour déplacer le Clawbot indéfiniment, ou jusqu'à ce que la batterie meure.