2010-01-17 5 views
0

ID 한 방향으로 흔들면 한 가지, 다른 방향으로 흔들면 ID가있는 앱을 사용합니다.가속도계가 좌우로 움직이는 것을 감지 함 - 방향 변경의 즉각적인 감지

atm 제 코드는입니다.

if (acceleration.x > 1.5) { 

오른쪽 // 암 1 개 -1 값이 너무 민감하지에 노력하고 있습니다 당신에게

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

설명 ... 감속을 시작하기보다는 주변을 돌아볼 때 장치의 속도가 0이되면 이미지가 깜박입니까? –

+0

음, 그렇습니다. 돌아서. 순간적으로 장치는 v = 0이 될 것입니다. 이것은 효과적인 방아쇠가 될 수 있습니다. 어떻게 사용합니까? –

답변

0

음, 속도를 얻기 위해 가속도를 통합해야합니다. 불행하게도, 가속도계는 약간 시끄럽고 필연적으로 조금 흐트러 뜨릴 것입니다. 그래서 여러분은 그 적분을 걸러 내야 할 것입니다. I http://www.musicdsp.org/showone.php?id=92에 설명 된 필터는 컷오프 주파수가 샘플링 주파수의 약 1/4로 설정되어 있다고 생각합니다. band 출력이 필요하므로 공진 파라미터를 조정해야합니다.

+0

이것은 내가 생각했던 것보다 훨씬 까다로워 보인다. 가속도계 을 사용하여 전화가 방향을 바꾸면 말할 수있는 방법이 없는지 확인하십시오. 가속도가 양수 값에서 음수 값으로 이동해야합니까? –

+0

무엇을 내가 쓴 경우 경우 문 같은 (가속 긍정적이고 전에 0이었다) 경우 { // 액션 } 및 {(가속도가 음과 전 공하고있다) 경우// action for reverse } 나는 가속도가 0 일 때 계속 움직일 수 있다는 것을 알고 있지만,이 경우에는 일정하지 않은 속도로 기기를 움직일 수 없으므로 무엇이 문제가되지 않습니다. (또는 꽤 많이) –

+0

꽤 확실하지만 간단한 필터 (8 ~ 10 줄의 코드 일 것임)는 바로 정렬해야합니다. 당신이 동작의 끝까지 당신의 행동을 시간 내고 싶다면 가속의 영점에 있지 않을 것입니다. –

관련 문제