見出し画像

ICM90248の磁気センサー読み出し MicroPython

MicroPython で使う Raspberry Pi Pico で 9軸センサー ICM90248 の磁気センサーを読み出しました。

タイトル画像はスイッチサイエンスさんで購入した「Raspberry Pi Pico用10-DOF IMU センサ ICM20948 + LPS22HB」に Pico W を接続した状態で、センサーモジュール単体では下図のような姿です。

Raspberry Pi Pico用10-DOF IMU センサ ICM20948 + LPS22HB

加速度と角速度はライブラリを見つけて読み出せたのですが、磁気センサーも読み出せるライブラリをみつけることが出来ずに困っていました。
ICのマニュアルを読み下して一人で作るにはボリュームが大き過ぎて無理と判断しました。

ChatGPT, Gemini, Bing AI も試しましたが聞き方が悪いのか解決せず、海外のサイトで見つけたプログラムでやっと読み出すことが出来ました。
ライブラリではないプログラムで、必要なら自分で修正することも出来そうです。

磁気センサーだけでなく加速度と角速度、Roll, Pich, Yawを出力してくれます。

How to install library for ICM20948 in Pico Explorer? と言うQ&Aの中でTonygo2さんと言う方が紹介してくれています。
https://forums.pimoroni.com/t/how-to-install-library-for-icm20948-in-pico-explorer/18249/10

読み出した磁気センサー測定値の内、X,Yの生値を散布図にしてみました。

時々、グラフの外に飛び出すような大きな値を持ったノイズがありますが、フィルター出来ると思います。円の中心がズレているのでX,Y各々オフセット値を設定するために簡易な校正が必要そうです。

いずれは有用なライブラリが現れると思いますが、当面の課題はこれで先に進めることが出来そうです。


今後とも宜しくお願い致します。



出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。