LoginSignup
0
0

More than 1 year has passed since last update.

Node-RED MCU EditionでLチカしてみた。

Last updated at Posted at 2022-10-10

はじめに

Node-RED MCU Editionの環境構築が終わり、簡単なフローが動作するようになったので、次はLチカを試してみます。

環境構築と動作確認については以下を参照してください。

前提条件

  • Intel MacBook Pro (2017)
  • macOS Big Sur (バージョン 11.7)
  • M5Stick-C
    • ボタンA (GPIO37)
    • ボタンB (GPIO39)
    • LED (GPIO10)

スクリーンショット 2022-10-10 15.22.07.png

M5Stick-Cを使用して、ボタンA、または、ボタンBを押したらLEDを点ける動作をさせます。

環境準備

既存のNode-REDの実行環境を壊さないために、Node-RED MCU Edition用の環境を作成する前提で手順を書きます。
GPIOを使用するためにnode-red-node-pi-gpioノードをインストールします。

(前提条件)

  • Node.js (v16.14.0)
  • Node-RED (v3.0.2)
  • node-red-node-pi-gpioノード

1-1. Node-REDをインストールする

$ mkdir node-red-mcu && cd node-red-mcu
$ npm init -y
$ npm install node-red

1-2. node-red-node-pi-gpioノードをインストールする

$ npm install node-red-node-pi-gpio

1-3. node-red-mcu-pluginをインストールする

$ npm install https://github.com/ralphwetzel/node-red-mcu-plugin

Node-RED起動時のエラー(node-red-mcu-pluginがパッチを適用するutils.jsが存在しない)を回避するため、node_modules/node-redディレクトリで必要なモジュールをインストールします。

$ cd node_modules/node-red
$ npm install
$ cd ../..

1-4. Node-REDを起動する

$ node node_modules/node-red/red.js -u ./

Node-REDフローを作成する

「rpi - gpio in」ノードと「rpi - gpio out」ノードを使用し、以下のように接続します。

10-1.jpg

「rpi - gpio in」ノード ・・Button Aノード

  • BCM GPIO → 37を入力します
  • デバウンス → 0を入力します
  • 名前 → Button Aと入力します

10-2.jpg

※ デバウンスは初期値:25が入っていますが、後続のmcconfigコマンドの実行でエラーとなるため、0を設定します。

# nodered2mcu flows
Error translating node ID "2845de0ea814dfc3, type "rpi-gpio in", name "": Error: unimplemented
### Error: unimplemented
make: *** [/Users/kitazaki/moddable/build/tmp/esp32/m5stick_c/debug/node-red-mcu/modules/flows.js] Error 1

「rpi - gpio in」ノード ・・Button Bノード

Button Aと同様に設定します。

  • BCM GPIO → 39を入力します
  • デバウンス → 0を入力します
  • 名前 → Button Bと入力します

10-3.jpg

「rpi - gpio out」ノード ・・LEDノード

  • BCM GPIO → 10を入力します
  • 出力形式 → デジタル出力を選択します
  • 端子の状態を初期化 → チェックボックスにチェックを入れます
  • 端子の初期レベル - High (1)を選択します
  • 名前 → LEDと入力します

10-4.jpg

M5Stick-Cへインストールする

Node-RED MCU Editionを使用する場合

2-1. Node-REDフローをJSON形式でエクスポートする

  • 右上のメニューから「書き出し」を選択します
  • 「JSON」タブを選択します
  • 「書き出し」を選択します
  • クリップボードにNode-REDフローがJSON形式でコピーされます

2-2. Node-REDフロー(JSON形式)をflows.jsonファイルに保存する

node-red-mcu ディレクトリのflows.jsonファイルに保存します。

$ cd node-red-mcu
$ vi flows.json
flows.json
[
    {
        "id": "8e7f5cf6d6c00d9c",
        "type": "tab",
        "label": "フロー 1",
        "disabled": false,
        "info": "",
        "env": [],
        "_mcu": {
            "mcu": true
        }
    },
    {
        "id": "db0db4edfe97ff34",
        "type": "rpi-gpio out",
        "z": "8e7f5cf6d6c00d9c",
        "name": "LED",
        "pin": "10",
        "set": true,
        "level": "1",
        "freq": "",
        "out": "out",
        "bcm": true,
        "_mcu": {
            "mcu": true
        },
        "x": 390,
        "y": 200,
        "wires": []
    },
    {
        "id": "db25c64ed38a8409",
        "type": "rpi-gpio in",
        "z": "8e7f5cf6d6c00d9c",
        "name": "Button A",
        "pin": "37",
        "intype": "tri",
        "debounce": "0",
        "read": false,
        "bcm": true,
        "_mcu": {
            "mcu": true
        },
        "x": 200,
        "y": 200,
        "wires": [
            [
                "db0db4edfe97ff34"
            ]
        ]
    },
    {
        "id": "d7947a712e9f9389",
        "type": "rpi-gpio in",
        "z": "8e7f5cf6d6c00d9c",
        "name": "Button B",
        "pin": "39",
        "intype": "tri",
        "debounce": "0",
        "read": false,
        "bcm": true,
        "_mcu": {
            "mcu": true
        },
        "x": 200,
        "y": 260,
        "wires": [
            [
                "db0db4edfe97ff34"
            ]
        ]
    }
]

2-3. Node-REDフローをMCUで実行する

実機(M5Stick-C)で動かします。

$ UPLOAD_PORT=/dev/cu.usbserial-C152AAC745 mcconfig -d -m -p esp32/m5stick_c

※ シリアルボート番号は環境によって異なりますので、以下のコマンドで確認します。

$ ls /dev/cu.*

node-red-mcu-pluginを使用する場合

Node-REDフローエディタで操作を行います。

3-1. 「MCU」タブの設定をする

  • 「Flows to build for MCU」でチェックボックスにチェックを入れます
  • 「MCU Build Configurations」で「Add config」を押します
  • プルダウンメニューから「ESP32|Espressif」「esp32/m5stick_c」を選択し、シリアルポート番号を入力します。

10-3-1.jpg

3-2. Node-REDフローをMCUで実行する

「Build」を押すとNode-REDフローが実行されます。
「Console Monitor」タブを押すと、ターミナル画面でビルド実行の様子を確認できます。
ビルド完了後、実機(M5Stick-C)へ書き込みまで行われます。

10-4-2.jpg

動作確認

ボタンA、または、ボタンBを押したらLEDが点くこと確認します。

A.jpg

B.jpg

10-5-1.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0