2022年10月2日日曜日

M5StickC Plus 加速度センサー(MPU6886)

M5StickC-Plus 内の加速度センサー(MPU6886)によるデータ取得。

加速度計の場合、msecオーダーの制御が必要です。受信側で時刻を付与すると、転送時間や受信側の処理速度により正しい計測時刻を設定できません。それが規則的にずれているなら補正できますが、ランダムであれば手の施しようがありません。センサー側でデータを保存するか、測定時刻を測定データとともに受信側に送るかでしょう。手元にはSDカードモジュールがないため、後者の選択になります。まずは EXCEL で取り込んでみましょう。

これまで使用してきた delay() を用いて、約10msec 間隔でデータを採取。1 loop の中で 10msec 止めるので、処理時間を加えるとそれ以上の間隔での測定になります。それが何m秒なのか知りたくて、RTC にて時刻を付与したデータをシリアル送信。

ダメでした。RTC の時刻付与は秒単位。msec単位で表示できないのでしょうか?
そうなると最初に RTC で計測開始時刻を定め、あとは一定間隔で値を取り出すしかないでしょう。仕事で使用する加速度計も同じ(計測開始時刻+時間ステップ指定)かもしれません。

センサー側 CPU クロック 80MHz、delay(5)、EXCEL側 10msec で取ってみると、7ms間隔でデータが保存されていました。
センサー側 CPU クロック 240MHz、delay(5)、EXCEL側 10msec だと6ms間隔。
センサー側 CPU クロック 240MHz、delay(9)、EXCEL側 10msec だと10ms間隔。この程度でしょうか。
全てのケースで、たまに欠損があります。これはEXCEL側の問題。やはり表示がダメか。

delay()でもそれなりの結果を得られましたが、やはり正確なデータ間隔をプログラム中で設定したい。このままでは長時間の計測でズレが生じるでしょうし、EXCEL側でも他のソフト次第で欠測の多く発生することが予想されます。

時間刻み、データの保存方法について調べましょう。

0 件のコメント:

コメントを投稿