はじめに 

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の足に直付けされてるというのもあってかなり安定しています。

今後はこれを応用していろんなものができそうです!