コントローラ#

導入#

VEX AIM One Stickコントローラーには、4つのボタンとジョイスティックが搭載されています。ジョイスティックは2軸に沿って動かすことができ、ボタンのように押すこともできます。

コントローラーのメソッドは、ボタンの押下を確認したり、ジョイスティックの動きを読み取ったり、接続状態やバッテリーの状態を確認したり、コントローラーのイベントが発生したときに機能を実行したりするために使用できます。

以下にすべてのメソッドの一覧を示します。

ゲッター — ボタン、ジョイスティック、接続状態、バッテリーの状態を読み取る。

  • .pressing — 指定されたボタンが押されているかどうかを返します。

  • .position — 指定された軸に沿ったジョイスティックの位置を返します。

  • is_connected — コントローラが接続されているかどうかを返します。

  • get_battery_level — コントローラーのバッテリーレベルを返します。

コールバック — コントローラーの入力が変更されたときに実行される関数。

  • .pressed — 指定されたボタンが押されたときに関数を実行します。

  • .released — 指定されたボタンが離されたときに関数を実行します。

  • .changed — ジョイスティックの位置が指定された軸に沿って変化したときに関数を実行します。

ゲッター#

.pressing#

.pressing 、コントローラー上の特定のボタンが現在押されているかどうかを返します。このメソッドは、 controller.button_upなどの特定のボタンオブジェクトに対して呼び出す必要があります。

  • True — 指定されたボタンが押されています。

  • False — 指定されたボタンが押されていません。

使用方法:
このメソッドでは、利用可能な5つのボタンオブジェクトのうち1つを使用できます。

ボタン

指示

button_up

controller.button_up.pressing() — 上ボタン

button_down

controller.button_down.pressing() — 下ボタン

button_left

controller.button_left.pressing() — 左ボタン

button_right

controller.button_right.pressing() — 右ボタン

button_stick

controller.button_stick.pressing() — ジョイスティックボタン

VEX AIM Oneスティックコントローラー。左側にジョイスティック、右側に4つのボタンが配置されています。ジョイスティックと4つのボタンはハイライト表示されています。

パラメータ

説明

このメソッドにはパラメータがありません。

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

.position#

.position 、ジョイスティック軸の位置を -100 から 100までの数値として返します。

このメソッドは、 controller.axis1のような特定の軸オブジェクトに対して呼び出す必要があります。

使用方法:
このメソッドでは、使用可能な2つの軸オブジェクトのうち1つを使用できます。

軸

指示

axis1

controller.axis1.position() — 垂直軸

axis2

controller.axis2.position() — 水平軸

左側にジョイスティック、右側に4つのボタンを備えたVEX AIMコントローラー。ジョイスティックの1軸目と2軸目が強調表示されています。

パラメータ

説明

このメソッドにはパラメータがありません。

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected は、コントローラが接続されているかどうかを返します。

  • True — コントローラーが接続されています。

  • False — コントローラーが接続されていません。

Usage:
controller.is_connected()

パラメータ

説明

このメソッドにはパラメータがありません。

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level は、コントローラーのバッテリーレベルを 0 から 100までの数値として返します。

Usage:
controller.get_battery_level()

パラメータ

説明

このメソッドにはパラメータがありません。

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

コールバック#

.pressed#

.pressed 、指定されたボタンが押されたときに関数を実行します。一度使用すると、そのボタンが押されるたびに関数が自動的に実行されます。

使用方法:
このメソッドでは、利用可能な5つのボタンオブジェクトのうち1つを使用できます。

ボタン

指示

button_up

controller.button_up.pressed(callback, arg) — 上ボタン

button_down

controller.button_down.pressed(callback, arg) — ダウンボタン

button_left

controller.button_left.pressed(callback, arg) — 左ボタン

button_right

controller.button_right.pressed(callback, arg) — 右ボタン

button_stick

controller.button_stick.pressed(callback, arg) — ジョイスティックボタン

VEX AIM Oneスティックコントローラー。左側にジョイスティック、右側に4つのボタンが配置されています。ジョイスティックと4つのボタンはハイライト表示されています。

パラメータ

説明

callback

指定されたボタンが押されるたびに実行される、事前に定義された 関数。

arg

オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released 、指定されたボタンが離されたときに関数を実行します。一度使用すると、そのボタンが離されるたびに自動的に関数が実行されます。

使用方法:
このメソッドでは、利用可能な5つのボタンオブジェクトのうち1つを使用できます。

ボタン

指示

button_up

controller.button_up.released(callback, arg) — アップボタン

button_down

controller.button_down.released(callback, arg) — ダウンボタン

button_left

controller.button_left.released(callback, arg) — 左ボタン

button_right

controller.button_right.released(callback, arg) — 右ボタン

button_stick

controller.button_stick.released(callback, arg) — ジョイスティックボタン

VEX AIM Oneスティックコントローラー。左側にジョイスティック、右側に4つのボタンが配置されています。ジョイスティックと4つのボタンはハイライト表示されています。

パラメータ

説明

callback

指定されたボタンが離されるたびに実行される、事前に定義された 関数。

arg

オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")

.changed#

.changed 、指定された軸に沿ってジョイスティックの位置が変化したときに関数を実行します。一度使用すると、その軸に沿ってジョイスティックの位置が変化するたびに、この関数が自動的に実行されます。

使用方法:
このメソッドでは、使用可能な2つの軸オブジェクトのうち1つを使用できます。

軸

指示

axis1

controller.axis1.changed(callback, arg) — 垂直軸

axis2

controller.axis2.changed(callback, arg) — 水平軸

左側にジョイスティック、右側に4つのボタンを備えたVEX AIMコントローラー。ジョイスティックの1軸目と2軸目が強調表示されています。

パラメータ

説明

callback

指定された軸に沿ってジョイスティックの位置が変化するたびに実行される、事前に定義された 関数。

arg

オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)