Датчики#
Вступ#
Дрон VEX AIR оснащений інерційним датчиком для вимірювання обертального руху та виявлення змін у русі, а також датчиком дальності для визначення відстані. Дрон VEX AIR також може відстежувати рівень заряду батареї. Ці датчики дозволяють дрону відстежувати його орієнтацію, напрямок, прискорення та відстань до об’єктів.
Нижче наведено список усіх доступних методів:
Інерційний – відстежуйте обертальний рух дрона.
get_rotation– Повертає, на скільки обертався дрон з моменту запуску.get_heading– Повертає поточний напрямок (від 0 до 359,99°).get_yaw– Повертає кут рискування (від –180 до 180°).get_roll– Повертає кут крену (від –180 до 180°).get_pitch– Повертає кут нахилу (від –180 до 180°).reset_rotation– Скидає значення обертання до 0.reset_heading– Встановлює поточний напрямок руху на 0.set_heading– Встановлює заголовок на певне значення.get_acceleration– Повертає прискорення у певному напрямку.get_turn_rate– Повертає швидкість повороту в градусах за секунду.
Дальність — Визначення відстаней за допомогою датчиків дальності дрона.
get_distance— Повертає відстань між вибраним датчиком відстані та найближчим виявленим об’єктом.
Акумулятор – Повертає відсоток заряду акумулятора дрона.
get_battery_level– Повертає рівень заряду батареї дрона у відсотках.
Інерційний#
get_rotation#
get_rotation повертає, на скільки градусів повернувся дрон з моменту запуску. Вона підсумовує всі оберти та повертає загальну суму в градусах: додатне значення для руху за годинниковою стрілкою, від’ємне для руху проти годинникової стрілки.
Usage:
drone.inertial.get_rotation()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 повертає кут курсу дрона у вигляді числа з плаваючою комою в діапазоні від 0 до 359,99 градусів.
Usage:
drone.inertial.get_heading()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 повертає кут риски дрона в діапазоні від –180,0 до 180,0 градусів у вигляді числа з плаваючою комою.
На зображенні нижче стрілка показує напрямок позитивного обертання для рисьхання.

Usage:
drone.inertial.get_yaw
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 повертає кут крену дрона в діапазоні від –180,0 до 180,0 градусів у вигляді числа з плаваючою комою.
На зображенні нижче стрілка показує напрямок позитивного обертання для крену.

Usage:
drone.inertial.get_roll()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 повертає кут тангажу дрона в діапазоні від –180,0 до 180,0 градусів у вигляді числа з плаваючою комою.
На зображенні нижче стрілка показує напрямок позитивного обертання для кроку.

Usage:
drone.inertial.get_pitch()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 скидає значення обертання дрона до 0 градусів.
Usage:
drone.inertial.reset_rotation()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 скидає курс дрона до 0 градусів.
Використання:
drone.inertial.reset_heading()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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 встановлює курс дрона на задане значення в градусах.
Використання:
drone.inertial.set_heading(heading)
Параметри |
Опис |
|---|---|
|
Значення, яке слід використовувати для нового курсу в діапазоні від 0 до 359,99 градусів. |
# 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 повертає прискорення дрона у вказаному напрямку. Повернене значення представляє собою швидкість зміни швидкості, виміряну в одиницях g (де 1g ≈ 9,81 м/с²), як число з плаваючою комою в діапазоні від -4,00 до 4,00.
На зображенні нижче стрілки показують напрямок позитивного прискорення вперед та праворуч, а також негативного прискорення вниз.

Використання:
drone.inertial.get_acceleration(type)
Параметри |
Опис |
|---|---|
|
Напрямок прискорення для повідомлення:
|
# 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 повертає швидкість обертання дрона вздовж заданої осі. Повертає значення в градусах за секунду \(dps\) у вигляді числа з плаваючою комою від –1000.00 до 1000.00 dps.
На зображенні нижче стрілки показують напрямок позитивного обертання для крену, тангажу та рискування.

Usage:
drone.inertial.get_turn_rate(axis)
Параметри |
Опис |
|---|---|
|
Яку орієнтацію повідомляти:
|
# 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))
Діапазон#
get_distance#
get_distance повертає відстань між вибраним датчиком відстані та найближчим виявленим об’єктом.
Usage:
drone.range.get_distance(range, units)
Параметри |
Опис |
|---|---|
|
Датчик відстані для використання: |
|
Необов’язково. Одиниця вимірювання відстані:
|
# 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()
Акумулятор#
get_battery_level#
get_battery_level повертає рівень заряду батареї дрона у відсотках. Повертає число від 0 до 100.
Usage:
drone.get_battery_level()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# 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!")