Skip to main content

Controllers en lussen - Python

Controllers en lussen

Tijdens wedstrijden moeten teams hun robots draadloos besturen met controllers. De controller is geprogrammeerd om de robot te updaten op basis van invoer van de gebruiker. Er worden in het project lussen gebruikt zodat de robot herhaaldelijk controleert op bijgewerkte invoerinformatie. Met behulp van lussen kan het project snel controleren welke knoppen zijn ingedrukt of hoe ver de joysticks zijn ingedrukt. Nadat deze informatie is gecontroleerd, wordt deze snel doorgegeven aan de robot, zodat deze snel reageert op de instructies van de controller.

Hieronder ziet u het voorbeeldproject Tank Control van VEXcode V5. De oneindige lus while Truein dit project controleert voor altijd de posities van assen 2 en 3 om de snelheid van de motoren in te stellen.

# 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)

Lussen zijn ook belangrijk voor autonoom programmeren zonder controller. Met een lus kunt u herhaalde opdrachten binnen een project vereenvoudigen en organiseren.

Breid uw leerproces uit-pictogram Breid uw leerproces uit

U kunt deze activiteit uitbreiden door uw leerlingen te vragen de verschillen tussen arcadebesturing en tankbesturing te onderzoeken. Studenten kunnen de voorbeeldprojecten in VEXcode V5 volgen.Afbeelding van het bestandsmenu geopend in VEXcode V5 met Open voorbeelden gemarkeerd

Er zijn vier voorbeeldprojecten: Left Arcade, Right Arcade, Split Arcade en Tank Control.Afbeelding van het voorbeeldprojectmenu met de bovengenoemde projecten gemarkeerd

Bespreek hoe de lussen in de programma's werken en wat de voor- en nadelen zijn van elk type besturingselement.

Om deze activiteit met wiskunde te verbinden, kunt u de projecten hierboven over de linker-/rechterarcade (één joystick) en de gesplitste arcade/tankaandrijving (beide joysticks) gebruiken om de rollen van de X- en Y-assen binnen het project te bespreken.