pitwitterFacebookgoogle+はてなtfgは前々から、ラズベリーパイのGPIOをJavaScriptでいじりたかったのですが、いろいろ試行錯誤した結果、Node.jsを使うことにしました。言っても、ガッツリNode.jsを知らなくても大丈夫で、今回は非常にシンプルなコードしか使いません。(ファイルシステムをチョコっと使うくらい...)事前準備!今回、用意するのは...、ラズベリーパイ本体ジャンパーワイヤ(オスメス用)2本LED1個ブレッドボード1台となっています。(参考)ラズベリーパイ「電子工作入門キット」|Amazonあと、私のラズパイ環境なのですが、Google製の「Coder」を導入して、SSH接続でMacbookのターミナルから無線LANで操作しています。(参考)参考:「Coderを使って、ラズパイをSSH接続!」もし、同じように進めたい場合は、上記リンクを参考にしてみてください。特殊な環境ですが、Node.jsで操作する方法は、基本的には普通のラズベリーパイと同じことをするので、無理に合わせなくても問題ありません。本題の「Node.js」に関しては、Coderを使っていれば一緒にインストールされているのですが、自分でインストールする場合は、以下のリンクを参考にしてみてください。(参考)「Node.jsの準備」|うえぶまなぶLEDを光らせる基本操作!まずは、ターミナル上でラズパイのファイルを直接操作して、LEDを光らせてみたいと思います。予備知識として、LEDは「アノード(足が長い)」から「カソード(足が短い)」へ電流が流れるという点に注意しましょう。今回は25番ピンから電気が流れて、LEDが点灯しながらGNDへ抜けていくようになっています。イラストにすると、こんな感じ!(参考)「ラズベリーパイGPIO図」LEDを光らせるために、まずはラズパイのターミナル上から直接ファイルを操作したいと思います。ファイルへのアクセス権が必要なので、rootに移動します。suこれで、rootになりました。次に、以下のコマンドを入力して、25番ピンを「export」します。/sys/class/gpio/exportこれで、25番ピンを使えるようになりました。今回は、25番ピンから電気を出力するので「out」に設定します。光りましたか?LEDの「OFF」は、数字の「0」を書き込みます。/sys/class/gpio/gpio25/valueこれで消灯になりました。あとは、上記の方法で「1」と「0」を切り替えれば、LEDが点灯したり消灯したりするわけです。/sys/class/gpio/unexportこれでOK!再度、同じことをしたい場合は、もう一度最初の「export」から実行してみましょう。(最後に、元のユーザーに戻しておきましょう...)(参考)rootから元のユーザーに戻すには、「exit」と入力すればOKです。「Node.js」で光らせてみよう!それでは、先ほどと同じことを「Node.js」でやってみたいと思います。ラズパイのターミナル上から、「led.js」というファイルを作成して、以下のようなコードを書いて保存します。2000);あとは、このプログラムを実行すれば良いのですが、内容を少し解説しておきます。ファイルを操作する必要があるので、Node.jsの「fs」モジュールを使えるようにしておきます。require('fs');あとは、最初に実行したように、25番ピンを「export」し、出力「out」にしてからLEDの「ON(1)」を実行します。プログラミングらしいことをしているのは、以下のコードくらいでしょうか。2000);今回は、手っ取り早く「setTimeout」を使って、2秒後に中身が実行されるようにしてます。led.jsこれで、2秒間LEDが点灯して消えます。私の環境だと「sudo」が実行できなかったので、実行できるように設定しました。Node.jsのインストール先を調べます。node/opt/node/bin/node環境によって、パスは変わるので適宜読み替えてください...。最後に、以下のコマンドを実行。/usr/bin/nodeこれで、sudoが実行できるようになり、LEDが光りました!まとめ「Node.js」に関しては、ラズパイのGPIOを簡単に操作できるライブラリが多く公開されているので、このあたりを使った方が効率は良いかもしれません。Node.jsを使えば、ブラウザ上からGPIOを操作したりも実現できると思うので、このあたりに関しては、また次回に挑戦したいと思います。