2016年8月14日日曜日

Johnny-Fiveでマイコン制御31 - ジョイスティック

○Joystickオブジェクトを作成する
 ジョイスティックのデータを取得するには、Joystickオブジェクトを使います。Joystickオブジェクトは、物理的なボードに接続された単一のジョイスティックを表すオブジェクトです。Joystickオブジェクトを作成するには、Joystickクラスのコンストラクタを使います。引数には、X用とY用のアナログピンの名前を含むオブジェクトを指定します。
たとえば、一般的な2軸のアナログジョイスティックを使用するためJoystickオブジェクトを作成するには、次のように書きます。
new five.Joystick({
  // [ x, y ]
  pins: ["A0", "A1"]
});

・配線図


 Arduino Esploraを使用する場合は、「controller」プロパティに「ESPLORA」と指定します。
new five.Joystick({
  controller: "ESPLORA"
});

 その他、指定できるオプションは、次のとおりです
プロパティ
タイプ

規定値
invert
真偽値
trueで両方の軸を反転
false
invertX
真偽値
trueでX軸を反転
false
invertY
真偽値
trueでY軸を反転
false

Sparkfunのジョイスティックシールドを使用する場合は、Y軸を反転します。
new five.Joystick({
  pins: ["A0", "A1"],
  invertY: true
});

 「invert」「invertX」「invertX」の設定による軸の状態については、次のWebページの項目を参照してください。

ジョイスティックのデータを取得する
ジョイスティックのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)

 Joystickオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
ジョイスティックの軸の値が変更されるたび発生する
data
25ミリ秒間隔で発生する

取得した値は、次のプロパティで参照することができます。
プロパティ
説明
x
X軸の値
y
Y軸の値

 たとえば、「change」イベントでデータを取得し、ジョイスティックのXY軸の値を表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
  // Joystickオブジェクトを作成
  var joystick = new five.Joystick({
    //   [ x, y ]
    pins: ["A0", "A1"]
  });

  // データを取得
  joystick.on("change", function() {
    console.log("Joystick");
    console.log("  x : ", this.x);
    console.log("  y : ", this.y);
    console.log("--------------------------------------");
  });
});


0 件のコメント:

コメントを投稿