健康计步器毕业设计 联系客服

发布时间 : 星期三 文章健康计步器毕业设计更新完毕开始阅读e837a3224a35eefdc8d376eeaeaad1f3469311bc

4 软件设计

4.1 总体流程图

本次设计单片机程序采用C语言编写,开发环境为WAVE。软件编写的好坏直接影响到计步的准确度以及是否有良好的人机交互功能。软件部分包括单片机对硬件个模块的整合、控制,主要实现计步、液晶显示等功能,其主要由如下几个程序模块构成。整个软件采用C语言编程。

结 束 显示程序 调用各功能模块程序 程序初始化 开 始

图4-1 系统设计程序流程图

图4-1是计步器软件的系统设计流程图。首先对所用到的各种部件进行初始化,然后根据应用的功能,调用各个子程序完成相应的功能。

4.2 主程序流程图

开 始

按键功能判断 调用按键扫描程序

第 13 页 共 13 页

相关数据操作

图4-2 主程序流程图

返 回 显示数据 主程序的运行过程如图4-2体现。程序开始执行,开始各I/O口的初始化,各功能按键的定义,分配单片机的各个I/O口位,然后液晶显示器进行显示,判断各功能按键是否被按下,如果有功能键被按下,则通过液晶显示器显示,如此循环。

4.3 子程序流程图

判断阀值是否有效 自适应阀 预 采 样

Count% Y 计 数 Y

第 14 页 共 14 页 继续计数 N 图4-3 子流程图

图4-3所示,在完成扫描按键,确定工作状态后,计步器进入正常工作状态,通过检测传感器的工作状态,可判断是否完成一个步行动作。如果确定为一个步行动作,通过程序的对数据的处理,产生距离数据,并将步数和距离一起显示在LCD上。这只是一个过程,计步器功能的实现主要通过循环,在完成上述的一个过程后,会返回扫描按键,检测按键有无动作,如按键没动作,程序将继续检测,记录步数,一直循环下去。如检测到按键有动作后,将马上退出循环状态。

4.3 计步器算法的实现

在可用于分析跑步或步行的特征当中,我们选择“加速度”作为相关参数。个体(及其相关轴)的运动包括三个分量,分别是前向(“滚动”)、竖向(“偏航”)和侧向(“俯仰”),如图4-4所示,MMA7455检测其三个轴—x、y和z上的加速度。计步器处于未知方向,因此测量精度不应严重依赖于运动轴与加速度计测量轴之间的关系。

图4-4 跑步时三个分量

让我们考虑步行的特性。一个步伐,我们将其定义为单位步行周期,步行周期各阶段与竖向和前向加速度变化之间有一定的关系。要实现检测步数首先要对人走路的姿态有一定了解。行走时,脚、腿、腰部,手臂都在运动,它们的运动都会产生相应的加速度,并且会在某点有一个峰值。从脚的加速度来检测步数是最准确的,但是考虑到携带的方便,我们选择利用腰部的运动来检测步数。

第 15 页 共 15 页

图4-5显示了与一名跑步者的竖向、前向和侧向加速度相对应的x、y和z轴测量结果的典型图样。无论如何穿戴计步器,总有至少一个轴具有相对较大的周期性加速度变化,因此峰值检测和针对所有三个轴上的加速度的动态阈值决策算法对于检测单位步行或跑步周期至关重要。

图4-5 x、y和z轴加速度的典型图样

首先,为使信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如图4-6所示。当然,可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢。

图4-6 数字滤波器

图4-7显示了来自一名步行者所戴计步器的最活跃轴的滤波数据。对于跑步者,峰峰值会更高。

第 16 页 共 16 页