По мере нахождения информации я буду собирать ее в этом ответе.
Аппаратное обеспечение
В 3GS используется ST LIS331DL 3-осевая ± 2g /Цифровой акселерометр ± 8 г.
В iPhone 4 и iPad используется ST LIS331DLH 3-осевая ± 2 г / ± 4 г / ± 8 г цифрового акселерометра.
Они оба способнысчитывание на частоте 100 Гц и 400 Гц, хотя на iPhone 3G (под iOS 4.1) делегат акселерометра вызывается не чаще, чем 100 Гц, даже если setUpdateInterval установлен для более быстрого обновления.Я не знаю, разрешает ли API более быстрые обновления на iPhone 4, а в документации Apple просто говорится, что максимум определяется аппаратным обеспечением iPhone.(TBD)
Аналого-цифровой преобразователь находится на том же кремнии, что и датчик MEM, что хорошо для помехоустойчивости.
Версия DL имеет 8 бит (3GS), а версия DLHсоставляет 12 бит (iPhone 4).Максимальное смещение (смещение) в версии DL вдвое больше, чем в версии DLH (0,04 г против 0,02 г).
Таблица данных для DLH содержит данные о плотности шума ускорения, но об этом значении не сообщаетсятаблица данных DL.Плотность шума достаточно низкая - 218 µ g / √Hz для DLH.
Оба датчика обеспечивают частоту дискретизации 100 Гц или 400 Гц без заданной частоты.Датчик сбрасывает значения, если iPhone не считывает выходной регистр с установленной частотой дискретизации.
«Типичное» значение полной шкалы для датчика DL составляет ± 2,3 г, но ST гарантирует, что оно по крайней мере± 2g.
Температурные воздействия на датчик присутствуют и измеримы, но не очень значительны.
TBD:
- Включен ли аппаратный фильтр и чтохарактеристики фильтрации?
- Насколько шумно питание акселерометра?(У кого-нибудь есть схема iPhone?)
- Акселерометр использует внутренние часы для обеспечения синхронизации частоты дискретизации и аналого-цифрового преобразования.Таблица данных не указывает на точность, точность или температурную чувствительность этих часов.Для точного анализа времени iPhone должен использовать прерывание, чтобы определить, когда делается образец, и записать время в прерывании.(сделано это или нет неизвестно, но это единственный способ получить точную информацию о синхронизации)
API
Запрос частоты дискретизации ниже 100 Гц приводит к получению выбранных выборок, в то время какоткажитесь от всего остального.Если в программном обеспечении запрашивается частота дискретизации, не равная 100 Гц, временные интервалы между реальными показаниями датчиков не могут быть четными.Apple не гарантирует даже частоту дискретизации, даже если используется коэффициент 100.
Похоже, что API не обеспечивает программную фильтрацию.
API действительно масштабирует необработанное значение акселерометра в двойное представлениеGs.Используемый коэффициент масштабирования неизвестен, и отличается ли он для каждого телефона (т. Е. Откалиброван) и проводится ли калибровка на постоянной основе для учета смещения датчика, неизвестно.Похоже, онлайн-отчеты предполагают, что iPhone иногда самопроизвольно калибруется, когда лежит на поверхности.
Результаты простого тестирования показывают, что API устанавливает для датчика значение ± 2g для 3GS, что обычноотлично подходит для ручных перемещений.
TBD:
- Калибрует ли Apple каждый блок, чтобы UIAccelerometer отображал 1G как 1G?Документация Apple специально предупреждает против использования устройства для чувствительных измерительных приложений.
- Представляет ли NSTimeInterval, о котором сообщают, когда значения были прочитаны из акселерометра, или когда прерывание акселерометра указало, что новые значения были готовы?