Tibbo-Pi[P2] で L チカをする
Tibbo-Pi[P2](以下、Tibbo-Pi)を開封して何もさわっていない状態から、 L チカまで頑張りたいと思います。
一応注意ですが、
この記事は Tibbo-Pi の公式でもなんでもないので、
試す際は自己責任でよろしくお願いいたします。
1. Tibbo-Pi の ip を知る
まず、 Tibbo-Pi の ip がわからなければ、 L チカもプログラムもなにもできないので ip を知ります。
通常の RaspberryPi と同様に、これを知る方法はいくつかあるかと思います。
Tibbo-Pi に Ether ケーブルを接続し、電源をいれます。
DHCP から ip アドレスが払い出されれば、 この記事の方法などを使って、
LAN 内にいる RaspberryPi の ip アドレスを調べます。
ちなみに私は、別の RaspberryPi に SD カードを移して、固定の ip アドレスを付け、元に戻すという、面倒な作業をしました。
モニタを接続してもよいのですが、以下の画像のように HDMI のポートがふさがってしまっており、
USB などから接続する必要がありそうです( HDMI は使えない、ということなんでしょうか)。
私の Tibbo-Pi の ip アドレスは 192.168.1.188
ということがわかりました。
ip アドレスが分かれば、あとは ssh
でログインなどができるようになります( sshd
は自動で起動する設定になっているようです)。
[][] $ ssh pi@192.168.1.188
pi@192.168.1.188's password:
Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed May 23 18:22:18 2018 from 192.168.1.104
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
pi@raspberrypi:~ $
adduser
したり、いつもの環境を構築したり、しなかったりします。
2. Node-Red を見てみる
Node-Red
が立ち上がっていることを確かめます。
ブラウザで、http://{ip}:1880
にアクセスします(私の場合は、http://192.168.1.188:1880
)。
以下の画像のような空っぽの Node-Red
の開発画面が立ち上がるはずです。
立ち上がることが確認できたので、
次は、実際にブロックを基板に刺していこうと思います。
Tibbo-Pi をシャットダウンするときは、 poweroff
を実行し、
電源付近の緑色の LED が消灯するのを待ちます。
3. LED ブロックと、ボタンブロックを刺す
LED ブロックと、ボタンブロックは #00-3
のブロックを介して接続するようなので、その通りに接続します。
刺す向きがあるので、よく注意します。
スロット4
に LED 、 スロット5
にボタンを接続しました。
蓋を全て閉め、再度電源を入れます。
4. Node-Red でプログラムを組む
私が書いた、 L チカのプログラムです。
[{"id":"92e399cf.4e998","type":"tp-initialize","z":"da6502f5.d66bf8","name":"","make":true,"x":241,"y":77.5,"wires":[]},{"id":"6599e78b.988d4","type":"Tibbit-#38 in","z":"da6502f5.d66bf8","name":"","tpSlot":"S05","outputOnly":true,"communication":"GPIO","pinA":"IN_Edge","pinB":"other","pinC":"other","pinD":"other","connectedStatus":"start","host":"","x":258,"y":248.5,"wires":[["a95f40a.6f6f2c","2cf4499e.310166"]]},{"id":"2cf4499e.310166","type":"Tibbit-#39 out","z":"da6502f5.d66bf8","name":"","tpSlot":"S04","communication":"GPIO","pinA":"OUT","pinB":"other","pinC":"other","pinD":"other","connectedStatus":"start","host":"","x":654,"y":248.5,"wires":[]},{"id":"a95f40a.6f6f2c","type":"debug","z":"da6502f5.d66bf8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":468.5,"y":337,"wires":[]},{"id":"1b64f474.7764bc","type":"inject","z":"da6502f5.d66bf8","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":266,"y":183.5,"wires":[["84824c7c.9a8a1"]]},{"id":"84824c7c.9a8a1","type":"function","z":"da6502f5.d66bf8","name":"ON/OFF LED","func":"msg.payload = ~flow.get(\"flag\")||0;\nflow.set(\"flag\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":452,"y":182.5,"wires":[["2cf4499e.310166"]]},{"id":"d5b11be7.b2a1c","type":"inject","z":"da6502f5.d66bf8","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":425,"y":76.5,"wires":[["f335f79a.5f7098"]]},{"id":"f335f79a.5f7098","type":"function","z":"da6502f5.d66bf8","name":"init LED","func":"flow.set(\"flag\", 0);","outputs":1,"noerr":0,"x":586,"y":76,"wires":[[]]}]
上記のコードをコピーし、 Node-Red
にインポートします。
開発画面の 読み込み
-> クリップボード
を選択し、上記のコードを張り付け、 読み込み
します。
こんな感じになりました。
右上の デプロイ
を押すと、プログラムが開始します。
ボタンを押すと、 LED
が光りますね。
Node-Red
の timestamp
をクリックしても、 LED が光ります(画像左上の timestamp
の左側のボタン)。
無事光りました、以上で終わりです。
感想
余計なこと(電圧とか)を考えたり準備しなくても、
ブロックを刺すだけでセンサや外部デバイスを制御できる、という手軽さに驚きました。
また Node-Red
で GUI ライクにコードを作成できることからも、簡単に IoT を実現できる可能性を感じました。
個人的には、 Tibbo-Pi 同士なら(上記の L チカのプログラムのように)ハードを含んだコードの再利用性が効くことも、嬉しい点かと思います。