模块#

简介#

VEX AIR 无人机配备有一个模块端口,可连接各种 VEX AIR 模块。这些模块使无人机能够投放和夹持不同的载荷。

注: 这些方法仅适用于电动钩爪模块和磁铁模块。

以下是所有可用方法的列表:

动作

获取方法

  • get_type – 返回连接到无人机的模块类型。

  • is_holding – 返回电动钩爪模块的当前状态。

动作#

drop_payload#

drop_payload 使用所连接的模块释放载荷。电动钩爪模块会打开其钩爪,磁铁模块会关闭其磁铁。

注: 此方法仅适用于电动钩爪模块和磁铁模块。

用法:

drone.module.drop_payload()

参数

描述

该方法没有参数。

# Demonstrate the Motorized Hook Module moving
drone.take_off(climb_to=800)
wait(1, SECONDS)
drone.module.hold_payload()
wait(2, SECONDS)
drone.module.drop_payload()
drone.land()

hold_payload#

hold_payload 使用所连接的模块夹持载荷。电动钩爪模块会关闭其钩爪,磁铁模块会开启其磁铁。

注: 此方法仅适用于电动钩爪模块和磁铁模块。

用法:

drone.module.hold_payload()

参数

描述

该方法没有参数。

# Demonstrate the Motorized Hook Module moving
drone.take_off(climb_to=800)
wait(1, SECONDS)
drone.module.hold_payload()
wait(2, SECONDS)
drone.module.drop_payload()
drone.land()

获取方法#

get_type#

get_type 根据当前连接到无人机的模块,返回以下之一:

  • DroneModuleType.HOOK – 已连接电动钩爪模块。

  • DroneModuleType.MAGNET – 已连接磁铁模块。

  • DroneModuleType.PASSIVE – 已连接被动钩爪模块 或 未连接任何模块。

用法:

drone.module.get_type()

参数

描述

该方法没有参数。

# Display what module is attached to the drone
# Change the module with Propeller Lock on during project
while True:
    clear_console()
    print(drone.module.get_type())
    wait(0.2,SECONDS)

is_holding#

is_holding 返回一个 Boolean,指示电动钩爪模块当前处于夹持状态还是投放状态。

  • True – 电动钩爪模块已降下。

  • False – 电动钩爪模块已抬起。

注: 此方法仅适用于电动钩爪模块。

用法:

drone.module.is_holding()

参数

描述

该方法没有参数。

# Create a custom button to toggle the Motorized Hook Module
def hook_toggle():
    if drone.module.is_holding():
        drone.module.drop_payload()
    else:
        drone.module.hold_payload()

controller.button5.pressed(hook_toggle)