Controller: Tank Drive Exploration - C++
Toolbox voor leerkrachten
-
Het doel van deze activiteit
Met behulp van het voorbeeldproject Tank Control kunnen de studenten de Clawbot besturen met de Controller. Studenten moeten de parameters in de instructiesLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),enrightMotorSpeed = Controller1.Axis2.position()om de snelheid van elk van de motoren van de Clawbot te regelen en de Controller in staat te stellen de motorfuncties te regelen.
Voor meer informatie over een van de instructies kunt u de help raadplegen in de sectieC++in VEXcode V5.
Hieronder volgt een overzicht van wat de studenten in deze activiteit zullen doen:
-
Ontdek het voorbeeldproject Tank Control.
-
Begrijp het gebruik van dewhile Trueoneindige lusstructuur.
-
Voltooi de Robo-Slalom-uitdaging!
Tips voor leraren
Als dit de eerste keer is dat de student VEXcode V5 gebruikt, heeft hij of zij toegang tot veel nuttigeartikelenin de VEX Knowledge Base.
| 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 |
Voorbeeldproject Tankbesturing |
| 2 of meer |
Klaslokaalartikelen die als obstakels kunnen worden gebruikt |
Tips voor docenten
-
Automatisch aanvullen gebruiken
Autocomplete is een functie in VEXcode V5 die de rest van de opdracht die u typt voorspelt. Terwijl studenten met VEXcode V5 werken, moedig je ze aan om de functie Automatisch aanvullen te gebruiken als hulp bij desyntaxis. In het artikelAutocompleteleest u hoe u de functie Autocomplete gebruikt.

Deze activiteit geeft u de tools om uw Controller te programmeren.
Stap 1: Laten we beginnen met het programmeren van de Controller.
- Open het voorbeeldproject Tank Control.
-

Doe het volgende in je technische notitieboekje:
Voorspel wat de Clawbot voor dit project zal doen. Leg meer uit dan alleen het feit dat het project gebruikmaakt van de controller.
bewegen de joysticks de robot? Wat doet de Clawbot?int main() { //Robotconfiguratie initialiseren. NIET VERWIJDEREN! vexcodeInit(); // Begin projectcode. // Hoofdbesturingslus om motoren in te stellen op posities van besturingsassen terwijl (true) { LeftMotor.setVelocity (Controller1.Axis3.position (), percent); RightMotor.setVelocity (Controller1.Axis2.position (), percent); LeftMotor.spin (forward); RightMotor.spin (forward); wait(5, msec); } return 0; }
Toolbox voor leraren
-
antwoorden
- Bij dit project wordt gebruikgemaakt van de oneindige lusstructuur while True om voortdurend te controleren waar de linker- en rechterjoystick zich bevinden. Wanneer de linker (of rechter) joystick omhoog wordt geduwd, wordt de snelheid bepaald voor hoe ver de joystick naar voren wordt geduwd.
- Hoe verder u de joystick naar voren duwt, hoe hoger de snelheid wordt ingesteld en hoe sneller de motoren zullen draaien. Hetzelfde idee geldt voor het naar achteren duwen van de joystick. Hoe verder u de joystick naar achteren duwt, hoe sneller de motoren achteruit zullen draaien.
- Sla het Tank Controlvoorbeeldproject op, download het en voer het uit (C++).
-
Voor hulp kunt u de VEX-bibliotheeksecties opC++raadplegen of de tutorial in VEXcode V5 bekijken waarin wordt uitgelegd hoe u een project downloadt en uitvoert.

- Controleer uw uitleg van het project in uw technische notitieblok en voeg notities toe om ze indien nodig te corrigeren.
Stap 2: Controller: Tankregeling
Toolbox voor docenten
-
De while True Infinite Loop Structures
In deze stap wordt het belang van de oneindige lusstructuur while True besproken. U moet de informatie als klas doornemen. U kunt het gedrag modelleren met uw Clawbot en Controller. Als de tijd het toelaat, kunt u de studenten het programma laten uitvoeren zonder de oneindige lusstructuur while True .
Wat zijn de voordelen van het gebruik van de while True oneindige lusstructuur?
Hier is ons project zonder de while True oneindige lusstructuur:
int main() {
//Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
// Begin projectcode.
//Lus hoofdcontroller om motoren in te stellen op de asposities van
de controller LeftMotor.setVelocity(Controller1.Axis3.position (), percent)
; RightMotor.setVelocity (Controller1.Axis2.position (), percent)
;LeftMotor.spin (forward);
RightMotor.spin(forward);
}Wat denk je dat er zou gebeuren als dit programma werd uitgevoerd? Bespreek als groep. Noteer je voorspelling in het engineering notebook.
Toolbox voor docenten
-
De structuur begrijpen
Zonder de oneindige lus while True wordt de snelheidswaarde voor elke motor ingesteld zodra het project wordt uitgevoerd, en die waarde blijft constant totdat het project wordt gestopt. Met andere woorden: als u het project uitvoert zonder een van de joysticks te bewegen, blijft de snelheid van beide motoren 0, ook als u de joystick beweegt. De standaardpositie van de joystick op zijn as is namelijk 0.
Stel dat u de linker joystick zo ver mogelijk omhoog beweegt langs as 3 en hem daar vasthoudt. Als u het bovenstaande project uitvoert, zal de linkermotor op volle snelheid draaien en deze snelheid behouden, zelfs als u de joystick langs as 3 omlaag beweegt. Dit komt doordat Clawbot de initiële instructie van de Controller ontvangt zodra het project wordt uitgevoerd. Zonder een Loop kan die initiële waarde echter niet worden bijgewerkt.
De oneindige lus while True vertelt Clawbot om de snelheid voortdurend bij te werken en door te draaien gedurende de duur van het project. Met andere woorden, de oneindige lus while True in dit project maakt het mogelijk om de snelheid van elke motor te veranderen door een van de joysticks langs as 2 of 3 te bewegen. De Clawbot zal hierop reageren totdat u het project stopt of de Clawbot uitschakelt.
Stap 3: Navigeer door een slalomcursus!
Toolbox voor leerkrachten
-
De activiteit instellen
Verdeel de studenten in kleine groepjes van 2 of 4 studenten. Één student moet worden aangewezen als de bestuurder. Dit is de persoon die de controller gebruikt om de Clawbot te besturen.
Laat de leerlingen deze slalom voltooien door de Controller te gebruiken om de Clawbot langs de buitenkant van elke 'vlag' te bewegen. De route van de Clawbot moet ervoor zorgen dat hij geen enkele vlag raakt en dat hij de finishlijn passeert. Vlaggen kunnen alle materialen/voorwerpen zijn die u in de klas bij de hand hebt (gum, rol plakband, doos tissues) en kunnen op een plek worden neergelegd voordat u de Clawbot bedient.
Als de tijd het toelaat, laat de leerlingen dan van rol wisselen, zodat anderen de kans krijgen om de Clawbot te besturen. Je kunt er zelfs een wedstrijd van maken binnen of tussen groepen door te kijken hoe snel elke bestuurder de slalom kan afleggen.

Slaloms zijn banen waar de deelnemer rond de ingestelde vlaggen of markeringen moet navigeren. Skislaloms zijn een populaire wintersport en zijn opgenomen in de Olympische Winterspelen.
Nu deController is gekoppeld aanen hetC++project is gedownload, bent u klaar om uw Clawbot te verplaatsen met de Controller!
- Verzamel de vier klaslokaalitems die je als vlaggen in je slalom gaat gebruiken bij de leraar.
- Werk samen om de vlaggen op hun plaats te zetten voor de chauffeur om met de Clawbot te navigeren, volgens het slalomdiagram.
- Download het voorbeeldproject Tankbesturing. Als er vragen zijn over het downloaden van een project, bekijk dan de tutorial Download and Run a Project.
Stap 4: Robo-Slalom

Gebruik de Controller om uw Clawbot langs de buitenkant van elke "vlag" te verplaatsen. Het pad van de robot moet voorkomen dat hij een vlag raakt en hem de finishlijn laten passeren.
- Voer het project uit en rijd de Clawbot vooruit en achteruit, en draai links en rechts met beide Joysticks.
- Tijd hoe lang het duurt voordat de Clawbot de cursus heeft voltooid. Noteer de tijden in het engineeringsnotitieblok.
- Hoe snel kun je Clawbot door de Slalom-cursus krijgen?
Motiveren Discussie
-
Reflecteren op de activiteit
V:Reageerde de Clawbot op de Controller zoals u verwachtte?
A:De antwoorden zullen variëren. Het doel van deze vraag is echter om het cognitieve denken te bevorderen. Studenten begonnen met het voorspellen van gedrag voordat ze dat gingen testen. Vervolgens documenteerden ze de resultaten en reflecteerden ze erop.
V:Wat is de grootste uitdaging bij het vooruit of achteruit bewegen van de Clawbot in een rechte lijn?
A:Hoewel de antwoorden kunnen verschillen, zou een veelvoorkomend antwoord moeten zijn dat beide joysticks synchroon met elkaar moeten bewegen om ervoor te zorgen dat de motoren van de Clawbot in dezelfde richting en met dezelfde snelheid bewegen
V:Hoe zorgt de oneindige luswhile Trueervoor dat je de Controller continu kunt gebruiken om de Clawbot te verplaatsen?
A:Zonder de oneindige luswhile Truezou de Clawbot het gedrag zoals bepaald door de instructies in het project slechts eenmaal uitvoeren. De oneindige luswhile Truevertelt Clawbot om de snelheid voortdurend bij te werken en door te draaien gedurende de duur van het project. Met andere woorden: dankzij de oneindige luswhile Truekunt u de Controller gebruiken om de Clawbot onbeperkt te bewegen, of totdat de batterij leeg is.