Controller#
Invoering#
De VEX IQ (2e generatie) controller heeft knoppen en twee joysticks. Met behulp van controllermethoden kunnen knopdrukken worden gecontroleerd, joystickbewegingen worden uitgelezen, geconfigureerde controlleracties worden in- of uitgeschakeld, of functies worden uitgevoerd wanneer er controllergebeurtenissen plaatsvinden.
De IQ (2e generatie) Brain kan worden verbonden met een IQ (2e generatie) of een IQ (1e generatie) Controller. Een IQ (1e generatie) Controller moet een blauwe Smart Radio hebben.
Geconfigureerde controlleracties zijn controllergedragingen die zijn ingesteld in het menu Apparaten. Gebruik remote_control_code_enabled om deze geconfigureerde acties tijdelijk in of uit te schakelen tijdens een project.
Op deze pagina wordt controller als voorbeeldcontrollernaam gebruikt. Vervang dit door uw eigen geconfigureerde naam indien nodig.
Hieronder vindt u een lijst met alle beschikbare methoden:
Actie — Schakel geconfigureerde controlleracties in of uit.
remote_control_code_enabled— Hiermee kunnen de controlleracties die in het menu Apparaten zijn geconfigureerd, worden in- of uitgeschakeld.
Getters — Lezen de status van knoppen en de positie van de joystick.
.pressing— Geeft aan of een bepaalde knop wordt ingedrukt..position— Geeft de positie van een opgegeven joystick-as terug.
Callbacks — Voer functies uit wanneer de invoer van de controller verandert.
.pressed— Voert een functie uit wanneer een bepaalde knop wordt ingedrukt..released— Voert een functie uit wanneer een opgegeven knop wordt losgelaten..changed— Voert een functie uit wanneer de positie van de joystick verandert langs een opgegeven as.
Constructor — Maak handmatig een Controller-object aan.
Controller— Maakt een Controller-object aan.
Actie#
remote_control_code_enabled#
remote_control_code_enabled is een variabele die de controlleracties in- of uitschakelt die zijn geconfigureerd in het menu Apparaten. De geconfigureerde controlleracties zijn standaard ingeschakeld.
Usage:
remote_control_code_enabled = state
Waarde |
Beschrijving |
|---|---|
|
Maakt door de controller geconfigureerde acties mogelijk. |
|
Schakelt de door de controller geconfigureerde acties uit. |
# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False
while True:
if controller.axisA.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axisA.position() < 0:
drivetrain.drive(REVERSE)
elif controller.buttonEUp.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Getters#
.pressing#
.pressing retourneert of een specifieke knop op de controller momenteel is ingedrukt. Deze methode moet worden aangeroepen op een specifiek knopobject, zoals controller.buttonEUp.
True— De aangegeven knop wordt ingedrukt.False— De opgegeven knop wordt niet ingedrukt.
Gebruik:
Een van de beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Turn right while E Up is held
while True:
if controller.buttonEUp.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position retourneert de positie van een joystick-as als een getal van -100 tot 100.
Deze methode moet worden aangeroepen op een specifiek asobject, zoals controller.axisA.
Gebruik:
Een van de beschikbare asobjecten kan met deze methode worden gebruikt:

As |
Commando |
|---|---|
|
|
|
|
|
|
|
|
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller.axisB.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axisB.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
Terugbelverzoeken#
.pressed#
.pressed voert een functie uit wanneer de opgegeven knop wordt ingedrukt. Zodra deze is gebruikt, wordt de functie automatisch uitgevoerd elke keer dat die knop wordt ingedrukt.
Gebruik:
Een van de beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt ingedrukt. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie. |
# Drive forward when E Up is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller.buttonEUp.pressed(drive_forward)
.released#
.released voert een functie uit wanneer de opgegeven knop wordt losgelaten. Zodra deze is gebruikt, wordt de functie automatisch uitgevoerd elke keer dat die knop wordt losgelaten.
Gebruik:
Een van de beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt losgelaten. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie. |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.changed#
.changed voert een functie uit wanneer de positie van de joystick verandert langs de opgegeven as. Eenmaal gebruikt, wordt de functie automatisch uitgevoerd telkens wanneer de positie van de joystick langs die as verandert.
Gebruik:
Een van de beschikbare asobjecten kan met deze methode worden gebruikt:

As |
Commando |
|---|---|
|
|
|
|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de positie van de joystick verandert langs de opgegeven as. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie. |
# Play a sound when the right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axisD.changed(beep)
Constructeurs#
Controller#
Controller maakt een Controller-object aan. Het handmatig aanmaken van een Controller-object is alleen nodig bij het configureren van een controller buiten VEXcode.
Usage:
Controller()
Parameters |
Beschrijving |
|---|---|
Deze constructor heeft geen parameters. |
# Create a Controller object
my_controller = Controller()