GrovePiのインストールとNodeJSでLED点滅させるメモです。
RaspberryPi+Arduino UNO+GROVE – ベースシールド+Groveパーツでもいいのですが、なにぶん3機器になってしまいかさばる印象があるため、もう少し、コンパクトにならないかということでRaspberryPiとGroveがほぼ合体できるGrovePiを試してみます。
GrovePiの初期設定
こちらを購入しました。
インストール方法はGet Started with GrovePiにありますが、更にリンク先にあるインストール詳細。
Setting Up The Software – Dexter Industries
こちらのほうがより具体的です。まず一式ダウンロード。
cd /home/pi/Desktop sudo git clone https://github.com/DexterInd/GrovePi.git
フォルダ移動し、インストールスクリプトの権限を実行できるように設定。
cd /home/pi/Desktop/GrovePi/Script sudo chmod +x install.sh
インストールスクリプトを実行。
sudo ./install.sh
インストールが終わったらまずフォルダ移動。
cd /home/pi/Desktop/GrovePi/Software/Python
D4にGroveのLEDを挿して以下を実行します。
sudo python grove_led_blink.py
とコンソールが出て、このように点灯します。
まず、Pythonだと楽々。
NodeJSライブラリのインストール
続いて、NodeJSでも操作したいのでnode-grovepiライブラリをインストールします。
動かしたいフォルダで以下を発動。
npm install node-grovepi
これで準備完了です。
LEDを点灯してみる
npmの説明は大変あっさりしているので、GitHubにサンプルを見に行きます。
NodeJSはこのあたりです。
ふむ、LED点灯したいだけなんだけど、ちょっと追いにくいぞ?と思ったけど、いろいろ文献を追ってなんとかLED点灯できました。
// 主要クラスの読み込み var GrovePi = require('node-grovepi').GrovePi; var Commands = GrovePi.commands; var Board = GrovePi.board; var Digital = GrovePi.sensors.base.Digital; // LED点灯用のDigital入出力クラス console.log("-- start"); // 点灯用フラグ var blinkFlag = false; // ボードの読み込み部分 var board = new Board({ debug: true, onError: function(err) { console.log('Something wrong just happened') console.log(err) }, onInit: function(res) { if (res) { console.log('GrovePi Version :: ' + board.version()); var D4 = new Digital(4); // LEDの接続されたD4ポートの読み込み // 点滅コード setInterval(function () { if(blinkFlag){ D4.write(0); blinkFlag = false; } else { D4.write(1); blinkFlag = true; } }, 1000); } } }); // ボード読み込み開始(これが実質のスタート) board.init();
こちらを実行すると
node index.js
以下のように1秒ごとに点滅します。
LEDをリレーに切り替えても無事動きます。
リレーの反動で微妙に踊っています笑
ということで、これを、
- AWS IoTを使ってみたもの若干ハマったのでメモ – 1ft-seabass.jp.MEMO
- Wio Node経由でlittleBitsとIFTTT Do Button(Maker Channel)をつなげるメモ – 1ft-seabass.jp.MEMO
のノウハウを使って、GrovePiでややコンパクトになったシステムで、他デバイスと連携したり、AWS IoTを利用してデバイスを遠隔制御できそうです。
それでは、よき、RaspberryPi & Grove & NodeJS Lifeを!