Датчики#
Введение#
Дрон 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 ( 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 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 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 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!")