ブロック上にセンサーや回路を加えられる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ノードがあり、すぐに操作することができます。
本体を起動してみる
早速はじめましょう。
今回は試用版ということで、本来はひとつひとつ買うべき様々なパーツ類が入ったものを体験しました。
Tibbo-Pi P3 ベーシックキットにおいての開発環境に書いてあるとおりで、
TIbbo-Piのベーシックセットの場合、開発環境設定済みのmicroSDカードが付属しています。
その場合、Node-RED、Node.js、Python3のインストール、自動起動の設定が済んでおり、Tibbo-PiにACアダプタを接続することで直ぐに利用する事ができます。
とのことで、中身を見つつ進めていきます。
付属の六角レンチでまず外側を開けていきます。
内側もブロックを抑える構造になっているので、
自宅にあったプラスドライバーで緩めて開けていきます。
パカっと。
付属のACアダプターを挿します。ここは普段のRaspberry Piと違って、全体の挙動をしっかりさせるために、安定供給させていると推測します。産業用Raspberry Pi Revolution Pi Core 3が24V DC電源だけど頑張ってつなげるメモと似たような仕組みを感じます。
マウスとHDMIを挿し込んで起動しました。
いつものRaspberry Piの起動!
無事起動しました。
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 で起動することができます。
ということで、いい感じに起動しました。ああ、ホッとする。
Node-REDのバージョンは、かなり最新の0.19.2です。
Tibbo-Pi ノードがこれまた親切
すでに Tibbo-Pi ノードが入っています。
マウスを乗せるとそれぞれの機能がバルーン表示されます。これがまた親切。例えば、この照度センサの場合は 28番のブロックということを示しています。
直感的ですね。少々、私もNode-REDでのノード自作をしたことがあるんですが、こういったナビゲーションの良さまで行き届いているのはスゴいです。
Node-REDノードを動かすための準備
では早速動かしていきましょう。
LED3つを配置する
まず、Tibbo-PiにLEDのブロックを配置していきます。
こちらを用意します。
この使い方を参考にします。
Tibbit #00-3 と Tibbit #39を挿入します。
色は任意。#39-1から4のどれもノードの使い方は同じです。
こちらにあるとおりで、
00-3 パーツも用意します。
NG集:最初 00-3を逆に刺してた
なんとなくノリでやってしまい、最初は逆に挿して試してしまいました。
これはだめ。
これが正解!
間違っている間、逆に挿しているわけで、そんなときでも電流的に壊れないのはありがたかったです。
あと、最初は、手で引き抜くのがめちゃくちゃ怖かったんですが、これも付属のピンセットでやったら安全に引き抜けました。
こちらです。
これがあると、ブロックが密着しているスペースでも、垂直に引き抜けて、ピンを曲げたり壊してしまう心配が少なくなります。考えられてる!
Node-REDでフローを組む
フローを組みます。#39 LED のチュートリアルに書いてあります。
初期化ノードを置く
tp initialize というノードは必須なので置いていきます。
これが重要で、このノードがないと、エラーが出たりで動きません。ちゃんと初期化しましょう。
LEDノードも入れて仕上げる
こちらを使って組んでいきます。出来上がったのがこちらです。
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":[]}]
実際に動かしてみるとこのように点灯しました!
うーん、簡単!手軽!
ふりかえり
ということで、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を!