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

記事
IT・テクノロジー
MicroPython で使う Raspberry Pi Pico で 9軸センサー ICM90248 の磁気センサーを読み出しました。

タイトル画像はスイッチサイエンスさんで購入した「Raspberry Pi Pico用10-DOF IMU センサ ICM20948 + LPS22HB」に Pico W を接続した状態で、センサーモジュール単体では下図のような姿です。
fig.jpg
加速度と角速度はライブラリを見つけて読み出せたのですが、磁気センサーも読み出せるライブラリをみつけることが出来ずに困っていました。
ICのマニュアルを読み下して一人で作るにはボリュームが大き過ぎて無理と判断しました。

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

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

ココナラの規定によりURLを載せることは出来ませんが、How to install library for ICM20948 in Pico Explorer? と言うQ&Aの中でTonygo2さんと言う方が紹介してくれています。

読み出した磁気センサー測定値の内、X,Yの生値を散布図にしてみました。
fig1.png
木製テーブルの上で、X-Y平面上を手作業で滑らせながら360度回転させた時の実測値です。

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

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


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






サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら