Seeed reTerminal の Node-RED で Grove Base HAT を動かすメモ
この記事は Seeed UGのカレンダー | Advent Calendar 2021 - Qiita の 10 日目の記事です。
Seeed reTerminal の Node-RED で Grove Base HAT を動かすメモです。
ピン配置としてはちゃんと挿せそう
reTerminal には Raspberry Pi の 40 ピンの端子が出ているんですが、もしも、こちらが少しでも独自カスタマイズが入っていると Grove Base HAT 側では変更のしようがないので、つながりません。
ということで、チェック。reTerminal にのピン配置はこちらに載っています。
Getting Started with reTerminal - Seeed Wiki
はい。問題ない模様ですね。
さっそくつないでみる
先ほどの図の感じですと、1・2・39・40 のピン配置があべこべにならないようにすれば良さそうです。

ちょうど reTerminal のタッチスクリーンを上側にしたときの、こちらの窪みが先ほどの図にも書いてあるので目印になりました。

Grove Base HAT をみてみると、ピンの部分に親切に 1 と 39 と刻印されているので合わせやすかったです。

うまくハメられました。

床に置くこんな感じ。壁に配置しようとするとつっかえそうです。今回は試すだけですからいいんです。
実は、当初の読みでは、逆側にくっついて出っ張りはするが、壁に配置しても L 字になって邪魔にならない気がしてたんですが、想像と違いました。何事もやってみないと分かりませんね。
Grove LED を D16 にくっつける

GROVE - LED 青 を用意します。

D16 につなぎます。

Grove LED もつなぎました。
Grove BASE HAT
https://www.1ft-seabass.jp/memo/2021/10/25/seeed-studio-reterminal-node-red-install/
自分のこちらの記事で Node-RED はセットアップ済みです。
Grove Base Hat for Raspberry Pi - Seeed Wiki こちらの記事を参考にインストールします。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
のコマンドを叩いて、

色々とインストールされて・・・

無事成功しました。やった。
Node-RED に node-red-contrib-grove-base-hat をインストール
Node-RED は 以下のノードをインストールします。
node-red-contrib-grove-base-hat (node) - Node-RED
先ほどインストールしたものが動いていればラッパーとして、このノードが動かしてくれます。

パレットにノードを追加する を参考に、右上のメニューをクリック > パレットの管理 > ノードの追加 を選択して reTerminal を検索したら、node-red-contrib-grove-base-hat ノードが出てくるので追加します。
LED を光らせるフローを作ってみる

inject ノードと grove-led ノードでこのようなシンプルなフローを作ります。
[
{
"id": "f3ba0e3c4e87d0e0",
"type": "grove-led",
"z": "10ff09cbdba1fa58",
"name": "",
"port_number": "16",
"x": 800,
"y": 300,
"wires": []
},
{
"id": "71fd79e001cfbb20",
"type": "inject",
"z": "10ff09cbdba1fa58",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 550,
"y": 280,
"wires": [
[
"f3ba0e3c4e87d0e0"
]
]
},
{
"id": "ea4249180757dadb",
"type": "inject",
"z": "10ff09cbdba1fa58",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "1",
"payloadType": "num",
"x": 550,
"y": 360,
"wires": [
[
"f3ba0e3c4e87d0e0"
]
]
}
]
フローのインポート 機能でインポートできるフローJSONデータも置いておきます。

こちらをデプロイして実行します。
動かしてみる
いよいよ動かしてみます。

さきほどの 2 つの inject ノード交互にクリックしてみます!

無事、点灯できました!
ひとまず、LED ですからデジタル出力レベルですが Seeed reTerminal の Node-RED で Grove Base HAT は動きそうです!また、今後いろいろなセンサーをつないで試してみます。
余談 : D5に最初挿したら最初 ON になっててびっくり→大丈夫
実は D16 の前に D5 に挿したら最初 ON になってて、びっくりしました。

でも、これも、先ほどのノードで ON ・ OFF を操作したら、ちゃんとできたので問題ありませんでした!
余談 : Raspberry Pi リボンケーブルを試したがメスコネクタ同士で合わず

reTerminal と Grove Base HAT の接続部を、もうちょい柔軟にならないかと、40P リボンケーブル(Raspberry Pi typeB+対応) で、うまくやれないか試してみたんですが、

無念のメスコネクタ同士でした!
Grove Base HAT についている上部の オスピン に挿しこんで頑張ってみようと思ったんですが、無理やりやってみたら、電気的に逆に挿しこんでしまい、パチっ!という音と共に reTerminal を再起動してしまいました。リボンケーブルで、どこがどのピンと対応して電気が流れてるか把握しづらそうなので、これはつなぐのに難度が高そうです。
たぶん L 字ピンでやったらうまくいきそうですが、ちょっと買ってみるか、家のあるもので試してみます。