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.

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.

Eine VEX AIR Drohne, deren Nase zur unteren rechten Ecke zeigt. Von der Mitte erstreckt sich ein blauer Pfeil nach unten. Um den blauen Pfeil herum verläuft ein schwarzer, gebogener Pfeil im Uhrzeigersinn mit der Bezeichnung „Yaw“, der die positive Gierrichtung angibt.

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.

Eine VEX AIR Drohne, deren Nase nach unten rechts zeigt. Ein grüner Pfeil ragt direkt aus der Drohnennase heraus. Um den grünen Pfeil herum verläuft ein schwarzer, gebogener Pfeil entgegen dem Uhrzeigersinn und zeigt die positive Rollrichtung 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.

Eine VEX AIR Drohne, die nach unten rechts zeigt. Neben dem VEX-Logo ragt rechts aus der Drohne ein roter Pfeil heraus. Um den roten Pfeil herum zeigt ein schwarzer, gegen den Uhrzeigersinn gebogener Pfeil die positive Nickrichtung 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

heading

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.

Eine VEX AIR Drohne wird dargestellt, mit einem grünen Pfeil, der von der Nase der Drohne ausgeht und mit „Vorwärts“ beschriftet ist, einem blauen Pfeil, der von der Mitte der Unterseite der Drohne ausgeht und mit „Abwärts“ beschriftet ist, und einem roten Pfeil, der von der rechten Seite der Drohne neben dem VEX-Logo ausgeht und mit „Rechts“ beschriftet ist.

Verwendung:

drone.inertial.get_acceleration(type)

Parameter

Beschreibung

type

Die Richtung der Beschleunigung anzugeben:

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

Eine VEX AIR Drohne ist mit Richtungspfeilen dargestellt. Ein grüner Pfeil mit einem schwarzen, gebogenen Pfeil, der sich gegen den Uhrzeigersinn um ihn dreht, zeigt von der Drohnenspitze aus. Er ist mit „Roll“ beschriftet. Ein blauer Pfeil mit einem schwarzen, gebogenen Pfeil, der sich im Uhrzeigersinn um ihn dreht, zeigt von der Mitte der Unterseite der Drohne aus. Er ist mit „Gieren“ beschriftet. Ein roter Pfeil mit einem schwarzen, gebogenen Pfeil, der sich gegen den Uhrzeigersinn um ihn dreht, zeigt von der rechten Seite der Drohne neben dem VEX-Logo aus. Er ist mit „Neigen“ beschriftet.

Usage:
drone.inertial.get_turn_rate(axis)

Parameter

Beschreibung

axis

Welche Orientierung soll gemeldet werden?

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

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

range

Der zu verwendende Entfernungssensor: FORWARD_RANGE oder DOWNWARD_RANGE FORWARD_RANGE meldet die Entfernung von der Vorderseite der Drohne. DOWNWARD_RANGE meldet die Entfernung von der Unterseite der Drohne.

units

Optional. Die Entfernungseinheit:

  • MM (Standard) — Millimeter
  • CM — Zentimeter
  • 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#

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