一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

使用单个加速度计提高计步器的性能

来源:analog 发布时间:2024-07-23

摘要: 看看一组实验的结果,试图从一个使用单个加速度计的简单计步器中获得体面的性能。

应用说明an -602检查了使用Devices加速度计来制作简单但相对准确的计步器。从那时起,新的设备被引入,允许在对成本更敏感的应用中使用加速度计。因此,诸如计步器之类的应用程序在许多消费设备(如蜂窝手机)中找到了自己的位置。

鉴于这一趋势,对使用单个加速度计的计步器进行了更仔细的检查。an -602技术被用于试图复制其结果。虽然该算法表现良好,但无法复制相同的精度。特别是,当一个人使用不同的步伐和步幅时,人与人之间的差异比预期的要大。这导致了对该算法的潜在改进的调查。

测试使用带有ARM7内核的ADuC7020精密微控制器和两个不同的计步器测试板完成:一个带有2轴ADXL323加速度计,一个带有3轴ADXL330加速度计。第一个使用ADuC7020和ADXL323评估板,增加了16 × 2液晶显示器。第二个使用的是定制板。

一个- 602方法

在an -602中使用的技术是基于一个原则,即在一个人的步骤中的垂直“反弹”与跨距直接相关,如图1所示。


图1 -行走时臀部的垂直运动

角α和西塔相等,因此步幅可以表示为最大垂直位移的倍数。在相同的角度下,高个子或矮个子的人的垂直位移会更大或更小,从而解释了腿长的差异。

不幸的是,加速度计测量的是加速度而不是位移的变化。加速度必须转换成距离才能使用。在AN-602设置中,有限的计算能力要求使用一个简单的公式来近似将加速度转换为距离所需的二重积分。

由于ADuC7020具有足够的处理能力,本实验尝试直接计算离散积分。为此选择了一种简单的方法。确定每一步后,将该步内的所有加速度样本相加,得到一组速度样本。对每一步的速度样本进行归一化处理,使最终样本为零。然后把它们加在一起得到位移的值。

起初,这项技术看起来很有希望,因为测量的距离对于一个受试者来说是相对一致的。不幸的是,人与人之间的差异被加剧了,就像一个受试者在不同的速度下的差异一样。这导致了对问题是否出在模型本身的调查。

理解模型

这个模型有两个基本假设:脚实际上是一个单点(或一个球),每只脚对地面的冲击是完全弹性的。然而,这两种假设都不是事实。根据这些实验,可以肯定地说,这些假设和现实之间的差异解释了许多遇到的变化。

要理解这一点,可以查看几个步骤中测量的加速度,如图2所示。数据显示了一个人的“春天”的不同来源。


图2 -受试者1在正常速度下的加速度图

图2展示了在尝试将测量到的加速度准确地转换为距离时遇到的问题。使用峰对峰变化的方法——甚至那些集成数据的方法——在处理这样的数据时会遇到麻烦。造成这种困难的原因是不同的人在春天的步伐不同,或者一个人在不同的步伐下的步伐不同。

图3显示了相同的主题,但步幅更长更快。峰间加速度差较大,各个弹簧点看起来也不一样。“spring”数据与“real”数据的数量与图2中不同。但该算法只看到一组加速度测量值,并不知道这些测量值的背景。因此,问题是在不删除有用数据的情况下消除受试者步骤中弹簧的影响。


图3 -受试者1在快节奏下的加速度图

两幅图之间有重要的区别:在图3中,每一步的曲线底部都比图2略窄,曲线顶部更加一致,明显的峰值较少。与最小和最大样本值相比,这些差异导致了更高的平均值。

为了便于比较,图4显示了不同个体的数据图。步幅与图2中受试者的步幅非常相似。然而,数据本身看起来非常不同。


图4 -受试者2在正常速度下的加速度图

这个主题的步幅比图2中显示的要灵活得多,但是这两组数据表示的步行距离大致相同。因此,仅根据峰值计算距离将得到差异很大的结果。使用简单的二重积分也会遇到同样的问题。

解决弹簧的问题

所有通过简单的计算来解决这个问题的努力都有同样的问题,导致一系列试图用消除弹簧的方式规范化数据的失败尝试。主要原因似乎是他们需要了解数据的上下文,但在实际使用中,系统不知道外部发生了什么。它只有数据点。我们的解决方案需要能够在没有上下文的情况下操作数据。

在一次挫折中,这个问题的一个可能的解决方案出现了。如前所述,当从慢速到快速时,数据发生变化,但由于弹簧发生在更长,更快的步幅上,因此变化不太明显。结果是相对于数据的最小值和最大值有更高的平均值。但新数据能证明这一点吗?

从视觉上看,很难确定这一点,因为在图4所示的步骤中有大量的反弹。但是计算表明,平均值与峰值非常类似于图2中的值。因此,确定步行距离的一个简单算法是:


根据不同的寻步算法,对每一步进行计算。步长查找算法使用8点移动平均来平滑数据。它先搜索最大值,然后是最小值。当移动平均线越过零点(即该步骤的总体平均值)时,计算一个步骤。距离算法中使用的数据考虑了移动平均线的4点延迟。

这个简单的解决方案对第一个受试者在不同的步幅上都很有效。它在其他科目上的表现也相当不错。但有些受试者产生的距离与该组的平均测量距离相差10%。这不在±7.5%的误差范围内,这是针对未校准测量的目标。需要另一种解决方案。

尽管如此,最后一次测试中使用的比率似乎反映了不同受试者步伐的差异。尝试将我们在这里研究的两种方法结合起来是有意义的。回到最初使用二重积分的想法,使用这个比率作为修正因子进行计算,以去除弹簧数据。所得公式为:


地点:
D是计算出的距离
K是常数乘子
Max是在这一步中测量到的最大加速度
Min是在这一步中测量到的最小加速度
Avg是每步的平均加速度值
Accel表示该步进的所有测量加速度值

该算法适用于各种主题和节奏,变化幅度约为+6%/ -4%。该算法可以通过调整乘数k来轻松校准特定的个人和步伐。该代码还可以对步幅长度进行平均,以平滑一步一步的变化。这里提到的结果不包括这种平均的使用。

在这个实验中,只使用了X轴和y轴。为了灵活起见,我们选择了一个三轴加速度计,以防所有三个轴都需要。发现两个轴足以完成任务,因此可以使用ADXL323代替ADXL330。相同的布局可以用于两者,因为引脚配置是相同的,除了z轴输出。

本实验的目的是使计步器的距离测量取得良好的效果。对计步算法的评估仅足以确保它在步行或跑步时工作良好。在数百步的步行或跑步中,测量的步数与实际步数相差一到两步。然而,不幸的是,这个简单的算法可能会被非行走运动所愚弄。AN-602中描述的时间窗口函数可以通过忽略在预期时间窗口之外发生的错误步骤来减少错误计数,同时保留当用户改变速度时的适应能力。

总结

本说明代表了一组实验的结果,这些实验试图从使用单个加速度计的简单计步器中获得良好的性能。已经讨论了获得这种性能的一些障碍。最终结果符合规定的精度目标,并增加了通过校准提高精度的可能性。虽然更复杂的系统(例如,使用多个加速度计)可以获得更高的精度,但这里提供的算法应该是简单、低成本应用程序的一个很好的起点。

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: