組込みマイコン向けのzenoh-picoを用いて,前段のPhoenixアプリと繋げてみましょう!
このリポジトリにある zenoh_pico/
のディレクトリをVSCodeで開きます(File -> Open Folder... など).
初回のオープン時にはプロジェクト設定が走りますので,ウインドウ下の "OUTPUT" に Project has been sucessfully updated!
が表示されるまで待ちます.
最下部にある "PlatformIO Toolbar" だけで様々な操作が行えます.各ボタンの説明は下記をご参照ください.
https://docs.platformio.org/en/latest/integration/ide/vscode.html#platformio-toolbar
最下部 "PlatformIO Toolbar" の "Project Environment Switcher" の表示が Default (zenoh_pico)
となっていることを確認してください.
src/main.cpp
を開いて,次の2個所を編集します.
- 13,14行目:WiFiアクセスポイントの設定
- SSIDとPASSは会場では当日に案内します.
- 遠隔参加or自習されている方は,ご自身のPCと同じアクセスポイントの情報を記載してください.
- M5Stackマイコンボードの制約のため,2.4GHz帯で接続可能なSSIDを利用してください.5GHz帯では接続できません.可能であればバンドステアリング機能も無効化できるとよいです.
- 19行目:Zenohエンドポイントの設定
最下部にある "PlatformIO Toolbar" の "Build" (レ点)をクリックするとプロジェクトをビルドできます.
"TERMINAL" に下記のようなメッセージが表示されればビルドが成功しています.
Building .pio/build/m5stack-cores3/firmware.bin
esptool.py v4.5.1
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
================================================================ [SUCCESS] Took 22.17 seconds ================================================================
* Terminal will be reused by tasks, press any key to close it.
このとき UnknownBoard: Unknown board ID 'm5stack-cores3'
のエラーが出る場合は,プロジェクトの依存関係に問題がある可能性があります(参考).
"PlatformIO Toolbar" の "PlatformIO: New Terminal" をクリックしてターミナルを開き,そのターミナル上で pio pkg update
のコマンドを実行して依存関係を更新してください.
M5Stack CoreS3とPCをUSBケーブルで接続します.
最下部にある "PlatformIO Toolbar" の "Upload" (右矢印)をクリックするとボードへの書き込みが開始されます.
"TERMINAL" に下記のようなメッセージが表示されれば書き込みが成功しています.
Wrote 882416 bytes (570332 compressed) at 0x00010000 in 7.4 seconds (effective 956.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
======================================================= [SUCCESS] Took 19.33 seconds =======================================================
* Terminal will be reused by tasks, press any key to close it.
M5のディスプレイにメッセージが表示されます.
ここでは,下記のメッセージが表示されていることを確認してください.特にOK
が表示されていなければ,WiFiアクセスポイントに関するソースコードの編集を見直してください.
OK
Connecting to WiFi...
この時点では下記のメッセージが表示されますが,まだあわてる時間ではありません.
Unable to open session!
Opening Zenoh Session...
先ほど動作させたPhoenixアプリと連携させましょう!
ターミナル7では,先ほどと同じくPhoenixアプリを実行します.
cd zenohex_phoenix_demo # 必要であれば
mix phx.server
ターミナル8でZenohルータを起動させます.
zenohd
Webブラウザで http://localhost:4000 を開いてください.
M5Stack CoreS3の底面にあるリセットボタンを押してください.
さてなにが起きるでしょう!信じるか信じないかは(ry
ハンズオンの終了時には,いずれかのターミナルで以下を実行してコンテナを終了しておきましょう.
exit # コンテナから抜ける
docker compose down
おつかれさまでしたっ!Zenoh完全に理解したッ!!:D