2015年5月7日木曜日

[Intel Edison]Node.JSからIOアクセスするテスト



Edison kit for Aduino上でNode.JSからIOにアクセスする手順を確認しておきます。

要はLチカですけどね。

intel-iot-devkit/mraaにある"Blink-IO.js"などもありますが、備忘録を兼ねて単純なものをアップしておきます。


Terminal -- bash -- 80x24
root@edison:~# vi blink.js
var mraa = require("mraa");
var led = new mraa.Gpio(13);
led.dir(mraa.DIR_OUT);
var on = false;
blink();
function blink() {
        led.write(on?1:0);
        on = !on;
        setTimeout(blink, 1000);
}

"node blink.js"

で実行出来ます。

実行すると、ボード上のD52のLEDが点滅します。
ボード上の13番とGNDにLEDを挿しても、同様に点滅します。

一応解説しておくと、一行目から。

var mraa = require("mraa"); // "mraaモジュール"の呼び出し

"mraa"ってのは、”IntelのIoT Dev Kitの一部として開発されているIOフレームワーク”。EdisonやらGalileoから、
・C
・C++
・Javascript(Node.js)
・Python
等の言語でIOアクセスする場合は必須となるので、Node.JSでゴニョゴニョする時には必ず使う事になります。

var led = new mraa.Gpio(13); //GPIOの13番を指定
led.dir(mraa.DIR_OUT); //GPIOからの出力に設定

enum Dir
Gpio Direction options
Enumerator
DIR_OUT 
Output. A Mode can also be set
DIR_IN 
Input
DIR_OUT_HIGH 
Output. Init High
DIR_OUT_LOW 
Output. Init Low

var on = false; //変数"on"の初期値を"false"に設定。
blink();

led.write(on?1:0); //GPIO13番へValueの書き込み
on = !on; //あまり美しくないけど、Booleanを反転してる
setTimeout(blink, 1000); //時間経過で関数実行ってだけ

以上でNode.jsでEdisonにアクセスしてLチカが可能となります。

0 件のコメント:

コメントを投稿