张 婷
(山西大学商务学院,山西 太原 030031)
基于单片机的三轴加速度计步器设计
张 婷
(山西大学商务学院,山西 太原 030031)
介绍了基于单片机设计的计步器。利用人在行走时产生的三向加速度作为计步器触发点,采用ADXL345三轴加速度传感器实现从感应人运动时的加速度到计算出人行走的步数的转变。在传感器内部的A/D转换器,通过模数转换将采集来的加速度信号转换为数字信息并输送到STC89C52单片机上进行处理。单片机再通过运用合理的算法从而实现准确计算出人行走的步数,再通过算法得到里程、卡路里。
ADXL345;三轴加速度传感器;计步器;STC89C52
现在社会,人们所追求的生活水平日渐提高,我们越来越关心我们的身体健康状态。计步器作为一种检测步伐的电子产品,能够算出运动消耗的能量,然后人们就可针对个人的实际情况订制属于自己的运动方案来适当锻炼,并根据运动信息来分析出人体的身体状态。针对目前市面上用户需求,计步器不仅可以检测人行走的步数和路程还可以计算出你运动所消耗的能量,便携式计步器就自然而然地诞生了。
通过研究人行走的形态发现人在行走时会产生三个方向的加速度。利用加速度传感器捕捉人行走三个方向的加速度,正好可以模拟人跑步时候形成的垂直、前,侧向的加速度。正是由于三个方向的加速度测量,所以做出来的计步器适合佩戴在人体任何部位。
计步器的总体结构框图如图1所示,该计步器由STC89C52芯片、液晶显示模块LCD1602和加速度传感器ADXL345构成。工作过程如下:传感器检测到外界物理运动的三个方向的加速度,通过芯片内部的模数转换把模拟信号转化为单片机可以识别的数字信号,单片机获得数据信息再通过分析计算,把最终信息输送给显示器。从液晶显示器上可以读出步数、总步数、路程以及运动消耗的卡路里。
图1 计步器结构框图
2.1 ADXL345功能分析
ADXL345是美国DI公司推出的一款低成本三轴加速度传感器。体积小利于制作成为便携计步器。该微型电容式加速度传感器融合了信号调理、低通滤波器,并提供了加速度范围。
模块主要用于采集数据并且进行模数转换然后将加速度的变化值送到单片机,然后单片机进行处理,相当于整个系统的信号产生模块。ADXL345通过IIC的方式与单片机进行通信。其连接方式如图2所示。
图2 ADXL345连接电路图
2.2 单片机模块
本文采用单片机STC89C52,内置EEPROM与MAX810容量为4 KB复位电路,512字节RAM、32位I/O口线以及看门狗定时器、8 k字节的Flash,此外3个16位定时器/计数器。
由STC89C52芯片、11.059 2 MHz晶振电路、复位电路三要素构成了最小系统。STC89C52芯片为单片机主控芯片,复位电路和晶振电路都属于外部接入,其接法简单。单片机连接电路如图3所示。
单片机的P0口接LED显示电路。P1.4,P1.5接ADXL345电路。P1.6,P1.7所接按钮为步数、里程、卡路里清零按钮。
图3 单片机控制电路
2.3 显示模块
LCD也是一种低功耗产品,如果设施考虑到功耗问题,那么液晶显示器就是不错的节能选择。 LCD的工作原理其实很简单就是通过电流诱发内部液晶分子由点连成线,由线合成面,三者相互配合点亮背部的小灯管,这样就成了我们看见的LCD显示屏。
本文采用比较常用的1602作为显示模块。用于显示步数,里程,卡路里信息。其电路连接如图4所示。如果要封装起来用于实际开发可以选择型号更加小巧的显示器。
图4 LCD1602显示模块电路图
3.1 系统软件流程
跑步者竖向、前向和侧向的加速度通过数字滤波器变得平滑。由于不一样的人行走时会有不同加速度的输出范围,所以算法中用动态参数的方式提供了一种自我调整的方法,用来满足不同行人的检测的准确度。系统持续更新3轴加速的最大值和最小值,每采样50次更新一次。平均值(Max+Min)/2为动态阈值。接下来的50次采样利用此阈值判断个体是否迈步。由于阈值每50次采样更新一次,这种选择具有自适应性也足够快。
步伐计数器根据x、y、z三轴加速度变化最大的一个轴计算步数。如果加速度变化太小,计数将忽略。系统的软件流程如图5所示。
为了避免计数器过于敏感,也就是当计步器因为步行或者跑步之外的原因而非常迅速或者缓慢的振动时,步伐计数器也会认为步伐,利用“时间窗口”排除无效振动。假设人最快的跑步速度为每秒5步,最慢为每2 s一步,两个有效步伐的时间间隔在时间窗口[0.2 s~2.0 s]内,时间间隔超过此窗口则被排除。
图5 系统软件流程图
3.2 算法实现
根据上述算法计算出步数之后,我们可以根据设定的步长得到里程数。距离=步长*步数。
由一般测量卡路里参数与跑步速度之间的关系可得到卡路里公式。卡路里(C/kg)=1.25*跑步速度。所以我们可以得到卡路里(C/kg)=1.25*距离/跑步时间。最终可通过输入体重得到个体步行或者跑步一段时间后的卡路里。
基于单片机的计步器,实际测试数据如表1所示。
表1 测试数据表
因此计步器为实验电路焊接在万能板上,不能将传感器固定在腰上或者手腕上,也是造成误差的重要因素。考虑到实际使用情况,由测试数据表看出,计步器总体功能在我们误差接受范围内。计步器能准确感应出人行走的步数并可通过显示屏显示步数、里程、卡路里,实现同步、高效、准确的性能。
[1] 曹赟,周宇,徐寅林.加速度传感器在步态信号采集系统中的应用[J].信息化研究,2009,35(9):51-53.
[2] 刘宗林,李圣怡,吴学忠.新型三轴加速度计[J].传感器技术学报,2004,17(3):488-492.
[3] 孟维国.三轴加速度计ADXL345的特点及其应用[J].电子设计工程,2007(2):47-50.
[4] 钱朋安,葛运建,唐毅,等.加速度计在人体运动检测中的应用[G].全国第16届计算机科学与技术应用学术会议论文集,2004:41-45.
The Design of Three Axis Acceleration Pedometer Based on Singlechip
Zhang Ting
(BusinessCollegeofShanxiUniversity,TaiyuanShanxi030031,China)
This paper introduces a pedometer based on singlechip. The three direction acceleration generated by people walk is taken as a pedometer trigger point, and the Adxl345 three axis acceleration sensor is used to realize the transformation from the acceleration of human motion to the calculation of the number of people walking. The A/D converter inside sensor transforms the acceleration signal collected from analog digital conversion and transfers to the STC89C52 single-chip computer for processing. The single-chip by using reasonable algorithm realizes the calculation of accurate steps of the people walking, and then the mileage, calories is obtained by algorithm.
ADXL345; triaxial acceleration sensor; pedometer; STC89C52
2016-11-17
张 婷(1987- ),女,山西吕梁人,硕士,研究方向:信号处理及自动控制。
1674- 4578(2016)06- 0032- 02
TP393
A