item: Arducam Pico4ML TinyML開発キット買った
まぁこの辺が下限スペックかなぁということで。
- 公式サイト(旧Rev): https://www.arducam.com/pico4ml-an-rp2040-based-platform-for-tiny-machine-learning/
- リポジトリ(サンプルアプリおよび各種ドライバ): https://github.com/ArduCAM/pico-tflmicro
ソースコードが提供されているが ライセンスが謎 (表記が一切ない)。どうなってんの。。
秋月は旧版の写真を載せている。モノが旧版かどうかは不明。 https://akizukidenshi.com/catalog/g/gM-16714
顔認識で56mAくらい
(↑ 画面に横に入っている横線は液晶の保護シートの線)
公式サイトの顔認識アプリを動作させてみる。消費電流を測定してみると56mAくらいになった。公式サイトの記述が60mAなので想定範囲だろう。ちなみに顔認識の動作は3fpsくらい。
... なんか画像がギザギザしてない。。?カメラモジュールである HM01B0
にはモノクロとカラーの両種があるはずだけど、これに使われているのはカラー版なんじゃなかろうか。。
一応あっちの販売サイト( https://www.uctronics.com/raspberry-pi-pico/-rp2040-based-arducam-pico4ml-dev-board-for-machine-vision.html )ではちゃんとmonochromeって書かれているのでセンサ的にはモノクロだと思うんだけど。。
and the monochrome sensor make image processing easy for most machine vision applications.
基本的にはカラーとモノクロでカメラのI/Fが代わることはなくて、いわゆるBayer配列のフィルタが掛かっているかそうでないかの差しかない。
ICM-20948 モーションセンサ
- SparkFunのライブラリ(DMP不使用 or 使用): https://github.com/sparkfun/SparkFun_ICM-20948_ArduinoLibrary/
- Invensense提供サンプルコード(SmartMotion、要登録): https://invensense.tdk.com/developers/software-downloads/#smartmotion
- Invensense提供サンプルコードのライセンス: https://invensense.tdk.com/sla/
- サンプルコードの移植1: https://github.com/ZaneL/Teensy-ICM-20948
- サンプルコードの移植2: https://github.com/ericalbers/ICM20948_DMP_Arduino
これがヤバい。デバイス提供元のTDK(Invensense)からはサンプルコードしか提供されていないので移植して使う必要がある。歩数計は内蔵するDMP(Digital Motion Processor)のアプリケーションなので、使いたければサンプルコードを頑張って移植するしかない。。
DMPのファームウェアイメージはInvensenseのサイトからDLできるDK-20948の内部の eMD-SmartMotion-ICM20948-1.1.0-MP/EMD-App/src/ICM20948/icm20948_img.dmp3a.h
にある。
このファームウェアを使わなくても9軸センサとして機能させることができ、Arducamのサンプルもそちらの方針で実装されている。
HM01B0 カメラ
- 単体: https://www.uctronics.com/raspberry-pi-pico/arducam-hm01b0-qvga-cmos-camera-module-for-rp2040-arduino.html
- 制御コード(SPIでインターフェースする別のカメラも混ざっている): https://github.com/ArduCAM/RPI-Pico-Cam
RP2040のProgrammable I/Oを使って1bit I/Oで読みとっている。 ...4bitとかでも良くない。。?1bitなのでセンサのフルスペックを生かすことができず、最大45fpsになる。