Controller#
Invoering#
De VEX AIR dronecontroller heeft een lay-out met 12 knoppen en twee joysticks. Deze inputs stellen de drone in staat om knopdrukken en joystickbewegingen te detecteren, waardoor interactieve en responsieve besturing mogelijk is.
Hieronder vindt u een lijst met alle beschikbare methoden:
Getters – Leest de status van knoppen, joysticks en verbindingen.
pressing– Geeft aan of er momenteel op een specifieke knop wordt gedrukt.position– Geeft de positie van de joystick langs een opgegeven as terug.is_drone_connected– Geeft aan of de controller met de drone is verbonden.get_battery_level– Geeft het batterijniveau van de controller weer.
Callbacks – Reageren op wijzigingen in knop- of joystickinvoer.
Getters#
pressing#
pressing retourneert een Booleaanse waarde die aangeeft of een specifieke knop op de controller momenteel is ingedrukt. Deze methode moet worden aangeroepen op een specifiek knopobject, zoals button5 (zie de volledige lijst met knopobjecten hieronder).
True- De aangegeven knop wordt ingedrukt.False- De opgegeven knop wordt niet ingedrukt.
Gebruik:
Een van de acht beschikbare knoppen, genummerd van 5 tot en met 12, kan met deze methode worden gebruikt, zoals hieronder weergegeven:
Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 geeft de positie van de opgegeven as van de joystick weer als een percentage van –100% tot 100%.
Gebruik:
Bij deze methode kan één van de vier beschikbare assen worden gebruikt, genummerd van 1 tot en met 4.
As |
Commando |
|---|---|
|
|
|
|
|
|
|
|

Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Booleaanse waarde die aangeeft of de drone verbonden is.
True- De drone is verbonden.False- De drone is niet verbonden.
Gebruik:
controller.is_drone_connected()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 geeft het batterijniveau van de controller weer als een percentage van 0% tot 100%.
Gebruik:
controller.get_battery_level()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
Terugbelverzoeken#
pressed#
pressed voert een functie uit wanneer de opgegeven knop wordt ingedrukt. Zodra deze is gebruikt, wordt de functie automatisch uitgevoerd elke keer dat die knop wordt ingedrukt.
Gebruik:
Een van de acht beschikbare knoppen, genummerd van 5 tot en met 12, kan met deze methode worden gebruikt.
Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parameters |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt ingedrukt. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie. |
# 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 voert een functie uit wanneer de opgegeven knop wordt losgelaten. Zodra deze functie is ingesteld, wordt deze automatisch uitgevoerd telkens wanneer de knop wordt losgelaten.
Gebruik:
Een van de acht beschikbare knoppen, genummerd van 5 tot en met 12, kan met deze methode worden gebruikt.
Knop |
Commando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parameters |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt losgelaten. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Functies gebruiken met parameters voor meer informatie. |
# 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#
changed voert een functie uit wanneer de positie van de joystick verandert langs de opgegeven as. Eenmaal gebruikt, wordt de functie automatisch uitgevoerd telkens wanneer de positie van de joystick langs die as verandert.
Gebruik:
Bij deze methode kan één van de vier beschikbare assen worden gebruikt, genummerd van 1 tot en met 4.
As |
Commando |
|---|---|
|
|
|
|
|
|
|
|

Parameters |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de positie van de joystick verandert langs de opgegeven as. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Functies gebruiken met parameters voor meer informatie. |
# 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)