2016年8月25日木曜日

Johnny-Fiveでマイコン制御35 - キーパッド

○Keypadオブジェクトを作成する
 キーパッドの入力データを取得するには、Keypadオブジェクトを使います。Keypadオブジェクトは、物理的なボードに接続された単一のキーパッドを表すオブジェクトです。

 Johnny-Fiveのサポートするキーパッドは、次のとおりです。
MPR121
MPR121QR2
Grove QTouch (AT42QT1070)
12 Button Keypad (I2Cバックパックが必要)

Keypadオブジェクトを作成するには、Keypadクラスのコンストラクタを使います。引数にオプションプロパティの値を含むオブジェクトを指定します。各キーパッド用のKeypadオブジェクトを作成するには、次のように書きます。

new five.Keypad({
  pin: "A0",
  length: 16
});
pins」プロパティにアナログピンの名前を、「length」プロパティにキー数を指定します。

new five.Keypad({
  controller: "VKEY",
pin: "A0"
});
 「pins」プロパティににアナログピンを、「controller」プロパティに「VKEY」を指定します。

 I2Cインターフェイスのキーパッドの場合は、「controller」プロパティにデバイス名を指定します。

// MPR121
new five.Keypad({
   controller: "MPR121"
});


MPR121キーパッド(SparkFun (Keypad))
new five.Keypad({
   controller: "MPR121_KEYPAD"
});

MPR121QR2シールド(SparkFun)
// MPR121QR2_SHIELD
new five.Keypad({
   controller: "MPR121QR2_SHIELD
});

QTOUCH / AT42QT1070(Seeed Studio)
new five.Keypad({
  controller: "QTOUCH", // または "AT42QT1070"
});

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

 Keypadオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
キーの状態が変化したときに発生する
hold
キーを500ミリ秒(既定値)以上押しっぱなしにしたときに発生する
down, press
キーが押されたときに発生する
up, release
キーが離されたときに発生する

 各インベントでは、次のプロパティを含むデータオブジェクトが放出されます。
プロパティ
説明
which
押されたキーの値
timestamp
イベント時のタイムスタンプ

 たとえば、MR121キーパッドで押されたキーの値を表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // Keypadオブジェクトを作成
  var keypad = new five.Keypad({
    controller: "MPR121_KEYPAD"
  });

  // キーが押されたら
  keypad.on("press", function(event) {
    // キーの値を表示
    console.log("Which button?", event.which);
  });
});
MR121キーパッド(SparkFun (Keypad))の場合、左上で「1」、右下で「12」が出力されます。キーの値は、任意に設定することができます。

キーパッドの各キーの任意の値を割り当てる
 キーパッドの各キーの任意の値を割り当てるには、「keys」プロパティを使います。値には、キーに割り当てる値の配列を指定します。
たとえば、MPR121キーパッドの任意の値を割り当てるには、次のように書きます。
new five.Keypad({
  controller: "MPR121_KEYPAD",
  keys: [
    ["!", "@", "#"],
    ["$", "%", "^"],
    ["&", "-", "+"],
    ["_", "=", ":"]
  ]
});

キーパッドのキーのホールドタイムを設定する
ホールドタイムは、「hold」イベントが発生するまで、キーを保持しなければならない時間です。既定値は500ミリ秒です。ホールドタイムを設定するには、オプションの「holdtime」プロパティを使います。値には、ミリ秒(ms)単位の時間を指定します。
 たとえば、MPR121キーパッドのホールドタイムを1000ミリ秒に設定するには、次のように書きます。
new five.Keypad({
   controller: "MPR121_KEYPAD"
   holdtime: 1000
});

キーパッドのキーの感度を設定する
 MPR121を使用したキーパッドのキーの感度を設定するには、「sensitivity」プロパティを使います。値には、押すとき(press)と、離すとき(release)の感度(0.001..00)を含むオブジェクトを指定します。
 たとえば、押すときの感度を「0.10」、離すときの感度を「0.05」に設定するには、次のように書きます。

new five.Keypad({
  controller: "MPR121_KEYPAD",
  sensitivity: {
    press: 0.10,
    release: 0.05,
  },
});


0 件のコメント:

コメントを投稿