XIAO nRF54LM20 A Senseの先行テスターに選ばれたので、デバッグした内容です。
本記事では、Zephyr RTOSとEdge Impulseを組み合わせた開発プロセスを紹介します。
実装したのは、リアルタイムのジェスチャー認識と、連続音声キーワード認識の2つです。
XIAO nRF54LM20A SenseでEdge AIっぽいテスト
XIAO nRF54LM20 A SenseのEarly Adopterに選ばれたので、テストした内容です。
(Early Adopter…先行テスター)
Seeed社から、発売前に声をかけていただき、デバッグに協力させていただきました。



本記事では、Zephyr RTOSとEdge Impulseを組み合わせた開発プロセスを紹介します。
実装したのは、リアルタイムのジェスチャー認識と、連続音声キーワード認識の2つです。
姉妹機であるXIAO nRF54L15 Senseでも同様に動作します。

本記事では、Zephyr RTOSとEdge Impulseを組み合わせた開発プロセスを紹介します。
実装したのは、リアルタイムのジェスチャー認識と、連続音声キーワード認識の2つです。
また、開発時に重要となるPMIC(電源管理IC)の制御についても詳しく解説します。
使用するハードウェア:XIAO nRF54LM20 Sense
XIAO nRF54LM20 Senseは、バッテリー駆動のIoT機器に最適な超小型開発ボードです。
詳細は下記スタートガイドを参考ください

SoCには、最大128MHz動作のARM Cortex-M33を搭載しています。
ボード上には、6軸IMU(LSM6DS3TR-C)とPDMデジタルマイクを内蔵しています。

さらに、電源管理用としてnPM1300 PMICも備えています。
※本プロジェクトで実装したコードは、XIAO nRF54L15 Senseでも同様に動作します。

技術的な見どころ:PMICの電源制御と初期化順序の罠
ボード上のセンサーやマイクを動作させるには、電源ICの設定が非常に重要になります。
これらはPMICのLDO1から給電されますが、デフォルトの出力は1.8Vに設定されています。
しかし、これらを正常に動作させるには3.3Vへの昇圧が必要です。
また、PMICのI2Cピン(SDA: P1.18, SCL: P1.17)のマッピングも必要です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&pmic_i2c { sda-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; scl-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; status = "okay"; }; &pmic { regulators { LDO1 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; }; }; }; |
デバイスツリーと初期化優先度の設定
Zephyrの起動時に、センサーの初期化より先に電源を供給しなければなりません。
そこで、プロジェクトの prj.conf に以下の設定を追加します。
|
1 2 |
CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_INIT_PRIORITY=45 |
初期化優先度を45に設定し、センサー初期化前に3.3Vを確実に供給するようにします。
IMU ジェスチャー認識(モーション分類)
最初のデモは、6軸IMUを用いたジェスチャー認識(モーション分類)です。

手の動き(円を描く、素早く振る、上下、静止)をリアルタイムに分類します。
IMUから104Hzでデータを取得し、約2秒間のデータ窓をニューラルネットワークで解析します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Edge Impulse live inferencing with LSM6DSO sensor (Zephyr) [00:00:00.001,000] <inf> ei_lsm6dso_example: I2C device i2c30 is ready. [00:00:00.002,000] <inf> ei_lsm6dso_example: LSM6DSO WHO_AM_I check passed. [00:00:00.005,000] <inf> ei_lsm6dso_example: LSM6DSO initialized successfully at 104 Hz. Starting inferencing in 2-second cycles... Collecting 208 samples for the next inference... .................... Data collection complete. Running inference... Predictions (DSP: 6 ms, Classification: 2 ms, Anomaly: 0 ms): circle: 0.02450 flick: 0.01230 idle: 0.95200 updown: 0.01120 ``` |
GitHubのリンク先は下記です

デモ動画は下記となります
PDMマイクによる連続音声キーワード認識
2つ目のデモは、PDMマイクを使用した連続音声キーワード認識(KWS)です。

「Up」「Down」などの特定の音声コマンドを常時監視して識別します。
DMICドライバーを用いて音声データを連続で取得します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
*** Booting nRF Connect SDK v3.2.4-4c3fc0d44534 *** *** Using Zephyr OS v4.2.99-9673eec75908 *** [00:00:00.001,175] <inf> dmic_sample: Edge Impulse Inferencing Demo (Zephyr) Inferencing settings: Interval: 0.0625 ms. Frame size: 16000 Sample length: 1000 ms. No. of classes: 5 --- Inference Cycle: 297 ms [Audio Window: 19.800 s - 20.800 s] --- Predictions (DSP: 63 ms., Classification: 3 ms., Anomaly: 0 ms.): down: 0.00391 left: 0.02734 noise: 0.01172 right: 0.05859 up: 0.89453 ``` |
GitHubのリンク先は下記です。

デモ動画は下記です
参考:消費電流の測定結果
今回の構成でEdge AIを動かした際の消費電流を測定してみました。
測定には「GPIO Breakout Board for XIAO」を使用しています。

ボードの VBAT と GND ピンに乾電池2本を接続し、3Vで駆動させた結果は以下の通りです。
-
推論時 (Edge AI Inference): 4.9 mA

-
待機時 (Idle): 2.9 mA

電池駆動でも非常に低消費電力で動作することが確認できました。
また、Seeed Studioの公式ドキュメントによると、スリープモードや省電力モードを適切に設定することで、さらに消費電流を抑えることも可能なようです

日本での販売
(※本記事執筆にあたり、Seeedのご担当者様より伺った情報を記載します)
- 執筆時点はプレオーダー段階のため、日本の各代理店経由での販売はまだということ。
- 日本国内での取り扱いが始まり次第、メーカーより改めてアナウンスされる予定。
- また、技適(TELEC)認証を取得済みとのことでした。

まとめ
高性能・省電力なnRF54LM20とZephyr、Edge Impulseを組み合わせて開発しました。
非常に小さなサイズで、実用性の高いエッジAIデバイスを実現できます。
特にPMICの給給優先度の制御は、他のセンサーを扱う際にも応用できる技術です。

コメント