Sensorer#

Introduktion#

VEX AIR-drönaren har en tröghetssensor för att mäta rotationsrörelser och för att detektera rörelseförändringar samt en avståndssensor för att detektera avstånd. VEX AIR-drönaren kan också hålla reda på batterinivåerna. Dessa sensorer gör det möjligt för drönaren att spåra dess orientering, kurs, acceleration och avstånd från objekt.

Nedan följer en lista över alla tillgängliga metoder:

Tröghetsmoment - Spåra drönarens rotationsrörelse.

  • get_rotation – Returnerar hur mycket drönaren har roterat sedan den startade.

  • get_heading – Returnerar den aktuella kursen (0 till 359,99°).

  • get_yaw – Returnerar girvinkeln (–180 till 180°).

  • get_roll – Returnerar rollvinkeln (–180 till 180°).

  • get_pitch – Returnerar lutningsvinkeln (–180 till 180°).

  • reset_rotation – Återställer rotationsvärdet till 0.

  • reset_heading – Ställer in aktuell rubrik till 0.

  • set_heading – Ställer in rubriken till ett specifikt värde.

  • get_acceleration – Returnerar accelerationen i en specifik riktning.

  • get_turn_rate – Returnerar vridningshastigheten i grader per sekund.

Räckvidd — Detektera avstånd från drönarens räckviddssensorer.

  • get_distance — Returnerar avståndet mellan den valda avståndssensorn och det närmaste detekterade objektet.

Batteri - Visar drönarens batteriprocent.

Tröghets#

get_rotation#

get_rotation returnerar hur många grader drönaren har roterat sedan den startade. Den summerar alla varv och returnerar summan i grader: positiv för medurs, negativ för moturs.

Usage:
drone.inertial.get_rotation()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar drönarens kursvinkel som ett flyttal i intervallet 0 till 359,99 grader.

Usage:
drone.inertial.get_heading()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar drönarens girvinkel i intervallet –180,0 till 180,0 grader som ett flyttal.

Bilden nedan använder en pil för att visa riktningen för positiv rotation vid girning.

En VEX AIR-drönare med nosen vänd mot det nedre högra hörnet, med en blå pil som sträcker sig nedåt från mitten. Runt den blå pilen pekar en svart böjd pil medurs och är märkt Gir, vilket indikerar den positiva riktningen för gir.

Usage:
drone.inertial.get_yaw

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar drönarens rollvinkel i intervallet –180,0 till 180,0 grader som ett flyttal.

Bilden nedan använder en pil för att visa riktningen för den positiva rotationen för rullen.

En VEX AIR-drönare med nosen vänd mot det nedre högra hörnet, med en grön pil som sträcker sig direkt ut ur drönarens nos. Runt den gröna pilen pekar en svart böjd pil moturs, vilket indikerar den positiva rullningsriktningen.

Usage:
drone.inertial.get_roll()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar drönarens lutningsvinkel i intervallet –180,0 till 180,0 grader som ett flyttal.

Bilden nedan använder en pil för att visa riktningen för positiv rotation för tonhöjd.

En VEX AIR-drönare vänd mot det nedre högra hörnet med en röd pil som sträcker sig ut från drönarens högra sida, bredvid VEX-logotypen. Runt den röda pilen indikerar en svart böjd pil som pekar moturs den positiva riktningen för lutning.

Usage:
drone.inertial.get_pitch()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 återställer drönarens rotationsvärde till 0 grader.

Usage:
drone.inertial.reset_rotation()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 återställer drönarens kurs till 0 grader.

Användande:

drone.inertial.reset_heading()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 ställer in drönarens kurs till ett angivet värde i grader.

Användande:

drone.inertial.set_heading(heading)

Parametrar

Beskrivning

heading

Värdet som ska användas för den nya kursen ligger i intervallet 0 till 359,99 grader.

# 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 returnerar drönarens acceleration i en specificerad riktning. Det returnerade värdet representerar hastighetsförändringstakten, mätt i enheter av g (där 1g ≈ 9,81 m/s²), som ett flyttal i intervallet -4,00 till 4,00.

Bilden nedan använder pilar för att visa riktningen för positiv acceleration framåt och höger, och negativ acceleration nedåt.

En VEX AIR-drönare visas med en grön pil som sträcker sig från drönarens nos och är märkt Framåt, en blå pil som sträcker sig från mitten av drönarens undersida och är märkt Nedåt, och en röd pil som sträcker sig från drönarens högra sida bredvid VEX-logotypen och är märkt Höger.

Användande:

drone.inertial.get_acceleration(type)

Parametrar

Beskrivning

type

Accelerationsriktningen att rapportera:

  • 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 returnerar den hastighet med vilken drönaren roterar längs den angivna axeln. Detta returnerar ett värde i grader per sekund \(dps\) som ett flyttal från –1000,00 till 1000,00 dps.

Bilden nedan använder pilar för att visa riktningen för den positiva rotationen för rullning, lutning och girning.

En VEX AIR-drönare visas med riktningspilar. En grön pil sträcker sig från drönarens nos med en svart böjd pil som pekar moturs runt den, märkt Roll. En blå pil sträcker sig från mitten av drönarens undersida med en svart böjd pil som pekar medurs runt den, märkt Yaw. Och en röd pil sträcker sig från drönarens högra sida bredvid VEX-logotypen, med en svart böjd pil som pekar moturs runt den, märkt Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Parametrar

Beskrivning

axis

Vilken orientering att rapportera:

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

Räckvidd#

get_distance#

get_distance returnerar avståndet mellan den valda avståndssensorn och det närmaste detekterade objektet.

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

Parametrar

Beskrivning

range

Avståndssensorn att använda: FORWARD_RANGE eller DOWNWARD_RANGE FORWARD_RANGE rapporterar avståndet från drönarens framsida. DOWNWARD_RANGE rapporterar avståndet från drönarens undersida.

units

Valfritt. Avståndsenheten:

  • MM (standard) — millimeter
  • CM — centimeter
  • 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()

Batteri#

get_battery_level#

get_battery_level returnerar drönarens batteriladdningsnivå som en procentandel. Detta returnerar ett tal från 0 till 100.

Usage:
drone.get_battery_level()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

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