2020年11月16日月曜日

M5StickVのIMUで詰まった話


M5StickVのIMUのドリフト補正したときのグラフ.
画像を作ってSDに書き出せるのは非常に便利.


研究をやり始めると,就活がおろそかになるシングルスレッド人間,中の人です.今回はM5StickVのIMUの話です.



1.M5StickVのIMUと回路について


M5StickVは生産された時期に応じて搭載しているIMUと,メインのマイコンであるK210との接続ピン・方法が異なっています.今回は2020/03以降に生産されたモデルで,MPU6886を搭載しているものを使用していきます.

参考:
SwitchScience, M5StickV--販売終了 - スイッチサイエンス, https://www.switch-science.com/catalog/5700/

2.MPU6886と会話する(I2C)


データの読出しに成功した.



MPU6886との通信は,SPIとI2Cの2つがあります.


どちらを使うかを決めるためには,G25をHigh or Lowにする必要があります(nnnさん教えてくださりありがとうございます).

手始めに,I2Cを使ってMPU6886との会話を試みます...


ほかの人だと読めたのに,なぜか読めない...
I2Cのコード自体は動いていたのでIMU側の問題と考え,データシートを眺めていましたが特に答えが得られなかったので,IMUにつながっているG24を操作しました.結果IMU側のアドレスをスキャンできました.
G24はIMUのアドレスを決定するピン(AD0)に接続されているのですが,G24を操作してHigh or Lowにしないと,回路的に浮いた状態になるようです(プルダウン/アップされていないみたい,SPIで読むときに,idle状態で不定にしないと値を吐き出すから?).
とりあえずnnnさんのサンプルコードを参考に,レジスタを設定したところ普通に動作しました.

参考:
m5stack, M5-Schematic/MPU-6886-000193+v1.1_GHIC.PDF.pdf at master · m5stack/M5-Schematic

anoken, purin_wo_motto_mimamoru_gijutsu/006_2_imu_new_MPU6886.py at master · , https://github.com/anoken/purin_wo_motto_mimamoru_gijutsu/blob/master/03_maixpy_example/006_2_imu_new_MPU6886.py

3.SPIで会話する


SPIは開発中...
なぜか読めないんだよね.





©2020 shts All Right Reserved.

0 件のコメント:

コメントを投稿