2012-06-17 5 views
3

Android에서 가속도계 프로그래밍을 처음 사용했습니다.가속도계를 사용하여 Android 기기가 얼마나 빨리 움직이는 지 알 수 있습니까?

안드로이드에서 가속도계를 사용하여 내 장치가 어느 방향 으로든 얼마나 빨리 움직이는 지 알고 싶습니다. 나는 장치를 움직이는 방향에 따라 다른 일을 할 때 코드를 찾았지만 장치가 움직이는 속도에 따라 다른 일을하는 것에 대해서는 이야기 할 필요가 없다.

누군가가이 문제를 해결할 수 있습니까?

+0

귀하의 순간 가속도를 아는 것은 주어진 기준 프레임에서 속도를 결정하는 데 유용하지 않습니다. 예를 들어, * constant * velocity로 여행하는 승용차의 승객은 속도가 시속 10 마일 또는 시속 100 마일이든 * 제로 * 가속을 경험하게됩니다. – AakashM

답변

2

가속도계는 속도 변화율 만 측정합니다. (이것은 가속도의 정의입니다.) 따라서 속도를 알려주는 유일한 방법은 어떤 시간 t_0에서 실제 속도 V_0을 알고 연속적인 시간 t_1 동안 dV_i = A_i * (t_i - t_ (i-1))를 기록하는 것입니다. , t_2, ... 여기서 A_i는 t_i에서의 가속도입니다. 그러면 t_n에서의 속도는 V_0 + sum_ (i = 1, n) (dV_i)이다.

이것은 통합이라고 불리며 Isaac Newton을 유명하게 만든 이유입니다.

이 계산은 오류에 매우 취약합니다. 나는 재미로 시험할만한 가치가 없다고 말하고 싶다.

속도를 측정하는보다 유용한 방법은 위치 센서에서 시간을 나눈 ​​값의 변화입니다.

+0

이 계산은 사람의 오류에 취약하지만 컴퓨터는 더 높은 해상도의 리만 합 및 더 좋은 근사를 계산할 수 있습니다. 그리고 다른 모든 것이 실패하면 롤링 평균을 사용하십시오. – gobernador

+3

@gobernador에서 센서의 문제는 정확하지 않습니다. 한 방향으로 0,1G (지구 중력의 1 %)의 작은 일정한 편차조차도 장치가 정지해도 5 분 이내에 100km/h의 오차를 나타냅니다. –

+2

+1 그리고 나는 그만한 가치가 없다. [안드로이드 가속도계 정확도 (Inertial navigation)] (http://stackoverflow.com/a/7835988/341970)에서도 거리에 대해 이야기하고 있지만 속도는 동일합니다. – Ali