Anturit#

Johdanto#

VEX AIR -drone sisältää inertia-anturin pyörimisliikkeen mittaamiseen ja liikkeen muutosten havaitsemiseen sekä etäisyysanturin etäisyyksien mittaamiseen. VEX AIR -drone voi myös seurata akun varaustasoa. Näiden anturien avulla drone voi seurata suuntaansa, suuntaansa, kiihtyvyyttään ja etäisyyttään esineisiin.

Alla on luettelo kaikista käytettävissä olevista menetelmistä:

Inertiaalinen – Seuraa dronin pyörimisliikettä.

  • get_rotation – Palauttaa, kuinka paljon drone on kääntynyt käynnistyksestään lähtien.

  • get_heading – Palauttaa nykyisen suunnan (0 - 359,99°).

  • get_yaw – Palauttaa kääntökulman (–180 - 180°).

  • get_roll – Palauttaa vierintäkulman (–180 - 180°).

  • get_pitch – Palauttaa kaltevuuskulman (–180 - 180°).

  • reset_rotation – Palauttaa kiertoarvon arvoon 0.

  • reset_heading – Asettaa nykyisen otsikon arvoon 0.

  • set_heading – Asettaa otsikolle tietyn arvon.

  • get_acceleration – Palauttaa kiihtyvyyden tiettyyn suuntaan.

  • get_turn_rate – Palauttaa kääntymisnopeuden asteina sekunnissa.

Etäisyys — Mittaa etäisyyksiä dronin etäisyysantureilla.

  • get_distance — Palauttaa valitun etäisyysanturin ja lähimmän havaitun kohteen välisen etäisyyden.

Akku – Palauttaa dronin akun varaustason prosentteina.

Inertiaalinen#

get_rotation#

get_rotation palauttaa kuinka monta astetta drone on kääntynyt käynnistyksestään lähtien. Se laskee yhteen kaikki käännökset ja palauttaa kokonaismäärän asteina: positiivinen myötäpäivään, negatiivinen vastapäivään.

Usage:
drone.inertial.get_rotation()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa dronin suuntakulman kelluvana arvona välillä 0 - 359,99 astetta.

Usage:
drone.inertial.get_heading()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa dronin kääntökulman välillä –180,0 - 180,0 astetta kelluvana arvona.

Alla olevassa kuvassa nuoli osoittaa positiivisen kiertymisen suunnan kääntökulmalle.

VEX AIR -drooni, jonka nokka on oikeassa alakulmassa ja jonka keskeltä alaspäin suuntautuva sininen nuoli. Sinisen nuolen ympärillä musta kaareva nuoli osoittaa myötäpäivään ja on merkitty tekstillä Yaw, mikä osoittaa positiivisen suunnan yaw:lle.

Usage:
drone.inertial.get_yaw

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa dronin kallistuskulman välillä –180,0 - 180,0 astetta kelluvana arvona.

Alla olevassa kuvassa nuoli osoittaa vierityksen positiivisen pyörimisen suunnan.

VEX AIR -drone, jonka nokka osoittaa oikeaan alakulmaan ja josta näyttää suoraan ulos tuleva vihreä nuoli. Vihreän nuolen ympärillä oleva musta kaareva nuoli osoittaa vastapäivään osoittaen positiivista rullautumissuuntaa.

Usage:
drone.inertial.get_roll()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa dronin kallistuskulman välillä –180,0 - 180,0 astetta kelluvana arvona.

Alla olevassa kuvassa nuoli osoittaa nousun positiivisen pyörimissuunnan.

VEX AIR -drone oikeassa alakulmassa, jossa on punainen nuoli, joka näyttää dronin oikealta puolelta VEX-logon vieressä. Punaisen nuolen ympärillä oleva musta, vastapäivään osoittava kaareva nuoli osoittaa kallistuksen positiivisen suunnan.

Usage:
drone.inertial.get_pitch()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 nollaa dronin kiertoarvon 0 asteeseen.

Usage:
drone.inertial.reset_rotation()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 nollaa dronin suunnan 0 asteeseen.

Käyttö:

drone.inertial.reset_heading()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 asettaa dronin suunnan tiettyyn arvoon asteina.

Käyttö:

drone.inertial.set_heading(heading)

Parametrit

Kuvaus

heading

Uuden suunnan arvo väliltä 0–359,99 astetta.

# 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 palauttaa dronin kiihtyvyyden tiettyyn suuntaan. Palautettu arvo edustaa nopeuden muutosnopeutta mitattuna g-yksiköissä (jossa 1 g ≈ 9,81 m/s²) liukulukuna välillä -4,00 - 4,00.

Alla olevassa kuvassa nuolet osoittavat positiivisen kiihtyvyyden suunnan eteenpäin ja oikealle sekä negatiivisen kiihtyvyyden suunnan alaspäin.

Kuvassa on VEX AIR -drone, jonka nokasta lähtee vihreä nuoli, jossa lukee Eteenpäin, sen pohjan keskeltä lähtee sininen nuoli, jossa lukee Alaspäin, ja sen oikealta puolelta VEX-logon vierestä lähtee punainen nuoli, jossa lukee Oikealle.

Käyttö:

drone.inertial.get_acceleration(type)

Parametrit

Kuvaus

type

Ilmoitettava kiihtyvyyden suunta:

  • 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 palauttaa nopeuden, jolla drone pyörii määritetyn akselin ympäri. Tämä palauttaa arvon asteina sekunnissa \(dps\) liukulukuna välillä –1000,00 - 1000,00 dps.

Alla olevassa kuvassa nuolet osoittavat positiivisen rotaation suunnan vierinnälle, kallistukselle ja kääntökulmalle.

Kuvassa on VEX AIR -drone, jossa on suuntanuolia. Dronen nokasta lähtee vihreä nuoli, jonka ympärillä on musta, vastapäivään osoittava kaareva nuoli, jossa lukee Roll. Dronen pohjan keskeltä lähtee sininen nuoli, jonka ympärillä on musta, myötäpäivään osoittava kaareva nuoli, jossa lukee Yaw. Dronen oikealta puolelta VEX-logon vierestä lähtee punainen nuoli, jonka ympärillä on musta, vastapäivään osoittava kaareva nuoli, jossa lukee Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Parametrit

Kuvaus

axis

Kumpi suunta raportoidaan:

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

Alue#

get_distance#

get_distance palauttaa valitun etäisyysanturin ja lähimmän havaitun kohteen välisen etäisyyden.

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

Parametrit

Kuvaus

range

Käytettävä etäisyysanturi: FORWARD_RANGE tai DOWNWARD_RANGE FORWARD_RANGE ilmoittaa etäisyyden dronin etuosasta. DOWNWARD_RANGE ilmoittaa etäisyyden dronin pohjasta.

units

Valinnainen. Etäisyysyksikkö:

  • MM (oletus) — millimetrit
  • CM — senttimetrit
  • 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()

Akku#

get_battery_level#

get_battery_level palauttaa dronin akun varaustason prosentteina. Tämä palauttaa luvun väliltä 0–100.

Usage:
drone.get_battery_level()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

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