繁体   English   中英

如何通过 iOS 中的 CMMotionManager 获得实际加速度

[英]How to get the actual acceleration via CMMotionManager in iOS

我正在使用startDeviceMotionUpdates()获得 x、y 和 z 设备加速,并使用 Timer 读取userAcceleration数据结构。 苹果文档状态

设备的总加速度等于重力加上用户施加给设备的加速度。

例如,即使我摇晃手机,我得到的值在 X 轴上最多为 5.7nnnn。 现在,如果重力加速度是 9.81 m/sec 的平方,那么 5.7nnnn 的值以 m/sec 的平方表示什么? 也就是说,我如何从userAcceleration给出的原始轴值中获得实际的 m/sec 平方值? 如何解释加速和减速之间的区别?

CoreMotion (CM) 以 g 为单位输出加速度。 因此,您需要将这些值乘以 ~9.81 m/s^2。

此外,与更传统的加速度计相比,CM 加速度读数是相反的; 即,当设备静止在桌子上时,CM 在 z 轴上的测量值约为 -1.0,而传统加速度计的测量值约为 9.81 m/s^2(请注意,前者值为负,后者为正)。 因此,如果您将 CM 读数乘以 -9.81,您会得到直观的结果:沿轴的正值表示加速度,负值表示减速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM