Sensoren#

Invoering#

De VEX AIR-drone is uitgerust met een traagheidssensor voor het meten van rotatiebewegingen en het detecteren van bewegingsveranderingen, en een afstandssensor voor het meten van afstanden. De VEX AIR-drone kan ook het batterijniveau bijhouden. Dankzij deze sensoren kan de drone zijn oriëntatie, koers, acceleratie en afstand tot objecten bepalen.

Hieronder vindt u een lijst met alle beschikbare methoden:

Inertiemeting - Volg de rotatiebeweging van de drone.

  • get_rotation – Geeft aan hoeveel de drone is gedraaid sinds de start.

  • get_heading – Geeft de huidige koers terug (0 tot 359,99°).

  • get_yaw – Retourneert de yaw-hoek (–180 tot 180°).

  • get_roll – Retourneert de rolhoek (–180 tot 180°).

  • get_pitch – Retourneert de hellingshoek (–180 tot 180°).

  • reset_rotation – Zet de rotatiewaarde terug naar 0.

  • reset_heading – Stelt de huidige koers in op 0.

  • set_heading – Stelt de koptekst in op een specifieke waarde.

  • get_acceleration – Geeft de versnelling in een specifieke richting terug.

  • get_turn_rate – Retourneert de draaisnelheid in graden per seconde.

Bereik — Detecteert afstanden op basis van de bereiksensoren van de drone.

  • get_distance — Retourneert de afstand tussen de geselecteerde afstandssensor en het dichtstbijzijnde gedetecteerde object.

Batterij - Geeft het batterijpercentage van de drone weer.

Inertie#

get_rotation#

get_rotation geeft aan hoeveel graden de drone heeft gedraaid sinds de start. Het telt alle draaiingen bij elkaar op en geeft het totaal in graden terug: positief voor met de klok mee, negatief voor tegen de klok in.

Usage:
drone.inertial.get_rotation()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de richtingshoek van de drone als een zweefgetal in het bereik van 0 tot 359,99 graden.

Usage:
drone.inertial.get_heading()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de gierhoek van de drone in het bereik van –180,0 tot 180,0 graden als een zweefgetal.

De afbeelding hieronder gebruikt een pijl om de richting van de positieve rotatie voor de gierhoek aan te geven.

Een VEX AIR-drone met de neus naar de rechteronderhoek gericht, met een blauwe pijl die vanuit het midden naar beneden wijst. Rond de blauwe pijl wijst een zwarte gebogen pijl met de klok mee en is gelabeld met 'Yaw', wat de positieve richting voor de gierbeweging aangeeft.

Usage:
drone.inertial.get_yaw

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de rolhoek van de drone in het bereik van –180,0 tot 180,0 graden als een zweefgetal.

De afbeelding hieronder gebruikt een pijl om de richting van de positieve rotatie bij het rollen aan te geven.

Een VEX AIR-drone met de neus naar de rechteronderhoek gericht, met een groene pijl die rechtstreeks uit de neus van de drone steekt. Rond de groene pijl wijst een zwarte gebogen pijl tegen de klok in, wat de positieve rolrichting aangeeft.

Usage:
drone.inertial.get_roll()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de hellingshoek van de drone in het bereik van -180,0 tot 180,0 graden als een zweefgetal.

De afbeelding hieronder gebruikt een pijl om de richting van de positieve rotatie voor de stampbeweging aan te geven.

Een VEX AIR-drone die naar de rechteronderhoek kijkt, met een rode pijl die uit de rechterkant van de drone steekt, naast het VEX-logo. Rond de rode pijl wijst een zwarte, gebogen pijl tegen de klok in, die de positieve richting voor de helling aangeeft.

Usage:
drone.inertial.get_pitch()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 zet de rotatiewaarde van de drone terug naar 0 graden.

Usage:
drone.inertial.reset_rotation()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 zet de koers van de drone terug naar 0 graden.

Gebruik:

drone.inertial.reset_heading()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 stelt de koers van de drone in op een opgegeven waarde in graden.

Gebruik:

drone.inertial.set_heading(heading)

Parameters

Beschrijving

heading

De waarde die voor de nieuwe richting moet worden gebruikt, ligt tussen 0 en 359,99 graden.

# 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 retourneert de versnelling van de drone in een opgegeven richting. De geretourneerde waarde vertegenwoordigt de snelheidsverandering, gemeten in eenheden van g (waarbij 1g ≈ 9,81 m/s²), als een zwevendekommagetal tussen -4,00 en 4,00.

De afbeelding hieronder gebruikt pijlen om de richting van positieve versnelling aan te geven voor voorwaartse en rechtse beweging, en negatieve versnelling voor neerwaartse beweging.

Een VEX AIR-drone wordt getoond met een groene pijl die vanuit de neus van de drone naar voren wijst, een blauwe pijl die vanuit het midden van de onderkant van de drone naar beneden wijst, en een rode pijl die vanuit de rechterkant van de drone naast het VEX-logo naar rechts wijst.

Gebruik:

drone.inertial.get_acceleration(type)

Parameters

Beschrijving

type

De richting van de versnelling die moet worden gerapporteerd:

  • 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 retourneert de snelheid waarmee de drone roteert langs de opgegeven as. Dit retourneert een waarde in graden per seconde \(dps\) als een float van –1000,00 tot 1000,00 dps.

De afbeelding hieronder gebruikt pijlen om de richting van de positieve rotatie voor rol, stamp en gier aan te geven.

Een VEX AIR-drone wordt getoond met richtingspijlen. Een groene pijl loopt vanaf de neus van de drone met een zwarte gebogen pijl die tegen de klok in eromheen wijst, met het label Roll. Een blauwe pijl loopt vanaf het midden van de onderkant van de drone met een zwarte gebogen pijl die met de klok mee eromheen wijst, met het label Yaw. En een rode pijl loopt vanaf de rechterkant van de drone naast het VEX-logo met een zwarte gebogen pijl die tegen de klok in eromheen wijst, met het label Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Parameters

Beschrijving

axis

Welke oriëntatie moet worden gerapporteerd:

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

Bereik#

get_distance#

get_distance retourneert de afstand tussen de geselecteerde afstandssensor en het dichtstbijzijnde gedetecteerde object.

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

Parameters

Beschrijving

range

De te gebruiken afstandssensor: FORWARD_RANGE of DOWNWARD_RANGE FORWARD_RANGE geeft de afstand vanaf de voorkant van de drone weer. DOWNWARD_RANGE geeft de afstand vanaf de onderkant van de drone weer.

units

Optioneel. De afstandseenheid:

  • MM (standaard) — millimeters
  • CM — centimeters
  • 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()

Batterij#

get_battery_level#

get_battery_level geeft het batterijlaadniveau van de drone weer als een percentage. Dit geeft een getal tussen 0 en 100 terug.

Usage:
drone.get_battery_level()

Parameters

Beschrijving

Deze methode heeft geen parameters.

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