Czujniki#
Wstęp#
Dron VEX AIR jest wyposażony w czujnik bezwładnościowy do pomiaru ruchu obrotowego i wykrywania zmian w ruchu, a także czujnik zasięgu do pomiaru odległości. Dron VEX AIR może również monitorować poziom naładowania akumulatora. Czujniki te pozwalają dronowi śledzić swoją orientację, kurs, przyspieszenie i odległość od obiektów.
Poniżej znajduje się lista wszystkich dostępnych metod:
Inercyjny — śledzenie ruchu obrotowego drona.
get_rotation– Zwraca wartość określającą, o ile dron obrócił się od momentu startu.get_heading– Zwraca aktualny kierunek (od 0 do 359,99°).get_yaw– Zwraca kąt odchylenia (–180 do 180°).get_roll– Zwraca kąt obrotu (od –180 do 180°).get_pitch– Zwraca kąt pochylenia (–180 do 180°).reset_rotation– Resetuje wartość obrotu do 0.reset_heading– Ustawia bieżący nagłówek na 0.set_heading– Ustawia nagłówek na określoną wartość.get_acceleration– Zwraca przyspieszenie w określonym kierunku.get_turn_rate– Zwraca szybkość obrotu w stopniach na sekundę.
Zasięg — wykrywanie odległości za pomocą czujników zasięgu drona.
get_distance— Zwraca odległość między wybranym czujnikiem zasięgu a najbliższym wykrytym obiektem.
Bateria — Zwróć procentowy poziom naładowania baterii drona.
get_battery_level– Zwraca poziom naładowania baterii drona w procentach.
Bezwładnościowy#
get_rotation#
get_rotation zwraca, o ile stopni obrócił się dron od startu. Sumuje wszystkie obroty i zwraca sumę w stopniach: dodatnią dla kierunku zgodnego z ruchem wskazówek zegara, ujemną dla kierunku przeciwnego do ruchu wskazówek zegara.
Usage:
drone.inertial.get_rotation()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca kąt kierunku drona jako wartość zmiennoprzecinkową z zakresu od 0 do 359,99 stopni.
Usage:
drone.inertial.get_heading()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca kąt odchylenia drona w zakresie od –180,0 do 180,0 stopni jako wartość zmiennoprzecinkową.
Na poniższym rysunku strzałka pokazuje kierunek dodatniego obrotu w przypadku odchylenia.

Usage:
drone.inertial.get_yaw
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca kąt przechyłu drona w zakresie od –180,0 do 180,0 stopni jako wartość zmiennoprzecinkową.
Na poniższym rysunku strzałka pokazuje kierunek dodatniego obrotu dla przechyłu.

Usage:
drone.inertial.get_roll()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca kąt pochylenia drona w zakresie od –180,0 do 180,0 stopni jako wartość zmiennoprzecinkową.
Na poniższym rysunku strzałka pokazuje kierunek dodatniego obrotu dla kąta nachylenia.

Usage:
drone.inertial.get_pitch()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 resetuje wartość obrotu drona do 0 stopni.
Usage:
drone.inertial.reset_rotation()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 resetuje kierunek drona do 0 stopni.
Stosowanie:
drone.inertial.reset_heading()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 ustawia kierunek drona na określoną wartość w stopniach.
Stosowanie:
drone.inertial.set_heading(heading)
Parametry |
Opis |
|---|---|
|
Wartość nowego nagłówka mieści się w zakresie od 0 do 359,99 stopnia. |
# 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 zwraca przyspieszenie drona w określonym kierunku. Zwrócona wartość reprezentuje tempo zmiany prędkości, mierzone w jednostkach g (gdzie 1g ≈ 9,81 m/s²), jako wartość zmiennoprzecinkowa z zakresu od -4,00 do 4,00.
Na poniższym rysunku strzałki pokazują kierunek dodatniego przyspieszenia w przód i w prawo oraz ujemnego przyspieszenia w dół.

Stosowanie:
drone.inertial.get_acceleration(type)
Parametry |
Opis |
|---|---|
|
Kierunek przyspieszenia do zgłoszenia:
|
# 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 zwraca prędkość, z jaką dron obraca się wokół określonej osi. Zwraca wartość w stopniach na sekundę \(dps\) jako liczbę zmiennoprzecinkową z zakresu od –1000,00 do 1000,00 dps.
Na poniższym rysunku strzałki pokazują kierunek dodatniego obrotu dla przechyłu, pochylenia i odchylenia.

Usage:
drone.inertial.get_turn_rate(axis)
Parametry |
Opis |
|---|---|
|
Którą orientację zgłosić:
|
# 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))
Zakres#
get_distance#
get_distance zwraca odległość między wybranym czujnikiem zasięgu a najbliższym wykrytym obiektem.
Usage:
drone.range.get_distance(range, units)
Parametry |
Opis |
|---|---|
|
Czujnik zasięgu, którego należy użyć: |
|
Opcjonalnie. Jednostka odległości:
|
# 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()
Bateria#
get_battery_level#
get_battery_level zwraca poziom naładowania akumulatora drona w procentach. Zwraca liczbę od 0 do 100.
Usage:
drone.get_battery_level()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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!")