M5StickVのIMUのドリフト補正したときのグラフ. 画像を作ってSDに書き出せるのは非常に便利. |
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つがあります.
新しいタイプのM5StickVのMPU6866は、GPIO25をHIGHにするとI2C、LowだとSPI接続です。こちらをご参考まで。https://t.co/LySTbKzuSO
— nnn (@nnn112358) November 5, 2020
どちらを使うかを決めるためには,G25をHigh or Lowにする必要があります(nnnさん教えてくださりありがとうございます).
手始めに,I2Cを使ってMPU6886との会話を試みます...
情報ありがとうございます.
— shts (@shtsno24) November 5, 2020
ただ,GPIO25をいじっても読めないので,多分もっと別の問題な気がしています...
ほかの人だと読めたのに,なぜか読めない...
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.