基于加速度传感器的计步器设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于加速度传感器的计步器设计与实现
随着科学技术的不断发展,人们的生活水平越来越高,但在快节奏的生活方式下,尤其是上班一族久坐或久站,长时间保持一个动作,对身体造成了很大负担,缺乏运动观念。
锻炼身体的方式多种多样,步行就是有效,轻松,花费时间短的健身方式之一。
坚持这种有氧运动有助于人们改善心肺功能,促进血液循坏,长久下去,能使人们的精神面貌焕然一新。
通过适当的走路可以快速调节心态,稳定情绪。
计步器的出现有效监测了人们每天的身情况,使人们实时了解每天行走的步数,是一种逐渐受欢迎的健身监测器,可以鼓励人们挑战自我,强身健体,帮助瘦身。
早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。
晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
如今采用了电子器件时间计步的功能,本文将介绍采用单片机为控制核心,通过ADXL345三轴加速度传感器采集走路信息,通过算法计算出步数,并通过程序算法计算出速度、里程、卡路里消耗等信息。
本装置小巧,功能齐全,整体界面简洁美观,具有一定的市场价值。
关键词:单片机;计步器;ADXL345三轴加速度传感器
1 绪论
1.1 课题研究的背景及意义
随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。
计步器作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。
手持式的电子计步器是适应市场需求的设计,使用起来简单方便。
计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。
早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。
晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。
电子计步器主要组成部分是振动传感器和电子计数器。
步行的时候人的重心会上下移动。
以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。
所谓的振动传感器其实就是一个平衡锤在上下振动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。
计步器中一般采用一种加速度计来感受外界的震动。
常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。
1.2 国内外发展现状
计步器的核心是加速度计,20世纪40年代,德国人研制了第一个摆式陀螺加速度计。
此后的半个世纪以来,由于航空航天以及航海领域对惯性测量元件的需求,各种新型加速度计应运而生,其性能和精度有了很大的完善和提高。
加速度计面世后一直作为最重要的惯性仪表之一,用在惯性导航和惯性制导系统中,与海陆空运载体的自动驾驶及高技术武器的高精度制导联系在一起受到重视。
这时候的加速度计由于技术不成熟,成本高,其他领域没有得到广泛的应用。
这种状况直到微机械加速度计的出现才发生了改变,随着微机电系统技术的发展,微加速度计制作技术越来越成熟,国内外都将微加速度计开发作为微机电系统产品化的优先项目。
微加速度计与通常的加速度计相比,具有很多优点:体积小、重量轻、成本低、功耗低、可靠性好等。
它可以广泛地运用于航空航天、汽车工业、工业自动化及机器人等领域,具有广阔的应用前景。
当前国内在加速度技术上仍沿用传统的压电技术,精度停留在5-
5 g水平上,
10
而且尺寸偏大,重量偏重,影响我国惯导技术的先进性。
近年来国内虽然有多个单位对MEMS微加速度计进行了研究,但在精度上仍未取得突破,大体上只能达到1-
10g的水平。
我国从20世纪80年代末开始了MEMS技术的研究,包括硅微型压力传感器、微型电机和微型泵。
10多年来研究队伍逐步扩大,本世纪初已形成40多个单位的50多个研究小组,在MEMS传感器方面开展了大量的研究工作,取得了长足的进步。
MEMS研究方向包括:微型惯性器件和惯性测量组合:机械量微型传感器和制动器;微流量器件和系统;生物传感器、生物芯片和微操作系统;微型机器人:硅和非硅制造工艺。
国内公开发表文献表明,我国研制的振动轮式机械陀螺零偏稳定性达到70°/h, 随机游走噪声达到30°/h。
但由于基础研究的薄弱,技术人员的缺乏,技术和资金投入的不足,我国在各个技术方面与国外发达国家相比还有一定的差距,主要体现在批量生产时性能的稳定性和器件的完好率都有待于提高。
基于加速度传感器的计步器最大的核心问题是它的精确度问题,如何正确统计人行走或者跑步的距离,如何准确计算消耗的卡路里。
在精确度问题上,日本及一些欧洲国家所生产的的计步器较为精确,我国方面多用于基础民用阶段。
但由于机械生产的精度不高,电路集成性不强,导致计步器的便携性弱于国外产品。
精确性的决定条件就是传感器的精确性,加速度传感器的种类很多,发展也很快,目前应用比较比较成熟的有电容式加速度传感器和压阻式加速度传感器。
压阻式加速度传感器是利用硅材料电阻率的变化。
压阻式加速度传感器具有频率响应特性好、测量方法易行、线性度好等优点,其缺点是温度效应严重、灵敏度低。
电容式加速度传感器是将被测加速度转换成电容的变化来进行加速度测量的。
其基本特征是工作性能稳定,温度漂移小。
然而,电容式加速度传感器在将
被测加速度转换为对应的电容器电容变化量时,由于加速度惯性力引起电容极板位移的敏感度和速度总是慢于和小于悬臂梁等支承梁上应力变化的敏感度和速度,所以声表面波加速度传感器对被测加速度的敏感度和响应速度要高于和快于电容式等其它类型的加速度传感器。
近年来,开放新型功能材料、研究新型传感技术,已被发达国家列为现代和未来科学研究的技术开放规划中的战略重点。
利用新材料、新原理和新工艺研制出高性能、低成本、智能化、微型化的传感器是研究新型传感器的主要手段和最终目标。
1.3 课题设计的任务和要求
硬件设计:选择单片机型号和加速度传感器模块,设计主要的电路模块。
主要电路模块包括:单片机最小系统,加速度传感器模块,测量结果显示模块,按键设置模块,数据存储模块。
软件设计:使用Keil uVision4设计系统软件,主要模块有:加速度传感器,测量结果显示,数据存储等。
1.4 课题设计与社会和环境可持续发展的关系
一项科学研究显示,如果人们在锻炼的时候使用计步器,每天会促使我们多走2000多步,与此同时,会促使我们的血压下降更多,体重也会相应减轻。
使用计步器能激发参加锻炼的人的动力和热情。
越是惯于久坐不爱运动,宅居的人,计步器对他们的帮助就越大。
对于中老年人来说,散步是一项随时随地都可进行的活动。
选择空气清新,林木幽静的环境,能让我们轻松舒畅,心情愉悦,心旷神怡,周身舒爽。
但是步行要达到健身的目的,行走要有一定速度,路程要有一定距离。
过于急速或过于缓慢都达不到科学健身的目的。
这种情况下,利用计步器测量运动量则是更为可靠的科学方法。
科学散步可以使中老年人自我感觉良好,避免心悸气促,全身舒适放松。
总之,计步器的使用帮助人们实时监测自己的运动状态,从而激励人们制定相应的计划改善身体状态。
人类在生理上的健康体现了可持续发展的理念。
同时,现在的计步器功能越来越多样化和集成化,在节约生产资源的同时,也减少了电子垃圾的产生,实现了社会和环境的可持续发展。
1.5文章内容安排
本文的目的在于设计一款实时性好,功能性强的计步器,基本指标包括步数监测,此外实现里程卡路里的计算,并基于ADXL345传感器对加速度信号进行采集,通过分析身高体重和步数的关系进一步算出卡路里和里程。
本系统以 STC89C51单片机为核心控制,采用ADXL345 三轴加速度传感器实现加速度信号的采集,从而实现对行走步数的监测。
本文具体结构框架如下:
第一章,对文章研究的意义和背景进行阐述。
通过对国内外计步器的研究现状和发展的介绍,确定了本文的主要设计任务和方向。
第二章,实时监测系统的整体方案设计。
从需要实现的功能及特点入手,对相应传感器及核心控制器进行方案论证,并最终确定系统设计方案的框架第三章,系统的基本功能硬件设计。
基本功能部分可以分为三大类:步数监测部分、数据存储部分。
对每一部分要实现的功能,以及相应的传感器工作原理进行详细的介绍,再结合单片机对各个电路进行控制,以实现相应的功能。
第四章,实时步数监测系统软件设计。
包括对单片机开发环境的介绍,以及系统程序流程图的绘制,和步数监测系统以及数据存储所使用的编程方法进行介绍。
第五章,实物的制作及其调试。
第七章,结论。
对论文所做的研究工作进行总结。
2 系统硬件方案选择
2.1 硬件方案的选择
在硬件电路的搭建之前必须明确设计的方案,通过各个模块之间进行比较选择出最适合本设计的硬件,以发挥器件的最大功效。
主控芯片的选择
控制器是整个监测系统的核心部分,其性能的好坏直接影响着整个系统的工作状况。
控制器是整个系统运作的指挥中心,其决定
的是执行程序的顺序,也就是说,指挥并控制者数据流动的方向。
其对各个部分传感器的输入信号进行数据的运算和分析处理的作
用,并在计算之后,将相应的生理参数显示在显示屏上。
因此,对
控制芯片的选择是很重要的一个部分。
方案一:
采用STC公司所生产的STC89C51 单片机作为主控制器,其具有128 字节的内部随机静态存储器以及4k 字节的闪速存储器;两个可编程定时/计数器;五个中断源的中断控制系统;其I/O口可用作输入或输出;一个能够与其他设备进行通信的串行通信接口,以用于实现单片机之间,或者单片机与PC 机之间的串行通信;片内含有石英晶体振荡器,其振荡频率为11.0592MHz,需要外接石英晶体震荡器构成时钟电路。
该单片机功耗低,接口较为丰富,成本低廉。
并且,由于其存在位处理器,相应功能也较为完善,使用方便快捷。
但是其也存在相应的缺点:单片机不具备自编程能力,所谓的自编程能力指的就是利用未使用的FLASH 区来保存数据,可以节省外部存储器,降低成本。
STC89C51单片机具有的开发简单、可在线编程下载、成本低是非常不错的选择。
方案二:
采用MSP430单片机作为主控芯片。
MSP430单片机称之为混合信号处理器,它可以将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,MSP430系列单片机是美国德州仪器1996年开始推向市场的一种16位超低功耗、具有精简指令集的混合信号处理器。
该系列单片机多应用于需要电池供电
的便携式仪器仪表中。
而却开发难度相对比较大、价格昂贵。
所以在一些简单的设计中不宜采用。
方案三:
采用PIC16F877A单片机作为主控芯片。
PIC16F877A是由Microchip公司所生产开发的新产品,属于PICmicro系统8位单片机微机,具有Flash程序内存功能,可反复擦写程序。
但是开发成本高,难度相对大。
综合上述的描述,考虑到资源的合理利用和成本以及开发的难易程度最终决定采用宏晶科技的STC89C51单片机作为主控芯片。
显示器件的选择
方案一:
采用LED数码管动态扫描显示。
LED数码管的价格适中,对于显示数字或者简单的字母会比较合适。
但是采用动态扫描法与单片机连接时占用CPU的I/O 口较多,并且由于单片机的IO口输出电流不够,所以需要一个驱动电路,通过驱动电路放大电流后控制数码管,还有就是采用数码管进行显示的话显示的内容多了对于电路的焊接机会增大难得容易焊接错误。
方案二:
采用LCD1602液晶显示屏。
LCD1602液晶又叫LCD1602字符型液晶。
液晶显示功能强大,可以同时显示出16*2即32个字符,可包括数字、字母、符号、或者自定义字符。
LCD1602液晶显示器中的每一个字符都是由5*7的点阵组成。
LCD1602采用并行数据传输也可以采用串行数据传输,控制简单,和市面上的大多基于HD44780液晶的控制原理完全相同。
方案三:
采用LCD12864液晶显示屏。
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。
虽然LCD12864液晶显示的功能强大,但是显示的内容偏大造成了,显示空间的浪费,再来该液晶的成本高。
综合上述的描述,最终根据本设计中的功能要求考虑采用LCD1602液晶显示器比较合理。
数据存储芯片的选择
方案一:
通过使用单片机内部的EEPROM进行存储数据。
STC89C5X芯片内部带有EEPROM功能,STC89C5X的EEPROM是通过ISP/IAP技术读写内部FLASH 来实现EEPROM。
STC89C5X的EEPROM起始地址为0x2000,以512字节为一个扇区,EERPOM的大小为2K字节。
方案二:
采用专门的数据存储芯片AT24C02。
AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
AT24C02有一个16字节页写缓冲器。
该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
综合考虑单片机内部EEPROM在存储数据时需要先擦除整个扇区后才能写入,显得有点麻烦。
最终决定采用AT24C02存储芯片。
计步器件的选择
方案一:
采用机械振动的方式检测步数,机械振动传感器在人没有行走的时候内部平衡锤保持平衡,当人运行起来的时候内部平衡锤的平衡会被打破,振动传感器会将这一信号转换成电信号传输到单片机中,通过单片机检测即可出步数。
方案二:
选择加速度传感器进行检测步数。
加速度传感器能够将加速度的变化通过转换成电信号,通过A/D转换成三维加速度分量,单片机通过采集加速度值后,采用计步的程序算法进行分析得出步数。
综合考虑精度,最终决定采用方案二使用加速度传感器检测步数。
2.2 系统总体方案
通过上述对各个模块介绍,我们最终选择了STC89C51为控制核心。
系统通
过ADXL345三轴加速度传感器实时采集三轴数据,通过单片机进行数据的分析处理计算出是否迈出步伐,并通过LCD1602进行实时显示步数。
可以通过按键进行设置用户的身高和体重以进行推算行走速度,里程和消耗的卡路里,并且将设置的用户身高和体重信息存储于AT24C02。
本设计的具体的系统方案如下图2.1所示。
图2.1 系统方案
2.3 工程项目管理设计
经费预算
针对本次设计,对选用的器件类型、各部分器件数量、型号及相应的价格做了相关统计,在设计前对经费进行了预算,整理结果如表2-1 所示。
从表中可以看出,成本占比高的是动联创科公司生产的标准血压计。
做经费预算可以使得设计过程中对每一部分结构和总体有更加清晰的把握,也是工程管理能力的体现之一。
2.4本章小结
本章节主要介绍系统所用到的器件的选择与对比,进行综合的对比考虑选择出最适合本设计的一组方案。
3 系统硬件电路设计
3.1 STC89C51单片机系统设计
STC89C51的概述
STC89C51是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、非常有效的解决方案。
具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
单片机的主要功能特性
单片机选用STC89C52的主要功能特性如表3-1所示:
表3-1 单片机主要特性
主要功能特性
兼容MCS51指令系统8K可反复擦写Flash ROM
32个双向I/O口256×8bit内部RAM
3个16位可编程定时/计数器中断时钟频率0-24MHz
2个串行中断可编程UART串行通道
2个外部中断源共6个中断源
2个读写中断口线3级加密位
低功耗空闲和掉线模式软件设置睡眠和唤醒功能
9
单片机的各引脚含义
VCC(40引脚):电源电压
VSS(20引脚):接地
P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
在对Flash ROM编程和程序校验时,P1接收低8位地址。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表3-2:
表3-2 P1.0和P2.0引脚复用功能
引脚号引脚功能
P1.0T2(定时器/计数器2外部计数输入),时钟输出
P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。
在访问8位地址的外部数据存储器时,P2口引脚上的内容,在整个访问期间不会改变。
在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内
10
部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
在对Flash ROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能。
如图表3-3所示。
表3-3 P3引脚复用功能
引脚号复用功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 (外部中断0)
P3.3 (外部中断1)
P3.4 T0(定时器0的外部输入)
P3.5 T1(定时器1的外部输入)
P3.6 (外部数据存储器写选通)
P3.7 (外部数据存储器读选通)
STC89C51单片机的最小系统
单片机最小系统说的通熟易懂的话就是以最少的元器件组成能让单片机工作起来的系统,接下来开始介绍51单片机最小系统必备的器件及其作用。
首先电源这对于一个电子产品的话是必不可少,它提供能源给系统运作,在本设计中由于51单片机的工作电压在4.5~5.5V之间都可以正常工作所以我们采用了USB电源线连接手机充电器插头或者5V的移动电源给系统进行供电。
其次晶振电路,XTAL1和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图3.1中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件,内部振荡器便能产生自激振荡。
一般来说晶振可以在 1.2~12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。
在本实验套件中采用的12M 的石英晶振。
11
路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。
3.2 LCD1602液晶显示电路设计
LCD1602的概述
LCD1602液晶也叫LCD1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。
LCD1602液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LCD1602与单片机MCU通讯可采用8位或4位并行传输两种方式,HD44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。
IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储
12。