モジュール#

導入#

VEX AIRドローンにはモジュールポートが搭載されており、様々なVEX AIRモジュールを接続できます。これにより、ドローンは様々なペイロードを投下したり、搭載したりすることが可能になります。

注: これらの方法は、電動フックモジュールとマグネットモジュールでのみ機能します。

以下に、利用可能なメソッドの一覧を示します。

アクション

  • drop_payload – 添付されたモジュールを使用してペイロードをリリースします。

  • hold_payload – 添付モジュールを使用してペイロードを保持します。

ゲッターズ

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