Edited at

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

More than 3 years have passed since last update.


作業環境


  • 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の種類によっては電流が足りず光らない場合がある。(今回は赤色のものを使ったが、白色だと点かなかった。)

【Intel Edison Breakout board】Lチカ

プログラムの終了は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にも数値が出力される。

【Intel Edison Breakout Board】PWMでLED制御

image