作業環境
- MacBook Air (13-inch, Mid 2012) & Mac OS 10.11
- Intel Edison Breakout Board & Poky (Yocto Project Reference Destro) 1.7.2
参考サイト
- 基本的なLチカ
- PWMの参考プログラム
- ピンの役割と名前の確認
- 上記のピンアサインメントを用途別に並び替えたもの
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 - (足の短い方)