Controller: Tank Drive Exploration - Python
Toolbox voor docenten
-
Het doel van deze sectie
Met behulp van het voorbeeldproject Tank Control kunnen de studenten de Clawbot besturen met de Controller. Studenten moeten de parameters in de instructies left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position() en right_motor_speed = controller_1.axis2.position() aanpassen 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 helpsectie Pythonin VEXcode V5 bezoeken.
Hieronder volgt een overzicht van wat de studenten in deze activiteit zullen doen:
- Ontdek het voorbeeldproject Tank Control.
- Begrijp het gebruik van de while True oneindige 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-bibliotheek.
| 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 |
Klaslokaalobjecten 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 hulpmiddel bij de Python-syntaxis. Zodra u begint met typen, ziet u mogelijk een functie voor automatisch aanvullen. Gebruik de toetsen ‘Omhoog’ en ‘Omlaag’ om de gewenste naam te selecteren en druk vervolgens op ‘Tab’ of (Enter/Return) op uw toetsenbord om uw selectie te maken. Voor meer informatie over deze functie, zie het Python-artikel.

Met deze activiteit krijgt u de tools in handen om uw controller te programmeren.
- VEXcode V5 Python-instructies die in deze verkenning zullen worden gebruikt:
- left_motor.set_velocity()
- right_motor.set_velocity()
- left_motor.spin()
- right_motor.spin()
- controller_1.axis2.position()
- controller_1.axis3.position()
- terwijl True:
- wacht(5, SECONDEN)
Voor meer informatie over een van de instructies kunt u de Python helpsecties in VEXcode V5 bezoeken.

Stap 1: Laten we beginnen met het programmeren van de Controller.
- Selecteer Bestand en Open Voorbeelden.
- Blader door de verschillende voorbeeldprojecten. Selecteer het voorbeeldproject Tankcontrole.
- Open het voorbeeldproject Tankbesturing. Het voorbeeldproject configureert de aandrijflijn en controller. De code ziet er als volgt uit:
# Bibliotheek importeert
van VEX-import *
# Begin projectcode
# Lus van hoofdcontroller om motoren in te stellen op asposities van controller
terwijl Waar:
left_motor.set_velocity (controller_1.axis3.position (), PERCENT)
right_motor.set_velocity (controller_1.axis2.position (), PERCENT)
left_motor.spin (FORWARD)
right_motor.spin (FORWARD)
wait(5, MSEC)Doe het volgende in je technische notitieblok:
- Voorspel wat het project de Clawbot zal laten doen. Leg meer uit dan het feit dat het project gebruik maakt van de Controller.
- Hoe bewegen de joysticks de robot? Wat doet de Clawbot?
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.
- Noem het project TankControl. Sla het Python TankControl-project op, download het en voer het uit.
- Bekijk voor meer hulp de instructievideo in VEXcode V5 waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren.
- Controleer uw uitleg van het project in uw technische notitieblok en voeg notities toe om ze indien nodig te corrigeren.
Stap 2: Controller: Tankbesturing
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 .
Als de studenten meer hulp nodig hebben bij het begrijpen van de oneindige lus while True , klik dan hier .
Wat zijn de voordelen van het gebruik van de while True oneindige lusstructuur?
Hier is ons project zonder de while True oneindige lusstructuur:
# Bibliotheek importeert
van VEX-import *
# Begin projectcode
# Hoofdcontrollerlus om motoren in te stellen op controller-asposten left_motor.set_velocity (
controller_1.axis3.position(), PERCENT) right_motor.set_velocity
(controller_1.axis2.position (), PERCENT) left_motor.spin
(FORWARD)
right_motor.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.
# Bibliotheek importeert
van vex import *
# Begin projectcode
# Hoofdcontrollerlus om motoren in te stellen op controllerasposities
while True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
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 kan passeren. Vlaggen kunnen alle materialen/voorwerpen zijn die u in de klas bij de hand hebt (gum, rol plakband, doos tissues) en kunnen worden neergezet 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 maken deel uit van de Olympische Winterspelen.
Nu de controller is gekoppeld en het project is gedownload, bent u klaar om uw Clawbot met de controller te besturen!
- 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.
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 lus while True ervoor dat je de Controller continu kunt gebruiken om de Clawbot te verplaatsen?
A: Zonder de oneindige lus while True zou de Clawbot het gedrag zoals bepaald door de instructies in het project slechts eenmaal uitvoeren. 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: dankzij de oneindige lus while True kunt u de Controller gebruiken om de Clawbot onbeperkt te bewegen, of totdat de batterij leeg is.