[Edison]ボタンでLEDを点灯させる[mraa]

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

LEDとボタンを使いましょう

この記事では光センサーをつかってみました。
今回はセンサーでなく、ボタンを押したらLEDが光る仕組みをつくってみましょう。

動作環境

今回使用した動作環境は以下のとおりです。

  • OS : MacOS X 10.9.4
  • Edisonファームウェア : edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19
  • Grove : Grove Starter kit

ここでやっているように、初期セットアップとwifiセットアップは終わらせておいてください。
また、Groveのベースシールドはここを見て装着しておきましょう。

LEDソケットとボタンを装着

Grove Starter kitのボタンモジュールをA0に、LEDソケットに赤色LEDをつけてD8に接続します。
edison-led

プログラムを作成

シリアル接続でEdisonにログインし、適当な場所に下記ファイルを作成しましょう。
※xdkで作成 or scpで転送でもOK

//app.js
var m = require('mraa');

var button = new m.Aio(0);
var led = new m.Gpio(8);
led.dir(m.DIR_OUT);

setInterval(function(){
    var buttonValue = button.read();
    if(buttonValue === 0) {
     console.log("off");
     led.write(0);
    } else {
     console.log("on");
     led.write(1);
    }
},1000);

このプログラムでは1秒毎にボタンの状態を取得します。
そのときにボタンが押されていたら(取得した値が0以外)LED点灯、そうでなければLEDを消灯させます。

プログラムを実行

nodeコマンドで上記プログラムを実行してみます。
ボタンを押した状態だとLED点灯、離した状態だと消灯します。(1秒間隔なので多少遅延はありますが)

root@edison:~# node app.js
・
・

まとめ

ボタンやLEDも簡単に使うことができましたね。
他にもおもしろそうなモジュールがあるので、今後いろいろ試していきます。

参考サイトなど