GrovePiのインストールとNodeJSでLED点滅させるメモ

GrovePiのインストールとNodeJSでLED点滅させるメモです。

RaspberryPi+Arduino UNO+GROVE – ベースシールド+Groveパーツでもいいのですが、なにぶん3機器になってしまいかさばる印象があるため、もう少し、コンパクトにならないかということでRaspberryPiとGroveがほぼ合体できるGrovePiを試してみます。

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

grovepi-first-contact_2

とコンソールが出て、このように点灯します。

grovepi-first-contact_3

まず、Pythonだと楽々。

NodeJSライブラリのインストール

続いて、NodeJSでも操作したいのでnode-grovepiライブラリをインストールします。

動かしたいフォルダで以下を発動。

npm install node-grovepi

これで準備完了です。

LEDを点灯してみる

npmの説明は大変あっさりしているので、GitHubにサンプルを見に行きます。

marcellobarile/GrovePi: GrovePi is an open source platform for connecting Grove Sensors to the Raspberry Pi.

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をリレーに切り替えても無事動きます。

grovepi-first-contact_4

リレーの反動で微妙に踊っています笑

ということで、これを、

のノウハウを使って、GrovePiでややコンパクトになったシステムで、他デバイスと連携したり、AWS IoTを利用してデバイスを遠隔制御できそうです。

それでは、よき、RaspberryPi & Grove & NodeJS Lifeを!