Датчики#

Вступ#

Дрон 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 градусів у вигляді числа з плаваючою комою.

На зображенні нижче стрілка показує напрямок позитивного обертання для рисьхання.

Дрон VEX AIR з носом, спрямованим у правий нижній кут, із синьою стрілкою, що йде вниз від центру. Навколо синьої стрілки чорна вигнута стрілка вказує за годинниковою стрілкою та має позначку «Ризьблення», що вказує на позитивний напрямок рисьблення.

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 градусів у вигляді числа з плаваючою комою.

На зображенні нижче стрілка показує напрямок позитивного обертання для крену.

Дрон VEX AIR з носом, спрямованим у правий нижній кут, із зеленою стрілкою, що виступає безпосередньо з носа дрона. Навколо зеленої стрілки чорна вигнута стрілка спрямована проти годинникової стрілки, що вказує на позитивний напрямок крену.

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 градусів у вигляді числа з плаваючою комою.

На зображенні нижче стрілка показує напрямок позитивного обертання для кроку.

Дрон VEX AIR, спрямований у правий нижній кут, з червоною стрілкою, що виступає з правого боку дрона, поруч із логотипом VEX. Навколо червоної стрілки чорна вигнута стрілка, спрямована проти годинникової стрілки, вказує на позитивний напрямок тангажу.

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)

Параметри

Опис

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.

На зображенні нижче стрілки показують напрямок позитивного прискорення вперед та праворуч, а також негативного прискорення вниз.

На зображенні показано дрон VEX AIR із зеленою стрілкою, що виходить з носа дрона та позначена як «Вперед», синьою стрілкою, що виходить з центру нижньої частини дрона та позначена як «Вниз», та червоною стрілкою, що виходить з правого боку дрона поруч із логотипом VEX та позначена як «Вправо».

Використання:

drone.inertial.get_acceleration(type)

Параметри

Опис

type

Напрямок прискорення для повідомлення:

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

На зображенні нижче стрілки показують напрямок позитивного обертання для крену, тангажу та рискування.

Дрон VEX AIR зображено зі стрілками напрямку. Зелена стрілка простягається від носа дрона з чорною вигнутою стрілкою, що вказує проти годинникової стрілки, позначеною як «Крен». Синя стрілка простягається від центру нижньої частини дрона з чорною вигнутою стрілкою, що вказує за годинниковою стрілкою, позначеною як «Рижхання». А червона стрілка простягається від правого боку дрона поруч із логотипом VEX з чорною вигнутою стрілкою, що вказує проти годинникової стрілки, позначеною як «Кантування».

Usage:
drone.inertial.get_turn_rate(axis)

Параметри

Опис

axis

Яку орієнтацію повідомляти:

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

Діапазон#

get_distance#

get_distance повертає відстань між вибраним датчиком відстані та найближчим виявленим об’єктом.

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

Параметри

Опис

range

Датчик відстані для використання: FORWARD_RANGE або DOWNWARD_RANGE FORWARD_RANGE повідомляє про відстань від передньої частини дрона. DOWNWARD_RANGE повідомляє про відстань від нижньої частини дрона.

units

Необов’язково. Одиниця вимірювання відстані:

  • MM (за замовчуванням) — міліметри
  • CM — сантиметри
  • 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()

Акумулятор#

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