Contrôleur#
Introduction#
La radiocommande du drone VEX AIR est dotée de 12 boutons et de deux joysticks. Ces commandes permettent au drone de détecter les appuis sur les boutons et les mouvements des joysticks, offrant ainsi un contrôle interactif et réactif.
Vous trouverez ci-dessous la liste de toutes les méthodes disponibles :
Acquisition des données – Lecture des boutons, du joystick et de l’état de la connexion.
pressing– Renvoie si un bouton spécifique est actuellement enfoncé.position– Renvoie la position du joystick le long d’un axe spécifié.is_drone_connected– Renvoie si la télécommande est connectée au drone.get_battery_level– Renvoie le niveau de batterie de la manette.
Rappels – Répondre aux changements d’entrée des boutons ou du joystick.
Getters#
pressing#
La méthode pressing renvoie une valeur booléenne indiquant si un bouton spécifique de la manette est actuellement enfoncé. Cette méthode doit être appelée sur un objet bouton spécifique, tel que button5 (voir la liste complète des objets boutons ci-dessous).
True- Le bouton spécifié est enfoncé.False- Le bouton spécifié n’est pas enfoncé.
Utilisation :
L’un des huit boutons disponibles, numérotés de 5 à 12, peut être utilisé avec cette méthode, comme indiqué ci-dessous :
Bouton |
Commande |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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#
La position position renvoie la position de l’axe spécifié du joystick, sous forme de pourcentage de –100 % à 100 %.
Usage:
L’un des quatre axes disponibles peut être utilisé avec cette méthode, numérotés de 1 à 4.
Axe |
Commande |
|---|---|
|
|
|
|
|
|
|
|

Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie une valeur booléenne indiquant si le drone est connecté.
True- Le drone est connecté.False- Le drone n’est pas connecté.
Usage:
controller.is_drone_connected()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie le niveau de batterie du contrôleur, en pourcentage de 0 % à 100 %.
Usage:
controller.get_battery_level()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
Rappels#
pressed#
Lorsque la touche pressed est pressée, une fonction est exécutée. Une fois utilisée, cette fonction s’exécutera automatiquement à chaque pression sur cette touche.
Utilisation :
L’un des huit boutons disponibles peut être utilisé avec cette méthode, numérotés de 5 à 12.
Bouton |
Commande |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Paramètres |
Description |
|---|---|
|
Une fonction précédemment définie à exécuter chaque fois que le bouton spécifié est pressé. |
|
Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des événements avec des paramètres pour plus d’informations. |
# 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#
Lorsque le bouton spécifié est relâché released , une fonction est exécutée. Une fois utilisée, cette fonction s’exécutera automatiquement à chaque relâchement de ce bouton.
Utilisation :
L’un des huit boutons disponibles peut être utilisé avec cette méthode, numérotés de 5 à 12.
Bouton |
Commande |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Paramètres |
Description |
|---|---|
|
Une fonction précédemment définie à exécuter chaque fois que le bouton spécifié est relâché. |
|
Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations. |
# 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#
La valeur changed exécute une fonction lorsque la position du joystick change le long de l’axe spécifié. Une fois utilisée, cette fonction s’exécutera automatiquement à chaque changement de position du joystick le long de cet axe.
Usage:
L’un des quatre axes disponibles peut être utilisé avec cette méthode, numérotés de 1 à 4.
Axe |
Commande |
|---|---|
|
|
|
|
|
|
|
|

Paramètres |
Description |
|---|---|
|
Une fonction précédemment définie à exécuter chaque fois que la position du joystick change le long de l’axe spécifié. |
|
Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations. |
# 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)