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 のピン配置があべこべにならないようにすれば良さそうです。

image

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

image

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

image

うまくハメられました。

image

床に置くこんな感じ。壁に配置しようとするとつっかえそうです。今回は試すだけですからいいんです。

実は、当初の読みでは、逆側にくっついて出っ張りはするが、壁に配置しても L 字になって邪魔にならない気がしてたんですが、想像と違いました。何事もやってみないと分かりませんね。

Grove LED を D16 にくっつける

image

GROVE – LED 青 を用意します。

image

D16 につなぎます。

image

Grove LED もつなぎました。

Grove BASE HAT

Seeed Studio reTerminal で Node-RED を動かすメモ

自分のこちらの記事で 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 -

のコマンドを叩いて、

image

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

image

無事成功しました。やった。

Node-RED に node-red-contrib-grove-base-hat をインストール

Node-RED は 以下のノードをインストールします。

node-red-contrib-grove-base-hat (node) – Node-RED

先ほどインストールしたものが動いていればラッパーとして、このノードが動かしてくれます。

image

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

LED を光らせるフローを作ってみる

image

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データも置いておきます。

image

こちらをデプロイして実行します。

動かしてみる

いよいよ動かしてみます。

image

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

image

無事、点灯できました!

ひとまず、LED ですからデジタル出力レベルですが Seeed reTerminal の Node-RED で Grove Base HAT は動きそうです!また、今後いろいろなセンサーをつないで試してみます。

余談 : D5に最初挿したら最初 ON になっててびっくり→大丈夫

実は D16 の前に D5 に挿したら最初 ON になってて、びっくりしました。

image

でも、これも、先ほどのノードで ON ・ OFF を操作したら、ちゃんとできたので問題ありませんでした!

余談 : Raspberry Pi リボンケーブルを試したがメスコネクタ同士で合わず

image

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

image

無念のメスコネクタ同士でした!

Grove Base HAT についている上部の オスピン に挿しこんで頑張ってみようと思ったんですが、無理やりやってみたら、電気的に逆に挿しこんでしまい、パチっ!という音と共に reTerminal を再起動してしまいました。リボンケーブルで、どこがどのピンと対応して電気が流れてるか把握しづらそうなので、これはつなぐのに難度が高そうです。

たぶん L 字ピンでやったらうまくいきそうですが、ちょっと買ってみるか、家のあるもので試してみます。