当我找到信息时,我将在这个答案中收集它。
硬件
3GS 使用ST LIS331DL 3 轴 ±2g/±8g 数字加速度计。
iPhone 4 和 iPad 使用ST LIS331DLH 3 轴 ±2g/±4g/±8g 数字加速度计。
它们都能够以 100Hz 和 400Hz 的频率读取,尽管在 iPhone 3G(iOS 4.1 下)上,即使 setUpdateInterval 设置为更快的更新,加速计委托的调用频率也不会超过 100Hz。我不知道 API 是否允许在 iPhone 4 上进行更快的更新,而 Apple 的文档仅说明最大值由 iPhone 的硬件决定。(待定)
A/D 转换器与 MEM 传感器位于同一硅片上,有利于抗噪性。
DL 版本是 8 位 (3GS) 而 DLH 版本是 12 位 (iPhone 4)。DL 版本中的最大偏差(偏移量)是 DLH 版本的偏差(0.04g 与 0.02g)的两倍。
DLH 的数据表报告了加速度噪声密度,但 DL 数据表中没有报告该值。DLH 的噪声密度相当低,为 218 μ g /√Hz。
两种传感器都提供 100Hz 采样或 400Hz 采样速度,没有自定义速率。如果 iPhone 没有以设定的采样率读取输出寄存器,传感器会丢弃值。
DL 传感器的“典型”满量程值为 ±2.3g,但 ST 仅保证至少为 ±2g。
温度对传感器的影响是存在且可测量的,但不是很显着。
待定:
- 硬件过滤器是否开启,过滤特性是什么?
- 加速度计的电源噪声有多大?(有人碰巧有 iPhone 的原理图吗?)
- 加速度计使用内部时钟为采样率和 A/D 转换提供时序。数据表并未说明此时钟的准确度、精度或温度敏感性。为了进行准确的时间分析,iPhone 必须使用中断来感知采样何时完成并在中断中记录时间。(是否这样做是未知的,但这是获得准确计时信息的唯一方法)
API
请求低于 100Hz 的采样率会导致获得选定的样本,而丢弃其余样本。如果在软件中要求的采样率不是 100Hz 的因子,则实际传感器读数之间的时间间隔不可能是均匀的。即使使用因子 100,Apple 也不保证采样率均匀。
该 API 似乎没有提供软件过滤。
API 确实将原始加速度计值缩放为表示 Gs 的双精度值。使用的比例因子是未知的,并且对于每部手机这是否不同(即,已校准)以及校准是否持续发生以解决传感器漂移也是未知的。在线报道似乎表明,当 iPhone 平放在表面上时,它有时会重新校准自身。
简单测试的结果表明,API 将 3GS 的传感器设置为 ±2g,这对于手持运动来说通常很好。
待定:
- Apple 是否校准每个单元,以便 UIAccelerometer 将 1G 报告为 1G?Apple 的文档特别警告不要将该设备用于敏感的测量应用。
- 报告的 NSTimeInterval 是否表示从加速度计读取值的时间,或者加速度计中断指示新值已准备好的时间?