ユーザーの足音をカウントするこのコードを見つけましたが、正しく機能していません。正確な結果を示しているわけではありません。
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
const float violence = 1.2;
static BOOL beenhere;
BOOL shake = FALSE;
if (beenhere) return;
beenhere = TRUE;
if (acceleration.x > violence || acceleration.x < (-1* violence))
shake = TRUE;
if (acceleration.y > violence || acceleration.y < (-1* violence))
shake = TRUE;
if (acceleration.z > violence || acceleration.z < (-1* violence))
shake = TRUE;
if (shake) {
steps=steps+1;
}
beenhere = false;
}
不正なステップも検出しています。フィルターを適用して誤ったステップを削除するにはどうすればよいですか?
数日間情報を探していて、ここでいくつか見つけました: http://www.analog.com/library/analogDialogue/archives/41-03/pedometer.htmlですが、適用に問題があります。