LoginSignup
1

Node-RED MCU Editionを試してみた。(ラズパイ編)

Last updated at Posted at 2023-01-09

はじめに

Node-RED MCU Editionをラズパイで動かしてみます。
Raspberry Pi OSはDebianベースですので、Linux版の導入手順が参考になります。

参考

macOS版はこちらです。

Linux版はこちらです。

Windows版はこちらです。

Raspberry Pi Desktop (32-bit)

前提条件

  • Raspberry Pi 4B (4GB)
  • SDカード (32GB)
  • Raspberry Pi Imager
  • Raspberry Pi OS with desktop
    • 32bit 2022/9/22版

rpi_000.jpg

rpi_001.jpg

SSHを有効化、piユーザのパスワード設定、Wi-Fiの設定、ロケール設定を行い、SDカードへイメージファイルを書き込みする。

rpi_002.jpg

rpi_004.jpg

ラズパイを起動する。

2023-01-09-132158_3840x2160_scrot.png

環境構築 (Moddable SDK)

Moddable SDKの導入手順に従って環境構築する。

1. 必要なパッケージをインストールする

piユーザでログインし、以下のコマンドを実行する。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install gcc git wget make libncurses-dev flex bison gperf
$ sudo apt install libgtk-3-dev

2. Moddable SDKをインストールする

ホームディレクトリにダウンロード、インストールする前提で説明します。

$ git clone https://github.com/Moddable-OpenSource/moddable

3. 環境変数を設定する

以下の設定を追加します。

(bashの場合) ~/.bashrc

export MODDABLE="/home/pi/moddable"
export PATH="$MODDABLE/build/bin/lin/release:$PATH"

環境変数を有効にするため、以下のコマンドを実行します。

$ source .bashrc

または、ターミナルを閉じて新しく開きます。

4. Moddable SDKをビルドする

コマンドラインツール、シミュレータ、デバッガーをビルド、インストールします。

$ cd $MODDABLE/build/makefiles/lin
$ make
$ make install

5. xsbug デバッガーツールを開く

$ xsbug

2023-01-09-141044_2560x1440_scrot.png

デバッガーが正常に起動されることを確認したら、閉じます。

6. サンプルプログラムを実行する

サンプルプログラム(helloworld)を実行するとシミュレータ(Moddable One)とデバッガーが起動します。

$ cd ${MODDABLE}/examples/helloworld
$ mcconfig -d -m -p lin

2023-01-09-141942_2560x1440_scrot.png

環境構築 (ESP-IDF)

実機 M5Stack(ESP32)で動作させるために、ESP32用のビルド環境を構築します。

1. 必要なパッケージをインストールする

$ sudo apt install git wget flex bison gperf python-is-python3 python3-pip python3-serial python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util

2. ESP-IDFをインストールする

ホームディレクトリにダウンロード、インストールする前提で説明します。
ESP-IDFのリポジトリをダウンロードします。

$ mkdir esp32 && cd esp32
$ git clone --recursive https://github.com/espressif/esp-idf.git
$ cd esp-idf
$ git checkout v4.4.3
$ git submodule update --init --recursive

3. 環境変数を設定する

以下の設定を追加します。

(bashの場合) ~/.bashrc

export IDF_PATH=$HOME/esp32/esp-idf

環境変数を有効にするため、以下のコマンドを実行します。

$ source .bashrc

または、ターミナルを閉じて新しく開きます。

4. ESP-IDFをビルド、インストールする

$ cd $IDF_PATH
$ ./install.sh

5. ESP-IDFのビルド環境を設定する

$ source $IDF_PATH/export.sh

ターミナルを開く度に毎回実行するのが面倒な場合はシェルの初期化ファイル(~/.bashrc)に追加します。
環境変数(IDF_PATH)の後ろに追加します。

export IDF_PATH=$HOME/esp32/esp-idf
source $IDF_PATH/export.sh

6. M5Stackを接続し、シリアルポート番号を確認する

M5Stackを接続し、認識されたシリアルポート番号を確認します。

$ ls /dev/ttyUSB*
/dev/ttyUSB0

※ 2023年2月8日追記
ATOMS3はシリアルポート番号が異なります。(リセットボタンを長押し(約2秒)で書き込みモード時)

$ ls /dev/ttyACM*
/dev/ttyACM0

認識されたシリアルポート番号を環境変数(UPLOAD_PORT)に設定します。

$ export UPLOAD_PORT=/dev/ttyUSB0

mcconfigコマンドを実行する時に指定することもできます。

例.M5StickC Plusの場合

$ UPLOAD_PORT=/dev/ttyUSB0 mcconfig -d -m -p esp32/m5stick_cplus

7. サンプルプログラムを実行する

ボールのサンプルプログラムをM5Stack用にビルドし、実機へ書き込みます。

例.M5StickC Plusの場合

$ cd ${MODDABLE}/examples/piu/balls
$ UPLOAD_PORT=/dev/ttyUSB0 mcconfig -d -m -p esp32/m5stick_cplus

2023-01-09-150540_2560x1440_scrot.png

IMG_3412.jpg

Node-REDフローをM5Stackで実行する

Node-RED MCU Editionは、Node-REDフローエディタからJSON形式でエクスポートされたフローを、Moddable SDKのXS JavaScriptエンジンで動作する形式へ変換します。
Node-REDフローエディタ上でMCU用にビルド、実機へ書き込めるツール(node-red-mcu-plugin)を利用する方が楽です。
Node-RED MCU Edition用の環境を作成する前提で手順を書きます。

(前提条件)

  • Node.js (v16.14.0)

1. nodebrewをインストールする

$ curl -L git.io/nodebrew | perl - setup

2. 環境変数を設定する

以下の設定を追加します。

(bashの場合) ~/.bashrc

$ export PATH=$HOME/.nodebrew/current/bin:$PATH

環境変数を有効にするため、以下のコマンドを実行します。

$ source .bashrc

または、ターミナルを閉じて新しく開きます。

3. node.jsをインストールする

$ nodebrew install v16.14.0
$ nodebrew use v16.14.0
$ node -v
v16.14.0
$ npm -v
8.3.1

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

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

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

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

以下のコマンドでもインストールできるようになりました。

$ npm install @ralphwetzel/node-red-mcu-plugin

6. Node-REDを起動する

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

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

フローを作成して、MCUタブで対象のフローを選択し、ターゲットデバイスを指定してBuildボタンを押すと、ビルドとデバイスへインストールされます。

2023-01-09-152748_2560x1440_scrot.png

2023-01-09-153407_2560x1440_scrot.png

※ macOSではnode-red-mcu-pluginからデバッガー(xsbug)が起動されましたが、Linuxでは起動されなかったので、別のターミナルから手動で起動します。

2023-01-14-164304_1920x1080_scrot.png

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
What you can do with signing up
1