0

加速度計を使用して Android デバイスの動きの方向を検出しようとしています。加速度計の出力値から重力成分を取り除き、角度を差し引きました。

そのため、動きの方向を取得できますが、瞬間的に任意の角度も取得できます。デバイスの移動を停止したときのように。

これらの角度を除外する方法について何か提案はありますか?

編集:現在と過去の値の平均を取ることで、これをある程度解決できました。持続するもう​​ 1 つの問題は、最初の数分間、加速度計が動きの反対方向の値を報告することです。

4

1 に答える 1

0

これは加速度計の典型的なトラブルです...最初は慣性などのために解決策がありません...しかし、ある種の「整数コントローラ」を使用してみることができます。

別の可能な解決策は、加速度の急激な変化を検出し、それらを方向の変化として解釈することです。たとえば、X エッジ (Ax) に加速度がある場合です。

while(1){
Ax = readAx();
if(changeSign(Ax)){  //From + to - or - to +.
      //Do what ever you need, for example if sign is changed and keep on it then is that the mobilephone is been moved in the other direction. Else if it's acceleration is close to 0 it means that the device has stopped
}else{
     //The device keep moving on the same direction.
}
}

自由に創造してください。ソリューションを管理するには、ターゲットに応じてさまざまな方法があります。

お役に立てば幸いです。

于 2013-09-07T14:40:54.970 に答える