Cảm biến#

Giới thiệu#

Máy bay không người lái VEX AIR tích hợp cảm biến quán tính để đo chuyển động quay và phát hiện sự thay đổi chuyển động, cũng như cảm biến khoảng cách. VEX AIR cũng có thể theo dõi mức pin. Các cảm biến này cho phép máy bay không người lái theo dõi hướng, hướng bay, gia tốc và khoảng cách đến các vật thể.

Dưới đây là danh sách tất cả các phương pháp hiện có:

Quán tính - Theo dõi chuyển động quay của máy bay không người lái.

  • get_rotation – Trả về mức độ máy bay không người lái đã quay kể từ khi bắt đầu.

  • get_heading – Trả về hướng hiện tại (0 đến 359,99°).

  • get_yaw – Trả về góc yaw (–180 đến 180°).

  • get_roll – Trả về góc lăn (–180 đến 180°).

  • get_pitch – Trả về góc nghiêng (–180 đến 180°).

  • reset_rotation – Đặt lại giá trị xoay về 0.

  • reset_heading – Đặt hướng hiện tại về 0.

  • set_heading – Đặt tiêu đề thành một giá trị cụ thể.

  • get_acceleration – Trả về gia tốc theo một hướng cụ thể.

  • get_turn_rate – Trả về tốc độ quay theo độ mỗi giây.

Phạm vi — Phát hiện khoảng cách từ các cảm biến phạm vi của máy bay không người lái.

  • get_distance — Trả về khoảng cách giữa Cảm biến khoảng cách đã chọn và vật thể được phát hiện gần nhất.

Pin - Hiển thị phần trăm pin của máy bay không người lái.

  • get_battery_level – Trả về mức pin của máy bay không người lái theo phần trăm.

Quán tính#

get_rotation#

Hàm get_rotation trả về số độ mà máy bay không người lái đã quay kể từ khi bắt đầu. Nó cộng tất cả các vòng quay và trả về tổng số độ: dương cho chiều kim đồng hồ, âm cho chiều ngược kim đồng hồ.

Usage:
drone.inertial.get_rotation()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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#

Hàm get_heading trả về góc hướng bay của máy bay không người lái dưới dạng số thực trong khoảng từ 0 đến 359,99 độ.

Usage:
drone.inertial.get_heading()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về góc lệch hướng của máy bay không người lái trong khoảng từ –180,0 đến 180,0 độ dưới dạng số thực.

Hình ảnh bên dưới sử dụng mũi tên để chỉ hướng quay dương của trục yaw.

Một máy bay không người lái VEX AIR với phần mũi hướng về góc dưới bên phải, có một mũi tên màu xanh lam kéo dài xuống từ tâm. Xung quanh mũi tên màu xanh lam, một mũi tên cong màu đen chỉ theo chiều kim đồng hồ và được dán nhãn Yaw, cho biết hướng dương của góc yaw.

Usage:
drone.inertial.get_yaw

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về góc lăn của máy bay không người lái trong khoảng từ –180,0 đến 180,0 độ dưới dạng số thực.

Hình ảnh bên dưới sử dụng mũi tên để chỉ hướng quay dương của trục lăn.

Một máy bay không người lái VEX AIR với phần mũi hướng về góc dưới bên phải, có một mũi tên màu xanh lá cây kéo dài thẳng ra từ mũi của máy bay. Xung quanh mũi tên màu xanh lá cây là một mũi tên cong màu đen chỉ ngược chiều kim đồng hồ, biểu thị hướng lăn dương.

Usage:
drone.inertial.get_roll()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về góc nghiêng của máy bay không người lái trong khoảng từ –180,0 đến 180,0 độ dưới dạng số thực.

Hình ảnh bên dưới sử dụng mũi tên để chỉ hướng quay dương của góc nghiêng.

Một máy bay không người lái VEX AIR hướng về góc dưới bên phải với một mũi tên màu đỏ kéo dài ra từ phía bên phải của máy bay, bên cạnh logo VEX. Xung quanh mũi tên màu đỏ, một mũi tên cong màu đen chỉ ngược chiều kim đồng hồ biểu thị hướng dương cho độ nghiêng.

Usage:
drone.inertial.get_pitch()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 đặt lại giá trị xoay của máy bay không người lái về 0 độ.

Usage:
drone.inertial.reset_rotation()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 đặt lại hướng bay của máy bay không người lái về 0 độ.

Cách sử dụng:

drone.inertial.reset_heading()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 thiết lập hướng bay của máy bay không người lái đến một giá trị được chỉ định tính bằng độ.

Cách sử dụng:

drone.inertial.set_heading(heading)

Thông số

Sự miêu tả

heading

Giá trị cần sử dụng cho hướng mới nằm trong khoảng từ 0 đến 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#

Hàm get_acceleration trả về gia tốc của máy bay không người lái theo hướng được chỉ định. Giá trị trả về biểu thị tốc độ thay đổi vận tốc, được đo bằng đơn vị g (trong đó 1g ≈ 9,81 m/s²), dưới dạng số thực nằm trong khoảng từ -4,00 đến 4,00.

Hình ảnh bên dưới sử dụng các mũi tên để chỉ hướng gia tốc dương là hướng về phía trước và sang phải, và gia tốc âm là hướng xuống dưới.

Một máy bay không người lái VEX AIR được hiển thị với mũi tên màu xanh lá cây kéo dài từ mũi máy bay có nhãn "Tiến lên", một mũi tên màu xanh lam kéo dài từ giữa đáy máy bay có nhãn "Xuống dưới" và một mũi tên màu đỏ kéo dài từ phía bên phải của máy bay bên cạnh logo VEX, có nhãn "Phải".

Cách sử dụng:

drone.inertial.get_acceleration(type)

Thông số

Sự miêu tả

type

Hướng gia tốc cần báo cáo:

  • 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 trả về tốc độ quay của máy bay không người lái quanh trục được chỉ định. Giá trị trả về là độ trên giây \(dps\) dưới dạng số thực từ –1000.00 đến 1000.00 dps.

Hình ảnh bên dưới sử dụng các mũi tên để chỉ hướng quay dương đối với chuyển động lăn, nghiêng và lệch hướng.

Hình ảnh hiển thị một máy bay không người lái VEX AIR với các mũi tên chỉ hướng. Một mũi tên màu xanh lá cây kéo dài từ mũi của máy bay không người lái với một mũi tên cong màu đen chỉ ngược chiều kim đồng hồ xung quanh nó, được dán nhãn Roll. Một mũi tên màu xanh lam kéo dài từ giữa đáy của máy bay không người lái với một mũi tên cong màu đen chỉ theo chiều kim đồng hồ xung quanh nó, được dán nhãn Yaw. Và một mũi tên màu đỏ kéo dài từ phía bên phải của máy bay không người lái bên cạnh logo VEX, với một mũi tên cong màu đen chỉ ngược chiều kim đồng hồ xung quanh nó, được dán nhãn Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Thông số

Sự miêu tả

axis

Nên báo cáo hướng nào:

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

Phạm vi#

get_distance#

get_distance trả về khoảng cách giữa Cảm biến khoảng cách đã chọn và vật thể được phát hiện gần nhất.

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

Thông số

Sự miêu tả

range

Cảm biến khoảng cách cần sử dụng: FORWARD_RANGE hoặc DOWNWARD_RANGE FORWARD_RANGE báo cáo khoảng cách từ phía trước của máy bay không người lái. DOWNWARD_RANGE báo cáo khoảng cách từ phía dưới của máy bay không người lái.

units

Tùy chọn. Đơn vị khoảng cách:

  • MM (mặc định) — milimét
  • CM — centimet
  • 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()

Ắc quy#

get_battery_level#

Hàm get_battery_level trả về mức sạc pin của máy bay không người lái dưới dạng phần trăm. Giá trị trả về nằm trong khoảng từ 0 đến 100.

Usage:
drone.get_battery_level()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

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