传感器#
介绍#
VEX AIR 无人机内置惯性传感器,用于测量旋转运动和检测运动变化,以及测距传感器,用于测量距离。VEX AIR 无人机还可以跟踪电池电量。这些传感器使无人机能够追踪其方向、航向、加速度以及与物体的距离。
以下是所有可用方法的列表:
惯性 - 跟踪无人机的旋转运动。
get_rotation– Returns how much the drone has turned since it started.get_heading– Returns the current heading (0 to 359.99°).get_yaw– Returns the yaw angle (–180 to 180°).get_roll– Returns the roll angle (–180 to 180°).get_pitch– Returns the pitch angle (–180 to 180°).reset_rotation– Resets the rotation value to 0.reset_heading– Sets the current heading to 0.set_heading– Sets the heading to a specific value.get_acceleration– Returns acceleration in a specific direction.get_turn_rate– Returns turning rate in degrees per second.
范围 - 检测无人机距离传感器的距离。
get_distance– Returns the distance from a Range Sensor.
电池 - 返回无人机的电池百分比。
get_battery_level– Returns the drone’s battery level in percent.
惯性#
get_rotation#
get_rotation returns how many degrees the drone has turned since it started. It adds up all turns and returns the total in degrees: positive for clockwise, negative for counterclockwise.
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 returns the drone’s heading angle as a float in the range 0 to 359.99 degrees.
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 returns the drone’s yaw angle in the range –180.0 to 180.0 degrees as a float.
下图使用箭头表示偏航的正旋转方向。

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 returns the drone’s roll angle in the range –180.0 to 180.0 degrees as a float.
下图用箭头表示滚动的正向旋转方向。

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 returns the drone’s pitch angle in the range –180.0 to 180.0 degrees as a float.
下图使用箭头表示俯仰的正向旋转方向。

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 resets the drone’s rotation value to 0 degrees.
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 resets the drone’s heading to 0 degrees.
用法:
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 sets the drone’s heading to a specified value in degrees.
用法:
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 returns the drone’s acceleration in a specified direction. The returned value represents the rate of change in velocity, measured in units of g (where 1g ≈ 9.81 m/s²), as a float ranging from -4.00 to 4.00.
下图用箭头表示向前和向右的正加速度方向,向下的负加速度方向。

用法:
drone.inertial.get_acceleration(type)
参数 |
描述 |
|---|---|
|
The direction of acceleration to report:
|
# 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 returns the rate at which the drone is rotating along the specified axis. This returns a value in degrees per second \(dps\) as a float from –1000.00 to 1000.00 dps.
下图使用箭头显示滚动、俯仰和偏航的正旋转方向。

Usage:
drone.inertial.get_turn_rate(axis)
参数 |
描述 |
|---|---|
|
Which orientation to report:
|
# 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 returns the distance between a Range Sensor and the nearest object.
Usage:
drone.range.get_distance(range, units)
参数 |
描述 |
|---|---|
|
The Range Sensor to use:
|
|
Optional. The unit that represents the distance:
|
# 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 returns the drone’s battery charge level as a percentage. This returns a number from 0 to 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!")