2014-10-10 14 views
2

У меня есть устройство 16 ГБ от Motorola. Он имеет акселерометр с 3 осями LIS3DH.Минимальный и максимальный диапазон акселерометра и преобразование данных датчика

Для чтения значения Max и Min Accelerometer я использовал эти API.

getMaximumRange() 

Some says его шоу zero to Pick или pick to pick

Но для моего устройства я получаю значение 39,24

так я хотя 39,24/9,8 = ~ 4,00 сек мой диапазон +/- 4g

Но когда я просто читаю данные x, y, z и сохраняю их в файле и вижу значения при максимальном ускорении для моего смартфона, тогда его значения отображаются до 76 м/с2

В чем смысл этого?

Является ли это ошибкой моего устройства?

как преобразовать эти значения в значения + - 2g. мой алгоритм хочет значение в формате + -2g, как это сделать?

Как выполнить отрезку или сбрасывание значений данных датчика?

+1

В соответствии с листом данных акселерометр динамически настраивается для разных диапазонов. Возможно, вы можете использовать интроспекцию, чтобы увидеть, есть ли у внедряющего класса датчика дополнительные методы для динамического изменения диапазона датчиков. Технический паспорт датчика: http://www.st.com/web/catalog/sense_power/FM89/SC444/PF250725?icmp=pf250725_pron_pr_feb2014 Я также рекомендую прочитать http://developer.android.com/reference/android/hardware/SensorEvent .html # values ​​ –

+0

@ KlasLindbäck спасибо только что прочитал, что только –

+0

1G составляет 32 'в секунду (сек * сек), поэтому 76 м в секунду (сек) сек (примерно) 228' в секунду * сек., поэтому 228/32 = 7.125 Г. – user3629249

ответ

0

moto g имеет динамический конфигурационный датчик. Первоначально он настроен в режиме 4g. Но когда вы получаете больше ускорения для своего мобильного телефона, он меняет режим датчика и переключается на 8g, и вы все равно получаете большее ускорение, а затем автоматически генерируете 16-граммовый режим. Через некоторое время он вернется в режим 4g.

Вы можете использовать функцию обратной связи Sensocr Accurcay при этом изменении диапазона.

Смежные вопросы