基于单片机的计步器设计和实现

摘要:计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。

计步器功能可以根据计算人的运动情况来分析人体的健康状况。而人的运动情况可以通过很多特性来进行分析。与传统的机械式传感器不同,ADXL345是电容式三轴传感器,由它捕获人体运动时加速度信号,更加准确。信号通过低通滤波器滤波,由单片机内置A/D转换器对信号进行采样、A/D转换。软件采用自适应算法实现计步功能,减少误计数,更加精确。单片机STC89C52控制液晶显示计步状态。整机工作电流只有1-1.5mA,实现超低功耗。

关键字:计步器;加速度传感器;ADXL345;低功耗

1.1论文研究的背景、目的及意义

计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。电子计步器主要组成部分是振动传感器和电子计数器。步行的时候人的重心会上下移动。以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。所谓的振动传感器其实就是一个平衡锤在上下振动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。计步器中一般采用一种加速度计来感受外界的震动。常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。

1.2国内外研究现状

计步器最早是由意大利的伦纳德·达芬奇酝酿的,但现存的最早的计步器是在达芬奇之后150年,即德国1667年制作的。日本最早的计步器是由Gcn.naiHiraga在1755年制作的。在中世纪和近代,计步器并未被广泛使用,因为人们并不清楚它的用途。这说明机器的发明(硬件)不及找到它对人类的用途(软件)重要。在日本,计步器已经使用了40多年,主要用于体育运动和分析记录行走步调。1965年,计步器正式进入日本商用市场,并被命名为manpo-meter(manpo的日语含义是10000步)。这是的计步器通常利用摆钟原理作为记步技术,利用加重的机械开关检测步伐,并带有一个简单的计数器。如果晃动这些装置,就可以听到有一个金属球来回滑动,或者一个摆钟左右摆动敲响当块。这种机械式的计步器早已淡出历史,取而代之的是电子式的计步器。

1.3本文研究的内容

本文是一个基于STC89C52低速单片机,结合ADXL345倾角传感器来实现计步功能。第二章根据设计的要求选择了基于三轴加速度ADXL345功能计步器设计方案,第三章对硬件中微处理器电路模块、传感器数据采集模块以及LED1602显示模块进行介绍,第四章中对软件流程图以及记步检测算法进行介绍。紧接着第五章对实物进行了调试和功能验证。

2方案设计及选择

2.1设计要求

(1)能够有效的检测人体步行动作。

(3)使用单片机技术处理数据。

2.2传感器的选择

方案一:是选择机械式振动传感器

机械式振动传感器内部有一个平衡锤,当传感器振动时,平衡被破坏,如此会造成上下触点的通断。佩戴者在跑步过程中,身体起伏重心高低产生变化,计步器内部的振动传感器就会将这一变化转换为数字量送至控制单元,从而获得佩戴者的运动信息。机械式振动传感器原理简单、精度和成本低,适用于振幅较大的场合。

方案二:选择加速度传感器

三轴加速度传感器分为压阻式,压电式和电容式。加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。

方案三:选择压力传感器

压力传感器是将压力的变化转化为电压的变化。利用这一特性,可将压力传感器内置在鞋的底部,当用户在行进过程中,压力传感器受到的压力不同(抬脚时脚对鞋无压力,放脚时脚对鞋有持续压力),这样,计步器的主控单元读取压力值,经过计步算法即可判断运动状态。

为选择一款最适合本课题的计步传感器将三种传感器对比如图:

表2加速度传感器特性对比表

结合价格、功耗和精度等多方面考虑,本课题选择的三轴加速度传感器ADXL345作为计步传感器。

2.3MCU微处理器的选择

方案一:采用8位微控制器

方案二:采用16位微控制器

MSP430微控制器是一款以低功耗闻名的16位微控制器,有许多低功耗的工作模式,采用了精简指令集(RISC)结构,具有丰富的寻址方式,高效率的查表处理指令。这些特点都保证了用它可以编写出高效率的源程序。

方案三:采用32位微控制器

Cortex-M0+内核基于ARMv6架构,支持Thumb/Thumb-2子集ISA,单核心,采用低成本的90nmLP工艺制造,核心面积仅0.04mm2,每MHz单位频率消耗的电流、功耗分别有9μA、11μW,是现今其它8/16位微控制器的大约三分之一,而性能上又比它们高出很多。飞思卡尔的KinetisL系列微控制器基于ARMCortex-M0+内核,是目前市场上能效极高的32位微控制器,每微安数据吞吐量居业内领先水平;超低功耗模式多种灵活的功率模式,适合不同的应用情形,可最大限度延长电池寿命;多种技术优化功耗,包括90nm薄膜存储(TFS)技术、时钟和电源门控技术,以及带有位处理引擎、外围交叉桥和零等待闪存控制器的高效平台等;深度睡眠模式下,可在不唤醒内核的情况下进行智能决策并处理数据。

综合上述几种单片机优缺点并且根据实验要求,就地取材选择了由STC公司生产的一种价格便宜、低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

2.4系统的总体设计

该计步器是有ADXL345加速度传感器、STC89C52单片机以及LED1602显示屏等组成。传感器采集数据,经内部A/D转换后,输入单片机内部,将数据处理后输出液晶显示。VISIO

3系统的硬件设计

3.1微处理器电路模块

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU?和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

STC89C52RC单片机参数

⑴8K字节程序存储空间;

⑵512字节数据存储空间;

⑶内带2K字节EEPROM存储空间;

⑷可直接使用串口下载;

3.2计步器传感器采集模块

ADXL345的内部功能结构如图2所示,X、Y、Z三个相互正交的的方向上的加速度由G-Cell传感器感知,经过容压变换器、增益放大、滤波器和温度补偿后以电压信号输出。

所谓的G-Cell传感器是由半导体材料(多晶硅)经半导体工艺加工得到,其结构可简化为三块电容极板,如图3。两端的极板圈定,中间的极板在加速度的作用下,偏离无加速度的位置,这样它到两端极板的距离发生变化,造成电容值的变化.这个变化值经容压变换、增益放大,滤波等后体现在最后的电压输出值上,从而完成对加速度的测量。

ADXL345的三个相互正交的测量方向如图4,固定在人体上后,这三个方向上的数据意义也就随之确定了。

引脚配置(顶视图):

ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。

如图10所示,为传感器底座,接口电路连接:

此模块电路主要功能就用于做ADXL345加速度传感器的一个转接口,而且利用ADXL345该加速度传感器产生相应的变化值。相当于整个系统的信号产生模块。

3.3显示模块

液晶显示器(LCD)为平面超薄的显示设备,液晶显示器功耗很低,适用于使用电池的电子设备。它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。

LCD特点:机身薄,节省空间。与比较笨重的CRT显示器相比,液晶显示器只要前者三分之一的空间。

省电,不产生高温。它属于低耗电产品,可以做到完全不发热(主要耗电和发热部分存在于背光灯管或LED),而CRT显示器,因显像技术不可避免产生高温。

低辐射,益健康。液晶显示器的辐射远低于CRT显示器(仅仅是低,并不是完全没有辐射,电子产品多多少少都有辐射)。

画面柔和不伤眼,不同于CRT技术,液晶显示器画面不会闪烁,可以减少显示器对眼睛的伤害,眼睛不容易疲劳。

第1脚:GND为电源地

第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳

变时执行指令。

第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电

源。

第15脚背光正极。

第16脚背光负极。特性3.3V或5V工作电压,对比度可调

4软件设计

4.1软件流程图

解释

(1)主程序流程

4.2计步器算法的实现

让我们考虑步行的特性。一个步伐,我们将其定义为单位步行周期,步行周期各阶段与竖向和前向加速度变化之间有一定的关系。

要实现检测步数首先要对人走路的姿态有一定了解。行走时,脚、腿、腰部,手臂都在运动,它们的运动都会产生相应的加速度,并且会在某点有一个峰值。从脚的加速度来检测步数是最准确的,但是考虑到携带的方便,我们选择利用腰部的运动来检测步数。

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

(1)步伐参数

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

动态阈值和动态精度:系统持续更新三轴加速度的最大值和最小值,每采样50次更新一次。平均值(Max+Min)/2称为“动态阈值”。接下来的50次采样利用此阈值判断个体是否迈出步伐。

由于此阈值每50次采样更新一次,因此它是动态的。这种选择具有自适应性,并且足够快。除动态阈值外,还利用动态精度来执行进一步滤波。

步伐迈出的条件定义为:当加速度曲线跨过动态阈值下方时,加速度曲线的斜率为负值(sample_new《sample_old)。

峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数。如果加速度变化太小,步伐计数器将忽略。

表3数据速率和功耗

“计数规则”用于确定步伐是否是一个节奏模式的一部分。步伐计数器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作。假设经过四个连续有效步伐之后,发现存在某种规则(inregulation),那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式。在这种模式下工作时,每经过一个有效步伐,步伐计数器就会更新一次。但是,如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式,重新搜索四个连续有效步伐。

5测试及分析

5.1系统调试及功能

图13系统实物图

5.2系统的测试

如表2为在实际步数中显示步数以及总步数不复位情况下记录。下图表3为在实际步数中显示步数每5步复位一次总步数不复位情况下记录。由图可得到实物对步数统计准确率在90%以上。

表4

表5

6总结

在本次计步器的制作过程中,体会到不少。而在解决问题的时候也是对自身的专业素质的一种提高。在焊接过程中元件必须清洁和镀锡焊接前用小刀挂掉氧化膜,然后再进行焊接时应使用电骡铁的温度高于焊锡的温度以烙铁头接触松香刚刚冒烟为好。焊接点的上锡数量焊接点上的焊锡数量不能太少,焊少了焊接不牢固,机械强度也太差。

同时让我也更加的了解了ADXL345是一款出色的加速度计,非常适合计步器应用。它具有小巧纤薄的特点,采用3mm×5mm×0.95mm塑封封装,利用它开发的计步器已经出现在医疗仪器和高档消费电子设备中。它在测量模式下的功耗仅40μA,待机模式下为0.1μA,堪称电池供电产品的理想之选。嵌入式FIFO极大地减轻了主处理器的负荷,使功耗显著降低。此外,可以利用可选的输出数据速率进行定时,从而取代处理器中的定时器。13位分辨率可以检测非常小的峰峰值变化,为开发高精度计步器创造了条件。最后,它具有三轴输出功能,结合上述算法,用户可以将计步器戴在身上几乎任何部位。

THE END
1.测试培训之算法简介 算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需要遵循这个思路去实现即可.我们可以去测试开发培训. 1.2、算法的特征 算法特征包括有:有穷性、确切性、输入、输出、可行性。 https://zhuanlan.zhihu.com/p/389143589
2.算法设计的要求包括算法设计的要求包括以下几点: 1.正确性:算法应当能够正确解决问题,对于合法输入产生满足规格说明的输出。 2.可读性:算法应具有良好的可读性,方便他人理解和修改。 3.健壮性:算法应能对非法输入做出适当反应,不会因为错误的输入而造成系统崩溃。 4.高效性:算法应尽可能高效,使用较少的时间和空间资源完成计算任务。 https://localsite.baidu.com/article-detail.html?articleId=21348390&ucid=Pj6vnHc4nWR&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&ch=54&srcid=10005
3.《建筑地基基础设计规范》GB50007—2011为扩散上部结构传来的荷载,使作用在基底的压应力满足地基承载力的设计要求,且基础内部的应力满足材料强度的设计要求,通过向侧边扩展一定底面积的基础。 2.1.12 无筋扩展基础 Non-reinforced spread foundation 由砖、毛石、混凝土或毛石混凝土、灰土和三合土等材料组成的,且不需配置钢筋的墙下条形基础或柱下独立基础。https://www.lanfanglian.com/gfxq/38
4.教学楼设计开题报告7篇建筑剖面设计包括:确定房间的剖面形状与各部分的高度、建筑的层数。根据教学楼的功能及使用要求,剖面形状应采用矩形;各房间的高度包括:室内外地面高差、房间净高、窗台高度、黑板及讲台的高度、门的高度及层高。 考虑到构造简单、节省造价、施工方便等因素,一般采用平屋顶;屋面做法应考虑其防水、保温及排水功能而相应设置https://www.ruiwen.com/kaitibaogao/6328000.html
5.学习前端算法前你需要了解的‘大O表示法’腾讯云开发者社区那么应该怎么比较不同算法之间的优劣呢?答:应该从时间与空间两方面入手。 本文主要带你了解什么是大O表示法,但是在了解大O表示法之前,你有必要了解什么是算法。 读完本文,你将了解到: 什么是算法 算法设计的要求 算法的好坏评定标准 大O表示法 什么是算法? https://cloud.tencent.com/developer/article/1655539
6.郴州市成品油零售体系“十四五”发展规划(2021规范推算法主要包括三个方面:一是指根据原建设部《城市道路交通规划设计规范》(GB50220-95),城市公共加油站的服务半径为0.9千米--1.2千米,即服务区域面积为2.54平方公里—4.52平方公里,结合城市可建设用地情况计算城市加油站需求数量方法;二是国道、省道加油站每百公里不超过6对,单侧每百公里不超过6座,每座距离不小http://www.czs.gov.cn/html/zwgk/ztbd/13199/60720/content_3431146.html
7.研究自动驾驶技术的算法需要哪些知识?本专栏主要关注自动驾驶中的环境感知任务,内容包括感知技术的起源,现状以及最新的发展趋势。感知任务大多涉及算法设计,因此专栏的介绍也以算法为主线,特别是深度学习的算法。此外也会涉及一些数据采集,系统测试,算法部署以及量产感知系统的分析。 自动驾驶中的环境感知包含了自动驾驶和环境感知两个概念。首先,什么是自动驾https://www.51cto.com/article/697816.html
8.以8数码问题问题为例实现A*算法的求解程序,要求设计两种不同的8数码问题(8-puzzle)是一个经典的搜索问题,目标是将一个3x3的矩阵中的数字1~8按照特定的顺序排列,初始状态是乱序的。每一次可以将数字与空格交换位置,目标是通过交换操作尽快到达目标状态。 A*算法是一种启发式搜索算法,可以用于解决8数码问题。它通过估计从当前状态到目标状态的代价来指导搜索方向,其中估价函数是关https://wenku.csdn.net/answer/7cb24c5e426e4f0885d0248aafcf1223
9.2025校园招聘北京算能科技有限公司招聘就业信息网1. 负责公司产品相关的算法研发工作,包括但不限于:工具链开发,数学建模、架构建模,ISP算法开发(传统+深度学习),专用硬件加速单元算法设计等; 2. 参与算法开发过程中的流程化建设,撰写、执行、完善流程文档; 3. 工作任务包括但不限于:算法调研、算法实现、算法部署及配合RTL实现等。 岗位要求: 1. 专业包含但不https://m.haitou.cc/xyzp/3236379
10.《组合导航课程设计》课程教学大纲通过组合导航系统的设计和测试验证实践,深入理解组合导航原理,掌握组合导航算法设计和性能分析与优化方法,积累组合导航系统设计实践经验。 二、教学要求 熟悉组合导航系统动态测试方法和流程;了解和掌握组合导航算法设计流程和Kalman滤波器参数优化;熟悉商用组合导航计算软件的使用;掌握组合导航系统性能分析与评价方法。 http://lab.sgg.whu.edu.cn/m/view.php?aid=518
11.通信算法工程师岗位职责(精选18篇)2.参与以及协调无线通讯系统及DSP系统的算法及架构设计与实现。 3.执行系统算法的定点验证及优化。 4.与芯片设计、硬件设计、软件开发团队合作,达到最优性能并在实验室完成测试及调试。 任职要求: 1.硕士或博士学位,电子工程/通信系统相关专业。 2.在数字通信及信号处理方面,包括调制解调,时频同步,信道估计,纠错码https://www.yjbys.com/hr/gangwei/4051374.html
12.学术研究政治与法律孙祁:规范生成式人工智能产品提供者的生成式人工智能产品的提供者在数据来源、算法设计等决定人工智能生成内容的核心要素方面充当着“把关人”和决定者的角色,因此,应明确其是生成式人工智能产品的责任主体。基于此,最近发布的《生成式人工智能服务管理办法(征求意见稿)》明确规定生成式人工智能产品的服务提供者应承担产品生成内容的生产者责任以及个人信息https://ilaw.sass.org.cn/2023/0821/c2514a552849/page.htm
13.高中信息技术课程标准为增强课程选择的自由度,五个选修模块并行设计,相对独立。各选修模块对开设条件的要求有所不同,各学校至少应开设“算法与程序设计”“多媒体技术应用”“网络技术应用”“数据管理技术”中的两个,也要制定规划,逐步克服经费、师资、场地、设备等因素的制约,开出包括“人工智能初步”在内的所有选修模块,为学生提供更https://www.fqkhzx.cn/index/article/view/id/94.html