Regler#
Einführung#
Der V5-Controller verfügt über Tasten, zwei Joysticks, einen Vibrationsmotor und ein Display. Mit den Controller-Methoden lassen sich Tastendrücke überprüfen, Joystick-Bewegungen auslesen, der Controller vibrieren lassen, konfigurierte Controller-Aktionen aktivieren oder deaktivieren, Funktionen bei Controller-Ereignissen ausführen oder Text auf dem Display anzeigen.
Konfigurierte Controller-Aktionen sind im Menü „Geräte“ festgelegte Controller-Verhaltensweisen. Verwenden Sie remote_control_code_enabled , um diese konfigurierten Aktionen während eines Projekts vorübergehend zu aktivieren oder zu deaktivieren.
Diese Seite verwendet controller_1 als Beispielnamen für den Controller. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen, konfigurierten Namen.
Nachfolgend finden Sie eine Liste aller verfügbaren Methoden:
Aktionen – Den Controller vibrieren lassen oder konfigurierte Controller-Aktionen aktivieren/deaktivieren.
rumble— Spielt ein Rumble-Muster auf dem Controller ab.remote_control_code_enabled— Aktiviert oder deaktiviert Controller-Aktionen, die im Menü „Geräte“ konfiguriert sind.
Bildschirm – Anzeige von Text und Zahlen auf dem Controller-Bildschirm.
print— Zeigt Text, Zahlen oder Variablenwerte auf dem Controller-Bildschirm an.set_cursor— Verschiebt den Cursor auf eine bestimmte Zeile und Spalte auf dem Controller-Bildschirm.column— Gibt die aktuelle Cursorspalte auf dem Controller-Bildschirm zurück.row— Gibt die aktuelle Cursorzeile auf dem Controller-Bildschirm zurück.clear_screen— Löscht den Controller-Bildschirm.clear_row— Löscht eine Zeile auf dem Controller-Bildschirm.next_row— Bewegt den Cursor zur nächsten Zeile auf dem Controller-Bildschirm.
Getter – Tastenzustände und Joystick-Positionen auslesen.
.pressing— Gibt zurück, ob eine bestimmte Taste gedrückt wird..position— Gibt die Position einer angegebenen Joystick-Achse zurück.
Callbacks – Funktionen, die bei Änderungen der Controller-Eingabe ausgeführt werden.
.pressed— Führt eine Funktion aus, wenn eine bestimmte Taste gedrückt wird..released— Führt eine Funktion aus, wenn eine bestimmte Taste losgelassen wird..changed— Führt eine Funktion aus, wenn sich die Position des Joysticks entlang einer bestimmten Achse ändert.
Konstruktor – Manuelles Erstellen eines Controller-Objekts.
Controller— Erstellt ein Controller-Objekt.
Aktionen#
rumble#
rumble spielt ein Rumble-Muster auf dem Controller ab. In der Musterfolge stehen Punkte für kurze Rumble-Signale, Bindestriche für lange Rumble-Signale und Leerzeichen für Pausen.
Usage:
controller_1.rumble(pattern)
Parameter |
Beschreibung |
|---|---|
|
Eine Zeichenkette aus Punkten, Bindestrichen und Leerzeichen, die das Rumpelmuster darstellt. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
Die Variable „remote_control_code_enabled“ remote_control_code_enabled aktiviert oder deaktiviert die im Menü „Geräte“ konfigurierten Controller-Aktionen. Standardmäßig sind die konfigurierten Controller-Aktionen aktiviert.
Usage:
remote_control_code_enabled = state
Wert |
Beschreibung |
|---|---|
|
Aktiviert die vom Controller konfigurierten Aktionen. |
|
Deaktiviert die vom Controller konfigurierten Aktionen. |
# 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
Bildschirm#
Der Bildschirm des V5-Controllers verfügt über 3 Zeilen und 19 Spalten zur Anzeige von Text und Zahlen.

print#
controller_1.screen.print zeigt Text, Zahlen oder Variablenwerte auf dem Controller-Bildschirm an der aktuellen Cursorposition an.
Usage:
controller_1.screen.print(value, sep, precision)
Parameter |
Beschreibung |
|---|---|
|
Der Text, die Zahl oder der Variablenwert, der auf dem Controller-Bildschirm angezeigt werden soll. Mehrere Werte können durch Kommas getrennt ausgegeben werden. |
|
Optional. Eine Zeichenkette, die zwischen die Werte eingefügt wird. Diese muss als Schlüsselwortargument angegeben werden, z. B. |
|
Optional. Die Anzahl der Dezimalstellen, die beim Drucken einfacher Zahlen angezeigt werden sollen. Dies muss als Schlüsselwortargument angegeben werden, z. B. |
# 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 wird der Cursor auf die angegebene Zeile und Spalte im Controller-Bildschirm gesetzt. Der nächste ausgegebene Wert erscheint an dieser Position.
Usage:
controller_1.screen.set_cursor(row, col)
Parameter |
Beschreibung |
|---|---|
|
Die Zeile des Cursors, von |
|
Die Spalte des Cursors, von |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column gibt die aktuelle Spalte zurück, in der der Text auf dem Controller-Bildschirm ausgegeben wird.
Usage:
controller_1.screen.column()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row gibt die aktuelle Zeile zurück, in der der Text auf dem Controller-Bildschirm ausgegeben wird.
Usage:
controller_1.screen.row()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen löscht den Controller-Bildschirm und bewegt den Cursor zurück an die Ausgangsposition.
Usage:
controller_1.screen.clear_screen()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 löscht eine Zeile auf dem Controller-Bildschirm.
Usage:
controller_1.screen.clear_row(row)
Parameter |
Beschreibung |
|---|---|
|
Optional. Die zu löschende Zeile ( |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row wird der Cursor in die erste Spalte der nächsten Zeile des Controller-Bildschirms bewegt. Der nächste auszugebende Wert erscheint in dieser Zeile.
Usage:
controller_1.screen.next_row()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Getter#
.pressing#
.pressing returns whether a specific button on the Controller is currently being pressed. This method must be called on a specific button object, such as controller_1.buttonA.
True— Die angegebene Taste wird gedrückt.False— Die angegebene Taste wird nicht gedrückt.
Verwendung:
Eines der verfügbaren Schaltflächenobjekte kann mit dieser Methode verwendet werden:

Taste |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position gibt die Position einer Joystick-Achse als Zahl von -100 bis 100 zurück.
Diese Methode muss für ein bestimmtes Achsenobjekt aufgerufen werden, z. B. controller_1.axis1.
Verwendung:
Mit dieser Methode kann eines der verfügbaren Achsenobjekte verwendet werden:

Achse |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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)
Rückrufe#
.pressed#
.pressed führt eine Funktion aus, wenn die angegebene Taste gedrückt wird. Nach der Verwendung wird die Funktion bei jedem Tastendruck automatisch ausgeführt.
Verwendung:
Eines der verfügbaren Schaltflächenobjekte kann mit dieser Methode verwendet werden:

Taste |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschreibung |
|---|---|
|
Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn die angegebene Taste gedrückt wird. |
|
Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwenden von Ereignissen mit Parametern. |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released führt eine Funktion aus, sobald die angegebene Taste losgelassen wird. Nach der Verwendung wird die Funktion automatisch jedes Mal ausgeführt, wenn die Taste losgelassen wird.
Verwendung:
Eines der verfügbaren Schaltflächenobjekte kann mit dieser Methode verwendet werden:

Taste |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschreibung |
|---|---|
|
Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn die angegebene Taste losgelassen wird. |
|
Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwenden von Ereignissen mit Parametern. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
Die Option .changed ruft eine Funktion auf, sobald sich die Position des Joysticks entlang der angegebenen Achse ändert. Nach der ersten Verwendung wird die Funktion automatisch bei jeder Positionsänderung des Joysticks auf dieser Achse ausgeführt.
Verwendung:
Mit dieser Methode kann eines der verfügbaren Achsenobjekte verwendet werden:

Achse |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
Parameter |
Beschreibung |
|---|---|
|
Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn sich die Position des Joysticks entlang der angegebenen Achse ändert. |
|
Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwenden von Ereignissen mit Parametern. |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
Konstruktoren#
Controller#
Controller erstellt ein Controller-Objekt. Die manuelle Erstellung eines Controller-Objekts ist nur erforderlich, wenn ein Controller außerhalb von VEXcode konfiguriert wird.
Usage:
Controller(controller_type)
Parameter |
Beschreibung |
|---|---|
|
Optional. Der zu erstellende Controller-Typ: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)