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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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. |
# 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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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. |
# 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 |
|---|---|
|
|
|
|
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. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)