基于轴加速度传感器的智能计步器设计
2019-12-20薛娓娓李娣娜马惠铖
薛娓娓 李娣娜 马惠铖
摘要:绿色健康的生活状态被人们所日益接受,一款功能齐全的智能计步器可以有效地帮助人们及时关注自身健康状况,并合理适量规划运动强度,以达到科学锻炼的目的。文中设计的智能计步器基于轴加速度传感器、由单片机控制,外加辅助模块共同实现。能显示步数、里程,速度以及消耗的卡路里等运动参数。在多种环境下检测,该智能计步器稳定性好、反应速度快,误差小,具有很强的实用价值。
Abstract: Green and healthy living conditions are accepted by people increasingly. A fully functional intelligent pedometer can effectively help people pay attention to their own health status in time, and plan exercise intensity in a reasonable amount to achieve the purpose of scientific exercise. The intelligent pedometer designed in this paper is based on the axis acceleration sensor, controlled by MCU, plus auxiliary module to achieve. It can show the number of steps and other sports parameters of mileage, speed and calories consumed. In a variety of environments, the intelligent for pedometer has good stability, fast reaction speed and small error, and has strong practical value.
关键词:智能计步器;轴加速度传感器;AT89C51;AT24C02
Key words: intelligent pedometer;axial acceleration sensor;AT89C51;AT24C02
中图分类号:TP212 文献标识码:A 文章编号:1006-4311(2019)33-0162-03
0 引言
随着生活质量的日益提高,人们更加关注自己的身体健康水平,而绿色健康的生活状态被人们所日益接受。步行作为容易实现且环保的一种运动方式,备受各阶层人士的青睐。为了有效地帮助人们及时关注自身健康状况,并合理适量规划运动强度,以达到科学锻炼的目的,设计一款功能齐备的智能计步器很有必要。
计步器体积小,携带方便,可以挂在腰间或戴在手腕等位置,能实时采集人们运动参数并动态显示,运动者获得反馈信息后就能对自己的运动强度合理规划,继而实现科学锻炼的目的。文中设计的智能计步器基于轴加速度传感器、由单片机控制,外加辅助模块共同实现。能显示步数、里程,速度以及消耗的卡路里等运动参数。
1 硬件电路设计
根据智能计步器的设计要求,要能显示步数、里程、速度以及消耗的卡路里等运动参数。文中选用目前在人体运动特征参数采集中表现出色的轴加速度传感器ADXL345,主控芯片选用使用广泛且价格低廉的STC89C51,显示模块由LCD1602液晶器来完成,运动参数存储选择性价比高的AT24C02存储芯片,外加按键电源等辅助电路模块来完成硬件电路的设计。设计总体硬件框图如图1所示。
1.1 轴加速度传感器模块
智能计步器的关键就是正确计步数,这就需要一款能精确检测人体运动特征参数的传感器。轴加速度传感器ADXL345是一种微型,低功耗,高分辨率的加速度传感器。它能在各种变化的环境下检测静态、动态加速度,以及水平方向的倾角变化等,人体在行走过程中会产生不同的加速度,利用这个特征就能满足人行走或停止的区别检测。
要通过轴加速度传感器ADXL345实现计步,必须建立一个合理的参数模型来研究步行状态。身体在运动过程中会有各个方向的加速度产生,文中选择类似三维坐标轴(X,Y,Z)表示人体运动时三个方向的运动状态,三个坐标分别代表前向、纵向和侧向,如图2所示。
人完成一次步行过程时,身体的三个方向上的加速度会呈现一定的周期性,特別是纵向和前向加速度的变化与步行周期各时期变化有确定的关系。若将人步行一步定义为一个周期,在步行的时候,人四肢的活动最为显著,手臂、脚、腰、腿运动都会产生其对应的加速度,而且会在某点达到峰值。主控单片机模块接收轴加速度传感器ADXL345检测的加速度信号后经过周期信号的整合,即通过软件部分选择合适算法来确定行走的步数。
若将轴加速度传感器ADXL345传输回来的加速度信号还原成连续波形信号,如图3所示。会发现人体步行时产生的信号高低交错,时高时低,但有一定的周期性,精准统计这个周期即可实现计步。文中步行周期检测采用“峰值检测法”,即通过合理设定高低阈值来完成检测。如设定上限阈值在线B处,下限阈值在线A处,当轴加速度传感器ADXL345测量的处理数据先大于B阈值,紧接着回到A阈值时即判断为有意义的一步,这样就可以准确得检测步数了。
1.2 主控单片机模块
主控单片机模块在整个设计中主要的作用有四个方面,第一:人机交互,完成使用者个性信息的录入,信息形式简单,通过键盘即可实现;第二:编制软件程序,通过对轴加速度传感器采集的信息进行处理来完成步数的测定;第三:管理外部扩展的存储器,确保数据正确存储;第四:多种运动参数信息的显示。
本文中选用宏晶科技有限公司的STC89C51单片机作为主控单片机模块,它是一款广泛应用的低功耗、高性能,价格低廉的8位单片机,通过外部扩展存储器能完成计步器的设计要求,由单片机加外部存储器的模式,不仅节约了设计成本,还扩展了系统应用的场合。
1.3 液晶显示模块
液晶显示屏由于其集成度高、性能好、控制简单、和单片机连接方便,被广泛应用在基于单片机的各种实用设计中。本设计中需要显示步数、里程、速度和卡路里等运动参数,以获得好的用户体验。由于显示的信息基本是字符类信息,信息量不多,文中选择LCD1602字符型液晶作为显示模块。LCD1602分两行显示,一行显示16个字符,最多可以显示出包括数字、字母、符号或者自定义字符在内的32个字符,每个显示字符由5*7的点阵组成,显示效果好,能满足智能计步器的显示要求。
1.4 外部数据存储模块
本中选择STC89C51单片机作为主控单片机模块,其内部的含有8KB的Flash,但是智能计步器要存储用户步行过程中的步数、速度、里程以及消耗的卡路里等信息,信息量多的时候单片机自带的存储容量就不够用了。为了能正常存储运动参数信息,并考虑速度和单片机匹配,以及和单片机连接时占用资源少等要求,本设计选择AT24C02作为外部数据存储模块。AT24C02是一款操作简单、灵巧方便且功耗低的一个E2PROM,具备专门的写保护功能,可以保护用户存储的数据,能通过I2C总线和单片机模块进行连接,其他各项极限参数均符合设计要求。
1.5 按键电源等辅助电路模块
电源模块是设计中能让电路运行起来的基本保障,为了简化电路,现在基于单片机的各种实用设计中,直接采用直流移动电源方式供电,智能计步器中STC89C51单片机的工作电压选择在4.5~5.5V之间,在硬件电路上预留外接电源接口,连接5V直流移动电源就可以保证系统正常运行。
为了让智能计步器更加精确的测量使用者的各项运动参数,在使用时需要设置个性化参数,为获得良好的人机交互,本设计中利用按键来实现,由于采用了部分按键功能组合的方法,实际用的到按键数目少,只需通过三个独立按键即可实现良好的人机交互。
2 软件系统设计
本设计的智能计步器不但可以显示使用者的步数,还可以显示速度,里程以及消耗的卡路里等。该设计主要通过轴加速度传感器获取信息后,通过软件算法进行处理,并送硬件电路显示,合理设计及优化的程序很重要,接下来给出本设计中部分关键程序设计模块的思路。
2.1 计步处理函数
智能计步器的关键就是精确的测量步数,使用轴加速度传感器获取人体的三向加速度信息后,对加速度信息进行数据合成处理,再通过“峰值检测法”来检测步数。在步行过程中,人体重心的加速度主要由前向和纵向的两个加速度分量合成,由于侧向加速度在步行的过程中基本不变,忽略其对重心加速度的影响。合成后的重心加速度数据在步行过程中随时间呈现明显周期性的高低变化,但是每个周期内或周期之间也存在一定幅值变化的其他加速度信息,这信息是一些干扰信息,会对计步数有影响,应该滤除掉。
利用“峰值检测法”处理这样的信息,使其脉冲化效果特别好,结合传感器的重力加速度数据分布,参考大量的实际应用设计,以及多次反复的实验,合理设置上下限阈值,将重力加速度信息脉冲化,继而能准确获得运动者的步行数。在获取步行数后,利用物理学公式就可以通过简单计算获得里程,速度等运动信息。
2.2 消耗卡路里的计算
由于使用者的身高、体重不同,所以单位时间内消耗的卡路里也会有所不同。在非专业生物指标测量的场合,通过计算可以获得准确度较高的卡路里消耗值。本文中依据消耗卡路里和跑步速度的典型关系,对比市场上现有的卡路里测量仪器数据,测量准确度较好。
给出计算过程如下:
依据消耗卡路里和跑步速度的典型关系得公式(1)
公式(1)中Cal是消耗的卡路里,V是速度,G是体重。
将跑步速度单位km/h转换为m/s得公式(2)。
Cal参数每1秒更新一次,使用相同的距離和速度参数。由于1h=3600s,每个人的体重都有差异,将公式(2)转换为公式(3)。
假若在实验过程中停止行走或跑步,则步数和距离保持恒定,V=0km/h,此时Cal消耗可以通过公式(4)计算(休息时的卡路里消耗约为1C/kg/h)。
最终的总Cal消耗量是将所有1秒间隔的卡路里相加获得。
3 结论
实物在多种情况下测试,经实测数据分析,在里程不限定的情况下,对比其他计步器,不同身高和体重的人的步数误差很小,里程越长误差越小;对比专业的卡路里消耗测试软件,误差基本在95%以内。测试还发现该设计测量步数误差主要来自使用者的体重和身高,身高较矮体重较轻的实验者在一定的里程下行走的测量步数比真实步数稍多,身高较高体重较重的实验者在一定的里程下行走的测量步数比真实步数稍少,误差产生的原因主要是因为上下限阈值设定时没有完全考虑个体差异而造成的。
文中基于轴加速度传感器的智能计步器,由单片机控制,有显示模块、外部存储模块、电源及按键等辅助模块。软件部分采用“峰值检测法”进行步数检测,通过公式计算里程、速度,以及消耗的卡路里等参数,硬件结构完整,软件算法选择合理。在多种环境下检测,该智能计步器稳定性好、反应速度快,误差小,具有很强的实用价值。
参考文献:
[1]魏芬,邓海琴.基于加速度传感器的自适应采样计步器设计[J].自动化技术与应用,2019:121-124.
[2]李雪梅,车爱静,高焕明.基于加速度传感器的计步器设计[J].山东工业技术,2019:142,162.
[3]陈蔚.基于三轴加速度传感器的计步器的设计[J].数字技术与应用,2018:181-183.
[4]苗子蕊,吉丽娜.健身计步器研究综述[J].电脑知识与技术,2018:263-264,266.
[5]赵华峰.单基于片机的三轴加速度计步器设计与实现[J].信息与电脑(理论版),2017.