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

2014.12.19

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も簡単に使うことができましたね。 他にもおもしろそうなモジュールがあるので、今後いろいろ試していきます。

参考サイトなど