如何获取用户使用加速度计数据的步数?

Posted

技术标签:

【中文标题】如何获取用户使用加速度计数据的步数?【英文标题】:How to get user's step count in using accelerometer data? 【发布时间】:2015-03-19 11:52:27 【问题描述】:

我想计算用户步数(比如计步器)。我知道在 iPhone 5s、6 和 6+ 上我们可以使用CMStepCounterCMPedometer 类(使用 M7 设备芯片)但 iPhone 5 和更低版本不支持M7芯片,所以不能用CoreMotion。通过在互联网上搜索,我知道我们可以为此目的使用加速度计传感器。但是在花了很多时间之后,我仍然无法做出一个有效的准确算法。

Edit2:花了几天时间搜索谷歌后,我尝试了很多,但仍然找不到使用加速度计计算用户步数的有效算法。 有谁能帮帮我吗?

【问题讨论】:

可能您需要创建一个算法来监控加速度计的值并识别步数或步行的模式。 感谢您的快速回复,但我对加速度计、如何获取价值以及如何识别步数或步行模式一无所知。你有任何示例或资源链接吗? 这几乎是关于不同年龄、不同性别、不同身高/体重等人群的可爱实验数据收集和分析...... @holex 嘿,亲爱的,您能否建议或给我参考以找到正确的算法来使用加速度计计算用户步数? 那是纯粹的研发工作,我的朋友。我们所做的很简单,创建了一个在后台记录加速度计值的简单应用程序,我们将应用程序放在设备上的不同人的口袋里,让他们慢慢走,正常走,快走,然后跑步,然后我们从下载重新编码的值设备,我们分析了他们的模式,根据这些细节,我们可以建立检测步骤并计算步骤的算法。 【参考方案1】:

CMMotionManager 是您在使用更高版本的 ios 时所寻找的。 但是,如果您想继续使用 iOS 5 或更低版本,则需要使用以下内容,尽管已弃用。

UIAccelerometer * accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;

获取x、y、z值的方法是:

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

    //Check your x,y,z values to find step ... 

如果您需要了解计步器背后的逻辑,您可以在 Google 中搜索和阅读:)

【讨论】:

我需要 iOS 6+ 甚至 7+ 也可以。而且我整天都在寻找步数背后的逻辑,但没有得到。 那你得看[CMMotionManager] (developer.apple.com/library/ios/documentation/CoreMotion/…) 我尝试使用 CMStepCounter,但似乎它使用了 M7 处理器,所以我无法在 iPhone5 中获取步数。

以上是关于如何获取用户使用加速度计数据的步数?的主要内容,如果未能解决你的问题,请参考以下文章

iOS获取健康步数从加速计到healthkit

如何在android中使用加速度计计算准确的步数?

使用Arduino和加速度计自制计步器

如何将加速度计传感器数据转换为计步器?

是否有任何可行的算法来计算所有 iOS 设备(带或不带 M7 芯片)上的步数?

如何从 3 轴加速度计数据中获取运动大小