Regler#
Einführung#
Die VEX AIR Drohnensteuerung verfügt über zwölf Tasten und zwei Joysticks. Diese Eingabemöglichkeiten ermöglichen es der Drohne, Tastendrücke und Joystick-Bewegungen zu erkennen und so eine interaktive und reaktionsschnelle Steuerung zu gewährleisten.
Nachfolgend finden Sie eine Liste aller verfügbaren Methoden:
Getter – Status von Tasten, Joystick und Verbindung auslesen.
pressing– Gibt zurück, ob gerade eine bestimmte Taste gedrückt wird.position– Gibt die Position des Joysticks entlang einer angegebenen Achse zurück.is_drone_connected– Gibt zurück, ob der Controller mit der Drohne verbunden ist.get_battery_level– Gibt den Batteriestand des Controllers zurück.
Rückruffunktionen – Reagieren auf Änderungen der Tasten- oder Joystick-Eingabe.
Getter#
pressing#
Das Drücken pressing gibt einen booleschen Wert zurück, der angibt, ob eine bestimmte Taste auf dem Controller gerade gedrückt wird. Diese Methode muss für ein bestimmtes Tastenobjekt aufgerufen werden, z. B. button5 (siehe vollständige Liste der Tastenobjekte unten).
True- Die angegebene Taste wird gedrückt.False- Die angegebene Taste wird nicht gedrückt.
Anwendung:
Für diese Methode kann eine der acht verfügbaren Tasten, nummeriert von 5 bis 12, verwendet werden, wie unten dargestellt:
Taste |
Befehl |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Fly using the controller sticks
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
# Capture an image from the forward camera when button 5 is pressed.
if controller.button5.pressing():
drone.camera.capture_image(FORWARD_CAMERA)
wait(5, MSEC)
position#
position gibt die Position der angegebenen Joystick-Achse als Prozentsatz von –100% bis 100% zurück.
Verwendung:
Bei dieser Methode kann eine von vier verfügbaren Achsen verwendet werden, die mit 1 bis 4 nummeriert sind.
Achse |
Befehl |
|---|---|
|
|
|
|
|
|
|
|

Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
if controller.axis1.position() > 0:
drone.climb(direction=UP, velocity=50)
else:
drone.hover()
wait(5, MSEC)
is_drone_connected#
is_drone_connected gibt einen booleschen Wert zurück, der angibt, ob die Drohne verbunden ist.
True- Die Drohne ist verbunden.False- Die Drohne ist nicht verbunden.
Verwendung:
controller.is_drone_connected()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Print controller connection status on screen.
while True:
if controller.is_drone_connected():
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Controller connected")
wait(0.5, SECONDS)
get_battery_level#
get_battery_level gibt den Batteriestand des Controllers als Prozentsatz von 0% bis 100% zurück.
Verwendung:
controller.get_battery_level()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
Rückrufe#
pressed#
Wenn die Taste pressed sobald die angegebene Taste gedrückt wird. Nach der Konfiguration wird die Funktion bei jedem Tastendruck automatisch ausgeführt.
Verwendung:
Für diese Methode kann eine der acht verfügbaren Tasten verwendet werden, die mit 5 bis 12 nummeriert sind.
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. |
# Take a picture when button 5 is pressed.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
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 diese Taste losgelassen wird.
Verwendung:
Für diese Methode kann eine der acht verfügbaren Tasten verwendet werden, die mit 5 bis 12 nummeriert sind.
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 Verwendung von Funktionen mit Parametern. |
# Take a picture when button 5 is released.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
changed#
Die Einstellung changed Diese Funktion wird ausgeführt, sobald sich die Position des Joysticks entlang der angegebenen Achse ändert. Nach der Aktivierung wird die Funktion automatisch bei jeder Positionsänderung des Joysticks auf dieser Achse ausgeführt.
Verwendung:
Bei dieser Methode kann eine von vier verfügbaren Achsen verwendet werden, die mit 1 bis 4 nummeriert sind.
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 Verwendung von Funktionen mit Parametern. |
# Move forward when the left joystick moves.
def on_axis1_changed():
drone.move_for(direction=0, distance=200, velocity=50, units=MM)
drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)