控制器#
介绍#
VEX AIR 无人机控制器采用 12 个按钮布局和两个操纵杆。这些输入使无人机能够检测按钮按下和操纵杆移动,从而实现交互式和灵敏的控制。
以下是所有可用方法的列表:
Getters – 读取按钮、操纵杆和连接状态。
pressing– Returns if a specific button is currently being pressed.position– Returns the position of the joystick along a specified axis.is_drone_connected– Returns whether the controller is connected to the drone.get_battery_level– Returns the controller’s battery level.
回调——响应按钮或操纵杆输入变化。
吸气剂#
pressing#
pressing returns a Boolean indicating whether a specific button on the controller is currently being pressed. This method must be called on a specific button object, such as button5 (see full list of button objects below).
True- The specified button is being pressed.False- The specified button is not being pressed.
用法:
八个可用按钮(编号 5 至 12)之一可用于此方法,如下所示:
按钮 |
命令 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

参数 |
描述 |
|---|---|
该方法没有参数。 |
# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Fly using the controller sticks
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
# Capture an image from the forward camera when button 5 is pressed.
if controller.button5.pressing():
drone.camera.capture_image(FORWARD_CAMERA)
wait(5, MSEC)
position#
position returns the position of the joystick’s specified axis, as a percentage from –100% to 100%.
用法:
此方法可使用四个可用轴中的一个,编号为 1 至 4。
轴 |
命令 |
|---|---|
|
|
|
|
|
|
|
|

参数 |
描述 |
|---|---|
该方法没有参数。 |
# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
if controller.axis1.position() > 0:
drone.climb(direction=UP, velocity=50)
else:
drone.hover()
wait(5, MSEC)
is_drone_connected#
is_drone_connected returns a Boolean indicating whether the drone is connected.
True- The drone is connected.False- The drone is not connected.
用法:
controller.is_drone_connected()
参数 |
描述 |
|---|---|
该方法没有参数。 |
# Print controller connection status on screen.
while True:
if controller.is_drone_connected():
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Controller connected")
wait(0.5, SECONDS)
get_battery_level#
get_battery_level returns the Controller’s battery level, as a percentage from 0% to 100%.
用法:
controller.get_battery_level()
参数 |
描述 |
|---|---|
该方法没有参数。 |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
回调#
pressed#
pressed runs a function when the specified button is pressed. Once it is used, the function will run automatically each time that button is pressed.
用法:
此方法可使用八个可用按钮之一,编号为 5 至 12。
按钮 |
命令 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

参数 |
描述 |
|---|---|
|
预先定义的 函数,每次按下指定的按钮时运行。 |
|
# Take a picture when button 5 is pressed.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
released#
released runs a function when the specified button is released. Once it is used, the function will run automatically each time that button is released.
用法:
此方法可使用八个可用按钮之一,编号为 5 至 12。
按钮 |
命令 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

参数 |
描述 |
|---|---|
|
预先定义的 函数,每次释放指定的按钮时运行。 |
|
# Take a picture when button 5 is released.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
changed#
changed runs a function when the joystick’s position changes along the specified axis. Once it is used, the function will run automatically each time the joystick’s position changes along that axis.
用法:
此方法可使用四个可用轴中的一个,编号为 1 至 4。
轴 |
命令 |
|---|---|
|
|
|
|
|
|
|
|

参数 |
描述 |
|---|---|
|
预先定义的 函数,每次操纵杆的位置沿指定轴发生变化时运行。 |
|
# Move forward when the left joystick moves.
def on_axis1_changed():
drone.move_for(direction=0, distance=200, velocity=50, units=MM)
drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)