先日の記事で書きましたwiringPiについて、今度はNode.jsに組み込んでRaspberryPiのLチカを試してみます。
ライブラリの使い方
まず、npmコマンドでNode.js用のwiringPiをインストールします。
Node.js内で使用する方法は、次の通りです。
■ライブラリ呼び出し
■GPIOを初期化
setup(gpio)
■モードを指定
モードには「INPUT」や「OUTPUT」を指定します。
■値の読み取り
■値の書き込み
状態には「HIGH」、「LOW」を指定します。HIGH=1、LOW=0になります。
Lチカしてみる
続いて、以前コチラの記事で書いたLチカのコードをwiringPi仕様に変えてみます。
var cnt = 0;
//GPIO02を指定して、出力に設定
wpi.wiringPiSetupGpio();
wpi.setup(‘gpio’);
wpi.pinMode(2,wpi.OUTPUT);
function Lchika() {
cnt ++;
if(cnt <= 20){
//cntが偶数だったら消灯、奇数だったら点灯
if(cnt%2==1) wpi.digitalWrite(2,wpi.HIGH);
else wpi.digitalWrite(2,wpi.LOW);
}
else{
wpi.digitalWrite(2,wpi.LOW);
//繰り返し処理をストップ
clearInterval(intervalId);
}
}
//Lchikaを1秒おきに繰り返し実行
intervalId = setInterval (Lchika, 1000);
ファイル操作がない分、ずいぶんとシンプルになりました。しかし、いざ実行してみると、、、うまく動きません。以下のように怒られました。
– expecting BCM2708 or BCM2709. Please report this to projects@drogon.net
どうやらハードウェアバージョンが合わないとのこと。
少し調べると、ファームウェアをダウングレードすれば解決するようです。
そこでコチラの通りrpi-updateコマンドでダウングレードしたところ、想定通りにLチカするようになりました。Node.js用のwiringPiが新しいファームウェアに対応していないようですね。
■こちらの記事も併せてお読みください!
RaspberryPi&Node.jsでLチカしてみる
wiringPiの使い方