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.

  • 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#

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

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Abbildung eines VEX AIR Drohnen-Controllers mit den Tasten 5 bis 12. Die Tasten 5 und 6 befinden sich auf der Rückseite der rechten Seite des Controllers, senkrecht zum Joystick. Die Tasten 7 und 8 befinden sich an derselben Stelle auf der linken Seite. Die Tasten 9 bis 12 befinden sich auf der Unterseite des Controllers, wobei sich Taste 9 oben rechts über Taste 10 und Taste 11 oben links über Taste 12 befindet.

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

axis1

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

axis2

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

axis3

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

axis4

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

Ein VEX AIR Drohnen-Controller mit den hervorgehobenen Achsenbezeichnungen 1 und 2 um den linken Joystick und den hervorgehobenen Achsenbezeichnungen 3 und 4 um den rechten Joystick.

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

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Abbildung eines VEX AIR Drohnen-Controllers mit den Tasten 5 bis 12. Die Tasten 5 und 6 befinden sich auf der Rückseite der rechten Seite des Controllers, senkrecht zum Joystick. Die Tasten 7 und 8 befinden sich an derselben Stelle auf der linken Seite. Die Tasten 9 bis 12 befinden sich auf der Unterseite des Controllers, wobei sich Taste 9 oben rechts über Taste 10 und Taste 11 oben links über Taste 12 befindet.

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.

# 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

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Abbildung eines VEX AIR Drohnen-Controllers mit den Tasten 5 bis 12. Die Tasten 5 und 6 befinden sich auf der Rückseite der rechten Seite des Controllers, senkrecht zum Joystick. Die Tasten 7 und 8 befinden sich an derselben Stelle auf der linken Seite. Die Tasten 9 bis 12 befinden sich auf der Unterseite des Controllers, wobei sich Taste 9 oben rechts über Taste 10 und Taste 11 oben links über Taste 12 befindet.

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

axis1

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

axis2

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

axis3

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

axis4

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

Ein VEX AIR Drohnen-Controller mit den hervorgehobenen Achsenbezeichnungen 1 und 2 um den linken Joystick und den hervorgehobenen Achsenbezeichnungen 3 und 4 um den rechten Joystick.

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