Capteurs#

Introduction#

Le drone VEX AIR est équipé d’un capteur inertiel pour mesurer les mouvements de rotation et détecter les changements de direction, ainsi que d’un télémètre pour mesurer les distances. Il surveille également le niveau de sa batterie. Ces capteurs lui permettent de suivre son orientation, son cap, son accélération et la distance qui le sépare des objets.

Vous trouverez ci-dessous la liste de toutes les méthodes disponibles :

Inertiel - Suivre le mouvement de rotation du drone.

  • get_rotation – Renvoie de combien le drone a tourné depuis son démarrage.

  • get_heading – Renvoie le cap actuel (0 à 359,99°).

  • get_yaw – Renvoie l’angle de lacet (–180 à 180°).

  • get_roll – Renvoie l’angle de roulis (–180 à 180°).

  • get_pitch – Renvoie l’angle de tangage (–180 à 180°).

  • reset_rotation – Réinitialise la valeur de rotation à 0.

  • reset_heading – Définit le cap actuel à 0.

  • set_heading – Définit l’en-tête sur une valeur spécifique.

  • get_acceleration – Renvoie l’accélération dans une direction spécifique.

  • get_turn_rate – Renvoie le taux de rotation en degrés par seconde.

Portée — Détecte les distances grâce aux capteurs de portée du drone.

  • get_distance — Renvoie la distance entre le capteur de portée sélectionné et l’objet détecté le plus proche.

Batterie - Affiche le pourcentage de batterie du drone.

Inertiel#

get_rotation#

get_rotation get_rotation renvoie le nombre de degrés de rotation du drone depuis son démarrage. Elle additionne tous les virages et renvoie le total en degrés : positif pour une rotation horaire, négatif pour une rotation antihoraire.

Usage:
drone.inertial.get_rotation()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the rotation after turning
drone.take_off(climb_to=500)
drone.turn_for(LEFT, 450, 50)
print(drone.inertial.get_rotation(), end="")
drone.land()

get_heading#

get_heading renvoie l’angle de cap du drone sous forme de nombre flottant compris entre 0 et 359,99 degrés.

Usage:
drone.inertial.get_heading()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the drone's heading after turning
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn(RIGHT)
wait(5, SECONDS)
controller.screen.print("Heading: ")
controller.screen.print(drone.inertial.get_heading())
drone.land()

get_yaw#

get_yaw renvoie l’angle de lacet du drone dans la plage de –180,0 à 180,0 degrés sous forme de nombre flottant.

L’image ci-dessous utilise une flèche pour indiquer le sens de rotation positif du lacet.

Un drone VEX AIR dont le nez est orienté vers le coin inférieur droit, avec une flèche bleue pointant vers le bas depuis le centre. Autour de la flèche bleue, une flèche noire incurvée pointe dans le sens horaire et porte l'inscription « Yaw », indiquant le sens positif du lacet.

Usage:
drone.inertial.get_yaw

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the yaw angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Yaw: ")
    controller.screen.print(drone.inertial.get_yaw())
    wait(0.2, SECONDS)

get_roll#

get_roll renvoie l’angle de roulis du drone dans la plage de –180,0 à 180,0 degrés sous forme de nombre flottant.

L’image ci-dessous utilise une flèche pour indiquer le sens de rotation positif du roulis.

Un drone VEX AIR dont le nez est orienté vers le coin inférieur droit, avec une flèche verte qui s'étend directement depuis le nez du drone. Autour de la flèche verte, une flèche noire incurvée pointe dans le sens antihoraire, indiquant le sens positif du roulis.

Usage:
drone.inertial.get_roll()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the roll angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Roll: ")
    controller.screen.print(drone.inertial.get_roll())
    wait(0.2, SECONDS)

get_pitch#

get_pitch renvoie l’angle de tangage du drone dans la plage de –180,0 à 180,0 degrés sous forme de nombre flottant.

L’image ci-dessous utilise une flèche pour indiquer le sens de rotation positif du tangage.

Un drone VEX AIR orienté vers le coin inférieur droit, avec une flèche rouge partant du côté droit du drone, à côté du logo VEX. Autour de la flèche rouge, une flèche noire incurvée pointant dans le sens antihoraire indique le sens positif de l'inclinaison.

Usage:
drone.inertial.get_pitch()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the pitch angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Pitch: ")
    controller.screen.print(drone.inertial.get_pitch())
    wait(0.2, SECONDS)

reset_rotation#

reset_rotation réinitialise la valeur de rotation du drone à 0 degré.

Usage:
drone.inertial.reset_rotation()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the new rotation after resetting
drone.take_off(climb_to=500)
drone.turn(RIGHT)
while not drone.inertial.get_rotation() > 360:
    wait(5, MSEC)
drone.hover()
drone.inertial.reset_rotation()
wait(1, SECONDS)
print(drone.inertial.get_rotation(), end="")
drone.land()

reset_heading#

reset_heading réinitialise le cap du drone à 0 degré.

Usage:

drone.inertial.reset_heading()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Turn to a heading, reset the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.reset_heading()
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

set_heading#

set_heading définit le cap du drone à une valeur spécifiée en degrés.

Usage:

drone.inertial.set_heading(heading)

Paramètres

Description

heading

La valeur à utiliser pour le nouveau cap dans la plage de 0 à 359,99 degrés.

# Turn to a heading, set the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.set_heading(90)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

get_acceleration#

get_acceleration renvoie l’accélération du drone dans une direction spécifiée. La valeur renvoyée représente le taux de variation de la vitesse, mesuré en unités de g (où 1 g ≈ 9,81 m/s²), sous forme de nombre flottant compris entre -4,00 et 4,00.

L’image ci-dessous utilise des flèches pour indiquer la direction de l’accélération positive vers l’avant et vers la droite, et celle de l’accélération négative vers le bas.

Un drone VEX AIR est représenté avec une flèche verte partant du nez du drone et portant la mention « Avant », une flèche bleue partant du centre du dessous du drone et portant la mention « Bas », et une flèche rouge partant du côté droit du drone, à côté du logo VEX, et portant la mention « Droite ».

Usage:

drone.inertial.get_acceleration(type)

Paramètres

Description

type

Sens de l’accélération à signaler :

  • DOWNWARD
  • FORWARD
  • RIGHTWARD

# Display the acceleration as the drone takes off
drone.take_off(500, wait=False)
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print(drone.inertial.get_acceleration(DOWNWARD))
    wait(5, MSEC)

get_turn_rate#

get_turn_rate get_turn_rate renvoie la vitesse de rotation du drone autour de l’axe spécifié. Elle renvoie une valeur en degrés par seconde \(dps\) sous forme de nombre flottant compris entre -1000,00 et 1000,00 dps.

L’image ci-dessous utilise des flèches pour indiquer le sens de rotation positif pour le roulis, le tangage et le lacet.

Un drone VEX AIR est représenté avec des flèches directionnelles. Une flèche verte part du nez du drone et est entourée d'une flèche noire incurvée pointant dans le sens antihoraire, indiquant le roulis. Une flèche bleue part du centre de la partie inférieure du drone et est entourée d'une flèche noire incurvée pointant dans le sens horaire, indiquant le lacet. Enfin, une flèche rouge part du côté droit du drone, à côté du logo VEX, et est entourée d'une flèche noire incurvée pointant dans le sens antihoraire, indiquant le tangage.

Usage:
drone.inertial.get_turn_rate(axis)

Paramètres

Description

axis

Quelle orientation signaler :

  • YAW
  • ROLL
  • PITCH

# Display the drone turn rate as it is rotated by hand.
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(7, 1)
    controller.screen.print(drone.inertial.get_turn_rate(ROLL))

Gamme#

get_distance#

get_distance renvoie la distance entre le capteur de portée sélectionné et l’objet détecté le plus proche.

Usage:
drone.range.get_distance(range, units)

Paramètres

Description

range

Capteur de distance à utiliser : FORWARD_RANGE ou DOWNWARD_RANGE. FORWARD_RANGE indique la distance depuis l’avant du drone. DOWNWARD_RANGE indique la distance depuis le dessous du drone.

units

Optionnel. Unité de distance :

  • MM (par défaut) — millimètres
  • CM — centimètres
  • INCHES

# Fly forward until close to an object
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
while not drone.range.get_distance(FORWARD_RANGE, MM) < 750:
    wait(0.1, SECONDS)
drone.land()

Batterie#

get_battery_level#

La get_battery_level` renvoie le niveau de charge de la batterie du drone en pourcentage. Elle renvoie un nombre compris entre 0 et 100.

Usage:
drone.get_battery_level()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the drone's battery level
if drone.get_battery_level() < 25:
    controller.screen.print("Charge the drone Battery!")
else:
    controller.screen.print("Ready to fly!")