单片机实验
摘要: 计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
计步器功能可以根据计算人的运动情况来分析人体的健康状况。而人的运动情况可以通过很多特性来进行分析。与传统的机械式传感器不同,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)能够有效的检测人体步行动作。
(2)能够显示并且记录单位时间内的步数。
(3)使用单片机技术处理数据。
2.2传感器的选择
方案一:是选择机械式振动传感器
机械式振动传感器内部有一个平衡锤,当传感器振动时,平衡被破坏,如此会造成上下触点的通断。佩戴者在跑步过程中,身体起伏重心高低产生变化,计步器内部的振动传感器就会将这一变化转换为数字量送至控制单元,从而获得佩戴者的运动信息。机械式振动传感器原理简单、精度和成本低,适用于振幅较大的场合。
方案二:选择加速度传感器
三轴加速度传感器分为压阻式,压电式和电容式。加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。
方案三:选择压力传感器
压力传感器是将压力的变化转化为电压的变化。利用这一特性,可将压力传感器内置在鞋的底部,当用户在行进过程中,压力传感器受到的压力不同(抬脚时脚对鞋无压力,放脚时脚对鞋有持续压力),这样,计步器的主控单元读取压力值,经过计步算法即可判断运动状态。
为选择一款最适合本课题的计步传感器将三种传感器对比如图:
类型 | 机械式振动传感器 | 加速度传感器 | 压力传感器 |
工作电流 | 5mA | 30 | -- |
工作精度 | 0.1g | 0.002g | -- |
价格(元) | 1.0元 | 5.0元 | -- |
目前内置于鞋底的压力传感器属于柔性传感器。在2008年北京奥运会上曾将它用于检测运动员的蹬地力、蹬地时间、足底接触形状、运动速度、离心力等信息,以便指导运动员取得更好的成绩。这种传感器价格昂贵,设计难度较大,不适合本设计。机械设振动传感器应用于早期的计步器,测量精度低,误判、漏判严重,不符合本课题高精度的设计原则。随着加速度传感器的工艺逐渐成熟,测量精度也逐渐提高,功耗已达到微安级别,随着市场的大量使用,价格也降了下来,非常符合本课题的设计理念。表2列出了不同型号的三轴加速度传感器的特性。
表2 加速度传感器特性对比表
加速度计代表型号 | LSM303DLH | MPU-6050 | ADXL345 |
工作电流 | 0.83Ma | 500 | 150 |
精度 | 0.0003g | 0.0003g | 0.008g |
价格(元) | 40.0 | 50.0 | 3.0 |
结合价格、功耗和精度等多方面考虑,本课题选择的三轴加速度传感器ADXL345作为计步传感器。
2.3 MCU微处理器的选择
方案一:采用8位微控制器
8位微控制器的典型代表是8051微控制器。8051微控制器是一款入门级微控制器,它内核简易,应用广泛,资料齐全,非常适合入门学习。同时它的价格低廉,是一款适用于追求低成本,不追求实时性的电子产品。在我国很长一段时间内,8051微控制器占据了小型家电市场,其中的原因正是超低的成本。
方案二:采用16位微控制器
MSP430微控制器是一款以低功耗闻名的16位微控制器,有许多低功耗的工作模式,采用了精简指令集(RISC)结构,具有丰富的寻址方式,高效率的查表处理指令。这些特点都保证了用它可以编写出高效率的源程序。
方案三:采用32位微控制器
Cortex-M0+内核基于ARMv6架构,支持Thumb/Thumb-2子集ISA,单核心,采用低成本的90nmLP工艺制造,核心面积仅0.04mm2,每MHz单位频率消耗的电流、功耗分别有9μA、11μW,是现今其它8/16位微控制器的大约三分之一,而性能上又比它们高出很多。飞思卡尔的Kinetis L系列微控制器基于ARM Cortex-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 口线,看门狗定时器,内置4KB EEPROM,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计步器算法的实现
在可用于分析跑步或步行的特征当中,我们选择“加速度”作为相关参数。个体(及其相关轴)的运动包括三个分量,分别是前向(“滚动”)、竖向(“偏航”)和侧向(“俯仰”),如图9所示。ADXL345检测其三个轴—x、y和z上的加速度。计步器处于未知方向,因此测量精度不应严重依赖于运动轴与加速度计测量轴之间的关系。
让我们考虑步行的特性。一个步伐,我们将其定义为单位步行周期,步行周期各阶段与竖向和前向加速度变化之间有一定的关系。
要实现检测步数首先要对人走路的姿态有一定了解。行走时,脚、腿、腰部,手臂都在运动,它们的运动都会产生相应的加速度,并且会在某点有一个峰值。从脚的加速度来检测步数是最准确的,但是考虑到携带的方便,我们选择利用腰部的运动来检测步数。
图10显示了与一名跑步者的竖向、前向和侧向加速度相对应的x、y和z轴测量结果的典型图样。无论如何穿戴计步器,总有至少一个轴具有相对较大的周期性加速度变化,因此峰值检测和针对所有三个轴上的加速度的动态阈值决策算法对于检测单位步行或跑步周期至关重要。
(1)步伐参数
数字滤波器:首先,为使信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如图11所示。当然,可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢。
图12显示了来自一名步行者所戴计步器的最活跃轴的滤波数据。对于跑步者,峰峰值会更高。
动态阈值和动态精度:系统持续更新三轴加速度的最大值和最小值,每采样50次更新一次。平均值(Max + Min)/2称为“动态阈值”。接下来的50次采样利用此阈值判断个体是否迈出步伐。
由于此阈值每50次采样更新一次,因此它是动态的。这种选择具有自适应性,并且足够快。除动态阈值外,还利用动态精度来执行进一步滤波。
步伐迈出的条件定义为:当加速度曲线跨过动态阈值下方时,加速度曲线的斜率为负值(sample_new 《 sample_old)。
峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数。如果加速度变化太小,步伐计数器将忽略。
步伐计数器利用此算法可以很好地工作,但有时显得太敏感。当计步器因为步行或跑步之外的原因而非常迅速或非常缓慢地振动时,步伐计数器也会认为它是步伐。为了找到真正的有节奏的步伐,必须排除这种无效振动。利用“时间窗口”和“计数规则”可以解决这个问题。
“时间窗口”用于排除无效振动。假设人们最快的跑步速度为每秒5步,最慢的步行速度为每2秒1步。这样,两个有效步伐的时间间隔在时间窗口[0.2 s - 2.0 s]之内,时间间隔超出该时间窗口的所有步伐都应被排除。
ADXL345的用户可选输出数据速率特性有助于实现时间窗口。表5.1列出了TA = 25°C、VS = 2.5 V、VDD I/O = 1.8 V时的可配置数据速率(以及功耗)。
表3数据速率和功耗
输出数据速率(Hz) | 带宽(Hz) | 速率代码 | IDD (µA) |
3200 | 1600 | 1111 | 146 |
1600 | 800 | 1110 | 100 |
800 | 400 | 1101 | 145 |
400 | 200 | 1100 | 145 |
200 | 100 | 1011 | 145 |
100 | 50 | 1010 | 145 |
50 | 25 | 1001 | 100 |
25 | 12.5 | 1000 | 65 |
12.5 | 6.25 | 0111 | 55 |
6.25 | 3.125 | 0110 | 40 |
此算法使用50 Hz数据速率(20 ms)。采用interval的寄存器记录两步之间的数据更新次数。如果间隔值在10与100之间,则说明两步之间的时间在有效窗口之内;否则,时间间隔在时间窗口之外,步伐无效。
“计数规则”用于确定步伐是否是一个节奏模式的一部分。步伐计数器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作。假设经过四个连续有效步伐之后,发现存在某种规则(in regulation),那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式。在这种模式下工作时,每经过一个有效步伐,步伐计数器就会更新一次。但是,如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式,重新搜索四个连续有效步伐。
5测试及分析
5.1系统调试及功能
图13系统实物图
设计的实物用于记录单位时间的人行走的步数,以及一段时间的总步数,以达到督促人们锻炼的目的。
5.2系统的测试
如表2为在实际步数中显示步数以及总步数不复位情况下记录。下图表3为在实际步数中显示步数每5步复位一次总步数不复位情况下记录。由图可得到实物对步数统计准确率在90%以上。
表4
实际步数 | 5 | 10 | 15 | 20 | 25 | 30 |
显示步数 | 5 | 9 | 14 | 18 | 22 | 27 |
总步数 | 5 | 9 | 14 | 18 | 22 | 27 |
表5
实际步数 | 5 | 10 | 15 | 20 | 25 | 30 |
显示步数 | 4 | 5 | 4 | 5 | 5 | 5 |
总步数 | 4 | 9 | 13 | 18 | 23 | 28 |
6总 结
在本次计步器的制作过程中,体会到不少。而在解决问题的时候也是对自身的专业素质的一种提高。在焊接过程中元件必须清洁和镀锡焊接前用小刀挂掉氧化膜,然后再进行焊接时应使用电骡铁的温度高于焊锡的温度以烙铁头接触松香刚刚冒烟为好。焊接点的上锡数量焊接点上的焊锡数量不能太少,焊少了焊接不牢固,机械强度也太差。
同时让我也更加的了解了ADXL345是一款出色的加速度计,非常适合计步器应用。它具有小巧纤薄的特点,采用3 mm × 5 mm × 0.95 mm塑封封装,利用它开发的计步器已经出现在医疗仪器和高档消费电子设备中。它在测量模式下的功耗仅40 μA,待机模式下为0.1 μA,堪称电池供电产品的理想之选。嵌入式FIFO极大地减轻了主处理器的负荷,使功耗显著降低。此外,可以利用可选的输出数据速率进行定时,从而取代处理器中的定时器。13位分辨率可以检测非常小的峰峰值变化,为开发高精度计步器创造了条件。最后,它具有三轴输出功能,结合上述算法,用户可以将计步器戴在身上几乎任何部位。
全部0条评论
快来发表一下你的评论吧 !