Android: значение Sensor.getResolution()

Я работаю над приложениями для Android, которые используют SensorManager для разных целей. В ходе расследования я обнаружил, что функция Sensor.getResolution() возвращает разные значения для разных устройств:

HTC Sensation имеет значение разрешения 1,0 для всех встроенных датчиков.

Motorola 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  

Не ясно, нужно ли мне делать дополнительные вычисления с использованием этого значения разрешения, прежде чем использовать соответствующие значения датчика. Официальная документация не проливает на это света.

Кто-нибудь может объяснить мне назначение значения "разрешение"?


person Dmitry Tupikin    schedule 14.02.2012    source источник


Ответы (2)


На выходе датчиков напряжение. Он преобразуется в целое число с помощью ADC.

Предполагать

  • чувствительность вашего акселерметра 800 мВ/g

  • вы измеряете от -1,5 до 1,5 г

  • у вас 12 битный АЦП

Тогда ваше разрешение будет примерно (1,5 г + 1,5 г)/800 мВ/г = 7*10-4 г/ед.

То есть все, что ниже этого, невозможно различить, отсюда и название «разрешение».

С этим значением ничего делать не нужно. Он просто сообщает вам теоретический предел устройства. К сожалению, по моему опыту, точность датчиков хуже этого предела... :(

person Ali    schedule 15.02.2012

Разрешение определяется как наименьшее изменение, которое может быть обнаружено датчиком.

person CodeToLife    schedule 13.10.2014