【Intel Edison Breakout board & Node.js】PWMを使ってLEDの明るさを制御


作業環境

  • MacBook Air (13-inch, Mid 2012) & Mac OS 10.11
  • Intel Edison Breakout Board & Poky (Yocto Project Reference Destro) 1.7.2

参考サイト

1. Intel XDK IoT Editionを使わずにLEDを点灯させる

以前はIntel XDK IoT Editionを使ってプログラムをしていたが、何故か使えない。
ちょうどよい機会なのでターミナルからプログラムを触ってみる。

まずはサンプルプログラムが格納されているフォルダに移動する。

terminal
cd /usr/share/mraa/examples/javascript

次にプログラムを作成してviで開く。

terminal
vi blink.js

次のプログラムを書き込み、保存してviを終了。

node.js
var mraa = require('mraa'); //require mraa
console.log('MRAA Version: ' + mraa.getVersion()); //write the mraa version to the Intel XDK console

var myOnboardLed = new mraa.Gpio(14);
myOnboardLed.dir(mraa.DIR_OUT); //set the gpio direction to output
var ledState = true; //Boolean to hold the state of LedperiodicActivity(); //call the periodicActivity functionfunction periodicActivity()
{
  myOnboardLed.write(ledState?1:0); //if ledState is true then write a '1' (high) otherwise write a '0' (low)
  ledState = !ledState; //invert the ledState
  setTimeout(periodicActivity,1000); //call the indicated function after 1 second (1000 milliseconds)
}

以下のコマンドでプログラムを実行する。

terminal
node blink.js

Breakout Boardの裏面にLEDを接続する

  • J18-1pin -> LED + (足の長い方)
  • J19-3pin -> LED - (足の短い方)

LEDが1秒おきに点滅する。(動画はプログラム修正前のものでJ18-2pinにつないでいる。)
直接ポートにLEDをつないでしまっているため、LEDの種類によっては電流が足りず光らない場合がある。(今回は赤色のものを使ったが、白色だと点かなかった。)

プログラムの終了はctrl + z

2. プログラムを変えてPWMでLEDの明るさを変える

別のプログラムを作成してviで開く。

terminal
vi ledpwm.js

次のプログラムを書き込み、保存してviを終了。(viの使い方は他のサイトを参照ください)

node.js
var mraa = require('mraa'); //require mraa
//Initialize PWM on Digital Pin #1 (D1) and enable the pwm pin
var pwm1 = new mraa.Pwm(14);
pwm1.enable(true);

//set the period in microseconds.
pwm1.period_us(2000);
var value = 0.0;

setInterval(function () {
    if (value >= 1.0) {
        value = 0.0;
    }
    value = value + 0.03;
    pwm1.write(value); //Write duty cycle value.
    console.log(pwm1.read());//read current value that is set before.
}, 100);

以下のコマンドでプログラムを実行する。

terminal
node ledpwm.js

Breakout Boardの裏面にLEDを接続する。

  • J18-1pin -> LED + (足の長い方)
  • J19-3pin -> LED - (足の短い方)

LEDが徐々に明るくなると同時にterminalにも数値が出力される。