Boîte à outils de l'enseignant
-
Le but de cette activité
Cette activité initiera les élèves à l'utilisation des instructions while et if pour que le robot avance à moins que l'écran ne soit enfoncé.
-
Cette activité initiera les élèves aux conditionnels et aux instructions qui font avancer le robot à moins que l'écran ne soit enfoncé.
-
Pour plus d'informations sur les instructions if then et if then else ou d'autres personnes utilisées dans cette activité, consultez les informations d'aide dans VEXcode V5. Pour plus d'informations sur cet outil d'aide intégré, consultez ces articles sur l'aide en C++ .
Boîte à outils de l'enseignant
Pour des suggestions sur les stratégies d'enseignement pour cette section, consultez la colonne Livraison du Guide de stimulation à faire ou à ne pas faire ! (Google Doc / .docx / .pdf)
Le Clawbot est prêt à prendre des décisions !
Cette exploration vous donnera les outils pour pouvoir commencer à créer des projets sympas qui utilisent if then else statement.
- Commandes VEXcode V5 C++ qui seront utilisées dans cette exploration :
- Drivetrain.drive(avant) ;
- Brain.Screen.pressing()
- Drivetrain.stop() ;
- if (condition){}
- waitUntil() ;
- while (condition){}
- attendez(1, secondes) ;
Vous pouvez utiliser les informations d'aide à l'intérieur de VEXcode V5 pour en savoir plus sur les instructions C++.
Assurez-vous d'avoir le matériel requis, votre ordinateur portable d'ingénierie et VEXcode V5 prêts.
| Quantité | Matériel nécessaire |
|---|---|
| 1 |
Kit de démarrage pour salle de classe VEX V5 (avec micrologiciel à jour) |
| 1 |
VEXcode V5 (dernière version, Windows, macOS) |
| 1 |
Carnet d'ingénierie |
| 1 |
Modèle Clawbot (groupe motopropulseur à 2 moteurs, sans gyroscope) |
Conseils à l'enseignant
S'il s'agit de la première fois que l'étudiant utilise VEXcode V5, il peut faire référence aux tutoriels à tout moment au cours de cette exploration. Les didacticiels se trouvent dans la barre d'outils.

Étape 1 : Commençons par comprendre les déclarations conditionnelles
Avant de commencer à programmer avec des conditionnels, lisez l'article de la bibliothèque VEX expliquant les déclarations If Then Else. L'article peut être trouvé ici.
Pour obtenir une liste des opérateurs à utiliser dans les instructions If Then Else, lisez l'article de la bibliothèque VEX expliquant les booléens. Cet article peut être trouvé ici.
Étape 2 : Commençons à programmer avec des instructions conditionnelles.
-
Ouvrez le projet d'exemple de modèle Clawbot (groupe motopropulseur à 2 moteurs, sans gyroscope).

- Construisez le projet ci-dessous.
// Commencer le code du projet
int main() {
// Initialisation de la configuration du robot. NE PAS ENLEVER !
vexcodeInit() ;
while (true) {
Drivetrain.drive(forward) ;
if (Brain.Screen.pressing()) {
Drivetrain.stop() ;
waitUntil(!Brain.Screen.pressing()) ;
}
}
} Procédez comme suit dans votre cahier d'ingénierie :
- Expliquez ce que le projet fait avec le Clawbot. Vous devrez expliquer plus que le fait qu'il crée un bouton d'arrêt. Expliquez quelles instructions font faire quoi au Clawbot.
- Rédigez un résumé d'une phrase qui capture ce que fait le projet.
- Testez pour voir si votre prédiction de ce que le projet a fait avec le Clawbot est correcte.
- Enregistrez et téléchargez le projet en tant que CreatingAStopButton dans l'emplacement 1 sur le Clawbot, puis exécutez-le.
- Pour obtenir de l'aide sur le téléchargement d'un projet, consultez le tutoriel dans VEXcode V5 qui explique comment télécharger et exécuter un projet (C++).
- Vérifiez vos explications du projet et ajoutez des notes pour les corriger au besoin.
Boîte à outils de l'enseignant
-
Réponses
Dans le cadre de ce projet, le robot avance en continu, mais s'arrête si l'écran est enfoncé. Pour ce faire, il utilise une instruction forever pour conduire et vérifier en continu. Si l'écran est enfoncé (VRAI), le Clawbot cesse de conduire.
Les élèves ne sont pas censés comprendre pourquoi l'instruction waitUntil () est utilisée. Expliquez que l'instruction waitUntil () est nécessaire en raison de la vitesse du flux de programme du robot. S'il n'était pas là, les moteurs du Clawbot se comporteraient comme si l'utilisateur appuyait sur l'écran encore et encore pendant qu'il bouclait le projet. Au lieu de cela, l' instruction waitUntil() arrête le flux du programme et ne redémarre pas le projet la boucle Forever jusqu'à ce que l'utilisateur arrête d'appuyer sur l'écran.
La ligne de pseudocode pourrait être aussi simple que : Avancez jusqu'à ce que l'écran soit enfoncé.
Les cahiers d'ingénierie des étudiants peuvent être maintenus et notés individuellement (Google Doc / .docx / .pdf) ou en équipe (Google Doc / .docx / .pdf). Les liens précédents fournissent une rubrique différente pour chaque approche. Chaque fois qu'une rubrique est incluse dans la planification de l'éducation, il est de bonne pratique d'expliquer la rubrique ou au moins d'en donner des copies aux élèves avant le début de l'activité.
Étape 3 : Comprendre l' instruction wait until().
Notez que si vous appuyez sur l'écran Cerveau, le flux du projet se déplace rapidement et le projet passera à l'instruction suivante, qui est l' instructionDrivetrain.stop ().
Ainsi, le projet a besoin d'une instruction waitUntil() qui indique au robot de rester à l'arrêt jusqu'à ce que l'écran du cerveau soit libéré. Sinon, l' instruction Forever entraînerait la reprise du projet.
waitUntil(!Brain.Screen.pressing());L'instruction waitUntil() est nécessaire en raison de la rapidité du flux du projet. S'il n'était pas là, le projet passerait à l'instruction suivante avant que le robot n'ait jamais eu le temps de répondre.
Étape 4 : Modifiez le projet.
Notre prochaine étape consiste à remplacer l' instruction if then par une instruction if then else.
- Commencez par enregistrer CreatingAStopButton en tant que nouveau projet, StopOrDrive.
- Si vous avez besoin d'aide pour enregistrer un projet, cliquez ici pour C++.
- Ensuite, créez le projet StopOrDrive illustré ci-dessous.
// Commencer le code du projet
int main() {
// Initialisation de la configuration du robot. NE PAS ENLEVER !
vexcodeInit() ;
while (true) {
Drivetrain.drive(forward) ;
if (Brain.Screen.pressing()) {
Drivetrain.stop() ;
waitUntil(!Brain.Screen.pressing()) ;
}
else {
Drivetrain.drive(forward) ;
}
}
} - Téléchargez StopOrDrive to Slot 2 sur votre Clawbot.
- Pour obtenir de l'aide sur le téléchargement d'un projet, consultez le tutoriel dans VEXcode V5 qui explique comment télécharger et exécuter un projet (C++).
- Testez CreatingAStopButton (fente 1), puis testez StopOrDrive (fente 2) et comparez-les pour voir s'il y a une différence dans le comportement du robot. Notez toute différence dans votre carnet d'ingénierie
Boîte à outils de l'enseignant
-
Réponse
En ce qui concerne le comportement du robot, il ne devrait pas y avoir de différence entre les projets CreatingAStopButton et StopOrDrive.
Si les élèves ont besoin d'aide supplémentaire pour comprendre les énoncés If-Else, cliquez ici.
Les deux projets ont le Clawbot se comporter de la même manière. La seule différence est l'utilisation de l'instruction if then else dans le projet StopOrDrive.
L'utilisation de l'instruction if then else vous permettra d'ajouter des boutons supplémentaires à l'écran dans les activités à venir.
Étendez votre apprentissage
Au fur et à mesure que ce laboratoire STEM progressera, les étudiants développeront des projets qui permettront à l'écran du Clawbot de fonctionner comme une interface utilisateur. En préparation, mettez les élèves au défi de comprendre comment dessiner un rectangle coloré à l'écran qui fonctionne comme un bouton. Parce qu'appuyer n'importe où sur l'écran est actuellement la condition, le bouton devrait occuper tout l'écran. Les élèves doivent demander au projet de diffuser un événement pour dessiner le bouton au démarrage.
Demandez aux élèves d'apprendre d'abord comment l'écran du cerveau est organisé en un système de coordonnées. Ils devront comprendre cela afin de définir les paramètres dans les instructions qu'ils utiliseront. Les coordonnées utilisées correspondent au nombre de pixels et non au numéro de la colonne ou de la ligne. Voici la disposition de l'écran :

Les étudiants doivent planifier, tester et affiner ces modifications du projet tout en le documentant dans leurs cahiers d'ingénierie. Pour la rubrique de bloc-notes d'ingénierie individuelle, cliquez sur l'un des liens suivants (Google Doc / .docx / .pdf), ou cliquez sur l'un des liens suivants pour les blocs-notes d'équipe (Google Doc / .docx / .pdf).
Voici un exemple de solution :
// Begin project code
event draw = event() ;
void drawButton() {
Brain.Screen.setFillColor(red) ;
Brain.Screen.drawRectangle(0, 0, 480, 240) ;
wait(1, seconds) ;
}
int main() {
// Initializing Robot Configuration. NE PAS ENLEVER !
vexcodeInit() ;
draw(drawButton) ;
while (true) {
draw.broadcast() ;
Drivetrain.drive(forward) ;
if (Brain.Screen.pressing()) {
waitUntil(!Brain.Screen.pressing()) ;
}
else {
Drivetrain.drive(forward) ;
}
}
} Comme vous pouvez le voir, le bouton est dessiné pour occuper tout l'écran en commençant à l'origine (0, 0) et en remplissant tous les 480 pixels horizontaux (axe des abscisses) et 240 pixels verticaux (axe des ordonnées).