14

早在 iPhone 4 和第 4 代 iPod Touch 面世时,我就在玩弄 Apple 的 Core Motion 传感器融合算法,看看能否在非常局部的航位推算(在几英寸或几英尺的范围内)获得任何有趣的结果。考虑到 MEMS 传感器的规格相对较低,我没想到会有什么壮观的东西。尽管 Apple 的CMDeviceMotion gravity属性使用了不错的(虽然不透明)传感器融合算法,但互补userAcceleration属性并不完全针对航位推算。不过,我认为那里可能有足够的乐趣。

iPhone 4、iPhone 5、第 4 代 iPod Touch 和第 5 代 iPod Touch 显然都使用了 STMicroelectronics LIS331DLH 加速度计和 L3G4200D 陀螺仪。(实际上,我还没有看到 iTouch-5 陀螺仪的部件号,所以可能会有所不同。)

拆解:iPhone-4iTouch-4iPhone-5iTouch-5

ST 规格显示加速度计可以在高达 ±8g 的 1000 Hz 下进行采样。该陀螺仪可以以 800 Hz 的频率进行采样,最高可达 ±2000 dps。

规格:LIS331DLH , L3G4200D

但是,在使用我的第 4 代 iPod Touch(iOS 5 和 iOS 6)时,我只能将采样率提高到 100 Hz。如果我设置CMMotionManager deviceMotionUpdateInterval低于 0.01,它会自动重置为 0.01。accelerometerUpdateInterval和相同gyroUpdateInterval

此外,加速度计输出似乎总是被限制在 ±2g 左右。

我看到其他人对 iPhone 4 的类似限制发表了评论。

这两个界限都严重限制了我可以挤出设备的局部加速度计算(用我的第 4 代 iPod touch 进​​行实验)。我认为 Apple 已将这些界限设置得较低以降低功耗。虽然我不知道它们是设置在硬件中,还是设置在 iOS 的某个地方。

有没有人在 iPhone 5 或第 5 代 iPod Touch 上使用过这些加速度计和陀螺仪边界?(或者任何 iPad?)任何高于 100 Hz 的采样率?任何加速度计测量值超出 ±2g 的范围?

4

3 回答 3

6

在我所做的读数中,在确定加速度计将读取的最小/最大读数时,您通常有 2-3 个选择。2G 是加速度计的一个非常常见的选择,因为下一步 (8G) 通常是粗略读数以获得手动操作时所需的精细测量。如果您将其从建筑物上放下来测量撞击地面的力,您会想要使用 8G(或某些提供的 16G)。

根据Corona Labs 的人员的说法,赫兹似乎被故意限制在 100Hz 。显然是为了避免滥用电池。我读过加速度计是耗电最少的传感器,但我想这都是相对的,或者在 100Hz 左右的某个时间点,耗电量会急剧增加。

于 2012-10-20T22:11:14.237 回答
3

我在 iPhone 5 上测试 techBASIC 并注意到一个异常情况,导致我进行了这个讨论。显然 iPhone 5 中的加速度计设置为 8G 范围!虽然我找不到任何参考资料来证实这一点,但当我上下摇晃 iPhone 5 时,techBASIC 的加速度计演示显示了这一点:

iPhone 5 上的加速度图

这对于物理应用来说是非常令人兴奋的。我使用 SensorTag 来测量模型火箭的加速度,因为它具有可选的 8G 范围,而 iPhone 没有——您现在可以省去 SensorTag 并直接使用 iPhone。

http://www.youtube.com/watch?v=8YNjwcNXOK4 iPhone 火箭

于 2013-01-29T23:01:51.937 回答
2

为了帮助回答您问题的另一半,我使用的是 iPad Mini,当我使用Warren Whipple 的建议时,我发现如果我将它们设置为任何较小的值,an​​d 将立即重置为 0.01 accelerometerUpdateIntervalgyroUpdateInterval

但是,当我在设备上运行诊断测试时,我发现加速度计或陀螺仪数据的实际更新速率更接近 0.02 秒,即如果我将其设置accelerometerUpdateInterval为 0.01 秒并在 0.01 秒时查询加速度计数据,我会得到一个每隔一次获取的唯一读数,但如果我将其设置为 0.02 秒(或在 0.02 秒处查询),那么我在每次获取时都会获得唯一读数。

于 2014-06-26T20:57:52.740 回答