徐 斌,裴晓芳,2,3,李太云
(1.南京信息工程大学 电子与信息工程学院,江苏 南京 210044;2.江苏省气象探测与信息处理重点实验室,江苏 南京 210044;3.南京信息工程大学 大气环境与装备技术协同创新中心,江苏 南京 210044)
穿戴式智能计步器设计
徐斌1,裴晓芳1,2,3,李太云1
(1.南京信息工程大学 电子与信息工程学院,江苏 南京210044;2.江苏省气象探测与信息处理重点实验室,江苏 南京210044;3.南京信息工程大学 大气环境与装备技术协同创新中心,江苏 南京210044)
摘要文中基于高精度三轴加速度/角速度传感器MPU6050的计步器设计,采用MSP430F149单片机为主控制器、MPU6050为核心采集模块,通过采集人体姿态数据,经由算法识别判断人体运动行为,并结合安卓智能手机客户端进行运动实时监测。使用者可实时掌握步行数据以及卡路里消耗;采集模块与主控电路经蓝牙模块发送运动数据到安卓手机客户端;该设计同时还具有仰卧起坐陪练功能供选择。经PCB开发研制和功能调试,结果表明该设计具有多功能,易携带,功耗低,且运行稳定等特点。
关键词计步器;仰卧起坐陪练器;MSP430F149;MPU6050;卡路里消耗
Design of Wearable Smart Pedometer
XU Bin1,PEI Xiaofang1,2,3,LI Taiyun1
(1.School of Electronic and Information Engineering,Nanjing University of Information Science and Technology,Nanjing 210044,China;2.Jiangsu Key Laboratory of Meteorological Observation and Information Processing,Nanjing 210044,China;3.Jiangsu Collaborative Innovation Center of Atmospheric Environment and Equipment Technology,
Nanjing University of Information Science and Technology,Nanjing 210044,China)
AbstractThis paper discusses the design of Pedometer based on high-precision triaxial accelerometer/angular velocity sensor MPU6050.With MSP430F149 MCU as master controller and MPU6050 as core acquisition module,the exerciser can real-time grasp performance and calories burned.The Bluetooth module is used to transmit data between MSP430 and acquisition module.The Sit-UP Partner function has been added to the system for exercisers.The test shows that the design is feasible and easy to carry.
Keywordspedometer;sit-up partner;MSP430F149;MPU6050;calories burned
随着人们生活水平的提高和对健康情况的重视,步行作为一种最常见且有效的锻炼方式被广泛使用。计步器作为一种常用的锻炼设备也有了飞速的发展。从最开始的2D机械计步器,然后发展到以加速度传感器为核心的电子计步器,到现在更为集成化的智能手环,计步器的精度大幅提高,体积大幅缩小,用户体验也逐渐优化[1-3]。
本文旨在在前人设计经验的基础上开发一套精度较高且便携的智能计步器系统。同时采用Android智能手机作为计步器系统上位机,提升用户体验。用户可通过Android智能手机实时获得运动信息。特别地,系统融入了仰卧起坐陪练器功能,实现了系统功能多样化,充分利用了软硬件资源[4-5]。
1系统总体设计
1.1系统工作原理
本智能陪练器融合了仰卧起坐陪练和计步两种功能,由下位机和安卓智能手机组成。下位机主要包括单片机最小系统、加速度传感器、蓝牙模块和锂电池供电模块。在下位机端,MCU上电后系统处于功能选择模式,默认为计步器模式。功能切换是利用上位机进行的,上位机通过蓝牙模块发送功能切换指令,由下位机的蓝牙模块接收指令,通过单片机识别指令,进行功能切换[6-8]。
下位机工作时,首先用加速度传感器进行数据采集,然后在MCU中进行数据处理。MCU首先对采集数据进行滤波,然后根据不同的锻炼功能采用相应的运动姿态识别算法。单片机根据算法进行数据计算,获得实时的运动效果数据。最后由蓝牙模块将处理后的数据发送至手机客户端,在手机上显示并存储运动数据[9-11]。
1.2系统总体结构框图
系统采用模块化设计,主要包括锂电池供电模块、传感器模块、蓝牙模块和安卓上位机。
图1系统总体框图
如图1所示,MSP430作为核心处理器,第一个作用是接收加速度传感器的数据并进行处理;第二个作用是与安卓上位机进行数据传输与交互,其间的数据交互通过蓝牙模块实现。值得注意的是,蓝牙模块并不是直接与Android上位机进行数据传输的,而是通过与Android智能机本身的蓝牙模块进行数据传输的[12]。
MSP430发送的数据是经过单片机算法处理后的结果,上位机反映这些结果并将这些结果显示在Android界面中;而Android发送给430的数据主要是指锻炼功能切换指令。锂电池模块充当电源作用,本设计的工作电压为3.3~3.7 V。
2硬件设计
2.1MCU方案
设计采用TI公司的16位超低功耗单片机MSP430F149作为主控芯片。430在设计中接收加速度传感器数据,处理数据并将数据传输到蓝牙模块实现与Android上位机通信的功能。
2.2加速度传感器模块方案
系统使用MPU6050加速度传感器采集人体运动信息。MPU6050具备三轴加速度传感器和三轴陀螺仪。内部具备16位ADC,输出量为数字信号。同时功耗较低[13]。
2.3蓝牙模块方案
蓝牙模块作为上下位机通信的桥梁。单片机通过下位机蓝牙模块与Android智能手机的蓝牙模块进行数据传输。
设计采用HC-06串口蓝牙模块作为下位机蓝牙模块。该蓝牙模块具有体积小、功耗低、外围电路简单的优势。同时,模块具备内置天线,用户无需自行调试天线。该蓝牙模块采用HCI接口设计,即蓝牙模块与单片机的连接只需要利用单片机的一个串口即可[14]。
2.4锂电池供电方案
系统采用锂电池进行供电。系统的额定电压为3.3 V。蓝牙模块,加速度传感器以及MSP430均为低电压供电。锂电池选用自带充电保护电路的3.7 V锂电池,容量为2 100 mAh。在充电时,只需将5 V电源直接连接锂电池的正负极即可。经过电池实测,系统运行正常。
2.5PCB设计
本设计采用双层电路板。成品电路板如图2所示。在进行PCB设计时,着重考虑如下几点:(1)在PCB设计时,考虑到本设计并不使用单片机片内ADC,因此模拟地和数字地不加区别,设计时定为同一电位;(2)为调试的方便,PCB另外加入JTAG口,在成品阶段可移去JTAG口减小体积;(3)设计使用的无极性电容和电阻全部使用0805封装,目的也是为了减小系统体积;(4)值得注意的是,由于蓝牙模块属于高速电路,因此在设计PCB时将蓝牙模块尽量靠边排布,并尽可能远离电源。为了达到更稳定的效果,采用了双层铺地。PCB实物图如图3所示;(5)为了方便系统调试,设计除了可单锂电池供电,还另外引出5 V和3.3 V两个电源端;(6)考虑调试和维护的需要,核心芯片封装设计为直插式,方便布线。
图2 PCB图
3软件设计
3.1姿态判别算法设计
3.1.1仰卧起坐姿态检测原理
MPU6050传感器模块可佩戴于腰腹处,根据其与人体的关系,传感器模块的轴方向如图3所示。检测当前三轴的加速度从而确定人体的姿态。假设传感器的Y轴与人体脊椎平行,而Z轴正方向为人体正前方,则在人体平躺时,Az=1g,Ay=0g,其中g为重力加速度;相对的,当人体竖起时,Az=0g,Ay=1g。假设人体与水平夹角为X度,用角度分量分析,则Az=gcosX,Ay=gsinX;反之,通过对应轴上的加速度也可确定X。以上即为依靠加速度判定人体姿态的原理[15-16]。
图3 MPU6050三轴方向示意图
3.1.2仰卧起坐能量消耗判据
运动消耗的热量可通过式(1)计算
E=m∑aΔt
(1)
其中,m为练习者质量;a为运动加速度;t为运动时间。在MCU进行处理时,可选定自由选定Δt,进行累加运算以得出锻炼者消耗的卡路里。通过式(1)计算得到仰卧起坐过程中人体消耗热量的估算值,练习者以此为参考来衡量运动效果。
3.1.3计步器步数判别原理
在人体平稳行走过程中,人体垂直加速度和前向加速度有着较为明显的周期性规律。在本设计中,系统充当计步器时不规定放置角度,则检测步数时就不能以单轴数据作为判据。根据三轴耦合关系,A=Ax+Ay+Az作为一个判据,当A随着步态出现明显周期性变化时,即可用A作为步态判据。
3.1.4原始数据滤波算法
在实际使用情况下,加速度传感器输出数据的波形会出现抖动和毛刺,解决办法就是滤波。本设计考虑的滤波算法是滑动均值滤波算法。滑动均值滤波算法是对近N次采样数据做一个平均处理,因运算的数据总是近N次数据,因此可认为其是实时的。从直观上,取均值的算法可有效削弱尖峰和毛刺的影响。不仅如此,滑动均值滤波法是一种不损失采样点的数字滤波算法。滑动均值滤波算法实现软件滤波,MSP430能满足其运算要求,参与运算的数据是最新的N个采样数据,因此具有较好的实时性能。值得注意的是,对于长度为N的选择不能过长也不能过短,过短则起不到较好的滤波作用;若过长,则有较大的延时,实时性变差,波形幅值过于平坦。文中经过实际测试发现N的取值在5~8时,滤波效果较好。
3.2Android上位机程序设计
本设计自定义了一个圆形进度条控件作为核心显示控件,圆形进度条动态地显示用户完成任务的进度。在实现自定义控件时,需要用到Canvas控件。要在画布上绘制出一定尺寸的圆环,以及字母和数字。而进度的表示则是通过圆环的填充进行,在完成一定程度的锻炼后,会以一种与原本有区别的颜色覆盖相应的圆环区域,达到显示进度的效果。制作好的UI界面,如图4所示。
图4 上位机界面
3.3客户端运行流程
安卓客户端软件运行流程,如图5所示。在打开APP后,软件首先会检测本地蓝牙设备,若智能手机的蓝牙正常启动,那软件会自动打开蓝牙,若本地蓝牙设备有故障,则APP会弹出无法检测到蓝牙的提示。如果检测蓝牙失败,用户可重启APP尝试重新检测。
图5 客户端流程图
在蓝牙打开后,点击APP界面中的连接按钮,稍后会弹出一个检测到的外部蓝牙设备的列表。在设计中连接HC-06这个下位机蓝牙模块,若运行正常,APP会提示用户连接成功。
在连接成功后,默认启动计步器功能,用户佩戴下位机步行时,APP会同步实时显示步数。
在需要进行仰卧起坐锻炼时,点击切换按键,下位机会进入仰卧起坐模式。这时用户进行仰卧起坐运动时,仰卧起坐的运动数据同样会显示在上位机上。用户可按下保存按键,以保存本次运动结果。
4实验测试与数据分析
图6 实物图
系统供电电压为3.3 V,PCB中额外具有5 V电源端,这样做的好处是:(1)方便使用5 V电源进行调试;(2)作为锂电池模块的充电端,在需要充电时,将锂电池 接5 V电源端即可。PCB的下端是蓝牙模块,使用表贴封装;右上方为MPU6050模块,采用直插式封装;MSP430F149采用转接板封装。左下方是复位按键和JTAG口,整个下位机系统的尺寸约为8 cm×7 cm。
MSP430系统采用JTAG进行仿真与程序的烧录。进行上位机与下位机联合测试,在用户手持移动终端,而将下位机系统佩戴于身上或者置于口袋内时,蓝牙模块将测试结果发送到手机。
计步器功能的实验测试:佩戴下位机系统步行,实测效果如表1所示。
表1 计步实测结果
仰卧起坐功能的测试:仰卧起坐是一种规范动作,其计数精度主要取决于被试者的动作是否规范。将下位机固定在腰间,在动作规范的前提下,一组测试结果如表2所示。
表2 仰卧起坐实测结果
从原理上讲,仰卧起坐动作的准确度应为100%,但由于传感器摆放位置的差异,被试者动作过快可能会导致波形偏离阈值,而引起漏计。另外,若采样率较低,则这样的误差会更频繁发生。
通过表1和表2,观察到仰卧起坐的记录精度比较好,然而计步器的效果相对并不理想。本文判断计步器系统的误差主要来源于计步算法的误差,步行实际波形的复杂性,系统可能会出现多记或漏记的情况。
在进行多次的修改后,发现改进后的动态阈值法还是峰谷值判别法,均不能使精度达到理想值。通过查阅器件手册发现,问题出在传感器的采样率上。20 Hz的采样率完全满足采样定理,但对于步行这种不确定的,较为复杂的波形信号,在细节的体现上会显得不足。对这样的信号即使采取小波分析也难以达到理想效果。通过实验比较,发现在115 200 bit·s-1的情况下,传感器能够以100 Hz的采样率进行数据采集。重新计算并配置了430的UART1串口,使其波特率从9 600 bit·s-1变为115 200 bit·s-1。同时通过上位机修改了传感器的采样率,使得采样率达到100 Hz。
在不修改计步算法程序的前提下,进行了另一组测试,测试结果如表3所示。
表3 修改采样率后步行测试结果
计步精度有了明显提升,能较准确地记录步数。
功率测试:对串联电流表进行实验观测,得到电流平均为60 mA。实测在2 100 mAh锂电池供电下,可稳定运行超过12 h。在整个系统中最耗费电流的是蓝牙模块,在技术不断发展的当今,蓝牙模块也会逐渐向低功耗化发展,功耗将进一步降低。
5结束语
本文设计了一种以Android智能手机作为上位机的智能计步器。该计步器具备计步和仰卧起坐陪练功能。对两种功能分别采用精确的姿态判别算法,经过测试可实现较高的精度要求。Android上位机系统是本设计的亮点,Android上位机使得系统具有较好的用户体验和实用性。系统完成了以下位机为数据处理核心,Android上位机为控制核心的结构,符合可穿戴系统的设计思路。
参考文献
[1]陈聪,尚无忧.便携式多功能仰卧起坐计数器材[J].信息通信,2014(8):35-36.
[2]赵安庆,宁辽贞.一分钟仰卧起坐多路电子自动测试仪系统设计[J].现代科学仪器,2010(2):79-83.
[3]肖宁博.基于单片机的仰卧起坐计数器[J].电子设计工程,2014(18):113-116.
[4]谢如花.步数检测方法及在手腕式计步器中的应用研究[D].兰州:兰州交通大学,2013.
[5]戴剑松,李靖,顾忠科,等.步行和日常体力活动能量消耗的推算[J].体育科学,2006(11):91-95.
[6]严志航.基于小波变换和动态时间规整的计步器算法设计[D].南京:南京理工大学,2014.
[7]宋浩然,廖文帅,赵一鸣.基于加速度传感器ADXL330的高精度计步器[J].传感技术学报,2006,19(4):1005-1008.
[8]范晨灿.基于蓝牙4.0传输的Android手机心电监护系统[D].杭州:浙江大学,2013.
[9]邢秀玉.基于加速度传感器的人体步态模式分类研究[D].太原:中北大学,2013.
[10]李月香,刘燕,袁涛,等.基于加速度信号的走路模式多级分类算法[J].电子学报,2009(8):1794-1798.
[11]熊狮,吴效明.基于Android系统的生理数据蓝牙传输技术[J].中国医学物理学杂志,2012(6):3801-3803.
[12]Zhenyu He,Lianwen Jin.Gesture recognition based on 3D accelerometer for cell phones interaction[C].Thailand:IEEE Asia Pacific Conference on Circuits and Systems,2008.
[13]Kern N,Schiele B,Schmidt A.Multi-sensor activity context detection for wearable computing.proc[C].New York:EUSAI,2003.
[14]Ermes M,P Rkk J,M Ntyj Rvi J,et al.Detection of daily activities and sports with wear-able sensors in controlled and uncontrolled condi tions[J].IEEE Transactions on Information Technology in Biomedcine,2008(6):39-44.
[15]Yosuke Yamada,Keiichi Yokoyama,Risa Noriyasu,et al.Light-intensity activities are important for estimating physical activity energy expenditure using uniaxial and triaxial accelerometers[J].European Journal of Applied Physiology,2009(1):291-297.
[16]Tapia E M,Intille S S,Larson K.Activity recognition in the home setting using simple and ubiquitous sensors[C].Nanjing:Proceedings of Pervasive 2004.
中图分类号TP274
文献标识码A
文章编号1007-7820(2016)03-178-05
doi:10.16180/j.cnki.issn1007-7820.2016.03.047
作者简介:徐斌(1993—),男,本科。研究方向:电子线路设计。裴晓芳(1978—),女,副教授。研究方向:信号理处,仪器仪表设计。
收稿日期:2015- 07- 17