Regler#
Einführung#
Der VEX EXP Controller verfügt über Tasten und zwei Joysticks. Mithilfe von Controller-Methoden lassen sich Tastendrücke überprüfen, Joystick-Bewegungen auslesen, konfigurierte Controller-Aktionen aktivieren oder deaktivieren sowie Funktionen bei Controller-Ereignissen ausführen.
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 als Beispiel-Controllernamen. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen konfigurierten Namen.
Nachfolgend finden Sie eine Liste aller verfügbaren Methoden:
Aktion – Konfigurierte Controller-Aktionen aktivieren oder deaktivieren.
remote_control_code_enabled— Aktiviert oder deaktiviert Controller-Aktionen, die im Menü Geräte konfiguriert sind.
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.
Aktion#
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.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use controller configured actions again
elif controller.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Getter#
.pressing#
.pressing ob gerade eine bestimmte Taste auf dem Controller gedrückt wird. Diese Methode muss für ein bestimmtes Tastenobjekt aufgerufen werden, z. controller.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.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.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.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.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 R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.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. |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.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 beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
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()
Parameter |
Beschreibung |
|---|---|
Dieser Konstruktor hat keine Parameter. |
# Create a Controller object
my_controller = Controller()