随着我了解信息,我将在此回答中收集它。
硬件
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进行更快的更新,苹果的文档仅说明最大值由iPhone的硬件确定。(待定)
A/D转换器位于与MEM传感器相同的硅上,这对于噪声抗干扰性很好。
DL版本是8位(3GS),而DLH版本是12位(iPhone 4)。DL版本中最大的偏差(偏移量)是DLH的两倍(0.04g vs 0.02g)。
DLH的数据表报告了加速度噪声密度,但该值在DL数据表上没有报告。DLH的噪声密度相对较低,为218μg/√Hz。
两个传感器都提供100Hz或400Hz的采样速度,没有自定义速率。如果iPhone没有以设定的采样率读取输出寄存器,则传感器会丢弃值。
DL传感器的“典型”满量程值为±2.3g,但ST仅保证其至少为±2g。
温度对传感器的影响存在并可测量,但不是非常显著。
待定:
- 硬件滤波器是否打开,滤波特性是什么?
- 加速度计的电源噪音有多大?(有没有人碰巧有iPhone原理图?)
- 加速度计使用内部时钟提供采样率和A/D转换的定时。数据手册没有说明此时钟的精度、准确性或温度敏感性。为了进行准确的时间分析,iPhone必须使用中断来检测采样何时完成,并在中断中记录时间。(是否已经这样做不得而知,但这是获取准确时间信息的唯一方法)
API
请求低于100Hz的采样率会导致获取选定的样本,而丢弃其余的样本。如果在软件中请求不是100Hz因数的采样率,则实际传感器读数之间的时间间隔可能不均匀。即使使用100的因数,苹果也不能保证均匀的采样率。
似乎API没有提供软件滤波功能。
API会将原始加速度计值缩放为表示G的双精度数值。使用的缩放因子未知,不清楚每个手机是否不同(即是否校准),以及校准是否在持续进行以解决传感器漂移问题。在线报告似乎表明,iPhone在平放在表面上时会重新校准自己。
简单测试的结果表明,API将3GS的传感器设置为±2g,这通常对手持运动来说是可以接受的。
待定:
- Apple是否校准每个设备,使UIAccelerometer报告1G为1G?Apple的文档明确警告不要将设备用于敏感测量应用。
- 报告的NSTimeInterval是否表示从加速度计读取值的时间,还是表示加速度计中断指示新值已准备好的时间?