私は自転車用コンピューターアプリを使用しています。加速度計を使って斜面の傾きを計算したかったのですが、うまくいきません。
UI レートで smapeling し、約 6 秒の価値がある 128 サンプルの移動平均を維持するセンサー データを取得するテスト コードを入れました。携帯電話を手にしていると、データは良好で、キャリブレーション フラット ベクトルと比較して適切な角度を計算できます。
電話が自転車に取り付けられていると、物事はまったく良くありません。かなりのノイズが発生することを期待していますが、大きな時間枠にわたる多数のサンプルにより、振動の影響と一般的な自転車の動きが取り除かれることを期待していました。残念ながら、これは機能していません。加速度ベクトルの大きさは実際には 9.8 マーク付近にとどまっておらず、低下しています。これは、どこかで何かが正しくないことを示しています。
これは、試乗の一部からのデータのプロットです。
ご覧のとおり、開始時に静止しているときは等級は問題ありませんが、開始すると低下します。問題は振動に関連していると確信しています。最初に下降し、大きな振動があり、その後上昇しました。振動は小さくなり、マグニチュードは 9.8 に戻りましたが、悪路で急速に落下し、マグニチュードは 3 未満になりました。 .
これは、BMA250 センサーを使用する SonyErricson Xperia Active を使用したもので、データシートはセンサーが機能しているように見えます。問題の原因についての私の唯一の理論は、範囲が 2g 範囲に設定されており、振動によってデータが範囲外になり、これが問題を引き起こしているということです。
誰もこのようなものを見たことがありますか?誰かが問題の原因について何か考えを持っていますか?
見つけられなかった感度を変更する方法はありますか?
追加情報。
OK フィルタリングする前に生のセンサー データをログに記録しました。ここに示されている非常に小さな部分
長軸は緑色で平らであり、これは振動がなければ約 8.5 になるはずです。データに明らかなクランプはありませんが、8.5 を超える値よりも 8.5 を下回る値の方が多くなります。センサーが最も敏感な 2g 範囲に設定されている場合でも、振動は問題ないように見えます。ここでの最大値は 15 をわずかに上回り、最小値は -10 です。まあ、± 20 の範囲が正しく中央に配置されていません。 8.5である必要があります。
少し違うセンサーを持っているように見える私の他の電話を掘り起こし、BMA150で試してみますが、それが完璧でない限り、アイデアをあきらめなければならないと思います.