使用加速度计或陀螺仪计算步数

时间:2013-05-27 12:12:01

标签: iphone ios objective-c accelerometer gyroscope

我正在开发一个应用程序来计算用户的步骤,同时将手机放在裤子的口袋里。 我需要知道哪个更好用,我应该使用加速计传感器还是陀螺仪传感器。 我也尝试过加速计传感器,但它有效,但我要检查陀螺仪是否对此功能或加速度计更准确? 在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

我想你可能已经看过我关于这个主题的想法,但为了完整起见,我认为在这里记录它们是好的。

我认为最好的结果将来自使用所有可用的传感器。但是,仅使用加速度计数据我得到了合理的结果,请参阅my answer here。我做的是让很多朋友为我走路,我计算了他们采取了多少步骤。当他们走路时,我的Android设备正在记录所有传感器输出。然后我用C#开发了一个程序(因为这是我最喜欢的语言),它分析了所有日志文件,因此优化了一种计算步骤的方法,然后我将其移植到Android java。

无论您最终使用哪种传感器,记录大量数据然后进行分析以确定如何最好地计算步骤是我的建议。

答案 1 :(得分:1)

加速度传感器检测沿轴的加速度,同时陀螺仪可以检测到旋转,因此它们具有不同(和互补)的用途

查看这些差异的更详细说明,以及可以从原始数据中过滤的值 https://github.com/hadimichael/V-Tracker/wiki/Hardware

答案 2 :(得分:0)

你可以试试这个..它对我来说非常有用..

        var motionmanager = CMMotionManager()
        motionManager.deviceMotionUpdateInterval = 0.1
        motionManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler:{
            deviceManager, error in

            var accelerationThreshold:Double = 1;
            var userAcceleration:CMAcceleration = deviceManager.userAcceleration;
            if(fabs(userAcceleration.x) > accelerationThreshold) || (fabs(userAcceleration.y) > accelerationThreshold) || (fabs(userAcceleration.z) > accelerationThreshold)
            {
                println("LowPassFilterSignal")
            }
        })
相关问题