コントローラ#

導入#

V5コントローラーには、ボタン、2つのジョイスティック、振動モーター、および画面が搭載されています。コントローラーブロックを使用すると、ボタンの押下をチェックしたり、ジョイスティックの動きを読み取ったり、コントローラーを振動させたり、設定済みのコントローラーアクションを有効または無効にしたり、コントローラーイベントが発生したときにブロックを実行したり、コントローラー画面にテキストを表示したりできます。

設定済みのコントローラーアクションは、[デバイス] メニューで設定されたコントローラーの動作です。コントローラーの有効化/無効化 ブロックを使用して、プロジェクト中にこれらの設定済みアクションを一時的に有効または無効にすることができます。

利用可能なブロックの一覧は以下のとおりです。

値 — コントローラーのボタンの状態を確認するか、ジョイスティックの位置を読み取ります。

アクション — コントローラーを振動させる、設定済みのコントローラーアクションを有効/無効にする、またはコントローラーの入力が変化したときにブロックを実行する。

画面 — コントローラー画面にテキストと数字を表示する。

価値観#

コントローラーが押されましたか?#

Controller pressed? ブール値ブロックは、選択されたコントローラーボタンが押されているかどうかを返します。

V5コントローラーの前面と背面。ボタンは黄色で強調表示されています。コントローラーの表面には、左側に上、下、左、右の矢印ボタンがあり、右側には12時の位置から時計回りにX、A、B、Yボタンがあります。コントローラーの背面には、左側にL1、L2、R1、R2ボタンがあります。

コントローラーが押されましたか?ブール値ブロック#
<[Controller1 v] [▲ v] 押された?>

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

ボタン

チェックするボタン:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

例

起動すると、Xボタンを押している間は前進します。#
開始したとき
[Drive forward while X is pressed.]
ずっと
もし <[Controller1 v] [X v] 押された?> なら
[前進 v] へ走行
でなければ
走行停止
終わり
終わり

コントローラーの位置#

コントローラー位置レポーターブロックは、選択された軸に沿ったジョイスティックの位置を-100から100までの数値として返します。

ジョイスティックの周りの軸にラベルが付けられたVEX V5コントローラー。軸1と2は右ジョイスティックの周り、軸3と4は左ジョイスティックの周りです。

コントローラー位置報告ブロック#
([Controller1 v] [1 v] position :: sensing)

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

軸

報告するジョイスティック軸:

  • 1 — 右ジョイスティック水平軸
  • 2 — 右ジョイスティック垂直軸
  • 3 — 左ジョイスティック垂直軸
  • 4 — 左ジョイスティック水平軸

例

起動すると、左のジョイスティックを上に押し上げた状態で前進します。#
開始したとき
[Drive forward while the left joystick is pushed up.]
ずっと
もし <([Controller1 v] [3 v] position :: sensing) [math_greater_than v] [0]> なら
[前進 v] へ走行
でなければ
走行停止
終わり
終わり

行動#

コントローラーで振動機能をプレイ#

コントローラーで振動を再生スタックブロックは、コントローラーで振動パターンを再生します。

コントローラーのスタックブロックで振動を再生する#
[Controller1 v] で振動パターン [長い v] を再生

パラメータ

説明

パターン

コントローラーで再生する振動パターン:

  • 長 — 長めの振動
  • 短 — 短めの振動
  • パルス — オンオフの振動パターン

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

R1ボタンを押すと、コントローラーが短く振動します。#
[Controller1 v] ボタン [R1 v] が [押された v] されたとき :: hat events
[Controller1 v] で振動パターン [短い v] を再生

コントローラーの有効化/無効化#

コントローラーの有効化/無効化スタックブロックは、接続されているすべてのコントローラーに対して、[デバイス]メニューからコントローラーで設定されたアクションを有効または無効にします。

コントローラーのスタックブロックの有効化/無効化#
コントローラー [無効化 v]

パラメータ

説明

州

コントローラーで設定されたアクション状態:無効または有効。

例

起動すると、ロボットが前進している間、設定済みのコントローラーアクションが無効になります。#
開始したとき
[Disable Controller configured actions until the drive movement is done.]
コントローラー [無効化 v]
[前進 v] へ (6) [インチ v] 走行 ▶
コントローラー [有効化 v]

コントローラーのボタンが押されたとき#

コントローラーボタンが押されたときハットブロックは、選択されたコントローラーボタンが押されたり離されたりしたときに、アタッチされたスタックを実行します。

V5コントローラーの前面と背面。ボタンは黄色で強調表示されています。コントローラーの表面には、左側に上、下、左、右の矢印ボタンがあり、右側には12時の位置から時計回りにX、A、B、Yボタンがあります。コントローラーの背面には、左側にL1、L2、R1、R2ボタンがあります。

コントローラーのボタンが押されたとき、ハットブロック#
[Controller1 v] ボタン [▲ v] が [押された v] されたとき :: hat events

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

ボタン

チェックするボタン:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

ボタンの状態

添付されたスタックをトリガーするボタンイベント:押されたまたは離された。

例

R1ボタンを押すと、200ミリメートル前進します。#
[Controller1 v] ボタン [R1 v] が [押された v] されたとき :: hat events
[Drive forward when R1 is pressed.]
[前進 v] へ (200) [mm v] 走行 ▶

コントローラーの軸が変更されたとき#

コントローラーの軸が変更されたときハットブロックは、ジョイスティックの位置が選択された軸に沿って変化したときに、アタッチされたスタックを実行します。

ジョイスティックの周りの軸にラベルが付けられたVEX V5コントローラー。軸1と2は右ジョイスティックの周り、軸3と4は左ジョイスティックの周りです。

コントローラーの軸が変更されたとき、ハットブロック#
when [Controller1 v] axis [1 v] is changed :: hat events

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

軸

確認するジョイスティック軸:

  • 1 — 右ジョイスティック水平軸
  • 2 — 右ジョイスティック垂直軸
  • 3 — 左ジョイスティック垂直軸
  • 4 — 左ジョイスティック水平軸

例

ジョイスティックの位置がコントローラー軸3に沿って変化すると、200ミリメートル前方に移動します。#
when [Controller1 v] axis [3 v] is changed :: hat events
[Drive forward when the joystick's position changes along axis 3.]
[前進 v] へ (200) [mm v] 走行 ▶

画面#

コントローラの行列にカーソルを設定します#

コントローラーの行と列にカーソルを設定するスタックブロックは、コントローラー画面上の指定された行と列にカーソルを移動します。次に出力される値は、その位置に表示されます。

コントローラスタックブロックの行列にカーソルを設定します#
[Controller1 v] のカーソルを行 [1] 列 [1] に設定 :: custom-controller-inertial-timer

パラメータ

説明

行

コントローラー画面上でカーソルを移動させる行。

カラム

コントローラー画面でカーソルを移動させる列。

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

起動すると、コントローラー画面の2行目、1列目にテキストを印刷します。#
開始したとき
[Display a message on row 2.]
[Controller1 v] のカーソルを行 [2] 列 [1] に設定 :: custom-controller-inertial-timer
[Ready] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer

コントローラの次の行にカーソルを移動します#

コントローラーの次の行にカーソルを移動スタックブロックは、カーソルをコントローラー画面の次の行の1列目に移動します。次に印刷される値はその行に表示されます。

コントローラスタックブロックでカーソルを次の行に設定する#
[Controller1 v] のカーソルを次の行へ移動 :: custom-controller-inertial-timer

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

起動すると、コントローラー画面に2行のテキストを表示します。#
開始したとき
[Display two rows of text.]
[Row 1] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer
[Controller1 v] のカーソルを次の行へ移動 :: custom-controller-inertial-timer
[Row 2] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer

コントローラーの印刷精度を設定する#

コントローラーの印刷精度を設定するスタックブロックは、コントローラー画面に数値を印刷する際に表示される小数点以下の桁数を設定します。この設定は、このブロックが使用された後に印刷される数値に適用されます。

コントローラスタックブロックの印刷精度を設定する#
[Controller1 v] の表示精度を [0.1 v] に設定 :: custom-controller-inertial-timer

パラメータ

説明

精度

使用する印刷精度:

  • 1 — 小数点なし
  • 0.1 — 小数点1桁
  • 0.01 — 小数点2桁
  • 0.001 — 小数点3桁
  • 全桁 — 利用可能なすべての小数点桁

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

起動すると、コントローラー画面に小数点以下2桁まで表示された1/3が表示されます。#
開始したとき
[Display 1/3 with two decimals.]
[Controller1 v] の表示精度を [0.01 v] に設定 :: custom-controller-inertial-timer
([1] [math_division v] [3]) を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer

クリアコントローラー#

clear controllerスタックブロックは、コントローラー画面上のすべての行をクリアし、カーソルを最初の行に戻します。

コントローラスタックブロックをクリアする#
[Controller1 v] をクリア :: custom-controller-inertial-timer

パラメータ

説明

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

起動すると、テキストを出力し、待機した後、コントローラー画面をクリアします。#
開始したとき
[Clear the Controller screen after printing.]
[This will disappear...] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer
[2] 秒待つ
[Controller1 v] をクリア :: custom-controller-inertial-timer

コントローラーのクリア行#

コントローラーの行をクリアスタックブロックは、コントローラー画面上の単一の行をクリアします。

コントローラスタックブロックのクリア行#
[Controller1 v] の行 [1] をクリア :: custom-controller-inertial-timer

パラメータ

説明

行

コントローラー画面でクリアする行。

デバイス

使用するコントローラーは、「デバイス」ウィンドウで設定します。

例

起動すると、コントローラー画面の1行目をクリアします。#
開始したとき
[Clear one row on the Controller screen.]
[Row 1] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer
[Controller1 v] のカーソルを次の行へ移動 :: custom-controller-inertial-timer
[Row 2] を [Controller1 v] に表示 ▶ :: custom-controller-inertial-timer
[2] 秒待つ
[Controller1 v] の行 [1] をクリア :: custom-controller-inertial-timer