2012-02-14 88 views
4

我正在使用爲不同目的使用SensorManager的Android應用程序。 在調查期間我發現Sensor.getResolution()函數針對不同的設備返回不同的值:Android:Sensor.getResolution()value

HTC感覺具有用於所有上載傳感器1.0的分辨率值。

摩托羅拉XOOM

3-axis Accelerometer -> 0.009576807 
3-axis Magnetic field sensor -> 0.0625 
L3G4200D Gyroscope sensor -> 0.0012217305 
Linear Acceleration Sensor -> 0.009576807 
Gravity Sensor -> 0.009576807 

目前尚不清楚是否我需要使用合適的傳感器的值之前使用此分辨率值做額外的計算。官方文件並沒有把它放在燈上。

有人可以解釋我這個'決議'的價值目的嗎?

回答

4

傳感器的輸出是電壓。這由ADC轉換爲整數。

假設

  • 您accelermeter的靈敏度爲800mV /克

  • 您正在-1.5..1.5克

    之間

  • 測量你有一個12位的ADC

然後你的分辨率約爲(1.5g + 1.5g)/ 800mV/g = 7×10-4克/單位。

也就是說,低於此值的任何東西都不能被區分,因此名稱解析。

您不必對此值做任何事情。它只是告訴你設備的理論極限。不幸的是,在我的經驗中,傳感器的精度比這更糟糕的限制... :(

0

分辨率定義爲可以由傳感器檢測到的最小變化。