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.

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.

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

True

Aktiviert die vom Controller konfigurierten Aktionen.

False

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:

Die Vorder- und Oberseite des EXP-Controllers mit den gelb hervorgehobenen Joysticks, Pfeiltasten und Aktionstasten. Auf der Oberseite des Controllers befinden sich links und rechts zwei Joysticks, links die Pfeiltasten zum Steuern nach oben und unten sowie rechts die A- und B-Tasten. Links befinden sich die Tasten L1 und L2, rechts die Tasten R1 und R2.

Taste

Befehl

buttonA

controller.buttonA.pressing() — Die A-Taste

buttonB

controller.buttonB.pressing() — Die B-Taste

buttonDown

controller.buttonDown.pressing() — Die Abwärts-Taste

buttonUp

controller.buttonUp.pressing() — Die Aufwärts-Taste

buttonL1

controller.buttonL1.pressing() — Die L1-Taste

buttonL2

controller.buttonL2.pressing() — Die L2-Taste

buttonL3

controller.buttonL3.pressing() — Die L3-Taste

buttonR1

controller.buttonR1.pressing() — Die R1-Taste

buttonR2

controller.buttonR2.pressing() — Die R2-Taste

buttonR3

controller.buttonR3.pressing() — Die R3-Taste

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:

Die Vorderseite des EXP-Controllers mit den rot hervorgehobenen Joystick-Achsen. Auf der Oberfläche des Controllers ist der linke Joystick als Achse 4 für Links- und Rechtsbewegung und Achse 3 für Auf- und Abwärtsbewegung beschriftet, während der rechte Joystick als Achse 1 für Links- und Rechtsbewegung und Achse 2 für Auf- und Abwärtsbewegung beschriftet ist.

Achse

Befehl

axis1

controller.axis1.position() — Die horizontale Achse des rechten Joysticks

axis2

controller.axis2.position() — Die vertikale Achse des rechten Joysticks

axis3

controller.axis3.position() — Die vertikale Achse des linken Joysticks

axis4

controller.axis4.position() — Die horizontale Achse des linken Joysticks

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:

Die Vorder- und Oberseite des EXP-Controllers mit den gelb hervorgehobenen Joysticks, Pfeiltasten und Aktionstasten. Auf der Oberseite des Controllers befinden sich links und rechts zwei Joysticks, links die Pfeiltasten zum Steuern nach oben und unten sowie rechts die A- und B-Tasten. Links befinden sich die Tasten L1 und L2, rechts die Tasten R1 und R2.

Taste

Befehl

buttonA

controller.buttonA.pressed(callback, arg) — Die A-Taste

buttonB

controller.buttonB.pressed(callback, arg) — Die B-Taste

buttonDown

controller.buttonDown.pressed(callback, arg) — Die Abwärts-Taste

buttonUp

controller.buttonUp.pressed(callback, arg) — Die Aufwärts-Taste

buttonL1

controller.buttonL1.pressed(callback, arg) — Die L1-Taste

buttonL2

controller.buttonL2.pressed(callback, arg) — Die L2-Taste

buttonL3

controller.buttonL3.pressed(callback, arg) — Die L3-Taste

buttonR1

controller.buttonR1.pressed(callback, arg) — Die R1-Taste

buttonR2

controller.buttonR2.pressed(callback, arg) — Die R2-Taste

buttonR3

controller.buttonR3.pressed(callback, arg) — Die R3-Taste

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn die angegebene Taste gedrückt wird.

arg

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:

Die Vorder- und Oberseite des EXP-Controllers mit den gelb hervorgehobenen Joysticks, Pfeiltasten und Aktionstasten. Auf der Oberseite des Controllers befinden sich links und rechts zwei Joysticks, links die Pfeiltasten zum Steuern nach oben und unten sowie rechts die A- und B-Tasten. Links befinden sich die Tasten L1 und L2, rechts die Tasten R1 und R2.

Taste

Befehl

buttonA

controller.buttonA.released(callback, arg) — Die A-Taste

buttonB

controller.buttonB.released(callback, arg) — Die B-Taste

buttonDown

controller.buttonDown.released(callback, arg) — Die Abwärts-Taste

buttonUp

controller.buttonUp.released(callback, arg) — Die Aufwärts-Taste

buttonL1

controller.buttonL1.released(callback, arg) — Die L1-Taste

buttonL2

controller.buttonL2.released(callback, arg) — Die L2-Taste

buttonL3

controller.buttonL3.released(callback, arg) — Die L3-Taste

buttonR1

controller.buttonR1.released(callback, arg) — Die R1-Taste

buttonR2

controller.buttonR2.released(callback, arg) — Die R2-Taste

buttonR3

controller.buttonR3.released(callback, arg) — Die R3-Taste

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn die angegebene Taste losgelassen wird.

arg

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:

Die Vorderseite des EXP-Controllers mit den rot hervorgehobenen Joystick-Achsen. Auf der Oberfläche des Controllers ist der linke Joystick als Achse 4 für Links- und Rechtsbewegung und Achse 3 für Auf- und Abwärtsbewegung beschriftet, während der rechte Joystick als Achse 1 für Links- und Rechtsbewegung und Achse 2 für Auf- und Abwärtsbewegung beschriftet ist.

Achse

Befehl

axis1

controller.axis1.changed(callback, arg) — Die horizontale Achse des rechten Joysticks

axis2

controller.axis2.changed(callback, arg) — Die vertikale Achse des rechten Joysticks

axis3

controller.axis3.changed(callback, arg) — Die vertikale Achse des linken Joysticks

axis4

controller.axis4.changed(callback, arg) — Die horizontale Achse des linken Joysticks

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die jedes Mal ausgeführt wird, wenn sich die Position des Joysticks entlang der angegebenen Achse ändert.

arg

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