Jutikliai#

Įvadas#

„VEX AIR“ drone yra inercinis jutiklis sukamajam judesiui matuoti ir judesio pokyčiams aptikti, taip pat atstumo jutiklis atstumams nustatyti. „VEX AIR“ dronas taip pat gali stebėti akumuliatoriaus lygį. Šie jutikliai leidžia dronui sekti savo orientaciją, kryptį, pagreitį ir atstumą iki objektų.

Žemiau pateikiamas visų galimų metodų sąrašas:

Inercinis – seka drono sukimosi judesį.

  • get_rotation – Grąžina, kiek dronas pasisuko nuo paleidimo.

  • get_heading – Grąžina dabartinę kryptį (nuo 0 iki 359,99°).

  • get_yaw – Grąžina posūkio kampą (nuo –180 iki 180°).

  • get_roll – Grąžina posūkio kampą (nuo –180 iki 180°).

  • get_pitch – Grąžina polinkio kampą (nuo –180 iki 180°).

  • reset_rotation – Atkuria sukimosi reikšmę į 0.

  • reset_heading – Dabartinę antraštę nustato į 0.

  • set_heading – Nustato antraštei konkrečią reikšmę.

  • get_acceleration – Grąžina pagreitį tam tikra kryptimi.

  • get_turn_rate – Grąžina posūkio greitį laipsniais per sekundę.

Atstumas – nustato atstumus drono atstumo jutikliais.

  • get_distance — Grąžina atstumą tarp pasirinkto diapazono jutiklio ir artimiausio aptikto objekto.

Baterija – grąžina drono baterijos įkrovos procentą.

Inercinis#

get_rotation#

get_rotation grąžina, kiek laipsnių dronas pasisuko nuo pat paleidimo. Sudeda visus posūkius ir grąžina bendrą sumą laipsniais: teigiamas skaičius – pagal laikrodžio rodyklę, neigiamas – prieš laikrodžio rodyklę.

Usage:
drone.inertial.get_rotation()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 grąžina drono krypties kampą kaip plūdurį diapazone nuo 0 iki 359,99 laipsnių.

Usage:
drone.inertial.get_heading()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 grąžina drono posūkio kampą intervale nuo –180,0 iki 180,0 laipsnių kaip plūduriuojantį.

Žemiau esančiame paveikslėlyje rodyklė rodo teigiamo sukimosi kryptį posūkio metu.

VEX AIR dronas, kurio nosis nukreipta į apatinį dešinįjį kampą, su mėlyna rodykle, nusidriekiančia žemyn nuo centro. Aplink mėlyną rodyklę juoda lenkta rodyklė rodo pagal laikrodžio rodyklę ir yra pažymėta „Yaw“, nurodant teigiamą yach kryptį.

Usage:
drone.inertial.get_yaw

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 grąžina drono posūkio kampą intervale nuo –180,0 iki 180,0 laipsnių kaip plūduriuojantį.

Žemiau esančiame paveikslėlyje rodyklė rodo teigiamo sukimosi kryptį riedėjimo metu.

VEX AIR dronas, kurio nosis nukreipta į apatinį dešinįjį kampą, su žalia rodykle, išeinančia tiesiai iš drono nosies. Aplink žalią rodyklę juoda lenkta rodyklė rodo prieš laikrodžio rodyklę, nurodydama teigiamą riedėjimo kryptį.

Usage:
drone.inertial.get_roll()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 grąžina drono posvyrio kampą intervale nuo –180,0 iki 180,0 laipsnių kaip plūduriuojantį.

Žemiau esančiame paveikslėlyje rodyklė rodo teigiamo sukimosi kryptį žingsniui.

Apatiniame dešiniajame kampe pavaizduotas „VEX AIR“ dronas su raudona rodykle, kyšančia iš dešinės drono pusės, šalia „VEX“ logotipo. Aplink raudoną rodyklę juoda lenkta rodyklė, nukreipta prieš laikrodžio rodyklę, rodo teigiamą posūkio kryptį.

Usage:
drone.inertial.get_pitch()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 nustato drono sukimosi reikšmę į 0 laipsnių.

Usage:
drone.inertial.reset_rotation()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 nustato drono kryptį į 0 laipsnių.

Naudojimas:

drone.inertial.reset_heading()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 nustato drono kryptį pagal nurodytą reikšmę laipsniais.

Naudojimas:

drone.inertial.set_heading(heading)

Parametrai

Aprašymas

heading

Reikšmė, kurią reikia naudoti naujai antraštei diapazone nuo 0 iki 359,99 laipsnių.

# 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 grąžina drono pagreitį nurodyta kryptimi. Grąžinama reikšmė rodo greičio pokyčio greitį, matuojamą g vienetais (kur 1g ≈ 9,81 m/s²), kaip slankiojo intervalo nuo -4,00 iki 4,00 reikšmę.

Žemiau esančiame paveikslėlyje rodyklėmis rodoma teigiamo pagreičio kryptis judant į priekį ir į dešinę, o neigiamo pagreičio kryptis – žemyn.

Pavaizduotas VEX AIR dronas su žalia rodykle, kylančia iš drono nosies ir pažymėta „Forward“ (pirmyn), mėlyna rodykle, kylančia iš drono apačios centro ir pažymėta „Downward“ (žemyn), ir raudona rodykle, kylančia iš drono dešinės pusės, šalia VEX logotipo, ir pažymėta „Dešinėn“.

Naudojimas:

drone.inertial.get_acceleration(type)

Parametrai

Aprašymas

type

Praneština pagreičio kryptis:

  • 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 grąžina drono sukimosi greitį nurodytos ašies kryptimi. Grąžina reikšmę laipsniais per sekundę \(dps\) kaip slankiojo kablelio reikšmę nuo –1000,00 iki 1000,00 dps.

Žemiau esančiame paveikslėlyje rodyklėmis rodoma teigiamo sukimosi kryptis riedėjimo, polinkio ir posūkio metu.

Pavaizduotas VEX AIR dronas su krypties rodyklėmis. Iš drono nosies kyšo žalia rodyklė, o aplink ją – juoda lenkta rodyklė, nukreipta prieš laikrodžio rodyklę, pažymėta „Roll“. Iš drono apačios centro kyšo mėlyna rodyklė, o aplink ją – juoda lenkta rodyklė, nukreipta pagal laikrodžio rodyklę, pažymėta „Yaw“. O iš dešinės drono pusės, šalia VEX logotipo, kyšo raudona rodyklė, o aplink ją – juoda lenkta rodyklė, nukreipta prieš laikrodžio rodyklę, pažymėta „Pitch“.

Usage:
drone.inertial.get_turn_rate(axis)

Parametrai

Aprašymas

axis

Kurią orientaciją nurodyti:

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

Diapazonas#

get_distance#

get_distance grąžina atstumą tarp pasirinkto diapazono jutiklio ir artimiausio aptikto objekto.

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

Parametrai

Aprašymas

range

Naudojamas atstumo jutiklis: FORWARD_RANGE arba DOWNWARD_RANGE FORWARD_RANGE praneša atstumą nuo drono priekio. DOWNWARD_RANGE praneša atstumą nuo drono apačios.

units

Pasirinktinai. Atstumo vienetas:

  • MM (numatytasis) — milimetrai
  • CM — centimetrai
  • 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()

Baterija#

get_battery_level#

get_battery_level grąžina drono akumuliatoriaus įkrovos lygį procentais. Grąžina skaičių nuo 0 iki 100.

Usage:
drone.get_battery_level()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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