コントローラ#
導入#
V5コントローラーには、ボタン、2つのジョイスティック、振動モーター、および画面が搭載されています。コントローラーのメソッドを使用すると、ボタンの押下を確認したり、ジョイスティックの動きを読み取ったり、コントローラーを振動させたり、設定済みのコントローラーアクションを有効または無効にしたり、コントローラーのイベント発生時に関数を実行したり、コントローラーの画面にテキストを表示したりできます。
設定済みのコントローラーアクションは、[デバイス] メニューで設定されたコントローラーの動作です。プロジェクト中にこれらの設定済みアクションを一時的に有効または無効にするには、remote_control_code_enabled を remote_control_code_enabled に設定します。
このページでは、コントローラー名として controller_1 という例を使用しています。必要に応じて、ご自身で設定した名前に置き換えてください。
以下に、利用可能なメソッドの一覧を示します。
アクション — コントローラーを振動させる、または設定済みのコントローラーアクションを有効/無効にする。
rumble— コントローラーで振動パターンを再生します。remote_control_code_enabled— デバイス メニューで設定されたコントローラー アクションを有効または無効にします。
画面 — コントローラー画面にテキストと数字を表示する。
print— コントローラー画面にテキスト、数値、または変数値を表示します。set_cursor— コントローラ画面上の指定された行と列にカーソルを移動します。column— コントローラー画面上の現在のカーソル列を返します。row— コントローラ画面上の現在のカーソル行を返します。clear_screen— コントローラー画面をクリアします。clear_row— コントローラー画面の 1 行をクリアします。next_row— コントローラー画面でカーソルを次の行に移動します。
ゲッター — ボタンの状態とジョイスティックの位置を読み取ります。
コールバック — コントローラーの入力が変更されたときに実行される関数。
.pressed— 指定されたボタンが押されたときに関数を実行します。.released— 指定されたボタンが離されたときに関数を実行します。.changed— ジョイスティックの位置が指定された軸に沿って変化したときに関数を実行します。
コンストラクタ — コントローラオブジェクトを手動で作成します。
Controller— コントローラー オブジェクトを作成します。
行動#
rumble#
rumble コントローラー上で振動パターンを再生します。パターン文字列では、ピリオドは短い振動、ハイフンは長い振動、スペースは休止を表します。
Usage:
controller_1.rumble(pattern)
パラメータ |
説明 |
|---|---|
|
ランブルパターンを表す、ピリオド、ハイフン、スペースで構成された文字列。 |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled は、[デバイス] メニューで設定されたコントローラーアクションを有効または無効にする変数です。コントローラーで設定されたアクションは、デフォルトで有効になっています。
Usage:
remote_control_code_enabled = state
価値 |
説明 |
|---|---|
|
コントローラーで設定されたアクションを有効にします。 |
|
コントローラーで設定されたアクションを無効にします。 |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
画面#
V5コントローラーの画面は、テキストと数字を表示するための3行19列で構成されています。

print#
controller_1.screen.print 、現在のカーソル位置を使用して、コントローラ画面にテキスト、数値、または変数値を表示します。
Usage:
controller_1.screen.print(value, sep, precision)
パラメータ |
説明 |
|---|---|
|
コントローラー画面に表示するテキスト、数値、または変数値。複数の値を表示する場合は、値をカンマで区切ってください。 |
|
オプション。値の間に挿入する文字列。これはキーワード引数として記述する必要があります。例: |
|
オプション。単純な数値を表示する際に表示する小数点以下の桁数。これはキーワード引数として記述する必要があります(例: |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor は、コントローラ画面上の指定された行と列にカーソルを移動します。次に印刷される値は、その位置に表示されます。
Usage:
controller_1.screen.set_cursor(row, col)
パラメータ |
説明 |
|---|---|
|
カーソルの行は、 |
|
カーソルの列は、 |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column は、コントローラー画面にテキストが印刷される現在の列を返します。
Usage:
controller_1.screen.column()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row は、コントローラー画面にテキストが印刷される現在の行を返します。
Usage:
controller_1.screen.row()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen はコントローラー画面をクリアし、カーソルを元の位置に戻します。
Usage:
controller_1.screen.clear_screen()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row 、コントローラー画面の 1 行をクリアします。
Usage:
controller_1.screen.clear_row(row)
パラメータ |
説明 |
|---|---|
|
オプション。クリアする行 |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row 、カーソルをコントローラ画面の次の行の 1 列目に移動します。次に印刷される値はその行に表示されます。
Usage:
controller_1.screen.next_row()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
ゲッター#
.pressing#
.pressing 、コントローラー上の特定のボタンが現在押されているかどうかを返します。このメソッドは、 controller_1.buttonAのような特定のボタンオブジェクトに対して呼び出す必要があります。
True— 指定されたボタンが押されています。False— 指定されたボタンが押されていません。
使用方法:
利用可能なボタンオブジェクトのいずれかをこのメソッドで使用できます。

ボタン |
指示 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position 、ジョイスティック軸の位置を -100 から 100までの数値として返します。
このメソッドは、 controller_1.axis1のような特定の軸オブジェクトに対して呼び出す必要があります。
使用方法:
利用可能な軸オブジェクトのいずれかをこのメソッドで使用できます。

軸 |
指示 |
|---|---|
|
|
|
|
|
|
|
|
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
コールバック#
.pressed#
.pressed 、指定されたボタンが押されたときに関数を実行します。一度使用すると、そのボタンが押されるたびに関数が自動的に実行されます。
使用方法:
利用可能なボタンオブジェクトのいずれかをこのメソッドで使用できます。

ボタン |
指示 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
パラメータ |
説明 |
|---|---|
|
指定されたボタンが押されるたびに実行される、事前に定義された 関数。 |
|
オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。 |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released 、指定されたボタンが離されたときに関数を実行します。一度使用すると、そのボタンが離されるたびに自動的に関数が実行されます。
使用方法:
利用可能なボタンオブジェクトのいずれかをこのメソッドで使用できます。

ボタン |
指示 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
パラメータ |
説明 |
|---|---|
|
指定されたボタンが離されるたびに実行される、事前に定義された 関数。 |
|
オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。 |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed 、指定された軸に沿ってジョイスティックの位置が変化したときに関数を実行します。一度使用すると、その軸に沿ってジョイスティックの位置が変化するたびに、この関数が自動的に実行されます。
使用方法:
利用可能な軸オブジェクトのいずれかをこのメソッドで使用できます。

軸 |
指示 |
|---|---|
|
|
|
|
|
|
|
|
パラメータ |
説明 |
|---|---|
|
指定された軸に沿ってジョイスティックの位置が変化するたびに実行される、事前に定義された 関数。 |
|
オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付きイベントの使用を参照してください。 |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
建設業者#
Controller#
Controller は、コントローラーオブジェクトを作成します。コントローラーオブジェクトを手動で作成する必要があるのは、VEXcode以外でコントローラーを設定する場合のみです。
Usage:
Controller(controller_type)
パラメータ |
説明 |
|---|---|
|
オプション。作成するコントローラーの種類: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)