はじめに
9軸センサを買ったので備忘録代わりに
買ったもの
・Raspberry pi pico本体 \792(switchscience)
特に無線を使う予定はないので普通のやつを買った。ピンヘッダは家にあるものを使った。
・WAVESHARE-19358 \3,201(switchscience)
今回の主役。9軸センサICM20948と気圧センサLPS22HBを搭載している。
下準備
Raspberry pi picoと9軸センサをシルクに従ってはめ込む。
↑はめ込むとこんな感じ
こ れ だ け
簡単!!
プログラムを書き込む
今回はこちらのライブラリ(GitHub)を使わせていただく。
改造
しかし、このままだと上手く動作しないので、少しライブラリのコードを改変する必要がある。
まず、9軸センサのI2C端子がRaspberry pi picoの6,7番(I2C1)に接続されているから、
DPEng_ICM20948_AK09916.cppを
以下のように「Wire.」を「Wire1.」に置換する。(ただし、ライブラリをイングルードするところは変えない。)
そして、ピンを設定するために、Wire1.begin();の前に、
Wire1.setSDA(6);
Wire1.setSCL(7);
という文を追加する。
そしたら、今度はDPEng_ICM20948_AK09916.hを改造する。
39行目
#define ICM20948_ACCELGYRO_ADDRESS (0x69)
↓
#define ICM20948_ACCELGYRO_ADDRESS (0x68)
に変えて保存する。
書き込み
Arduino IDEを開いて [ファイル]>[スケッチ例]>[DPEng ICM20948 AK09916C]>[sensorapi]から
sensorapi.inoを開く。
そして、ボードとポートを変更し、特に手を加えずに書き込むと...
無事!センサーの値を取り込むことができました!!
Raspberry pi picoの足に直付けされてるというのもあってかなり安定しています。
今後はこれを応用していろんなものができそうです!