加速度传感器有什么用计步器是怎么判别用户是在爬楼梯,跑步,走路的

基于三轴加速度传感器有什么用嘚手势识别算法如何实现 [问题点数:40分]

本人西电学生由于最近无聊报了个项目做,目前卡在这

在读出三维加速度之后,如何进行手势識别的算法目前大多数用matlab建立隐马尔克夫链的模型进行识别,这方面的论文研究很多但找不到具体的程序。

原理我懂但能力有限,唏望有做过类似项目的高人予以帮助

我只做过简单的检测,跌倒爬起,加速度达到一定值中断,采样延时,采样根据前后位置來判断是跌倒还是其他,pudn上能找到一些具体的算法

如果你要做比较精确的算法建议采用数学模型。本人不才对数学建模一点不通。

以湔做一个跑步与走路的检测与识别区别的算法是通过采样跑步及走路的数据在PC上绘成线性图,找其中的规律来做的这种方法对采样的樣本正确率比较高,但是如果使用者产生的数据与样本的数据相差远就没办法了。

怎么检测跑步 和 走路的能介绍下,或者分享下代码麼

匿名用户不能发表回复!
3轴加速度计全功能计步器参考设計
计步器是一种颇受欢迎的日常锻炼进度监控器可以激励人们挑战自己,增强体质帮助瘦身。早期设计利用加重的机械开关检测步伐并带有一个简单的计数器。晃动这些装置时可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块
  如今,先进的计步器利用MEMS(微机电系统)惯性传感器和复杂的软件来精确检测真实的步伐MEMS惯性传感器可以更准确地检测步伐,误检率更低MEMS惯性传感器具有低成本、小尺寸和低功耗的特点,因此越来越多的便携式消费电子设备开始集成计步器功能如音乐播放器和手机等。ADI公司的3轴加速喥计ADXL335 ADXL345和 ADXL346小巧纤薄,功耗极低非常适合这种应用。
  本文以对步伐特征的研究为基础描述一个采用3轴加速度计ADXL345的全功能计步器参考設计,它能辨别并计数步伐测量距离、速度甚至所消耗的卡路里。
  ADXL345专有的(正在申请专利)片内32级先进先出(FIFO)缓冲器可以存储数據并执行计步器应用的相关操作,从而最大程度地减少主处理器干预为便携式设备节省宝贵的系统功率。其13位分辨率(4 mg/LSB)甚至允许计步器以合理的精度测量超低速步行(每步加速度变化约55 mg)
  在可用于分析跑步或步行的特征当中,我们选择“加速度”作为相关参数个体(及其相关轴)的运动包括三个分量,分别是前向(“滚动”)、竖向(“偏航”)和侧向(“俯仰”)如图1所示。ADXL345检测其三个軸——x、y和z上的加速度计步器处于未知方向,因此测量精度不应严重依赖于运动轴与加速度计测量轴之间的关系
  图1. 各轴的定义
  让我们考虑步行的特性。图2描绘了一个步伐我们将其定义为单位步行周期,图中显示了步行周期各阶段与竖向和前向加速度变化之间嘚关系
  图2. 步行阶段与加速度模式
  图3显示了与一名跑步者的竖向、前向和侧向加速度相对应的x、y和z轴测量结果的典型图样。无论洳何穿戴计步器总有至少一个轴具有相对较大的周期性加速度变化,因此峰值检测和针对所有三个轴上的加速度的动态阈值决策算法对於检测单位步行或跑步周期至关重要
  图3. 从一名跑步者测得的x、y和z轴加速度的典型图样
  数字滤波器:首先,为使图3所示的信号波形变得平滑需要一个数字滤波器。可以使用四个寄存器和一个求和单元如图4所示。当然可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢
  图4. 数字滤波器
  图5显示了来自一名步行者所戴计步器的最活跃轴的滤波数据。对于跑步者峰峰值会更高。
  图5. 最活跃轴的滤波数据
  动态阈值和动态精度:系统持续更新3轴加速度的最大值和最小值每采样50次更新一次。平均值(Max + Min)/2称为“动态阈值”接下来的50次采样利用此阈值判断个体是否迈出步伐。由于此阈值每50次采样更新一次因此它是动态的。这种选择具有自适應性并且足够快。除动态阈值外还利用动态精度来执行进一步滤波,如图6所示
  图6. 动态阈值和动态精度
  利用一个线性移位寄存器和动态阈值判断个体是否有效地迈出一步。该线性移位寄存器含有2个寄存器:sample_new寄存器和sample_old寄存器这些寄存器中的数据分别称为sample_new和sample_old。当噺采样数据到来时sample_new无条件移入sample_old寄存器。然而sample_result是否移入sample_new寄存器取决于下述条件:如果加速度变化大于预定义精度,则最新的采样结果sample_result移叺sample_new寄存器否则sample_new寄存器保持不变。因此移位寄存器组可以消除高频噪声,从而保证结果更加精确
  步伐迈出的条件定义为:当加速喥曲线跨过动态阈值下方时,加速度曲线的斜率为负值(sample_new 《 sample_old) 。
  峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数如果加速度变化太小,步伐计数器将忽略
  步伐计数器利用此算法可以很好地工作,但有时显得太敏感当计步器因为步行戓跑步之外的原因而非常迅速或非常缓慢地振动时,步伐计数器也会认为它是步伐为了找到真正的有节奏的步伐,必须排除这种无效振動利用“时间窗口”和“计数规则”可以解决这个问题。
  “时间窗口”用于排除无效振动假设人们最快的跑步速度为每秒5步,最慢的步行速度为每2秒1步这样,两个有效步伐的时间间隔在时间窗口[0.2 s - 2.0 s]之内时间间隔超出该时间窗口的所有步伐都应被排除。
  表1. 數据速率和功耗

  此算法使用50 Hz数据速率(20 ms)采用interval的寄存器记录两步之间的数据更新次数。如果间隔值在10与100之间则说明两步之间的时間在有效窗口之内;否则,时间间隔在时间窗口之外步伐无效。


  “计数规则” 用于确定步伐是否是一个节奏模式的一部分步伐计數器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作假设经过四个连续有效步伐之后,发现存在某种规则(in regulation)那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式在这种模式下工作时,每经过一个有效步伐步伐计数器就會更新一次。但是如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式重新搜索四个连续有效步伐。
图7显示了步伐参数的算法流程图
  图7. 步伐参数算法流程图
  根据上述算法计算步伐参数之后,我们可以使用公式1获得距离参数
  距离 = 步数 × 每步距離 (1)
  每步距离取决于用户的速度和身高。如果用户身材较高或以较快速度跑步步长就会较长。参考设计每2秒更新一次距离、速度囷卡路里参数因此,我们使用每2秒计数到的步数判断当前跨步长度表2显示了用于判断当前跨步长度的实验数据。
  表2. 跨步长度与速喥(每2秒步数)和身高的关系

  2秒的时间间隔可以利用采样数精确算出以50 Hz数据速率为例,处理器可以每100次采样发送一次相应的指令處理器利用一个名为m_nLastPedometer的变量记录每个2秒间隔开始时的步数,并利用一个名为m_nPedometerValue的变量记录每个2秒间隔结束时的步数这样,每2秒步数等于m_nPedometerValue与m_nLastPedometerの差


  虽然数据速率为50 Hz,但ADXL345的片内FIFO使得处理器无需每20 ms读取一次数据极大地减轻了主处理器的负担。该缓冲器支持四种工作模式:旁蕗、FIFO、流和触发在FIFO模式下,x、y、z轴的测量数据存储在FIFO中当FIFO中的采样数与FIFO_CTL寄存器采样数位规定的数量相等时,水印中断置1如前所述,囚们的跑步速度最快可达每秒5步因此每0.2秒刷新一次结果即可保证实时显示,从而处理器只需每0.2秒通过水印中断唤醒一次并从ADXL345读取数据FIFO嘚其它功能也都非常有用。利用触发模式FIFO可以告诉我们中断之前发生了什么。由于所述解决方案没有使用FIFO的其它功能因此笔者将不展開讨论。
  速度 = 距离/时间而每2秒步数和跨步长度均可根据上述算法计算,因此可以使用公式2获得速度参数
  速度 = 每2秒步数 × 跨步/2 s(2)
  我们无法精确计算卡路里的消耗速率。决定其消耗速率的一些因素包括体重、健身强度、运动水平和新陈代谢不过,我们可以使用常规近似法进行估计表3显示了卡路里消耗与跑步速度的典型关系。
  表3. 卡路里消耗与跑步速度的关系

  由表3可以得到公式(3)


  以上所用的速度参数单位为m/s,将km/h转换为m/s可得公式4
  卡路里参数随同距离和速度参数每2秒更新一次。为了考虑运动者的体重我們可以将公式4转换为公式5。体重(kg)为用户输入量一个小时等于1800个2秒间隔。
  如果用户在步行或跑步之后休息则步数和距离将不变囮,速度应为0此时的卡路里消耗可以利用公式6计算(休息时的卡路里消耗约为1 C/kg/h)。
  最后我们可以将所有2秒间隔的卡路里相加,获嘚总卡路里消耗量
  ADXL345易于连接到任何使用I2C?或SPI数字通信协议的处理器。图8给出了演示设备的原理示意图它采用3V电池供电。ADXL345的/CS引脚连接箌板上的VS以选择I2C模式。利用一个低成本精密模拟微控制器ADuC7024从ADXL345读取数据执行算法,并通过UART将结果发送至PCSDA和SCL分别为I2C总线的数据和时钟引腳,从ADXL345连接到ADuC7024的对应引脚ADXL345的两个中断引脚连接到ADuC7024的IRQ输入,以产生各种中断信号并唤醒处理器
  图8. 硬件系统的原理示意图
  用户界媔显示测试数据,并对操作员的指令做出响应用户界面(UI)运行之后,串行端口应打开通信链路应启动,随后演示程序将持续运行圖9显示了用户佩戴计步器步行或跑步时的测试情况。用户可以输入其体重和身高数据距离、速度和卡路里参数将根据这些数据进行计算。
  图9. 用户佩戴计步器步行或跑步时的测试情况
  ADXL345是一款出色的加速度计非常适合计步器应用。它具有小巧纤薄的特点采用3 mm × 5 mm × 0.95 mm塑封封装,利用它开发的计步器已经出现在医疗仪器和高档消费电子设备中它在测量模式下的功耗仅40 μA,待机模式下为0.1 μA堪称电池供電产品的理想之选。嵌入式FIFO极大地减轻了主处理器的负荷使功耗显著降低。此外可以利用可选的输出数据速率进行定时,从而取代处悝器中的定时器13位分辨率可以检测非常小的峰峰值变化,为开发高精度计步器创造了条件最后,它具有三轴输出功能结合上述算法,用户可以将计步器戴在身上几乎任何部位
  几点建议:如果应用对成本极其敏感,或者模拟输出加速度计更适合建议使用ADXL335,它是┅款完整的小尺寸、薄型、低功耗、三轴加速度计提供经过信号调理的电压输出。如果PCB尺寸至关重要建议使用ADXL346,这款低功耗器件的内置功能甚至比ADXL345还多采用小巧纤薄的3 mm × 3 mm × 0.95 mm塑封封装,电源电压范围为1.7 V至2.75

  计步器是一种日常锻炼进度監控器可以计算人们行走的步数,估计行走距离、消耗的卡路里方便人们随时监控自己的健身强度、运动水平和新陈代谢。早期的机械式计步器利用人走动时产生的振动触发机械检测步伐虽然成本低,但是准确度和灵敏度都很低体积较大,且不利于系统集成

  隨着MEMS 技术的发展,基于MEMS 技术的惯性得到迅速发展其具有价格低、体积小、功耗低、精度高的特点,利用MEMS 加设计的计步器通过测量人体荇走时的加速度信息,经过软件算法计算步伐可以克服机械式计步器准确度和灵敏度低的缺点,可准确地检测步伐同时还可以输出运動状态的实时数据,对运动数据进行采集和分析

  通过步态加速度信号提取人步行的特征参数是一种简便、可行的步态分析方法。行赱运动包括3 个分量分别是前向、侧向以及垂直向,如图1 所示LIS3DH 是一种三轴( X,YZ 轴) 的数字输出加速度器,可以与运动的3 个方向相对应

  行走运动分量在一个步伐,即一个迈步周期中加速度变化规律如图2 所示脚蹬地离开地面是一步的开始,此时由于地面的反作用仂垂直加速度开始增大,身体重心上移当脚达到最高位置时,垂直加速度达到最大然后脚向下运动,垂直加速度开始减小直至脚着哋,加速度减至最小值接着下一次迈步发生。前向加速度由脚与地面的摩擦力产生的因此,双脚触地时增大在一脚离地时减小。


  图3 为一次步行实验中LIS3DH 检测到的X,YZ 轴的加速度变化情况。可以看出: Z 轴加速度数据( 人行走的竖直方向) 具有明显的周期性加速度徝最小处对应的是脚离开地面( 一步的开始或结束) ,最大值对应脚抬到最高点

  在具体使用时,手持设备的放置情况是随意的加速度计的3 个轴有可能不与人体模型定义的3 个轴向重合,文中提到利用加速度的峰―峰值来判断加速输出最大的一轴作为有效轴但这种方法易丢失计数点,使计数不够准确为了充分利用加速度传感器有什么用输出的三轴信号,本文将加速度信号进行取模求和后用来计步

  由图3 可知,Z 向加速度计原始输出虽然具有一定的周期性但由于噪声导致变化复杂,不易于直接进行计步需对信号进行滤波,尽可能消除噪声影响通常情况下,人的步频最快不会超过5 steps /s最慢为0.5 steps /s。因此可以认为原始信号中频率为0. 5 ~ 5 Hz 的信号为有用信号,其他信号均为噪声可以用( FFT) 滤波实现保留部分频率信息的要求,提取有用信息但正常行走的任一段时间内,步频的变化都会集中在峰值频率附近的一个小范围内而不是0. 5~ 5 Hz 这么大,所以本文经过分析大量实验数据的频谱,建立了一个比0. 5 ~ 5 Hz 小的自适应频率范围( f1f2) ( 如圖4 所示) ,通过FFT 保留该频率范围内的有用信号去除范围外的无用信息。

  经实验验证利用该动态频率范围能更好地去除噪声对步数判斷的影响如图5( a) 和( b) 所示。图5 ( a) 是利用FFT 滤波和动态频率范围对原始加速度信号滤波后的加速度变化曲线图5( b) 是直接利用FFT 滤波與0. 5 ~ 5 Hz 的频率范围对原始加速度滤波后的加速度变化曲线。

  由图5 可以看出: 图5( a) 中部分噪声还不能消除存在多峰值的情况,而计步图5( b) 中加速度曲线较平滑加速度的周期性化趋势已非常明显,变换规律也比较简单可利用软件算法实现计步,停止时加速度虽仍囿一定的输出但其峰值明显小于行走时加速度峰值,因此可通过限定加速度的大小去除影响。对行走时加速度变化曲线进行分析可鉯看出在一定时间间隔内会有一个加速度波谷( 图中的1 ~ 4 点) 和加速度最小的时刻( 对应脚落下或者抬起) ,当脚抬起来的时候( “起点”) 身体重心上移,加速度也变大加速度曲线中波峰对应的是人脚抬至最高处,再到下一个波谷这就是一个完整的步伐。此外计步器因步行之外的原因而迅速或缓慢振动时,也会被计数器误认为是步伐在步行时,速度快时一个步伐所占的时间间隔长走的慢时时間间隔短,但都应在动态频率范围确定时间窗口内所以,利用这个时间窗口就可以有效地减小无效振动对步频判断造成的影响基于以仩分析,可以确定迈步周期中加速度变化情况应具备以下特点

  (1)一个迈步周期中仅出现一次加速度极大值、极小值有一个上升区間和下降区间; (2)一个单调区间对应迈步周期的50 %,因而时间间隔应该在1 /2 个时间窗口之间; (3)行走时,加速度极大值与极小值是交替出现嘚且其差的绝对值不小于预设的阈值1。根据以上三点对加速度变化区间进行约束认为同时满足以上三点变化区间对应半个步伐。具体鋶程图如图6所示

  图7 所示为系统的硬件结构框图。本文中选用的加速度传感器有什么用LIS3DH 输出数字信号所以,采样得到的数据不必再專门选用芯片来做模数转换传感器和控制模块接口为SPI 总线或者I2C 总线。加速度传感器有什么用LIS3DH有X,YZ 三个自由度的加速度数字输出,可鉯全方位感知人体行走运动信息; 控制模块由LCD12864[5]显示模块、微控制器MC9S12XS128[6]、键盘和电源组成用来读取加速度信息,并将算法处理得到计步数值显示在液晶上

  为了检验计步器的精度和适应能力,在加速度计Z 轴朝上的情况下从较慢步频、正常步频、较快步频3 个方面进行測试分别进行2 组实验,每次实验行走100 步计步器测试结果见表1。

加速度传感器有什么用LIS3DH 采用3mm &mes; 3mm &mes; 1mm 的小尺寸封装大大减小了整个系统的尺寸,可以很方便地移植到如手机、遥控器以及游戏机这些有运动感应功能而空间和功耗有严格限制的设计中; 由于具有三轴数字输出功能,鼡户可以将计步器戴在身上任何部位该计步系统可以较好地适应不同步频情况,计步精度高稳定性好。

我要回帖

更多关于 加速度传感器有什么用 的文章

 

随机推荐