2013-09-07 2 views
0

가속도계를 사용하여 안드로이드 장치의 동작 방향을 감지하려고합니다. 가속도 출력 값에서 중력 구성 요소를 제거하고 각도를 차감했습니다. 가속도계를 사용하여 장치 동작 방향 가져 오기

그래서 나는 운동의 방향을 얻을 수 있어요 그러나 나는 또한 순간적으로 임의의 각도를 얻을. 내가 장치를 움직일 때처럼.

이러한 각도를 필터링 할 수있는 방법은 무엇입니까?

편집 : 나는 현재와 과거 값의 평균을 취함으로써이 문제를 다소 해결할 수있었습니다. 계속되는 또 다른 문제점은 초기에는 잠시 동안 가속도계가 반대 방향으로 값을보고한다는 것입니다. 가속도계와 전형적인 문제가있어

+0

장치의 움직임을 멈 추면 움직이는 방향이 멈추므로 어떤 각도로보고 하시겠습니까? – Beta

+0

@ 베타 없음. 그게 요점이야. 각도를보고 싶지 않습니다. 그러나 나는 현재와 과거의 가치의 평균을 취함으로써 그 문제를 풀 수 있었다. 손에 새로운 문제는 내가 움직이기 시작할 때, 나는 초기에 반대 방향으로 가속 값을 얻는다는 것입니다. –

답변

0

은 ... 처음에 때문에 등 관성, 전혀 어떤 해결책이 없다 ...하지만 당신은 "정수 컨트롤러"어떤 종류를 사용하여 시도 할 수 있습니다.

다른 가능한 해결책

가속도에 급격한 변화를 검출하고, 방향의 변화로 해석되고, 말, 예를 들어 X는 에지 (도끼)에 가속도가있는 경우.

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. 
} 
} 

부담없이 창의력을 발휘하십시오. 솔루션을 관리하는 많은 방법은 대상에 따라 다릅니다.

도움이되기를 바랍니다.