センサーや仕組みをブロック的に加えられるTibbo-Pi Raspberry Piで複数のLEDを光らせたメモ

ブロック上にセンサーや回路を加えられるTibbo-Pi Raspberry PiでLEDを光らせたメモです。

コー・ワークス様よりTibbo-Piを使わさせてもらう機会があり、複数のLEDを光らすまでにつまづいたところや、気づいたことをまとめておきます。

Tibbo-Pi

Tibbo-Piはこちらです。

Tibbo-Pi | ティーボパイ | こころ踊るIoTデバイス

「試作だけでなく、そのまま設備機器として稼働し続けられる産業用IoTエッジ&ゲートウェイデバイスが欲しい。」
「量産するまでではないけれど、自由に開発できる複数台のIoTエッジ&ゲートウェイデバイスが欲しい。」
「仕様を少しずつ変えたIoTエッジ&ゲートウェイデバイスを複数作りたい。」

とのことで、私としては「仕様を少しずつ変えたIoTエッジ&ゲートウェイデバイスを複数作りたい。」のところに惹かれました。

ドキュメントが豊富、Node-REDで動く

そして

Tibbo-Pi アーカイブ | Tibbo-Pi | ティーボパイ

にあるとおりで、ドキュメントが豊富。なによりも、Node-REDと密に連携しておりTibbo-Piノードがあり、すぐに操作することができます。

本体を起動してみる

早速はじめましょう。

image

今回は試用版ということで、本来はひとつひとつ買うべき様々なパーツ類が入ったものを体験しました。

image

Tibbo-Pi P3 ベーシックキットです。

Tibbo-Pi P3 ベーシックキットにおいての開発環境に書いてあるとおりで、

TIbbo-Piのベーシックセットの場合、開発環境設定済みのmicroSDカードが付属しています。

その場合、Node-RED、Node.js、Python3のインストール、自動起動の設定が済んでおり、Tibbo-PiにACアダプタを接続することで直ぐに利用する事ができます。

とのことで、中身を見つつ進めていきます。

image

付属の六角レンチでまず外側を開けていきます。

image

内側もブロックを抑える構造になっているので、

image

自宅にあったプラスドライバーで緩めて開けていきます。

image

パカっと。

image

付属のACアダプターを挿します。ここは普段のRaspberry Piと違って、全体の挙動をしっかりさせるために、安定供給させていると推測します。産業用Raspberry Pi Revolution Pi Core 3が24V DC電源だけど頑張ってつなげるメモと似たような仕組みを感じます。

image

マウスとHDMIを挿し込んで起動しました。

image

いつものRaspberry Piの起動!

image

無事起動しました。

image

Node-REDも居ます!

Node-REDを動かします

ということで、Node-REDに触れていきます。

Tibbo-Pi P3 ベーシックキットにおいての開発環境に書いてあるとおりで、

TIbbo-Piのベーシックセットの場合、開発環境設定済みのmicroSDカードが付属しています。

その場合、Node-RED、Node.js、Python3のインストール、自動起動の設定が済んでおり、Tibbo-PiにACアダプタを接続することで直ぐに利用する事ができます。

とのことで、最初の起動チェックでHDMIでディスプレイにつなぎましたが、普段はTibbo-PiのローカルIPを把握していれば、Node-REDは Tibbo-PiのローカルIP:1880 で起動することができます。

image

ということで、いい感じに起動しました。ああ、ホッとする。

image

Node-REDのバージョンは、かなり最新の0.19.2です。

image

Tibbo-Pi ノードがこれまた親切

すでに Tibbo-Pi ノードが入っています。

image

マウスを乗せるとそれぞれの機能がバルーン表示されます。これがまた親切。例えば、この照度センサの場合は 28番のブロックということを示しています。

image

直感的ですね。少々、私もNode-REDでのノード自作をしたことがあるんですが、こういったナビゲーションの良さまで行き届いているのはスゴいです。

Node-REDノードを動かすための準備

では早速動かしていきましょう。

LED3つを配置する

まず、Tibbo-PiにLEDのブロックを配置していきます。

image

こちらを用意します。

#39 LED のチュートリアル

この使い方を参考にします。

image

Tibbit #00-3 と Tibbit #39を挿入します。
色は任意。#39-1から4のどれもノードの使い方は同じです。

こちらにあるとおりで、

image

00-3 パーツも用意します。

NG集:最初 00-3を逆に刺してた

なんとなくノリでやってしまい、最初は逆に挿して試してしまいました。

image

これはだめ。

image

これが正解!

間違っている間、逆に挿しているわけで、そんなときでも電流的に壊れないのはありがたかったです。

あと、最初は、手で引き抜くのがめちゃくちゃ怖かったんですが、これも付属のピンセットでやったら安全に引き抜けました。

image

こちらです。

image

これがあると、ブロックが密着しているスペースでも、垂直に引き抜けて、ピンを曲げたり壊してしまう心配が少なくなります。考えられてる!

Node-REDでフローを組む

フローを組みます。#39 LED のチュートリアルに書いてあります。

初期化ノードを置く

image

tp initialize というノードは必須なので置いていきます。

image

これが重要で、このノードがないと、エラーが出たりで動きません。ちゃんと初期化しましょう。

LEDノードも入れて仕上げる

image

こちらを使って組んでいきます。出来上がったのがこちらです。

image

JSONフローとしても置いておきます。

js
[{"id":"ab210fb4.f28078","type":"tp-initialize","z":"de1ce01d.6122a","name":"","make":true,"connect":false,"x":340,"y":220,"wires":[]},{"id":"3022a8f2.9b6b68","type":"Tibbit-#39 out","z":"de1ce01d.6122a","name":"","tpSlot":"S06","communication":"GPIO","pinA":"OUT_OD","pinB":"other","pinC":"other","pinD":"other","connectedStatus":"start","host":"","x":620,"y":280,"wires":[]},{"id":"ae18a8ea.cfac1","type":"inject","z":"de1ce01d.6122a","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":330,"y":280,"wires":[["3022a8f2.9b6b68","8a35b7a9.943af","c8f6846a.3e2fa"]]},{"id":"8a35b7a9.943af","type":"Tibbit-#39 out","z":"de1ce01d.6122a","name":"","tpSlot":"S07","communication":"GPIO","pinA":"OUT_OD","pinB":"other","pinC":"other","pinD":"other","connectedStatus":"start","host":"","x":620,"y":360,"wires":[]},{"id":"c8f6846a.3e2fa","type":"Tibbit-#39 out","z":"de1ce01d.6122a","name":"","tpSlot":"S08","communication":"GPIO","pinA":"OUT_OD","pinB":"other","pinC":"other","pinD":"other","connectedStatus":"start","host":"","x":620,"y":440,"wires":[]},{"id":"87a20501.9f0bd8","type":"comment","z":"de1ce01d.6122a","name":"黄LED","info":"","x":770,"y":280,"wires":[]},{"id":"eb760adb.3762c","type":"comment","z":"de1ce01d.6122a","name":"赤LED","info":"","x":770,"y":360,"wires":[]},{"id":"c54c02ad.9b8be","type":"comment","z":"de1ce01d.6122a","name":"青LED","info":"","x":770,"y":440,"wires":[]}]

実際に動かしてみるとこのように点灯しました!

image

うーん、簡単!手軽!

ふりかえり

ということで、Tibbo-Pi動かしてみました。ここまで、1時間程度でたどりついて、Tibbo-Piの設計思想や手軽さを感じることができました。この記事にも書きましたが、少々つまづくところはありましたが、おおむねスムーズに進行できました。

使ってみてTibbo-Piは、ハードウェアの部分はブロック的な仕組み&組み合わせで使いやすさを担保し、データにするまでのソフトウェアの部分はNode-REDのTibbo-Piノードが担当していると私は解釈しています。

これは、私もよく使うSeeed Studio社のGroveシリーズの場合は、Groveとしては、まずハードの使いやすさに特化しつつ、それをデータにするまでのソフトウェアの部分は、Arduino Cであったり、Raspberry Pi Pythonであったり、橋渡しする言語に任されています、Groveの場合は、各Groveのドキュメントのサンプルコードが充実して多様性を提供しています。

Tibbo-Piはまた違ったアプローチで楽しいですね。というのも、実際に扱ってみると気づくのがハードウェア部分でもソフトウェア部分でも行き来しやすさ。
ハードウェア部分は目視で確認しながら進められ、ソフトウェア部分はGUIでビジュアルプログラミングできるNode-REDの特性を生かして、これまた目視で確認しながら進められる。これは、はじめてデバイスを触るときに安心感が高まると思いました!

それでは、よきTibbo-Pi Lifeを!