Controller#
Invoering#
De V5-controller heeft knoppen, twee joysticks, een trilmotor en een scherm. Met de controllerfuncties kunnen knoppen worden ingedrukt, joystickbewegingen worden geregistreerd, de controller trilt, geconfigureerde controlleracties worden in- of uitgeschakeld, functies worden uitgevoerd wanneer er controllergebeurtenissen plaatsvinden, of tekst op het controllerscherm wordt weergegeven.
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_1 als voorbeeldcontrollernaam gebruikt. Vervang dit door uw eigen geconfigureerde naam indien nodig.
Hieronder vindt u een lijst met alle beschikbare methoden:
Acties — De controller laten trillen of geconfigureerde controlleracties in-/uitschakelen.
rumble— Speelt een trilpatroon af op de controller.remote_control_code_enabled— Hiermee kunnen de controlleracties die in het menu Apparaten zijn geconfigureerd, worden in- of uitgeschakeld.
Scherm — Tekst en cijfers weergeven op het controllerscherm.
print— Geeft tekst, getallen of variabele waarden weer op het Controller-scherm.set_cursor— Verplaatst de cursor naar een opgegeven rij en kolom op het Controller-scherm.column— Geeft de huidige cursor-kolom op het Controller-scherm terug.row— Geeft de huidige cursorrij op het Controller-scherm terug.clear_screen— Maakt het controllerscherm leeg.clear_row— Maakt één rij op het Controller-scherm leeg.next_row— Verplaatst de cursor naar de volgende rij op het Controller-scherm.
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.
Acties#
rumble#
rumble speelt een rumble-patroon af op de controller. In de patroonreeks zijn punten korte rumbles, koppeltekens lange rumbles en spaties pauzes.
Usage:
controller_1.rumble(pattern)
Parameter |
Beschrijving |
|---|---|
|
Een reeks bestaande uit punten, koppeltekens en spaties die het rumble-patroon weergeven. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled is een variabele die de in het menu Apparaten geconfigureerde controlleracties in- of uitschakelt. De in het menu Apparaten geconfigureerde controlleracties zijn standaard ingeschakeld.
Usage:
remote_control_code_enabled = state
Waarde |
Beschrijving |
|---|---|
|
Schakelt de door de controller geconfigureerde acties in. |
|
Schakelt de door de controller geconfigureerde acties uit. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Scherm#
Het scherm van de V5-controller heeft 3 rijen en 19 kolommen voor het weergeven van tekst en cijfers.

print#
controller_1.screen.print geeft tekst, getallen of variabele waarden weer op het Controller-scherm met behulp van de huidige cursorpositie.
Usage:
controller_1.screen.print(value, sep, precision)
Parameter |
Beschrijving |
|---|---|
|
De tekst, het getal of de variabele waarde die op het controllerscherm moet worden weergegeven. Er kunnen meerdere waarden worden weergegeven door ze met komma’s te scheiden. |
|
Optioneel. Een tekenreeks die tussen de waarden wordt geplaatst. Deze moet als een sleutelwoordargument worden geschreven, bijvoorbeeld |
|
Optioneel. Het aantal decimalen dat moet worden weergegeven bij het afdrukken van eenvoudige getallen. Dit moet worden opgegeven als een sleutelwoordargument, bijvoorbeeld |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor verplaatst de cursor naar een opgegeven rij en kolom op het Controller-scherm. De volgende afgedrukte waarde verschijnt op die positie.
Usage:
controller_1.screen.set_cursor(row, col)
Parameter |
Beschrijving |
|---|---|
|
De rij van de cursor, van |
|
De kolom van de cursor, van |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column geeft de huidige kolom weer waar de tekst op het Controller-scherm wordt afgedrukt.
Usage:
controller_1.screen.column()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row geeft de huidige regel weer waar de tekst op het Controller-scherm wordt afgedrukt.
Usage:
controller_1.screen.row()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen wist het scherm van de controller en verplaatst de cursor terug naar de beginpositie.
Usage:
controller_1.screen.clear_screen()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row wist één rij op het Controller-scherm.
Usage:
controller_1.screen.clear_row(row)
Parameter |
Beschrijving |
|---|---|
|
Optioneel. De te wissen rij, van |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row verplaatst de cursor naar kolom 1 op de volgende regel van het Controller-scherm. De volgende afgedrukte waarde verschijnt op die regel.
Usage:
controller_1.screen.next_row()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
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_1.buttonA.
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 L1 is pressed
while True:
if controller_1.buttonL1.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_1.axis1.
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_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.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 A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.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. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.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 left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
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(controller_type)
Parameter |
Beschrijving |
|---|---|
|
Optioneel. Het type controller dat moet worden aangemaakt: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)