érzékelők#

Bevezetés#

A VEX AIR drón tartalmaz egy inerciális érzékelőt a forgási mozgás mérésére és a mozgásváltozások észlelésére, valamint egy távolságérzékelőt a távolságok érzékelésére. A VEX AIR drón az akkumulátor töltöttségi szintjét is nyomon tudja követni. Ezek az érzékelők lehetővé teszik a drón számára, hogy nyomon kövesse a tájolását, irányát, gyorsulását és a tárgyaktól való távolságát.

Az alábbiakban felsoroljuk az összes elérhető módszert:

Inerciális – A drón forgási mozgásának követése.

  • get_rotation – Visszaadja, hogy mennyit fordult a drón az indítása óta.

  • get_heading – Visszaadja az aktuális irányt (0 és 359,99° között).

  • get_yaw – Visszaadja az elfordulási szöget (–180 és 180° között).

  • get_roll – Visszaadja a tekercselési szöget (–180 és 180° között).

  • get_pitch – Visszaadja a dőlésszöget (–180 és 180° között).

  • reset_rotation – Visszaállítja a forgatási értéket 0-ra.

  • reset_heading – Az aktuális címsort 0-ra állítja.

  • set_heading – Beállítja a címsort egy adott értékre.

  • get_acceleration – Visszaadja a gyorsulást egy adott irányban.

  • get_turn_rate – Visszaadja a fordulási sebességet fokban másodpercenként.

Hatótávolság – Távolságok érzékelése a drón hatótávolság-érzékelőivel.

  • get_distance — Visszaadja a kiválasztott távolságérzékelő és a legközelebbi érzékelt objektum közötti távolságot.

Akkumulátor – Megjeleníti a drón akkumulátorának töltöttségi szintjét százalékban.

  • get_battery_level – Visszaadja a drón akkumulátorának töltöttségi szintjét százalékban.

Inerciális#

get_rotation#

get_rotation Visszaadja, hogy a drón hány fokot fordult az indítása óta. Összeadja az összes fordulatot, és fokban adja vissza az összeget: pozitív az óramutató járásával megegyező, negatív az óramutató járásával ellentétes irányú érték esetén.

Usage:
drone.inertial.get_rotation()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a drón irányszögét lebegésként 0 és 359,99 fok között.

Usage:
drone.inertial.get_heading()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a drón elfordulási szögét –180,0 és 180,0 fok között lebegésként.

Az alábbi kép egy nyíllal mutatja a pozitív elfordulás irányát elfordulás esetén.

Egy VEX AIR drón, amelynek orra a jobb alsó sarok felé néz, és egy kék nyíl nyúlik ki lefelé a középpontból. A kék nyíl körül egy fekete, görbe nyíl mutat az óramutató járásával megegyezően, és Yaw felirattal van ellátva, ami a Yaw pozitív irányát jelzi.

Usage:
drone.inertial.get_yaw

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a drón gördülési szögét –180,0 és 180,0 fok közötti tartományban, lebegésként.

Az alábbi kép egy nyíllal mutatja a pozitív forgás irányát a gördülésnél.

Egy VEX AIR drón, amelynek orra a jobb alsó sarok felé néz, és egy zöld nyíl nyúlik ki közvetlenül a drón orrából. A zöld nyíl körül egy fekete, görbe nyíl mutat az óramutató járásával ellentétes irányba, jelezve a pozitív tekercselési irányt.

Usage:
drone.inertial.get_roll()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a drón dőlésszögét –180,0 és 180,0 fok között lebegőpontos értékként.

Az alábbi kép egy nyíllal mutatja a pozitív forgás irányát a bólintásnál.

Egy VEX AIR drón a jobb alsó sarokban, a drón jobb oldalából kiálló piros nyíllal, a VEX logó mellett. A piros nyíl körül egy fekete, az óramutató járásával ellentétes irányba mutató, görbe nyíl jelzi a bólintás pozitív irányát.

Usage:
drone.inertial.get_pitch()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 A drón elforgatási értékét 0 fokra állítja vissza.

Usage:
drone.inertial.reset_rotation()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 A drón irányát 0 fokra állítja vissza.

Használat:

drone.inertial.reset_heading()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 A drón irányát egy megadott értékre állítja fokban.

Használat:

drone.inertial.set_heading(heading)

Paraméterek

Leírás

heading

Az új irányszöghöz használandó érték 0 és 359,99 fok között.

# 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 Visszaadja a drón gyorsulását egy megadott irányban. A visszaadott érték a sebességváltozás mértékét jelenti, g egységben mérve (ahol 1g ≈ 9,81 m/s²), -4,00 és 4,00 közötti lebegőértékként.

Az alábbi kép nyilak segítségével mutatja a pozitív gyorsulás irányát előre és jobbra, valamint a negatív gyorsulás irányát lefelé.

Egy VEX AIR drón látható, amelynek orrából zöld nyíl nyúlik ki, és Előre feliratú, a drón aljának közepéből kék nyíl nyúlik ki, és Lefelé feliratú, valamint a drón jobb oldaláról a VEX logó mellett piros nyíl nyúlik ki, és Jobbra feliratú.

Használat:

drone.inertial.get_acceleration(type)

Paraméterek

Leírás

type

A jelentendő gyorsulás iránya:

  • 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 visszaadja a drón forgási sebességét a megadott tengely körül. Ez egy értéket ad vissza fok per másodpercben \(dps\), lebegőpontos alakban, -1000,00 és 1000,00 dps között.

Az alábbi kép nyilak segítségével mutatja a pozitív forgás irányát a gördülés, a bólintás és az elfordulás esetén.

Egy VEX AIR drón látható, irányjelző nyilakkal. A drón orrából egy zöld nyíl nyúlik ki, körülötte egy fekete, görbe nyíl mutat az óramutató járásával ellentétes irányba, a felirat Roll. A drón aljának közepéből egy kék nyíl nyúlik ki, körülötte egy fekete, görbe nyíl mutat az óramutató járásával ellentétes irányba, a felirat Yaw. A drón jobb oldaláról, a VEX logó mellett egy piros nyíl nyúlik ki, körülötte egy fekete, görbe nyíl mutat az óramutató járásával ellentétes irányba, a felirat Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Paraméterek

Leírás

axis

Melyik irányt kell jelenteni:

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

Hatótávolság#

get_distance#

get_distance visszaadja a kiválasztott távolságérzékelő és a legközelebbi érzékelt objektum közötti távolságot.

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

Paraméterek

Leírás

range

A használandó távolságérzékelő: FORWARD_RANGE vagy DOWNWARD_RANGE FORWARD_RANGE a drón elejétől mért távolságot jelzi. DOWNWARD_RANGE a drón aljától mért távolságot jelzi.

units

Opcionális. A távolság mértékegysége:

  • MM (alapértelmezett) — milliméter
  • CM — centiméter
  • 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()

Akkumulátor#

get_battery_level#

get_battery_level Visszaadja a drón akkumulátorának töltöttségi szintjét százalékban. Ez egy 0 és 100 közötti számot ad vissza.

Usage:
drone.get_battery_level()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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