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の環境で実行しています。
▼以前の記事はこちら
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をインストールします。
▼こちらのページを参考にインストールします。
▼必要なパッケージをインストールします。
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をインストールします。
▼こちらのページを参考にインストールします。
必要なパッケージをインストールするのですが、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のバージョンがアップデートされると更新していく必要がありそうです。なかなか更新の頻度が激しいですね...
もし環境構築でお困りの方がいらっしゃったら、コメント等でご連絡を頂けますと確認します。