0

Idには、一方の方向に振ると別のことを実行し、もう一方の方向に振ると別のことを実行するアプリがあります。

atm私のコードはです。

if (acceleration.x > 1.5) {

//あなたに向かって右に腕を振る

    float duration = ([imageArray count]*0.04);

    //HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
    //NSLog(@"duration:%f", duration);
    [theFlash setAnimationImages:imageArray];
    [theFlash setAnimationRepeatCount:1];
    theFlash.animationDuration = duration;
    [theFlash startAnimating];
    NSLog(@"images flashed forward");   

}

if (acceleration.x < -1)
{
    //arm to the left when facing you

    float duration = ([imageArrayReversed count]*0.04);

    //HUMAN EYE KEEPS IMAGES IN EYE For 40 MILLISECONDS//
    NSLog(@"duration:%f", duration);
    [theFlash setAnimationImages:imageArrayReversed];
    [theFlash setAnimationRepeatCount:1];
    theFlash.animationDuration = duration;
    [theFlash startAnimating];
    NSLog(@"images flashed backward");  

}

1と-1の値は、感度が高すぎないように機能しています。

ただし、このコードでは、希望する結果が得られません。人がデバイスを反対方向に動かし始めたらすぐに画像を点滅させたい(コードを参照)。

これを行う方法はありますか?

4

1 に答える 1

0

さて、あなたは速度を得るために加速度を統合しなければならないでしょう。残念ながら、加速度計は少しノイズが多く、必然的に少しドリフトするため、その積分をフィルタリングする必要があります。http://www.musicdsp.org/showone.php?id=92で説明されているフィルターは、カットオフ周波数をサンプリング周波数の約1/4に設定して、必要なことを実行できると思います。出力が必要であり、レゾナンスパラメーターを調整する必要があります。band

于 2010-01-17T05:33:20.283 に答える