Raspberry Piにapt-getからNode.jsをインストールすると古いバージョンになります。ARMでNode.jsをソースからビルドするのは大変( Error compiling v0.10.30 on Raspberry Pi Model B)なのでビルド済みのバイナリからインストールします。node-armのサイトではv0.10.36の最新バージョンまで公開されていますが、今回はNode.jsからarm-piのバイナリをダウンロードして使います。
Node.jsのインストール
Node.jsに公開されているarm-piはWhy no more arm-pi binary release at http://nodejs.org/dist/ ?にissueがあるように手動で公開しているようです。v0.10.28が最新でした。ビルド済みのバイナリをダウンロードして/opt/node
にインストールします。
$ wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz
$ tar zxvf node-v0.10.28-linux-arm-pi.tar.gz
$ sudo mv node-v0.10.28-linux-arm-pi /opt/node
環境変数PATHにNode.jsを追加します。
$ vi /home/pi/.bashrc
export PATH=/opt/node/bin:$PATH
$ source ~/.bashrc
バージョンを確認します。
$ node -v
v0.10.28
$ npm -v
1.4.9
sudoでnpmコマンドが実行できるようにシムリンクを作成します。
$ sudo ln -s /opt/node/bin/node /usr/bin/node
$ sudo ln -s /opt/node/bin/npm /usr/bin/npm
Cylon.jsでLチカ
まずはプロジェクトを作成します。
$ mkdir -p ~/node_apps/mqtt-led
$ cd !$
package.jsonに、Raspberry Piアダプタのcylon-raspiを追加します。
{
"name": "mqtt-led",
"version": "0.0.1",
"private": true,
"dependencies": {
"cylon-raspi": "0.15.0"
},
"scripts": {"start": "node app.js"}
}
npm install
します。
$ npm install
Cylon.jsのRaspberry Piのページにあるサンプルを実行します。
var Cylon = require("cylon");
Cylon.robot({
connections: {
raspi: { adaptor: 'raspi' }
},
devices: {
led: { driver: 'led', pin: 11 }
},
work: function(my) {
every((1).second(), my.led.toggle);
}
}).start();
npm start
をroot権限で実行するとLチカが始まります。
$ sudo npm start