版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的运动计步器的软件功能设计基于单片机的运动计步器的软件功能设计摘要计步器是一种流行的日常运动计划监视器,可以激发人们挑战自我,改善他们的身体健康,并帮助他们减肥。早期设计使用加权机械开关,通过简单的计数器测量速度。当我们运动时,身体会震动这些设备,设备里的检测器件就会受影响,人的手臂前后摆动,设备检测到运动方向的变化。计步器功能是通过对人体运动时动作的分析计算,以及对人的健康分析。通过人运动时的不同特征来分析人体运动的状态。和以前的机械传感器不同,ADXL345是一种外型小巧,功耗很低,分辨率很高的三轴加速度传感器,能够较为精确地获取到人体运动时的对于空间三轴的加速度变化信号。人体运动信号通过滤波器滤波,通过单片机采集数据。软件采用自适应算法实现步进计数功能,减少了错误计数,提高了计算精度。系统控制芯片为STC89C52单片机。由单片机处理的数据通过蓝牙模块传输到手机应用程序,可以清楚地看到检测效果。该机器的工作电流仅为1-1.5ma,实现了超低功耗。使用移动应用程序APP显示所采取的步数,距离,卡路里和移动状态。关键词:计步器,蓝牙,三轴传感器ADXL345,单片机STC89C52AbstractPedometerisapopulardailyexerciseschedulemonitorthatcaninspirepeopletochallengethemselves,improvetheirphysicalfitnessandhelpthemloseweight.Earlydesignsusedweightedmechanicalswitchesthatmeasuredspeedwithasimplecounter.Asyoushakethesedevices,youcanhearametalballslidingbackandforth,orapendulumswingingfromsidetoside.Pedometerfunctionisbasedonthecalculationofhumanmovement,humanhealthanalysis.Humanmotioncanbeanalyzedbymanycharacteristics.Unliketraditionalmechanicalsensors,theADXL345isacapacitivetriaxialsensorthatcapturesaccelerationsignalsofhumanmotionwithgreateraccuracy.Thesignalisfilteredbyalowpassfilterandthedataisobtainedbyamicrocontroller.ThesoftwareUSESadaptivealgorithmtorealizethestepcountingfunction,whichreducestheerrorcountingandimprovesthecalculationprecision.ThesystemcontrolchipisSTC89C52singlechipmicrocomputer.Thedataprocessedbythesinglechipmicrocomputeristransmittedtothemobilephoneapplicationprogramthroughthebluetoothmodule,andthedetectioneffectcanbeclearlyseen.Theoperatingcurrentofthemachineisonly1-1.5ma,achievingultra-lowpowerconsumption.Useamobileapptodisplaythenumberofstepstaken,distance,calories,andstatusofmovement.Keywords:Pedometer,TriaxialsensorADXL345,Bluetooth,SinglechipmicrocomputerSTC89C52目录TOC\o"1-3"\h\u1.绪论 61.1研究背景 61.2国内外研究现状 71.3研究意义 101.4论文研究内容与章节安排 112.硬件平台介绍 112.1总体平台结构 112.2STC89C52单片机核心系统电路 122.35V电源电路 142.4JDY-30蓝牙模块电路 142.5LED信号指示灯电路 152.6LCD1602液晶显示模块电路 162.7ADXL345三轴加速度传感器模块电路 163编程环境与总体设计 173.1开发与调试环境 173.1.1开发环境 173.1.2调试环境 183.2Keiluvision4软件开发流程 243.3STC-ISP-15xx-v6.85p程序烧录软件介绍 253.4CH340串口程序烧写模块介绍 263.5程序流程图 264模块软件功能设计 274.1计步功能的实现 274.1.1ADXL345三轴加速度传感器模块功能介绍 274.1.2计步功能的软件设计 284.2LCD1602液晶显示 314.3JDY-30蓝牙模块 355测试与分析 375.1LCD显示测试 375.2蓝牙通信测试 385.3计步功能测试 406总结 45参考文献 46致谢 471.绪论1.1研究背景步行对健康的好处是毫无疑问的。近年来,国家经济迅速发展,人们的收入相对于以前增长了很多,人民生活水平不断提高。随着人们的饮食习惯的变化,以及交通自动化和机械化不断提高,人们的日常出行方式多种多样,身体运动的时间越来越少,长时间缺乏运动导致习惯性的疾病的发病率也越来越高,如肥胖症、高血压、高血脂、高血糖、心血管和脑血管疾病。根据国家相关调查报告显示,全国五分之一的成年人患有“习惯性疾病”。肥胖和运动不足是各种生活习惯疾病的主要发病原因。事实上,中青年白领社会竞争压力大,工作繁忙,而且社会报酬较高。他们经常过着高热量、高脂肪、熬夜和低运动量的生活。长期保持这样的生活状态就会导致大量的脂肪难以消耗,脂肪层在体内堆积,导致越来越多的人变胖,高血压,高血脂,甚至心血管风险被隐藏。步行被广大群众认为世界上最好的锻炼运动,也是最安全、最舒适的运动和减肥方式。很多临床实践证明,在中老年人中流行的“三五七步法”,简单来说就是外出步行要能够达到一天一次或两次,每一次在30分钟以上的步行时间,一个星期的时间内要进行五次步行以上。通过控制运动量,能够让我们在运动后的心率达到每分钟将近160次,长时间坚持这样的锻炼可以减少很多疾病的发病率。不仅如此,散步还可以改善心血管系统,促进新陈代谢,减少高血压、心脏病、糖尿病和中风的发病率。根据科学的研究表明,孕妇在怀孕期间如果能够坚持运动,进行适当的锻炼,对于妊娠的过程会有非常大的促进帮助,对孩子的成长也有着潜移默化的影响。由此可见孕妇可以适当的外出步行,步行时随身携带计步器,可以帮助孕妇定下运动量目标,并且能够确保运动量切实达成,还能量化运动的数据,能够明显的知道每天运动量的变化,增添运动的乐趣,提高自己运动的积极性,也能保证孕期不可超量。通过计步器的帮助,孕妇可以保持良好的身体健康状态,还能提高睡眠质量,帮助产后的减肥塑身等。就近几年的发展来看,在国外的一些发达国家,电子计步器这种类似教练的健康步行管理设备受到人们的强烈欢迎。例如在欧洲和美国,大多数人每天外出步行时随身携带电子计步器,它不仅能精确显示行走的步数和当地的时间,还能够随时的了解步行时消耗的卡路里量和燃烧脂肪量,让人们能够直观地看到脂肪的减少,有效避免潜在的健康隐患,有效了解步行效果,让自己关心,让家人放心。斯坦福大学的德娜-布拉瓦特博士调查了许多欧洲国家的人民对于计步器的使用成果。经过她对收集到的社会数据进行了研究分析,发现在几千人的数据显示,使用计步器的人的运动量平均提高了将近百分之三十,而且自身的体重普遍有所减少。不仅如此,他们的血压也降低到正常范围,突发心脏病和中风的几率明显比没有使用的人要低。有的计步器不仅能准确记录行走的时间和步数,还能在大屏幕上清楚地显示出行人行走时消耗的卡路里和脂肪。粗略的记录下步行的时间和步数,并通过大屏幕清楚的显示出行人通过步行消耗的卡路里和脂肪。,让每个步行者在“成就感”中为健康不断大步前行,促进全民运动,加强全民身体素质。1.2国内外研究现状计步器最初是由意大利的伦纳德·达·芬奇提出的,但是至今现存记录中,最早的计步器是在伦纳德·达·芬奇之后的150年,是在十七世纪中期的时候由德国发明出来的。日本在早期的计步器是由Gcn公司在十八世纪中期制造的。在计步器被提出和发明的年代,计步器没有被各个国家重视,所以没有能够得到广泛使用,因为人们不知道它们的用途。通过这个事情,说明机器的发明不如让人们找到它的用途重要。日本的计步器在那个时候已经使用了四十多年,主要应用在日常运动和分析记录正常的步行速度。1965年,计步器正式进入日本商业市场,并被命名为manpo-meter(日语中manpo的意思是10000步)REF_Ref8655841\r\h[15]。这种计步器大多数是采用摆钟原理作为计步器的核心技术,采用加权机械开关检测步长,并具有简单的计数作用。当人摇动这些装置,就会听到装置里的滚珠来回滑动的声音,又或者是听到钟摆来回摆动的声音。但是这种机械计步器在时代的发展过程中已经不适用于人们的日常生活,取而代之的是更高级的计步器,也就是电子计步器。电子计步器的工作原理是利用重力加速度计通过测量当前位置重力变化的方向和大小,与正常步行或奔跑时的重力变化相比对,如果数据达到一定的相似性时,就被认为是处于行走或跑步状态。有规律的日常有氧活动如步行是预防缩短生命的退化性疾病的关键。计步器的发展历程非常的久远,最早出现的是机械式计步器。这种计步器在精确度上的误差很大,而且有着体积大,质量重,适用性差等缺点。所以这种计步器随着科技的进步已经被遗忘和淘汰。现在广泛使用的是电子计步器。一般来说,计步器可以分为两类:独立计步器和非独立计步器。独立计步器是指只具有计步器基本功能的计步器。独立计步器是指集成计步器基本功能的产品。独立式计步器如图1所示:图1独立式计步器除了独立计步器,还有非独立计步器。常见的非独立计步器包括智能手镯、智能手表、智能跑鞋等可穿戴设备,包括智能手机中的计步器功能REF_Ref8656144\r\h[16]。这种计步器不仅具有独立计步器的基本功能,而且还扩展了其他多种功能。对于产品定位,非独立计步器不再局限于计步器的简单功能,而是一种运动监测设备。运动手环如图2所示:图2非独立式计步器在微电子机械技术的迅速发展过程中,大多数计步器使用微电子机械加速度计来获取人体运动数据。微电子机械加速度计用于测量加速度方向和大小的变化。这种类型的传感器的功耗非常低,能够在最大程度上地降低整个系统的功耗。通过选择低功耗芯片和优化计步器算法,可以大大延长计步器的使用寿命。小米公司的计步器通常是通过蓝牙和手机两个方向与APP通信。蓝牙通信具有功耗低、距离短的特性。蓝牙通信协议有不同的版本。从2012年蓝牙4.0标准引入行业标准以来,蓝牙通信协议在各个方面都得到了广泛的应用。蓝牙标准具有非常低的运行和待机功耗。仅仅使用按钮电池就可以使一些传感器节点连续工作很多年了。第一代手环锂电池容量为41毫安,非常的小,但是使用寿命可以长达30天。小米的第一代手环是一款智能手环,功耗非常好,损耗低。在智能手环领域,市场上比较常见的手环大多考虑功能和耐用性。手环的使用寿命也就是待机时间可以达到几天到十几天不等。著名运动手环公司Fitbit的Flex智能手环待机时间为七天,国内知名创业公司Bong2P智能手环的使用时间约为10天。计步器的应用除了停留在佩戴的手环,也逐渐出现智能运动鞋,手机也出现了计步器量化功能。智能运动鞋是在智能手环之后的创新产品,计算步数是其最重要的功能。中国李宁公司的赤兔智能运动鞋仅使用纽扣电池,使用寿命就能长达一年以上。小米公司的超智能运动跑鞋能够持续运行两个月,可以精确地监测运动过程中的数据,并识别出跑步、走路、骑马和爬山的四种状态。与普通的智能运动鞋和智能手环相比,它的功率控制可以达到较低的水平。通过研究分析可知,智能手环是戴在手上的,人的运动动作幅度是非常大的,运动的姿态也是多种多样的。为了使内置器件对步数的计算更加精确,就需要在软硬件工程中过滤掉更多的干扰信息,而智能运动跑鞋是穿在脚上的,脚的运动姿态比较少,大多数只有步行,奔跑,跳跃等,所以需要过滤掉的干扰信息更少。除此之外,根据一个正常人的日常生活规律和工作状态,腿部进行运动的时间会远远小于手部进行运动的时间,相对应的运动时间的减少就意味着功耗的减少,功耗损失减少,成本也会所降低,研发和创新也就更有优势。1.3研究意义随着社会的发展和人们的物质生活水平逐渐提高,人们越来越注意重视自己的身体健康。毛主席曾经说过,身体是革命的本钱。行动的前提条件是必须要有良好的体魄。一个人要想做成一件事,必须具有多方面的素质,但所有这些都必须依托于一个前提条件,那就是要有健康的体魄。跑步是一种简单又有效的运动锻炼方式。但是我们进行了锻炼之后,怎么能够知道自己每天的运动量是多少呢?这就需要一个运动计步器来帮助我们了解自身的运动情况,运动计步器可以显示出锻炼时的步数,卡路里还有我们的跑步路程,让我们能够直观地看到每天的运动量,还能够提高人们对锻炼的积极性,增强人们的身体素质,促进身体的新陈代谢,排出身体的有害物质,有利于身体健康。计步器作为一种测量仪器,主要是通过测量人在走路时空间重力方向和大小的变化来检测运动状态,来判断步数的是否增加。在对数量可观的实验样本的统计分析出人平均每一步的距离及消耗的能力,通过一些内部设定的算式来计算行走的路程和计算人体所消耗的热量。人们可以基于计步器,对自身定量制定一项运动方案来锻炼身体。计步器通过对数据的量化,根据每段时间几项数据的情况来分析人体近期的运动状况,因而越发流行,甚至有攀比步数,攀比运动量的良性竞争。手持式的电子计步器是适应市场需求的产品设计,操作简单,容易入手,不仅仅是年轻人,老人和小孩也可以使用,实用性高。计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。1.4论文研究内容与章节安排第1章.主要介绍计步器课题的研究背景,计步器发明和出现的时间,有应用在哪些领域,国内外对于计步器的发展历程,以及计步器对于人们在日常生活方面的意义,对人有什么样的好处和促进作用。第2章.主要介绍计步器基于的硬件平台所包含的模块的简单介绍以及各个模块的电路原理图。第3章.主要介绍计步器的编程语言以及开发与调试环境,单片机程序烧写软件的介绍,以及TTL转USB串口程序烧写模块助手以及介绍单片机的开发实现流程和程序的开发流程图。第4章.主要介绍实现计步器功能的软件方面的设计,对实现计步功能的相关模块,进行操作指令上的介绍,以及软件方面的配置和设计。第5章.主要介绍计步器完成后的几个模块测试,显示模块是否能够成功显示数据,屏幕字符数字会不会闪烁,蓝牙模块是否能够连接到手机上,以及计步器在走动或者跑步的时候能不能记录到步数。2.硬件平台介绍2.1总体平台结构基于三轴加速度传感器ADXL345的计步器硬件平台的搭建主要由以下几个模块组成:单片机STC89C52与晶振电路和复位电路构成的最小系统、三轴加速度传感器ADXL345、LCD1602液晶显示模块、电源电路、蓝牙控制电路、LED灯电路。硬件平台总体结构电路原理图如图3所示:图3硬件平台总体结构原理图单片机STC89C52作为计步器的控制系统,可以对所获取的数据进行处理、计算。ADXL345三轴加速度传感器是一款体积小,易携带,功耗低,成本低的传感器,自身集成了信号处理调整、滤波的功能。LCD1602作为人机交互的显示界面,功耗低,体积小,用于显示当前的步数、距离等信息非常的方便。在人体运动过程中,三轴加速度传感器ADXL345采集人体的加速度信号,经过模数转换,传输给单片机控制芯片STC89C52并对数据进行处理、计算,然后传输给显示模块LCD1602,则人体运动的步数,距离等信息就可以直观的在LCD1602上显示出来,整个系统由电源供电。2.2STC89C52单片机核心系统电路STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能REF_Ref8656766\r\h[17]。在单芯片上,拥有灵活的8位地址CPU和在系统可编程Flash,STC89C52在众多嵌入式控制应用系统中提供高灵活、有效性极高的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作REF_Ref8656802\r\h[18]。在掉电保护的模式状态下,RAM存储的内容能够保存,暂停振荡器,停止单片机的一切工作,等到下一个中断信号出现或硬件复位为止。35MHz是改核心芯片的最高运作频率,可选6T/12T。STC89C52单片机最小系统说明:STC89C52单片机最小系统电路由时钟电路、复位电路和电源电路组成。拥有这三部分电路后,单片机即可正常工作。单片机最小系统原理图如图4所示。图4单片机STC89C52最小系统原理图(1)VCC是单片机的电源借口,GND是单片机地借口,两个借口为单片机提供电源:(2)复位电路由按键S1、电解电容EC1和电阻R1组成。单片机设有手动按键复位和通电自动复位功能。系统上电后单片机检测到的电压由低电平上升到高电平的一段时间后,在这段时间过后,系统通过电阻与接地之间形成一条通路,然后自动把高电平进行拉低,使得单片机从高电位变为低电位,从而就是给单片机自动进行复位即上电复位;系统上电复位按键接口采集到两个高端信号后进行手动复位,就是非自动的按键复位。(3)时钟电路由晶振Y1、瓷片电容C1和C2组成。有控制芯片的数字电路正常工作是少不了TIME(时钟)电路的,我们需要时钟电路自动发出系统时间,让控制芯片正常工作。给控制芯片正常工作的时钟信号,一般把这种工作方式称为“拍”,以至于让整个控制系统能正常工作,由于要保证控制系统能正常工作,提高他的工作能力,我们经常用11.0592MHZ晶振和30PF的电容进行组合,电容为了帮助晶振起振的,满足了数字控制器上电以后可以正常工作。(4)JD1为单片机的下载接口。2.35V电源电路本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。5V电源电路的原理图如图5所示:图55V电源电路原理图2.4JDY-30蓝牙模块电路蓝牙模块是集成蓝牙功能的芯片基本电路集合,主要用于无线网络通讯。在我们设计的时候选择这款蓝牙模块就是为了能够进行无线数据传输。当我们通过蓝牙模块发送信号的时候,另一边我们就可以在手机上接收到蓝牙发送出来的数据信号。这个模块可以通过串行接口,支持SP蓝牙串口协议,具有价格低廉、形状小巧、对数据的灵敏性高等特点,。JDY-30蓝牙模块电路原理图如图6所示:图6蓝牙模块电路原理图2.5LED信号指示灯电路LED灯就是发光二极管,是半导体二极管的一种。在电路中如果有电流通过,就可以使LED灯发光,这样我们就能够知道,LED灯上有电流通过,是一种系统对周围环境有效提示的方法。但是LED灯自身的电阻是很小的,因此在电路中,还要加上一个保护电阻,电阻的作用是限制电流,防止电流过大烧坏LED灯,对LED灯起到保护作用。发光二极管由一个PN结组成,我们知道PN结是有电流的单向导电性。这在使用上也非常的方便。只要单片机的控制引脚拉低,则LED灯亮,否则,LED灯不亮REF_Ref8657047\r\h[19]。其具体电路原理图如图7所示。图7LED灯指示电路原理图2.6LCD1602液晶显示模块电路LCD液晶显示可以显示数字和符号。显示字体段落的方法与LED数码管显示差不多,当我们发送对应的信号到相应的管脚就能够激活显示。字符显示是根据需要显示基本字符。在我们的设计中采用的是字符型显示。单片机系统采用LCD1602作为显示器件输出信息。这和传统的LED数码管显示器材相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602屏幕上一行最多能够显示16个字符,整个屏幕上最多能够显示2行。系统中采用LCD1602作为显示器件输出信息。在本电路中电位器可以调节液晶显示的对比度即清晰度。其具体电路原理图如图8所示。图8LCD1602液晶显示电路原理图2.7ADXL345三轴加速度传感器模块电路选择ADXL345三轴加速度计采集步行信号的状态信息。ADXL345是一种小型、超薄、超低功耗的三轴加速度计,具有高分辨率(13位)和小于16g的测量范围。数字输出数据采用16位二进制补码格式,可通过SPI(3行或4行)或I2C数字接口进行访问。ADXL345非常适合移动应用。它可以在倾斜检测应用中测量静态重力加速度和运动或冲击引起的动态加速度。其高分辨率(3.9mg/LSB)无法测量1.0度的倾角变化。该装置具有多种特殊的检测功能。活动和不活动检测功能通过比较任意轴上的加速度和用户设置的阈值来检测运动是否发生。爆震检测功能可检测任意方向的单、双振动。自由落体检测功能,可以检测设备是否在坠落。这些函数可以独立地映射到两个中断输出插脚中的一个。正在申请专利的集成内存管理系统使用32级FIFO缓冲区,可以用来存储数据,从而最小化主机处理器的负载,降低系统的总体功耗。低功耗模式支持基于运动的智能功率管理,使阈值传感和运动加速度测量具有非常低的功耗。ADXL345三轴加速度传感器模块的接口图如图9所示:图9ADXL345三轴加速度传感器模块的接口图3编程环境与总体设计3.1开发与调试环境3.1.1开发环境在设计的时候,单片机开发环境选择KeiluVision4软件。KeiluVision4是STC公司最新的一代基于51单片机编译、连接和调试集成环境,是51系列单片机系统实用性比较强的一款的程序开发软件。不仅能够提高开发的时间效率,降低花费的时间,从而在成本上有很大的优势。而且KeiluVision4给我们提供了比较全面的的Windows开发环境,我们可以直接在软件上进行开发。支持C/C++语言开发,在这个开发环境中C语言编辑效率很高,能够让我们很非常容易地使用C语言进行程序编程。KeiluVision4软件界面如图10所示。图10KeiluVision4软件界面3.1.2调试环境打开keiluvision4软件,点击KeiluVision4界面中菜单中“Project”,选择“NewuVisionProject”,为新建的工程命名后点击保存;在弹出来的“SelectaCPUDataBaseFile”窗口中选择“STCMCUDatabase”,然后选择开发单片机芯片的型号,本工程选择“STC89C52”,这样就完成了“Project”的建立;当工程建立完毕后,新建用户源文件,在新建的空白文本中编写程序源代码,编码完成保存为.c文件。新建main.c,adx345.c,1602.c,delay.c等主要的C语言文件。右键点击“SourceGroup”,选择managecomponents可以往里面添加各个模块的.c文件,点击Addfiles将所有模块的C语言文件添加进SourceGroup,也可以把常用的.c文件拷贝到建立的“Project”目录下面,最后一个完成的工程软件就建立完毕。如图11和图12所示。图11图12在添加好.c文件后,对所有新建的空白文本进行程序的编写,在各个模块的.c文件中完成函数的定义、串口初始化、引脚的定义、变量的定义、定时器初始化,利用死循环无限读取数据等工作。在.h头文件中定义好特殊寄存器;定义x,y,z三轴的变量类型以及函数变量的引用等工作。完成后进行程序的编译和调试:单击编译按钮,系统会对文件进行编译,在输出窗口中可看到提示信息,如果提示信息中有error信息,按照提示找出错误并改正,直到提示没有错误为止。编译成功后生成.hex文件,用于之后的程序烧录。本设计中通过CH340串口程序烧写模块对单片机程序进行烧写。在使用CH340串口烧写模块前,必须先安装CH340串口驱动。驱动安装界面如图13所示。图13驱动安装界面安装好CH340的串口驱动后,由于串口的通信是一收一发,因此使用杜邦线将CH340的RXD,TXD,GND分别与单片机上TXD,RXD,GND相连接,由于单片机通过USB供电,因此只需要连接3个接口即可。实物连接好后如图14所示:图14实物连接图完成之后,将CH340插入电脑的USB接口后,电脑的设备管理器上就可以接收到CH340的串口提示。如图15所示:设备管理器可以接收到USB-SERIALCH340(COM3)的端口。图15设备管理串口打开STC-ISP-15xx-v6.85p烧写程序,选择到串口助手的界面。单片机型号选择STC89C52RC/LE52RC。串口号选择识别到的串口COM3,波特率一般选为9600,将接收缓冲区和发送缓冲区选择文本模式,打开串口。进行收发指令,发送*B:0000J:00.0mK:0000.00calLie#后,在接收缓冲区可以收到同样的数据,随后关闭串口即可。如图16所示:图16串口调试调试完成后,打开程序文件,选择程序中的.hex文件。图17选择烧写文件选择.hex文件后打开,点击下载开始烧录单片机程序。图18烧录单片机程序程序烧录完成。将程序下载到单片机后,观察结果。3.2Keiluvision4软件开发流程首先,需要建立“Project”工程,由于keil4uVision4中没有STCMCU,因此先下载一个STC_ISP程序烧录软件,打开STC_ISP程序烧录软件,选择keil仿真设置界面,点击“添加型号和头文件到keil中,添加STC仿真器驱动到keil中”,选择包含C51和UVX的文件路径,点击确定后成功添加STCMCU库。其次打开KeiluVision4软件,点击KeiluVision4界面中菜单中“Project”,选择“NewuVisionProject”,为新建的工程命名后点击保存;在弹出来的“SelectaCPUDataBaseFile”窗口中选择“STCMCUDatabase”,然后选择开发单片机芯片的型号,本工程选择“STC89C52”,这样就完成了“Project”的建立;当工程建立完毕后,点击“SourceGroup”,可以往里面添加.c文件,点击Add就可以编辑了该文件了,也可以把常用的.c文件拷贝到建立的“Project”目录下面,最后一个完成的工程软件就建立完毕了。单片机计步器具体开发实现流程如图19所示。开始开始建立工程文件编写程序编译是否正确?下载烧录到单片机调试是否正常?结束图19单片机计步器开发实现流程3.3STC-ISP-15xx-v6.85p程序烧录软件介绍在KeiluVision4开发环境下,STC89C52RC芯片程序烧写软件使用的是stc-isp-15xx-v6.85p烧录软件,它是一款集成了代码下载,在线仿真和串口查看于一起软件备,在51系列智能产品研发过程中得到了广泛使用,性能高,是目前51系列单片机控制系统研发中不可缺少的一部分。在KeiluVision4开发环境中,需要进行一定的配置才能使用,当把下载器CH340、设备和PC连接好,首先需要在软件中选择单片机型号和串口号,并把波特率设置和程序软件一致。然后选在项目程序“hex”文件所在的地址,最后就可以点击程序下载按钮了。具体下载界面如图20所示。图20STC-ISP-15xx-v6.85p程序烧录软件界面3.4CH340串口程序烧写模块介绍在设计中,选择CH340串口烧写模块实现对单片机程序的烧写。CH340串口烧写模块是一款TTL转USB接口的设备,能够非常方便的进行使用,解决了对于单片机的程序烧写问题。CH340下载器相对于PL2303来说价格低廉、性能强,因此下载器选择CH340。单片机程序的烧写也可以通过使用串口让电脑与单片机进行通信,但是使用CH340就显得非常的方便,省去了我们使用串口的困扰。CH340是一种USB总线传输芯片,实现USB到串口、USB到IrDA红外或USB到打印端口。在串行模式下,CH340提供常用的调制解调器接触信号,用于扩展计算机的异步串口,或将常用的串行设备直接升级到USB总线。红外模式下,CH340加上红外收发机可构成USB红外适配器,实现SIR红外通信,功能齐全,使用方便。3.5程序流程图开始开始蓝牙模块上报数据呼吸灯闪烁及数据处理初始化定时器和串口初始化IO口ADXL345角度采集判断是否走步图21程序流程图4模块软件功能设计4.1计步功能的实现4.1.1ADXL345三轴加速度传感器模块功能介绍ADXL345三轴加速度传感器功能框图如图22所示:图22功能框图ADXL345的通信方式及配置方法:可采用和SPI数字通信。上述两种情况下,ADXL345作为从机运行。CS引脚上拉至VDDI/O,I2C模式使能,CS引脚应始终上拉至VDDI/O或由外部控制器驱动,因为CS引脚无连接时,默认模式不存在,如果没有采取这些措施,可能会导致该器件无法通信,SPI模式下,CS引脚由总线主机控制。REF_Ref8673373\r\h[20]SPI和I2C两种操作模式下,ADXL345写入期间,应忽略从ADXL345传输到主器件的数据。ADXL345的中断引脚输出如图所示:图25中断引脚数字输出4.1.2计步功能的软件设计初始化ADXL345三轴加速度传感器,设置好测量范围为正负16g,13位模式,速率设定为12.5,选择电源模式,使能中断及x,y,z三轴方向的加速度偏移量。设置ADXL345传感器的起始信号:将SDA置1拉高数据线,SCL置1拉高时钟线,SDA置0产生下降沿,SCL置0拉低时钟线。设置只读寄存器的地址,根据只读寄存器0x00—DEVID的地址如图26所示。图26寄存器0x00—DEVID地址将只读寄存器0x00—DEVID寄存器保存0xE5的固定器件ID代码,确定能够读取到正确的数据。连续读取ADXL345内部加速度数据,x,y,z三轴的数据0与数据1六个地址数据对应的寄存器映射的十六进制地址为0x32-0x37。从0x32开始读取x轴的数据0,一直读取到z轴的数据1,共6个地址数据,然后存储到接受数据缓存区BUF中,每读取一个数据接收完毕后发送应答信号也就是确认字符ACK,直到接收到最后一个数据发送NOACK。将所读取到并且存储在缓冲区BUF中的数据进行计算和显示,然后进行数据合成,得出x,y,z三轴方向加速度的合成数据。通过对x,y,z三轴方向加速度合成数据的范围对步数进行检测,判定是否进行了走路,通过检测单位周期内步数的多少,可以检测出该步数量所对应处在的运动状态是静止还是步行等等。这样就可以得出通过ADXL345三轴加速度传感器的物理运动在x,y,z三个方向上加速度的变化来得出所运动的步数。步数和距离及所消耗的卡路里也存在一定的数量关系,这样也可以得出在进行运动时,所消耗的能量和运动路程。4.2LCD1602液晶显示4.2.1LCD1602液晶显示模块功能介绍1602液晶模块内部的控制器共有11条控制指令,如图28所示:图281602液晶模块控制指令LCD1602液晶模块的读取和写入操作、显示屏幕和光标的操作都是通过指令编程来实现的。1表示上边缘信号,也可以说是高电平信号,0表示下边缘信号,也可以说是低电平信号。如果要想清除所有在LCD1602显示屏幕上的数据,需要输入的指令码为01H,显示光标复位到地址00H位置。设置显示光标的复位,需要将光标返回到地址00H。光标和显示屏幕模式设置I/D模式下光标的移动方向是根据电平的信号变化来进行移动的。处于高电平信号的时候光标向右移,处于低电平信号的时候光标向左移。在设置为S的输入模式下:所有在屏幕上显示的数字或者文字是否向左平移或者向右平移。模块处于高电平信号时表示有效,处于低电平信号没有效果。控制显示开关。在显示开/关控制D模式下可以控制整体显示的开与关,高电平信号表示开启显示,低电平信号表示关掉显示。在显示开/关控制C模式下可以控制光标的开/关,高电平信号表示光标已经打开,低电平信号表示光标没有开启。在显示开/关控制B模式下可以通过电平信号来控制光标是否闪烁,高电平信号下光标会闪烁,低电平信号下光标不会闪烁。光标或字符移位在S/C模式下,根据电平信号来决定移动文字还是光标。高电平信号状态下会移动显示的文字,低电平信号下会移动屏幕上的光标。功能设置命令在DL模式下,如果捕捉到高电平信号,那么为四位总线,捕捉到低电平信号为八位总线。在N模式下,捕捉到低电平信号时,显示屏幕显示单行的数字或者符号,捕捉到高电平信号显示双行的数字或者符号。在F模式下,如果捕捉到低电平信号,屏幕上就显示5x7的点阵字符,捕捉到高电平信号,屏幕上就显示5x10的点阵字符。读取单片机忙状态信号和光标的地址如果在BF模式下,高电平信号时表示系统处于忙状态,当系统处于忙状态的时候,模块不能接收命令或者数据,低电平信号时表示不忙,这个时候模块就可以实现接收命令或者数据。LCD1602的随机存取存储器RAM地址映射及标准字库表液晶显示模块是一款运行非常缓慢的显示器件,在模块执行每条指令之前必须先要确认模块的忙标志是否处于不忙的状态,如果处于忙状态,那么所发的指令就无法生效。要显示字符时要告诉模块在哪个位置显示字符,必须先输入显示字符地址。LCD1602内部字符显示地址如图29所示:图291602内部显示地址1602LCD模块初始化把变量赋为默认值,把控件设为默认状态,把没准备的准备好,设置复位过程在调试的时候如果遇到系统或者程序上的问题可以将单片机重置:延时设定为15mS,写入指令的位地址为38H,这个指令不会检测单片机的忙信号。然后设置延时5mS之后单片机每次运行写入指令、读取/写入数据等操作都要对单片机进行忙信号的检测。设置写入指令的地址为38H是对显示模式进行设置。设置写入指令的地址为08H是将显示关闭。设置写入指令的地址为01H表示将显示屏幕进行清除屏幕上显示的工作。设置写入指令的地址为06H表示设置显示光标移动。设置写入指令的地址为0CH表示显示开启和设置光标。4.2.2LCD1602模块软件设计定义端口,对LCD1602模块进行初始化,将数据端口设为输出状态,规定复位操作,设置显示模式,显示关闭和显示清屏。在写字符的时候整体不会移动,显示开关打开,不开光标,不闪烁。确定x,y的坐标,让液晶从某个位置起连续显示一个字符串或者N个字符串。并且计算出字符串有效字符的个数。判断液晶显示模块是否处于忙状态,如果处于忙状态,则不能接收指令和数据。等待液晶模块处于不忙状态时,才能对模块进行写入操作。对模块进行数据的写入,将显示数据写入数据端口,产生使能脉冲信号。完成主要操作之后需要等待模块完成内部操作,最后通过输出串口将输出显示出来。在液晶显示模块实物上,能够显示出单片机对模块写入的数据。4.3JDY-30蓝牙通信4.3.1JDY-30蓝牙通信模块介绍JDY-30蓝牙模块的AT指令集是通过串口调试助手对蓝牙模块进行调试设置,具体操作方法是通过用杜邦线将CH340串口烧写模块和蓝牙模块两个模块的5个引脚相连,TTL转USB,将USB插入电脑就可以通过串口调试助手XCOM和蓝牙模块进行通信,串口调试使用TXD,RXD两根信号线分别与蓝牙模块的RXD,TXD相连进行一收一发的数据传输,蓝牙模块支持2400,4800,9600,14400,19200,38400,57600,115200,230400等多种波特率。在没有进行过设置之前,蓝牙模块的默认波特率为9600bps。测试指令:指令响应参数ATOK无复位指令:指令响应参数AT+RESETOK无设置/查询–蓝牙名指令响应参数AT+NAME<Param>OKParam:蓝牙名默认蓝牙名:“JDY-30AT+NAME+NAME=<Param>OK设置/查询–配对密码指令响应参数AT+PIN<Param>OKParam:配对密码默认密码:“1234AT+PIN+PIN=<Param>OK设置/查询–波特率指令响应参数AT+BAUD<Param>OKParam:波特率2:24003:48004:96005:192006:384007:576008:1152009:230400默认波特率:9600AT+BAUD+PIN=<Param>OK本设计中蓝牙模块只作为一个辅助工具,用于连接手机端APP并在手机端显示出计步器所获取的步数,路程,卡路里等数据。手机端通过蓝牙串口助手能获取数据,不能发送数据到单片机。4.3.2JDY-30蓝牙通信模块软件设计通过CH340串口程序烧写模块用杜邦线与JDY-30的5个引脚连接起来,TXD接RXD,RXD接TXD,5V接VCC,3.3V接EN,GND接GND。引脚接好以后,将CH340通过TTL转USB接入电脑供电,打开串口调试助手XCOM。将蓝牙模块JDY-30进入AT模式,在经过指令测试后,输出指令AT+NAMEZXW将名字改为ZXW。同样的也可以在AT模式下通过指令修改蓝牙模块的波特率,连接的PIN码以及蓝牙模块的MAC地址。本次设计中,波特率和蓝牙连接PIN码没作更改,使用默认值,波特率为9600,PIN码为1234。5测试与分析5.1LCD显示测试将设备连接电脑,通过USB对计步器进行供电,摁下开关按钮。液晶显示屏幕在通电之后,能够在屏幕上显示出数据。数据不闪烁,字体清楚,容易识别。5.2蓝牙通信测试在此次设计中蓝牙模块作为辅助作用,用于在手机端显示计步器获取到的步数,距离,卡路里和状态信息。在手机端下载一个蓝牙串口助手的APP,打开蓝牙可以连接到JDY-30蓝牙模块发出的信号。在APP上打印出收到的所有数据。B代表步数,J代表距离,K代表所消耗的卡路里,Walk表示当前的状态为步行。由图可知能够通过手机端与蓝牙的连接,在手机端上显示计步器的数据和状态。5.3计步功能测试计步器主要是检测人体运动对于空间三轴x,y,z的加速度方向变化来判断人的状态是处于躺下还是站立,是走路还是跑步。首先将计步器平放在桌面上模拟人平躺的状态,几分钟不触碰它,观察计步器上的液晶显示是否有数据的变化和显示。通过图中液晶显示上的数据,可以看出,步数,距离,卡路里以及状态是不变的,状态显示处于平躺状态。然后将计步器竖直地拿起来,模拟人站立时的状态,不运动,观察液晶显示上的数据是否有变化以及状态的显示。由图中液晶上的显示可以看出,状态变化为站立,说明处于站立状态。计步器不发生运动,步数,距离和卡路里都是不发生变化的。因此下一步将计步器拿在手上进行走动,沿着宿舍楼的走廊来回走21步。结果显示步数为21,相对应的距离和卡路里也发生了变化。在进行走路的基础上,加快走路的步伐或者奔跑,在观察液晶显示数据的变化及计步器的状态。测试完毕后,计步器可以实现计步功能,并且能够随着人的状态改变从而改变计步器所处的状态。当然人的运动也有一些特殊情况,比如跳跃以及轻微移动。在跳跃的时候,计步器对于步数的读取有着一定的误差,会把人的状态误认为是走路或者跑步,将跳跃时的步数按照走路或者跑步的状态来读取显示数据,难免会有所误差,下面就是我原地跳跃5次所获取到的计步数据。通过液晶显示屏幕上只有4步,而且状态判定为跑步。除此之外还有静态平移运动,就是人在走路时不抬脚只靠滑行进行移动,观察计步器的数据变化和状态。以下是我缓慢移动12步所获取的计步器数据和状态。通过显示的数据可以看出,静态平移运动走了12步但是计步器只能够计到5步,计步器的计步是通过ADXL345三轴加速度传感器对于空间三个轴的变化来得到数据,在特殊的环境条件下,难免会有存在误差,硬件的定向分析与人的运动状态差异,这就是计步器的环境适应性的问题,还有非常大的改善空间。6总结随着科学技术的不断进步和人们对自身健康的日益关注,计步器作为一种可穿戴的能够计算步数、距离、速度等运动信息的设备逐渐普及到我们的日常生活,计步器可以提高我们锻炼的积极性。我的文章设计了一种基于加速度传感器ADXL345的低功耗计步器。运动计步器结构紧凑、体积小巧、携带方便、实用性很高。这个核心芯片的作用广泛,还能够推广到其他需要测量加速度的应用中,例如汽车加速度的变化,音乐喷泉的设计等等,具有广阔的应用前景。在通过长期的研究和实践,实现了计步器的计步功能,只需要连接一个充电宝提供电源,方便易携带。虽然取得主要的成果,但是也存在一些不可避免的不足之处,硬件和软件都一些系统误差,表现在:(1)ADXL345加速
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店管理实训报告
- 电瓶车仪表通信协议书
- 小儿哮喘急性发作护理管理指南
- 高血压患者心理健康指导方案
- 弘扬中华体育精神 凝聚民族复兴力量
- 老年人风险评估及安全管理
- 2026安徽合肥热电集团春季招聘25人备考题库含答案详解ab卷
- 2026四川甘孜州泸定县人民医院编外招聘工作人员5人备考题库带答案详解(突破训练)
- 2026扬州平山堂茶业发展有限公司招聘茶饮店劳务派遣人员2人备考题库及答案详解【有一套】
- 中国精神对我们意味着
- 《机械基础(第二版)》中职全套教学课件
- 《低压电工实操及考证》全套教学课件
- 《奔富系列宣传》课件
- 《建筑碳减排量计算方法及审定核查要求》
- 专题37 八年级名著导读梳理(讲义)
- 神经科学研究进展
- 西方现代艺术赏析学习通超星期末考试答案章节答案2024年
- 新课标语文整本书阅读教学课件:童年(六下)
- CJ/T 124-2016 给水用钢骨架聚乙烯塑料复合管件
- 电影赏析绿皮书课件(内容详细)
- 2024年LOG中国供应链物流科技创新发展报告
评论
0/150
提交评论