Sensori#

Ievads#

VEX AIR dronam ir inerciāls sensors rotācijas kustības mērīšanai un kustības izmaiņu noteikšanai, kā arī diapazona sensors attālumu noteikšanai. VEX AIR drons var arī sekot līdzi akumulatora uzlādes līmenim. Šie sensori ļauj dronam izsekot tā orientācijai, virzienam, paātrinājumam un attālumam no objektiem.

Zemāk ir visu pieejamo metožu saraksts:

Inerciāls — izsekojiet drona rotācijas kustību.

  • get_rotation – Atgriež, cik daudz drons ir pagriezies kopš tā sākuma.

  • get_heading – Atgriež pašreizējo virzienu (no 0 līdz 359,99°).

  • get_yaw – Atgriež novirzes leņķi (no –180 līdz 180°).

  • get_roll – Atgriež rites leņķi (no –180 līdz 180°).

  • get_pitch – Atgriež slīpuma leņķi (no –180 līdz 180°).

  • reset_rotation – Atiestata rotācijas vērtību uz 0.

  • reset_heading – Iestata pašreizējo virsrakstu uz 0.

  • set_heading – Iestata virsrakstam noteiktu vērtību.

  • get_acceleration – Atgriež paātrinājumu noteiktā virzienā.

  • get_turn_rate – Atgriež pagrieziena ātrumu grādos sekundē.

Diapazons — nosaka attālumus, izmantojot drona darbības rādiusa sensorus.

  • get_distance — Atgriež attālumu starp atlasīto diapazona sensoru un tuvāko noteikto objektu.

Akumulators — atgriež drona akumulatora uzlādes procentuālo daļu.

Inerciāls#

get_rotation#

get_rotation atgriež, cik grādus drons ir pagriezies kopš tā sākuma. Tas saskaita visus pagriezienus un atgriež kopsummu grādos: pozitīvs pulksteņrādītāja virzienam, negatīvs pretēji pulksteņrādītāja virzienam.

Usage:
drone.inertial.get_rotation()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atgriež drona virziena leņķi kā pludiņa vērtību diapazonā no 0 līdz 359,99 grādiem.

Usage:
drone.inertial.get_heading()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atgriež drona pagrieziena leņķi diapazonā no –180,0 līdz 180,0 grādiem kā pludiņa pozīciju.

Zemāk redzamajā attēlā bultiņa parāda pozitīvas rotācijas virzienu novirzei.

VEX AIR drons ar degunu vērstu pret apakšējo labo stūri, ar zilu bultiņu, kas stiepjas uz leju no centra. Ap zilo bultiņu melna, izliekta bultiņa norāda pulksteņrādītāja virzienā un ir apzīmēta ar “Yaw”, norādot pozitīvo virzienu novirzei.

Usage:
drone.inertial.get_yaw

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atgriež drona rites leņķi diapazonā no –180,0 līdz 180,0 grādiem kā peldošu objektu.

Zemāk redzamajā attēlā bultiņa parāda pozitīvas rotācijas virzienu ruļļa kustībai.

VEX AIR drons ar degunu vērstu pret apakšējo labo stūri, ar zaļu bultiņu, kas stiepjas tieši no drona deguna. Ap zaļo bultiņu melna izliekta bultiņa norāda pretēji pulksteņrādītāja virzienam, norādot pozitīvo rites virzienu.

Usage:
drone.inertial.get_roll()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atgriež drona piķa leņķi diapazonā no –180,0 līdz 180,0 grādiem kā pludiņa pozīciju.

Zemāk redzamajā attēlā bultiņa parāda pozitīvas rotācijas virzienu piķim.

VEX AIR drons, kas vērsts apakšējā labajā stūrī, ar sarkanu bultiņu, kas stiepjas no drona labās puses blakus VEX logotipam. Ap sarkano bultiņu melna izliekta bultiņa, kas vērsta pretēji pulksteņrādītāja virzienam, norāda pozitīvo slīpuma virzienu.

Usage:
drone.inertial.get_pitch()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atiestata drona rotācijas vērtību uz 0 grādiem.

Usage:
drone.inertial.reset_rotation()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atiestata drona virzienu uz 0 grādiem.

Lietojums:

drone.inertial.reset_heading()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 iestata drona virzienu uz noteiktu vērtību grādos.

Lietojums:

drone.inertial.set_heading(heading)

Parametri

Apraksts

heading

Vērtība, kas jāizmanto jaunajam virsrakstam diapazonā no 0 līdz 359,99 grādiem.

# 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 atgriež drona paātrinājumu norādītajā virzienā. Atgrieztā vērtība apzīmē ātruma izmaiņu ātrumu, kas mērīts g vienībās (kur 1g ≈ 9,81 m/s²), kā peldošā skaitļa vērtību diapazonā no -4,00 līdz 4,00.

Zemāk redzamajā attēlā bultiņas parāda pozitīvā paātrinājuma virzienu uz priekšu un pa labi, kā arī negatīvā paātrinājuma virzienu uz leju.

Attēlā redzams VEX AIR drons ar zaļu bultiņu, kas stiepjas no drona deguna ar uzrakstu “Forward” (Uz priekšu), zilu bultiņu, kas stiepjas no drona apakšas centra ar uzrakstu “Downward” (Uz leju), un sarkanu bultiņu, kas stiepjas no drona labās puses blakus VEX logotipam ar uzrakstu “Rightward” (Pa labi).

Lietojums:

drone.inertial.get_acceleration(type)

Parametri

Apraksts

type

Ziņojamais paātrinājuma virziens:

  • 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 atgriež ātrumu, ar kādu drons rotē pa norādīto asi. Tas atgriež vērtību grādos sekundē \(dps\) kā peldošo skaitli no –1000,00 līdz 1000,00 dps.

Zemāk redzamajā attēlā bultiņas parāda pozitīvās rotācijas virzienu ripošanai, piķēšanai un novirzei.

Attēlā redzams VEX AIR drons ar virziena bultiņām. No drona deguna stiepjas zaļa bultiņa, ap kuru stiepjas melna izliekta bultiņa, kas vērsta pretēji pulksteņrādītāja virzienam un apzīmēta ar “Roll” (Rolling). No drona apakšas centra stiepjas zila bultiņa, ap kuru stiepjas melna izliekta bultiņa, kas vērsta pulksteņrādītāja virzienā un apzīmēta ar “Yaw” (Yaw). No drona labās puses blakus VEX logotipam stiepjas sarkana bultiņa, ap kuru stiepjas melna izliekta bultiņa, kas vērsta pretēji pulksteņrādītāja virzienam un apzīmēta ar “Pitch” (Pitch).

Usage:
drone.inertial.get_turn_rate(axis)

Parametri

Apraksts

axis

Kuru orientāciju ziņot:

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

Diapazons#

get_distance#

get_distance atgriež attālumu starp atlasīto diapazona sensoru un tuvāko noteikto objektu.

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

Parametri

Apraksts

range

Izmantojamais diapazona sensors: FORWARD_RANGE vai DOWNWARD_RANGE FORWARD_RANGE ziņo attālumu no drona priekšpuses. DOWNWARD_RANGE ziņo attālumu no drona apakšas.

units

Pēc izvēles. Attāluma mērvienība:

  • MM (pēc noklusējuma) — milimetri
  • CM — centimetri
  • 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()

Akumulators#

get_battery_level#

get_battery_level atgriež drona akumulatora uzlādes līmeni procentos. Tas atgriež skaitli no 0 līdz 100.

Usage:
drone.get_battery_level()

Parametri

Apraksts

Šai metodei nav parametru.

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