2016年8月3日水曜日

Johnny-Fiveでマイコン制御12 - LED

○Ledオブジェクトを作成する
 LEDを制御するには、Ledオブジェクトを使います。Ledオブジェクトは、物理的なボード上に接続されているLEDを表すオブジェクトです。Ledオブジェクトを作成するには、Ledクラスのコンストラクタを使います。引数にはLEDを接続するピンの番号を指定します。
new five.Led(ピン番号);

 オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Led({
  pin: ピン番号
});


○LEDを点灯/消灯する
 LEDを点灯するには「on」メソッドを、LEDを消灯するには「off」メソッドを使います。また、「toggle」メソッドを使うと、現在の状態を反転することができます。
 たとえば、13ピンに接続したLEDを点灯/消灯するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(13ピンをLED制御用に設定)
  var led = new five.Led(13);
  // LEDをオン
  led.on();
  // 5(5000ミリ秒)後にLEDをオフ(消灯)
  this.wait(5000, function() {
    led.off();
  });

  // 10(10000ミリ秒)後に現在の状態を反転(この例ではLEDオン)
  this.wait(10000, function() {
    led.toggle();
  });
})

・配線図


○LEDを点滅する
 LEDを点滅するには、「strobe」または「blink」メソッドを使います。「blink」は「strobe」のエイリアスです。間隔はミリ秒(ms)単位で指定します。コールバック関数はLEDがオン/オフするたびに呼び出されます。コールバック関数はオプションで省略できます。
strobe(間隔, コールバック関数)
blink(間隔, コールバック関数)

 たとえば、13ピンに接続したLED500ミリ秒間隔で点滅させるには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(13ピンをLED制御用に設定)
  var led = new five.Led(13);
  // LED500ミリ秒間隔で点滅
  led.blink(500);
});

○LEDの明るさを調整する
 LEDの明るさを調整するには、「brightness」メソッドを使います。明るさは0(オフ)255(最大)の整数値を指定します。「brightness」メソッドは、PWMピンに接続されたLEDで動作します。
brightness(明るさ)

 たとえば、11ピンに接続されたLEDを、明るさ100で点灯するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11);
  // 明るさを100に設定
  led.brightness(100);
});

・配線図
 

○LEDPWMで点滅する
 LEDPWMで点滅するには、「pulse」メソッドを使います。間隔にはLEDを完全にオフにするまでの時間をミリ秒単位で指定します。LEDは、設定した時間をかけて徐々に暗くなり、完全にオフになると再びオンになり点滅します。コールバック関数はLEDがオン/オフ(完全にオフ)するたびに呼び出されます。コールバック関数はオプションで省略できます。「pulse」メソッドは、PWMピンに接続されたLEDで動作します。
pulse(間隔, コールバック関数)

 たとえば、11ピンに接続されたLED500ミリ秒間隔で徐々に暗くして、点滅させるには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11);
  // 500msかけてLEDを徐々にオフ
  led.pulse(500);
});


○LEDの点滅動作を停止する
 「blink」「strobe」「pulse」メソッドなどによる点滅動作を停止するには、「stop」メソッドを使います。
 たとえば、10秒後にLEDの点滅動作を停止し、LEDをオフにするには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11)
  // LED500ミリ秒間隔で点滅
  led.blink(500);

  // 10(10000ミリ秒)後に点滅動作を停止し、LEDをオフ(消灯)
  this.wait(10000, function() {
    led.stop().off();
  })
});

3.7 LEDをフェードイン/フェードアウトする
 LEDをフェードインで点灯されるには「fadeIn」メソッドを、フェードアウトするには「fadeOut」メソッドを使います。間隔には、フェードイン/フェードアウトにかける時間を、ミリ秒単位で指定します。コールバック関数はLEDが完全にオン/オフするたびに呼び出されます。コールバック関数はオプションで省略できます。「fadeIn」「fadeOut」メソッドは、PWMピンに接続されたLEDで動作します。
fadeIn(時間,コールバック関数)
fadeOut(時間, コールバック関数)

 たとえば、11ピンに接続されたLED1(1000ミリ秒)かけてフェードインし、5(5000ミリ秒)後に1秒かけてフェードアウトするには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11);
  // LED1000ミリ秒かけてフェードイン
  led.fadeIn(1000);
  // 5(5000ミリ秒)後に
  this.wait(5000, function() {
    // LED1000ミリ秒かけてフェードアウト
    led.fadeOut(1000);
  });
});


○LEDを設定した明るさにフェードする
 LEDを設定した明るさにフェードするには、「fade」メソッドを使います。明るさは0(オフ)255(最大)の整数値を、時間にはフェードにかける時間をミリ秒単位で指定します。コールバック関数はLEDが完全にオン/オフするたびに呼び出されます。コールバック関数はオプションで省略できます。「fade」メソッドは、PWMピンに接続されたLEDで動作します。
fade(明るさ, 時間, コールバック関数)

 たとえば、11ピンに接続されたLED2(2000ミリ秒)かけて明るさ128までフェードするには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11);
  // LED2000ミリ秒かけて明るさ128までフェードイン
  led.fade(128, 2000);
});


○LEDをアニメーションで点灯する
 LEDをアニメーションで点灯するには、「pulse」メソッドの引数にアニメーションのオプションを指定します。
 たとえば、11ピンに接続されたLEDをアニメーションで点灯するには、次のように書きます。
var five = require("johnny-five")
var board = new five.Board();

board.on("ready", function() {
  // ledオブジェクトを作成(11ピンをLED制御用に設定)
  var led = new five.Led(11);
  // オプションのアニメーション設定でLEDを点灯
  led.pulse({
    easing: "linear",
    duration: 3000,
    cuePoints: [0, 0.2, 0.4, 0.6, 0.8, 1],
    keyFrames: [0, 10, 0, 50, 0, 255],
    onstop: function() {
      console.log("Animation stopped");
    }
  });

  // 12(12000ミリ秒)後にパルス出力を停止し、LEDをオフ(消灯)
  this.wait(12000, function() {
    led.stop().off();
  });
});
アニメーションのオプションの詳細については、こちらを参照してください。

○LEDをアニメーションでフェードする
 LEDをアニメーションでフェードするには、「fade」メソッドの引数にアニメーションのオプションを指定します。
 たとえば、11ピンに接続されたLEDをアニメーションでフェードするには、次のように書きます。
var five = require("johnny-five")
var board = new five.Board();

board.on("ready", function() {
  var led = new five.Led(11);
  // オプションのアニメーション設定でLEDをフェードイン
  led.fade({
    duration: 1000,
    cuePoints: [0, 0.2, 0.4, 0.6, 0.8, 1],
    keyFrames: [0, 250, 25, 150, 100, 125],
    onstop: function() {
      console.log("Animation stopped");
    }
  });

  // 2(2000ミリ秒)TLEDをフェードアウト
  this.wait(2000, function() {
    led.fadeOut();
  });
});

アニメーションのオプションの詳細については、こちらを参照してください。

0 件のコメント:

コメントを投稿