Regler#

Einführung#

Der VEX AIM One Stick Controller verfügt über vier Tasten und einen Joystick. Der Joystick lässt sich entlang zweier Achsen bewegen und kann auch wie eine Taste gedrückt werden.

Mit Controller-Methoden lassen sich Tastendrücke überprüfen, Joystick-Bewegungen auslesen, Verbindungs- und Batteriestatus prüfen oder Funktionen ausführen, wenn Controller-Ereignisse auftreten.

Nachfolgend finden Sie eine Liste aller Methoden:

Getter – Lesen Sie den Status von Tasten, Joysticks, Verbindungen und Akku aus.

  • .pressing — Gibt zurück, ob eine bestimmte Taste gedrückt wird.

  • .position — Gibt die Joystick-Position entlang einer angegebenen Achse zurück.

  • is_connected — Gibt zurück, ob der Controller verbunden ist.

  • get_battery_level — Gibt den Batteriestand des Controllers 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.

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.button_up.

  • True — Die angegebene Taste wird gedrückt.

  • False — Die angegebene Taste wird nicht gedrückt.

Verwendung:
Mit dieser Methode kann eines von fünf verfügbaren Schaltflächenobjekten verwendet werden:

Taste

Befehl

button_up

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

button_down

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

button_left

controller.button_left.pressing() — Die linke Taste

button_right

controller.button_right.pressing() — Die rechte Taste

button_stick

controller.button_stick.pressing() — Die Joystick-Taste

Der VEX AIM One Stick Controller verfügt über einen Joystick links und vier Tasten rechts. Joystick und Tasten sind hervorgehoben.

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    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 von zwei verfügbaren Achsenobjekten verwendet werden:

Achse

Befehl

axis1

controller.axis1.position() — Die vertikale Achse

axis2

controller.axis2.position() — Die horizontale Achse

VEX AIM Controller mit einem Joystick links und vier Tasten rechts. Die 1. und 2. Achse des Joysticks sind hervorgehoben.

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected gibt an, ob der Controller verbunden ist.

  • True — Der Controller ist angeschlossen.

  • False — Der Controller ist nicht verbunden.

Usage:
controller.is_connected()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level gibt den Batteriestand des Controllers als Zahl von 0 bis 100 zurück.

Usage:
controller.get_battery_level()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

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:
Mit dieser Methode kann eines von fünf verfügbaren Schaltflächenobjekten verwendet werden:

Taste

Befehl

button_up

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

button_down

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

button_left

controller.button_left.pressed(callback, arg) — Die linke Taste

button_right

controller.button_right.pressed(callback, arg) — Die rechte Taste

button_stick

controller.button_stick.pressed(callback, arg) — Die Joystick-Taste

Der VEX AIM One Stick Controller verfügt über einen Joystick links und vier Tasten rechts. Joystick und Tasten sind hervorgehoben.

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.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.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:
Mit dieser Methode kann eines von fünf verfügbaren Schaltflächenobjekten verwendet werden:

Taste

Befehl

button_up

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

button_down

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

button_left

controller.button_left.released(callback, arg) — Die linke Taste

button_right

controller.button_right.released(callback, arg) — Die rechte Taste

button_stick

controller.button_stick.released(callback, arg) — Die Joystick-Taste

Der VEX AIM One Stick Controller verfügt über einen Joystick links und vier Tasten rechts. Joystick und Tasten sind hervorgehoben.

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.

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release 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 von zwei verfügbaren Achsenobjekten verwendet werden:

Achse

Befehl

axis1

controller.axis1.changed(callback, arg) — Die vertikale Achse

axis2

controller.axis2.changed(callback, arg) — Die horizontale Achse

VEX AIM Controller mit einem Joystick links und vier Tasten rechts. Die 1. und 2. Achse des Joysticks sind hervorgehoben.

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.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)