Node-RED MCUの環境を構築する(ESP-IDF v5.3対応版、Ubuntu Desktop 20.04)

はじめに

 Moddable SDKが更新されて、最新ではESP-IDF v5.3をサポートしています。それに伴って、Node-RED MCUの環境構築手順も少しだけ変更点があります。

 今回は最近UbuntuをインストールしたミニPCで新しく環境を構築してみました。

▼Moddable SDKのReleasesのページはこちら

https://github.com/Moddable-OpenSource/moddable/releases/tag/4.9.5

▼こちらの記事でインストールしたUbuntu Desktop 20.04の環境で実行しています。

USBメモリでミニPCにUbuntuをインストールする(Rufus)

はじめに  今回はUSBメモリでミニPCにUbuntuをインストールしてみました。  身近にUSBでWindowsとUbuntuを切り替えている方がいたので、できることは知っていました。た…

▼以前の記事はこちら

Node-RED MCUの環境を構築する(ESP-IDF v5.1.1対応版、Raspberry Pi)

はじめに  Moddable SDKがv4.2にアップデートされたことにより、Node-RED MCUの環境が大きく変化しています。特にESP-IDF v5に対応したことで、ESP-IDF v4のままだとエラ…

書籍紹介:『はじめてのNode-RED』/『はじめてのNode-RED MCU Edition』

Node-REDとは  一言でいうと、Node-REDはプログラミングが簡単にできるツールです。ビジュアルプログラミングの一種で、視覚的にわかりやすくなっています。 ▼百聞は一見…

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

 Node-REDをインストールします。

▼こちらのページを参考にインストールします。

https://nodered.org/docs/getting-started/raspberrypi

 Raspberry Pi用のページですが、UbuntuやDiet-PiなどのUbuntu系OSでのインストール方法が載せられていました。

▼コマンドはこれだけです。

sudo apt install build-essential git curl
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

 二つ目のコマンドを実行後、保存先や有効にする機能について質問されます。

 インストールが完了してから、以下のコマンドを実行するとNode-REDを起動することができます。ブラウザでNode-REDのエディタ画面にアクセスするためのURLが表示されます。

node-red

▼起動できました。

Moddable SDKをインストールする

 Moddable SDKをインストールします。

▼こちらのページを参考にインストールします。

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md#lin-requirements

▼必要なパッケージをインストールします。

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf
sudo apt-get install libgtk-3-dev

 ホームディレクトリにこれからインストールするディレクトリを作成します。

▼ドキュメントにあわせて、ディレクトリ名はProjectsにしました。

mkdir Projects
cd ~/Projects
git clone https://github.com/Moddable-OpenSource/moddable

 環境変数は~/.bashrcファイルに保存するように書かれていましたが、一旦コマンドで実行して進めます。環境変数のファイルへの保存は後で行います。

▼環境変数を設定し、インストールします。

export MODDABLE=~/Projects/moddable
export PATH=$PATH:$MODDABLE/build/bin/lin/release
cd $MODDABLE/build/makefiles/lin
make
make install

▼以下のコマンドで、デバッガツールであるxsbugを起動します。

xsbug

▼xsbugが起動しました。

 サンプルプログラムを実行してみます。

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

 xsbugが起動し、左上の三角のスタートボタンを押すと、プログラムが実行されます。

▼Hello, world - sampleと表示されました。

ESP-IDFのインストール

 ESP-IDFのv5.3をインストールします。

▼こちらのページを参考にインストールします。

https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/devices/esp32.md#lin-instructions

 必要なパッケージをインストールするのですが、Ubuntuのバージョンによって異なるようです。

▼Ubuntu 20.04とそれ以降のバージョンの場合はこちら

sudo apt-get update
sudo apt-get 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

▼Ubuntu 20.04よりも以前のバージョンの場合はこちら

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

 Ubuntu 20.04よりも以前のバージョンの場合はデフォルトでPython 2.7が利用されるようですが、ESP-IDF側でPython 3が利用されており、近いうちに2.7のサポートが終了するそうです。

▼以下のコマンドでPython 3系がデフォルトになるようです。他のプログラムに影響する可能性がありますのでご注意ください。

sudo apt-get install python3 python3-pip python3-setuptools
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

 ホームディレクトリにディレクトリを作成して、ESP-IDFをダウンロードします。ファイルの容量が大きいため、ダウンロードには時間がかかります。

▼ドキュメントにあわせて、ディレクトリ名はesp32にしました。

mkdir esp32
cd ~/esp32
git clone -b v5.3 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3

 ESP-IDFのv5.3をインストールするようになっています。

 ここで環境変数をファイルに保存するよう書かれていましたが、一旦コマンドで実行します。

export IDF_PATH=$HOME/esp32/esp-idf

 この状態で以下のコマンドを実行すると、No such file or directoryというエラーが出ていました。

cd $IDF_PATH

 esp32ディレクトリでlsコマンドを実行すると、esp-idfではなくesp-idf-v5.3というフォルダになっていることが分かりました。

▼ちなみにタブ補完で入力しようとしたら、$の前にバックスラッシュが入ってエスケープされていました。

 改めてIDF_PATHの値を変更して、インストールを実行しました。

export IDF_PATH=$HOME/esp32/esp-idf-v5.3
cd $IDF_PATH
sh ./install.sh

 途中でエラーが出ていたのですが、python3.8-venvがインストールされていなかったようです。これは環境によって異なるエラーだと思います。

▼その影響で、その後のコマンドも失敗しているようでした。

 python3.8-venvをインストール後、再度install.shを実行するとインストールが完了しました。

sudo apt install python3.8-venv
sh ./install.sh

環境変数を保存する

 ここまでのインストールはできたので、起動時に実行されるファイルに環境変数を保存しておきます。リポジトリではshellによって依存する、~/.bash_profileや~/.zshrcに追加すると書かれていました。

 私の場合、/home/<ユーザー名>/.bashrcに追加しました。

▼ホームディレクトリに移動後、nanoエディタで編集しました。

cd $HOME
sudo nano .bashrc

▼以下の環境変数を追加しました。

export MODDABLE=~/Projects/moddable
export PATH=$PATH:$MODDABLE/build/bin/lin/release
export IDF_PATH=$HOME/esp32/esp-idf-v5.3

▼一番下の行に追加しました。

Node-RED MCU Pluginをインストールする

 Node-RED MCUのプラグインをインストールします。

▼GitHubのリポジトリはこちら

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

▼以下のコマンドでインストールできます。

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

 Node-REDの画面から追加することもできます。

▼Node-REDの右側にある、Manage paletteから追加できます。

▼@ralphwetzel/node-red-mcu-pluginをインストールします。

 インストールの進捗を見てみると、エラーが出ていました。

▼環境変数である$MODDABLEが定義されていないというものです。

 以下のコマンドで再起動後、再度Node-REDを起動すると、先程.bashrcファイルに保存した環境変数が適用されていました。

sudo reboot

▼Node-RED MCUのプラグインが適用されました。

 さらに以下のノードを追加しました。スタックチャンの顔を表示するノードです。

▼パレットの管理で@mshioji/node-red-contrib-mcu-draw-faceで検索すると出てきます。

https://flows.nodered.org/node/@mshioji/node-red-contrib-mcu-draw-fac

▼無事に書き込むことができました!

最後に

 最近UbuntuをミニPCにインストールしたり、Raspberry Pi Zeroを利用したりしていたこともあって、環境構築にさらに慣れてきたような気がします。

 今後もESP-IDFのバージョンがアップデートされると更新していく必要がありそうです。なかなか更新の頻度が激しいですね...

 もし環境構築でお困りの方がいらっしゃったら、コメント等でご連絡を頂けますと確認します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です