Teacher Toolbox
-
Het doel van deze activiteit
Deze activiteit zal studenten kennis laten maken met het gebruik van while and if dan uitspraken om de robot vooruit te laten rijden, tenzij het scherm wordt ingedrukt.
-
Deze activiteit zal studenten kennis laten maken met conditionals en de instructies die de robot naar voren laten rijden, tenzij het scherm wordt ingedrukt.
-
Voor meer informatie over of dan en zo dan anders uitspraken of anderen die in deze activiteit worden gebruikt, gaat u naar de Help-informatie in VEXcode V5. Voor meer informatie over deze ingebouwde help-tool, bekijk deze artikelen over hulp in C++ .
Teacher Toolbox
Voor suggesties over onderwijsstrategieën voor deze sectie, raadpleeg de kolom Levering van de To Do or Not to Do Pacing Guide! (Google Doc / .docx / .pdf)
De Clawbot is klaar om beslissingen te nemen!
Deze verkenning geeft je de tools om te beginnen met het maken van een aantal coole projecten die de if then else-statement gebruiken.
- VEXcode V5 C++ -opdrachten die in deze verkenning zullen worden gebruikt:
- Drivetrain.drive(vooruit);
- Brain.Screen.pressing()
- Drivetrain.stop();
- if (conditie){}
- waitUntil();
- while (conditie){}
- wacht(1, seconden);
U kunt de Help-informatie in VEXcode V5 gebruiken om meer te weten te komen over de C++ -instructies.
Zorg ervoor dat je de benodigde hardware, je technische notebook en VEXcode V5 bij de hand hebt.
| Aantal | Benodigde materialen |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (met up-to-date firmware) |
| 1 |
VEXcode V5 (nieuwste versie, Windows, macOS) |
| 1 |
Technisch notitieboekje |
| 1 |
Clawbot (Aandrijving 2-motor, Geen Gyro) Sjabloon |
Tips voor docenten
Als dit de eerste keer is dat de student VEXcode V5 gebruikt, kan hij op elk moment tijdens deze verkenning naar de tutorials verwijzen. De tutorials bevinden zich in de werkbalk.

Stap 1: Laten we beginnen met een goed begrip van voorwaardelijke verklaringen
Lees voordat u begint met programmeren met conditionals het VEX Library-artikel met uitleg over If Then Else-statements. Het artikel is hier te vinden.
Lees het VEX Library-artikel waarin Booleans wordt uitgelegd voor een lijst met operators die moeten worden gebruikt in de If Then Else-verklaringen. Dit artikel is hier te vinden.
Stap 2: Laten we beginnen met programmeren met voorwaardelijke verklaringen.
-
Open het voorbeeldproject Clawbot (Drivetrain 2-motor, No Gyro).

- Bouw het onderstaande project.
// Begin met projectcode
int main() {
// Initialiseren van robotconfiguratie. NIET VERWIJDEREN!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
}
} Doe het volgende in je technische notitieblok:
- Leg uit wat het project de Clawbot laat doen. Je zult meer moeten uitleggen dan dat er een stopknop ontstaat. Leg uit welke instructies de Clawbot wat laten doen.
- Schrijf een samenvatting van één zin die vastlegt wat het project doet.
- Test om te zien of je voorspelling van wat het project de Clawbot laat doen correct is.
- Sla het project op en download het als CreatingAStopButton naar sleuf 1 op de Clawbot en voer het vervolgens uit.
- Zie voor hulp bij het downloaden van een project de zelfstudie in VEXcode V5 waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren (C++).
- Controleer uw uitleg van het project en voeg opmerkingen toe om ze indien nodig te corrigeren.
Teacher Toolbox
-
Antwoorden
Dit project laat de robot continu vooruit rijden, maar stopt als het scherm wordt ingedrukt. Het doet dit door een forever statement te gebruiken om continu te rijden en te controleren. Als het scherm wordt ingedrukt (TRUE), stopt de Clawbot met rijden.
Van studenten wordt niet verwacht dat ze begrijpen waarom de instructie waitUntil () wordt gebruikt. Leg uit dat de instructie waitUntil () nodig is vanwege de snelheid van de programmastroom van de robot. Als het er niet was, zouden de motoren van de Clawbot zich gedragen alsof de gebruiker steeds opnieuw op het scherm drukt terwijl het door het project loopt. In plaats daarvan stopt de waitUntil() instructie de programmastroom en laat het project de forever loop niet opnieuw starten totdat de gebruiker stopt met het indrukken van het scherm.
De regel pseudocode kan zo simpel zijn als: Rij vooruit totdat het scherm wordt ingedrukt.
De technische notitieblokken van studenten kunnen individueel (Google Doc / .docx / .pdf) of als team (Google Doc / .docx / .pdf) worden onderhouden en gescoord. De vorige links geven voor elke aanpak een andere rubriek. Wanneer een rubriek wordt opgenomen in de onderwijsplanning, is het een goede gewoonte om de rubriek uit te leggen of op zijn minst kopieën aan studenten te geven voordat de activiteit begint.
Stap 3: Inzicht in de wait until() -verklaring.
Merk op dat als het scherm van de hersenen wordt ingedrukt, de stroom van het project snel verloopt en het project naar de volgende instructie gaat, de instructieDrivetrain.stop ().
Het project heeft dus een waitUntil() -instructie nodig die de robot vertelt om gestopt te blijven totdat het scherm van de hersenen wordt vrijgegeven. Anders zou de forever statement ervoor zorgen dat het project opnieuw begint.
waitUntil(!Brain.Screen.pressing());De waitUntil() instructie is nodig vanwege de snelheid van de doorstroming van het project. Als het er niet was, zou het project naar de volgende instructie gaan voordat de robot ooit tijd had om te reageren.
Stap 4: Wijzig het project.
Onze volgende stap is het veranderen van de if then statement naar een if then else statement.
- Begin met het opslaan van CreatingAStopButton als het nieuwe project, StopOrDrive.
- Als je hulp nodig hebt bij het opslaan van een project, klik dan hier voor C++.
- Bouw vervolgens het StopOrDrive-project dat hieronder wordt weergegeven.
// Begin met projectcode
int main() {
// Initialiseren van robotconfiguratie. NIET VERWIJDEREN!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(forward);
}
}
} - Download StopOrDrive naar sleuf 2 op je Clawbot.
- Zie voor hulp bij het downloaden van een project de zelfstudie in VEXcode V5 waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren (C++).
- Test CreatingAStopButton (sleuf 1) en test vervolgens StopOrDrive (sleuf 2) en vergelijk ze om te zien of er een verschil is in het gedrag van de robot. Let op eventuele verschillen in je technische notebook
Teacher Toolbox
-
Antwoord
Met betrekking tot het gedrag van de robot mag er geen verschil zijn tussen de CreatingAStopButton- en StopOrDrive-projecten.
Als de studenten meer hulp nodig hebben bij het begrijpen van If-Else-verklaringen, klik dan hier.
De twee projecten laten de Clawbot zich op dezelfde manier gedragen. Het enige verschil is het gebruik van de if then else-statement in het StopOrDrive-project.
Met behulp van de if then else-instructie kunt u extra knoppen aan het scherm toevoegen bij aankomende activiteiten.
Breid je leerproces uit
Naarmate dit STEM-LAB vordert, zullen studenten projecten ontwikkelen waarmee het scherm van de Clawbot als gebruikersinterface kan functioneren. Als voorbereiding daarop daag je studenten uit om uit te zoeken hoe ze een gekleurde rechthoek op het scherm kunnen tekenen die als een knop werkt. Omdat ergens op het scherm drukken momenteel de voorwaarde is, moet de knop het hele scherm in beslag nemen. Studenten moeten het project een evenement laten uitzenden om de knop te tekenen wanneer ze beginnen.
Leid studenten om eerst te leren hoe het scherm van de hersenen is georganiseerd in een coördinatensysteem. Ze moeten dit begrijpen om parameters in te stellen binnen de instructies die ze zullen gebruiken. De gebruikte coördinaten komen overeen met het aantal pixels, niet met het nummer van de kolom of rij. Hier is de lay-out van het scherm:

Studenten moeten deze wijzigingen in het project plannen, testen en verfijnen terwijl ze het documenteren in hun technische notitieblokken. Klik voor de afzonderlijke rubriek voor technische notitieblokken op een van de volgende links (Google Doc / .docx / .pdf) of klik op een van de volgende links voor teamnotitieblokken (Google Doc / .docx / .pdf).
Hier is een voorbeeldoplossing:
// Begin projectcode
event draw = event();
void drawButton () {Brain.Screen.setFillColor
(rood); Brain.Screen.drawRectangle
(0, 0, 480, 240);
wait(1, seconds);
}
int main() {
// Initializing Robot Configuration. NIET VERWIJDEREN!
vexcodeInit();
draw(drawButton);
while (true) {
draw.broadcast();
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(forward);
}
}
} Zoals je kunt zien, is de knop getekend om het hele scherm op te nemen vanaf de (0, 0) oorsprong en alle 480 horizontale (x-as) pixels en 240 verticale (y-as) pixels te vullen.