Slide 1

Slide 1 text

M5Stack CoreS3とZephyr(RTOS)で Edge AIっぽいことしてみた ミソジ 2026/4/27 M5 Japan Tour 2026 Spring Nagoya #M5JPTOUR2026

Slide 2

Slide 2 text

自己紹介 名前: ミソジ @misoji_engineer ブログ: エンジニアの電気屋さん(https://misoji-engineer.com/) ハードウェアのエンジニアで、趣味でブログとか書いてます

Slide 3

Slide 3 text

アジェンダ • Zephyr(RTOS)とは • M5StackでのZephyr(RTOS)のサポート具合 • Edge AIっぽいテストしてみた。 • RTOSを使うことのメリット Zephyr(RTOS)でM5Stackを遊んでみた話

Slide 4

Slide 4 text

Zephyr(RTOS)とは

Slide 5

Slide 5 text

Zephyr(RTOS) 「Linux Foundation」がホストする、RTOSのプロジェクト https://www.zephyrproject.org/ RTOS… Real-time operating system リアルタイムオペレーションシステム https://www.linuxfoundation.org/

Slide 6

Slide 6 text

Use Cases ? 「組み込み」や「IoT」など、小さいデバイスでよく使われています。 https://www.zephyrproject.org/zephyr-overview/ https://www.zephyrproject.org/portf olio/halo-smartglasses/ メモリ、ROMも超小さい。 「K(キロ)ByteのOS」

Slide 7

Slide 7 text

M5StackでのZephyr(RTOS)の サポート具合

Slide 8

Slide 8 text

M5Stack × Zephyr(RTOS) 多くの機種をサポート。M5Stack CoreS3 を始めてみた。 Zephyrのドキュメント: https://docs.zephyrproject.org/latest/boards/m5stack/index.html 3週間前(2026/4/6) CoreS3を購入してみた!

Slide 9

Slide 9 text

USB1本で入門できて良い感じ Zephyr(RTOS)の環境があれば、直ぐにテストできた M5Stackを始めたブログ記事: https://misoji-engineer.com/archives/m5-zephyr.html ・デフォルト ・Hello Worldのディスプレイ表示 サンプルをビルド+書き込み samples/subsys/display /lvgl

Slide 10

Slide 10 text

Edge AIっぽいテストしてみた。

Slide 11

Slide 11 text

M5Stack + Zephyr(RTOS) + Edge Impulse M5Stackの加速度センサで、ジェスチャー認識 M5Stack CoreS3 加速度 センサ内蔵 Edge Impulse *Edge AIモデル作成のプラットフォーム 軽量のEdgeAI モデル作成 AIモデル作成の概要まとめたブログ記事: https://misoji-engineer.com/archives/m5stack-edge-impulse.html

Slide 12

Slide 12 text

ざっくりプログラム概要 Zephyr(RTOS)で加速度センサとEdge AIモデルを結合 ・Zephyr(RTOS)に必要なファイル main.cpp …メインプログラム Makelist …CMake prj.conf …コンフィグ ・Edge ImpulseのC++出力モデル →簡単なジェスチャー認識モデル (Idle, Knock, Updown, Flick) ・M5Stack_CoreS3のoverlay →I2Cの加速度センサをON (デバイスツリー上書き)

Slide 13

Slide 13 text

GitHubのリポジストリ先 雑に作ったので、興味があれば参考までに リポジストリのURL https://github.com/iotengineer22/zephyr-m5-ei-imu/tree/main

Slide 14

Slide 14 text

デモ動画 https://youtu.be/h2TyvIFuZGY

Slide 15

Slide 15 text

RTOSを使うことのメリット。

Slide 16

Slide 16 text

Zephyr(RTOS)で優先度+スレッド処理 RTOSが「ええ感じ」にセンサ値の取得 + Edge AI処理 [ Timeline: RTOS Multi-threaded Concurrent Processing ] Time(ms) | 0 10 20 ... 1000 1010 1020 ... 1500 ... 2000 ----------|------------------------------------------------------------------------- 1. Sensor | # # # ... #(*) # # ... # ... #(*) (Pri: 5) | | | | | | | | | Buffers |[features_buffer] | [ features_buffer (next frame) ] | | +-> [ inference_buffer copy & notify ] +-> ----------|------------------------------------------------------------------------- 2. GUI | @ @ @ ... @ @ @ ... @ <*Text Updated*> ... @ (Pri: 6) | ¥--(10ms draw) | | | ----------|------------------------------------------------------------------------- 3.Edge AI | (--- waiting ---) = == == == (--- waiting ---) = (Pri: 7) | ^ | ^ | ¥--(read buffer) ¥--(Mutex safe update) ● # : Sensor Sampling (100Hz) ● @ : LVGL GUI Task Handler (100Hz) ● = : AI Inference Processing (Edge Impulse) ● (*) : Buffer is full. Trigger inference (Semaphore Give) センサデータは 逃がさない! 加速度センサ値は 常に取得 Edge AI処理は 隙間時間で GUI、AI処理は 優先度(低)

Slide 17

Slide 17 text

まぁ、今日は難しい話は置いといて…

Slide 18

Slide 18 text

「カワイイ!」は正義 M5StackのLCD・センサの一体感はいいですね! LCDの表示が 良い感じ! LVGLで顔の表現 (軽量のGUI)

Slide 19

Slide 19 text

展示内容 タブレットでログ出しながら、展示してます。 https://youtu.be/ayb-T4G0Hwg CPU負荷・センサ取得時間など ログ表示 Zephyr(RTOS)でセンサ取得を優先、 隙間時間でGUI+Edge AI https://youtu.be/vk44Q4eOBug

Slide 20

Slide 20 text

まとめ

Slide 21

Slide 21 text

・M5Stackの多くの機種で、Zephyr(RTOS)がサポート (今回はメジャーのCoreS3でテストしてみた) ・USB1本でプログラム書き込めるし、始めやすい (Hello WorldのLCD表示、加速度センサ取得も簡単でした) ・Edge AIの例で、RTOSの良い感じのデモできました (優先度+スレッド処理をOSが助けてくれます) まとめ Zephyr(RTOS)を M5Stackで実装+遊べた! 今回のまとめブログ記事: https://misoji-engineer.com/archives/m5stack-zephyr-edge.html