Sensoren#
Einführung#
Die VEX AIR Drohne verfügt über einen Inertialsensor zur Messung von Drehbewegungen und Bewegungsänderungen sowie einen Entfernungssensor. Sie überwacht außerdem ihren Akkustand. Mithilfe dieser Sensoren kann die Drohne ihre Ausrichtung, Flugrichtung, Beschleunigung und den Abstand zu Objekten bestimmen.
Nachfolgend finden Sie eine Liste aller verfügbaren Methoden:
Inertial – Verfolgt die Rotationsbewegung der Drohne.
get_rotation– Gibt zurück, wie weit sich die Drohne seit ihrem Start gedreht hat.get_heading– Gibt den aktuellen Kurs (0 bis 359,99°) zurück.get_yaw– Gibt den Gierwinkel (–180 bis 180°) zurück.get_roll– Gibt den Rollwinkel zurück (–180 bis 180°).get_pitch– Gibt den Nickwinkel zurück (–180 bis 180°).reset_rotation– Setzt den Rotationswert auf 0 zurück.reset_heading– Setzt den aktuellen Kurs auf 0.set_heading– Setzt die Überschrift auf einen bestimmten Wert.get_acceleration– Gibt die Beschleunigung in einer bestimmten Richtung zurück.get_turn_rate– Gibt die Drehgeschwindigkeit in Grad pro Sekunde zurück.
Reichweite – Entfernungen werden mithilfe der Entfernungssensoren der Drohne erfasst.
get_distance— Gibt die Entfernung zwischen dem ausgewählten Entfernungssensor und dem nächstgelegenen erkannten Objekt zurück.
Akku – Geben Sie den Akkustand der Drohne in Prozent an.
get_battery_level– Gibt den Akkustand der Drohne in Prozent zurück.
Trägheit#
get_rotation#
get_rotation gibt zurück, um wie viele Grad sich die Drohne seit dem Start gedreht hat. Sie summiert alle Umdrehungen und gibt die Summe in Grad zurück: positiv für Drehung im Uhrzeigersinn, negativ für Drehung gegen den Uhrzeigersinn.
Usage:
drone.inertial.get_rotation()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 gibt den Kurswinkel der Drohne als Gleitkommazahl im Bereich von 0 bis 359,99 Grad zurück.
Usage:
drone.inertial.get_heading()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 gibt den Gierwinkel der Drohne im Bereich -180,0 bis 180,0 Grad als Gleitkommazahl zurück.
Die Abbildung unten zeigt mithilfe eines Pfeils die Richtung der positiven Drehung um die Gierachse an.

Usage:
drone.inertial.get_yaw
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 gibt den Rollwinkel der Drohne im Bereich -180,0 bis 180,0 Grad als Gleitkommazahl zurück.
Die Abbildung unten zeigt mithilfe eines Pfeils die Richtung der positiven Drehung bei der Rollbewegung an.

Usage:
drone.inertial.get_roll()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 gibt den Nickwinkel der Drohne im Bereich -180,0 bis 180,0 Grad als Gleitkommazahl zurück.
Die Abbildung unten zeigt mithilfe eines Pfeils die Richtung der positiven Drehung bei Nickwinkel an.

Usage:
drone.inertial.get_pitch()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 setzt den Rotationswert der Drohne auf 0 Grad zurück.
Usage:
drone.inertial.reset_rotation()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 setzt die Ausrichtung der Drohne auf 0 Grad zurück.
Verwendung:
drone.inertial.reset_heading()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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 setzt die Richtung der Drohne auf einen bestimmten Wert in Grad.
Verwendung:
drone.inertial.set_heading(heading)
Parameter |
Beschreibung |
|---|---|
|
Der Wert für die neue Richtung liegt im Bereich von 0 bis 359,99 Grad. |
# 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 get_acceleration` gibt die Beschleunigung der Drohne in einer bestimmten Richtung zurück. Der zurückgegebene Wert stellt die Änderungsrate der Geschwindigkeit in g (wobei 1 g ≈ 9,81 m/s²) als Gleitkommazahl im Bereich von -4,00 bis 4,00 dar.
Die Abbildung unten verwendet Pfeile, um die Richtung der positiven Beschleunigung nach vorn und rechts sowie die Richtung der negativen Beschleunigung nach unten anzuzeigen.

Verwendung:
drone.inertial.get_acceleration(type)
Parameter |
Beschreibung |
|---|---|
|
Die Richtung der Beschleunigung anzugeben:
|
# 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 gibt die Rotationsgeschwindigkeit der Drohne um die angegebene Achse zurück. Der Wert wird in Grad pro Sekunde \(dps\) als Gleitkommazahl zwischen -1000,00 und 1000,00 dps ausgegeben.
Die Abbildung unten verwendet Pfeile, um die Richtung der positiven Rotation für Rollen, Nicken und Gieren anzuzeigen.

Usage:
drone.inertial.get_turn_rate(axis)
Parameter |
Beschreibung |
|---|---|
|
Welche Orientierung soll gemeldet werden?
|
# 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))
Reichweite#
get_distance#
get_distance gibt die Entfernung zwischen dem ausgewählten Entfernungssensor und dem nächstgelegenen erkannten Objekt zurück.
Usage:
drone.range.get_distance(range, units)
Parameter |
Beschreibung |
|---|---|
|
Der zu verwendende Entfernungssensor: |
|
Optional. Die Entfernungseinheit:
|
# 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#
get_battery_level gibt den Ladezustand des Drohnenakkus in Prozent zurück. Das Ergebnis ist eine Zahl zwischen 0 und 100.
Usage:
drone.get_battery_level()
Parameter |
Beschreibung |
|---|---|
Diese Methode hat keine Parameter. |
# 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!")