Node-RED MCU 第1回勉強会

3.3K Views

April 25, 23

スライド概要

Node-RED MCUのWindowsを書きました。
WSL2でのインストールも書いています。

profile-image

ものづくりしたりしています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

z Node-RED MCU Edition @NW_Lab Windowsの部分を担当しました。

2.

z きっかけ ▪ QiitaにUI-Flow(M5Stack)とNode-REDの組み合わせの記事を あげていた。 ▪ 北崎さんのQiitaを見て、これならPC側とデバイス側も一本化できる かも で チャレンジ ▪ 一本化できると、教育の場とかで強い。(似た感じなのでし辛い)

3.

z 執筆中でも多数の更新が ▪ 苦労話 アイコンが変わったり、フォルダー構成が変わったり、動かなくなったり。。。 ▪ レシピのAmbientの部分で修正があります。 サポートページに修正があがっていると思いますが、 Http request nodeの出力形式が“JSONオブジェクト”から“UTF8文字列”になりまし た。 PCのNode-redはワーニングを吐きながら動くのですが、MCUはデバッガーで一時停止 になってしまいます。 しかし、執筆開始時よりかなり良くなったと思います。 ▪ Sensorノードですっきりした。(デバイスの追加にmanifestの書き換えが不要になった) ▪ RaspberryPIのGPIOノードやNeopixelsノードを使用して書いていたりしてわかりずら かった部分が改善された ▪ クレデンシャルの取り扱いが楽になった。

4.

z Windowsは大変 (当初)Windowsは上手く動かない? なぜ? ▪ 多分、開発者があまりWindowsを使っていない(アップデートするとSyntax failが多い) ▪ リポジトリが3つに渡る。。どれかがアップデートすると、どれかがこける。 (Moddable, Node-RED MCU, Node-RED-MCU-Plugin) Windowsはサポートされないデバイスがある。(ESP32S3、RaspberryPI Picoな ど) ▪ WSL2を試みるも、USBがリセットで切り離される。 ※タイミングが合えばデバッグも可能

5.

z インストール方法 ▪ 他は、xs-devを使うと便利になったみたいだけど、Windows はこれまで通りがお勧め です。 ▪ Node-RED MCU単体ではあまり使わないので、インストールは不用 (今回はMCUの初回本なので、詳しく説明するためにインストールしているけど。。。) ① Moddableのインストール ② Node-RED MCU Pluginのインストール ※一緒にNode-RED MCUもインストールされます。 ③ MCUパレットのインストール npm i @moddable-node-red/mcu

6.

z 更新方法 Moddable ▪ 単純に更新して問題ない Node-RED MCU ▪ Pluginを使用している場合 ▪ Pluginを削除入れ直し(更新ではMCUが更新されない) 、もしくはnode-red-mcuのフォルダでgit pull MCUノードの更新 ▪ つい最近 npm install @moddable-node-red で出来るように なった。 NodeRED MCU Plugin Node-RED MCU Edition Moddable

7.

z Windowsのはまりどころ1 (書き込み、デバッグの接続速度の設定が速すぎて失敗することがあ る。) Consoleに<xsbug>とか表示されている場合は、500kbps(500000)に設定してみる。 標準は最速の1.5Mbpsに設定されているデバイスがある。 C:¥pjt¥moddable¥build¥devices¥esp32¥targets¥m5atom_matrix¥manifest.js onを編集

8.

z Windowsのはまりどころ2 (Node-RED MCUサイドバーで、xsbugに接続できないとの表 示) Launching app... Type Ctrl-C twice after debugging app. NMAKE : fatal error U1077: 'echo Launching app... & echo Type Ctrl-C twice after debugging app. & set "XSBUG_PORT=5004" && set "XSBUG_HOST=localhost" && c:¥pjt¥moddable¥build¥bin¥win¥release¥serial2xsbug COM14 500000 8N1' : ���^�[�� �R�[�h '0xc0000005' Stop. X86 Native Command Toolsで set "XSBUG_PORT=5004" && set "XSBUG_HOST=localhost" && c:¥pjt¥moddable¥build¥bin¥win¥release¥serial2xsbug COM14 500000 8N1’ を実行

9.

z ① WSL2で動かすには① WSL2(Ubuntu 22.04LTS)のインストール Windows11ならPowerShell(管理者) > wsl --install ubuntu-22.04 (事前に > wsl --update が必要かも) 設定(ID,Password)が終わったら一旦閉じます。Current Directoryが違うので、反映させるため ② USBサポートのインストール ▪ Windows側 Powershell(管理者)で > winget install usbipd ▪ Ubuntu側 $ sudo apt update $ sudo apt upgrade $ sudo apt install linux-tools-generic hwdata $ sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linuxtools/*/usbip 20

10.
[beta]
z

①

WSL2で動かすには②

Node-REDのインストール(ubuntuで、オプションはy,n,nの順)
$ bash <(curl -sL https://raw.githubusercontent.com/node-red/linuxinstallers/master/deb/update-nodejs-and-nodered)

②

/dev/ttyACM0が使えるようにパーミッションの設定を変更
$ sudo vi /etc/udev/rules.d/40-dfuse.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="00??",
GROUP="plugdev", MODE="0666"

③

wsl2は起動時にudevが自動スタートしないので、自動で起動するように
/etc/wsl.confを書く。ファイルが無い場合は新規に作成
$ sudo vi /etc/wsl.conf
[boot]
command="service udev start“

④

WSL2(Ubuntsu)再起動(PowerShellで >wsl --shutdown を実行後、
Ubuntuを動かす。)サービスを動かすため

11.

z WSL2で動かすには③ ▪ Moddable、node-red mcu plugin、nodesのインストール (インストールLinux編を見てください) ▪ もしくはxs-devを利用(次のような感じになると思います。) ① $ sudo apt install ssh-askpass ② $ sudo npm i -g xs-dev ③ $ xs-dev setup --target-branch public ④ $ xs-dev setup --device esp32 ⑤ $ cd ~/.node-red ⑥ $ npm i @ralphwetzel/node-red-mcu-plugin ⑦ $ npm i @moddable-node-red/mcu ▪ WSLをシャットダウン(PowerShell で > wsl --shutdown)環境変数を反映させるため ▪ 再度Ubuntuを起動して、Node-REDを動かす。 $ node-red

12.

z WSL2で動かすには④ M5Stack Basicなど デバイス(M5Stackなど)をPCに接続 Windows側で > usbipd wsl list で接続リストを見て 次のコマンドを実行します。-b 以降は 接続リストのBUS ID –aを付けると自動再接続をします。 > usbipd wsl attach -a -b 1-1 WSL(ubuntu)側で確認 $ ls -al /dev/ttyUSB* ※Windowsのブラウザでlocalhost:1880でつなぐ (WSL2はあくまでWindowsのSubsystemなので同じIPアドレスになります。)

13.

WSL2で動かすには⑤ z M5Atom S3など書き込みとdebugで異なる接続先になる場合 ※タイミングによっては失敗します。(約50%ぐらいの確率) デバイス(M5Atom S3など)をPCに接続 デバイスを書き込み状態にします(AtomS3の場合はResetをランプが付くまで長押し) Windows側で > usbipd wsl list で接続リストを見て 次のコマンドを実行します。-b 以降は 接続リストのBUS ID > usbipd wsl attach -b 1-1 WSL(ubuntu)側で確認 $ ls -al /dev/ttyACM* ※Windowsのブラウザでlocalhost:1880 Node-REDでBuildし、Resetの表示が出 たら Windows側で > usbipd wsl attach -a -b 1-1 Debug時は-aを付ける。(xsbugに接続された時に再度リセットがかかり切り離されるため) (上手くいけばこの手順で動作します)

14.

z まとめ ▪ WSLでESP32S3とかPicoでの再起動時のデバイス接続問題ど うしていますか? ▪ WindowsでもRaspberryPI PICOの対応を待っています。 ▪ Windowsのxs-devのリリースも待ち遠しいですね。 (現在Beta)