单片机课程设计报告(实用导盲仪)_第1页
单片机课程设计报告(实用导盲仪)_第2页
单片机课程设计报告(实用导盲仪)_第3页
单片机课程设计报告(实用导盲仪)_第4页
单片机课程设计报告(实用导盲仪)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.单片机系统课程设计报告设计题目:实用导盲仪专 业测控技术与仪器学 号Xxxx姓 名Xxxxx小组成员Xxxx指导老师Xxx设计时间2013年8月23日总评成绩Xxxxxx;国防科技大学机电工程与自动化学院单片机系统课程设计报告一、 预期性能指标设计一个以51单片机开发板为核心控制器的障碍物检测报警的导盲系统。1超声波模块测量范围障碍要求为0.105.00m;2测量精度为3cm;3判断正前方或地面是否有障碍。4根据障碍的距离远近以及类别报警。二、 工作原理1、 工作原理概述1.1超声波测距的原理1.1.1超声波的基本理论随着科技的发展和社会的进步,人们对于检测未知世界,开发未知功能的需求越来越

2、迫切和明显,新一代科技产品对于人们的关切程度也日益增加。其中,超声波检测技术就是为了满足这些需求而应运而生的一门技术手段。超声波是一门以物理、电子、机械、以及材料科学为基础的、各行各业都要使用的通用技术之一。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。超声技术是通过超声波的产生、传播以及接收的物理过程完成的。超声波具有聚束、定向及反射、投射等特性。按超声波振动辐射大小不同大致可以分为:用超声波使物体或物性变化的功率应用,称之为功率超声;用超声波获取信息,称为检测超声。超声波是听觉阈值之外的振动,其频率范围在1010Hz,其中通常的

3、频率大约在103×10之间。超声波在超声场(被超声波充满的范围)传播时,如果超声波的波长与超声场相比,超声场很大,超声波就像处在一种无限的介质中,超声波自由地向外扩散;反之,如果超声波的波长与相邻介质的尺寸相近,则超声波受到界面限制不能自由的向外扩散。于是超声波在传播过程中有如下的特性和作用。1.1.2超声波的传播速度超声波在介质中可以产生三中形式的振荡波:横波质点振动方向垂直于传播方向的波;纵波质点振动方向与传播方向一致的波;表面波质点振动介于纵波和横波之间,沿表面传播的波。横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。为了测量各种状态下的物理

4、量多采用纵波形式的超声波。超声波的频率越高,越与光波某些特性相似。1.1.3超声波的物理性质当超声波传播到两种特性不同的介质的平面上时,一部分被反射;另一部分透射过界面,在相邻的介质内部继续传播;这样的两种情况称之为超声波的反射和折射,如图2.1所示。图2.1 超声波的反射和折射1.1.4超声波对声场产生的作用(1) 机械作用超声波传播过程中,会引起介质质点交替的压缩与伸张,构成了压力的变化,这种压力的变化将引起机械效应。超声波引起质点的运动,虽然位移和速度不大,但是与超声波振动的频率的平方成正比的质点的加速度却很大。有时足以达到破坏介质的程度。(2) 空化作用在流体动力学指出,存在于液体中的

5、微气泡在声场的作用下振动,当声压达到一定的值时,气泡将迅速膨胀,然后突然闭合,在气泡闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程称为空化。(3) 热学作用如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。 1.1.5超声波传感器超声波传感器主要有电致伸缩和磁致伸缩两类,电致伸缩采用双压电陶瓷晶片制成,具有可逆特性。压电陶瓷片具有如下特性:当在其两端加上大小和方向不断变化的交流电压时,就会产生“压电效应”,使压电陶瓷也产生机械变形,这种机械变形的大小以及方向与外加电压的大小和方向

6、成正。反之,如果由超声波机械振动作用于陶瓷片使其发生微小的形变时,那么压电晶片也会产生与振动频率相同的微弱的交流信号。超声波传感器内部结构如图2.2所示,外部结构如图2.3所示。 图 2.2 元件内部结构 图 2.3 超声波外部结构1.1.6超声波测距系统原理在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。1.1.7超声测距方法(1)取输出脉冲的平均值电压,该电压 (其幅值基本固定 )与距离成正比,测量电压即可测得距离;(2)测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔 t,故被测距离为 S=1

7、2vt。本测量电路采用第二种方案。由于超声波的声速与温度有关,如果温度变化不大,则可认为声速基本不变 。如果测距精度要求很高,则应通过温度补偿的方法加以校正。超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。1.1.7超声波测距的算法设计超声波在空气中传播速度为每秒钟340米(15时)。X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则有340m×0.03S=10.2m。由于在这10.2m的距离里

8、,超声波发出到遇到返射物返回,其测距原理图如图2.4所示。图 2.4 测距原理2、 原理框图的说明本导盲系统由单片机控制,分别由控制中心、HCSR04超声波传感器模块、报警模块等部分构成。以下的系统原理框图是对系统工作的最基本原则进行详细说明。三、 硬件设计1、 器件选型1.1超声波模块器件选型1.1.1发射电路部分超声波发生器包括超声波产生电路和超声波发射控制电路两个部分,超声波发射探头其实就是一个电声转换器,把电信号转换成声波信号。在压电晶片加上交变电压,加在其上面的交变电压的频率要与它的固有谐振频率一致。超声传感器才有较高的灵敏度。超声波探头(“也称为超声波换能器”)的型号选用CSB40

9、T(其中心频率为40KHz)。可以采用软件产生40KHz的超声波信号,通过输出引脚输入至驱动器,经过动器驱动后推动探头产生超声波。这种方法的特点是充分利用软件,灵活性好,但是需要设计一个驱动电流为100mA以上的驱动电路。第二种方法是利用超声波专用发生电路或通用发生电路产生超声波信号,并直接驱动超声波换能器产生超声波。这种方法的特点是无需驱动电路,但缺乏灵活性。本次我们采用第一种方法产生超声波。CD4069反相器支持3路输入,由其内部结构图可以了解,引脚14接电源,引脚7接地。单片机由P2.6引脚输出一连串电流波形为矩形波的电流。经过反相器驱动发射探头发射超声波。图3.2 CD4069 的外部

10、图 图3.3 CD4069的内部结构图 1.4.2接收电路部分超声波接收包括接收探头,信号放大以及波形变换电路三部分,超声波接收探头必须与发送探头相同的型号,否则可能导致接收效果甚至不能接收。由于超声波接收探头的信号非常弱,所以必须用放大器放大,放大后的正弦波不能被微处理器处理,所以必须经过波形变换。本次设计为了降低调试难度,减少成本,提供系统可靠性,所以我们采用了一种用在彩色电视机上面的一种红外接收检波芯片CX20106,由于红外遥控的中心频率在38KHz,和超声波的40KHz很接近,所以可以用来做接收电路。CX20106是日本索尼公司的产品,采用单列8引脚的直插式封装,内部包含自动偏置控制

11、电路、前置放大电路、带通滤波、峰值检波、积分比较器、斯密特整形输出电路,配合少量外接元件就可以对38KHz左右的信号的接收与处理,该芯片内部如图3.14所示。 图3.4 CX20106内部结构2、 原理图及PCB图上图为本系统所用单片机芯片原理图以及所需要用的接口的示意图。上图为实验初期时所设计的超声模块、语音报警模块的接口示意图。因所用设备都为模块化设备,故只画出接口示意图。3.4系统的PCB图3、 设计体会本次课程设计,从选题到设计再到最后一步一步实现,一点一点优化,都是由我们自行完成。同时,在整个过程中也得到了老师与同学的帮助,为我们解决问题提供了很多的思路,也有很多有价值的意见,为作品

12、品质的进一步提升提供了宝贵意见。通过本次课程设计,首先,是学习到了几个精神。第一,是团结协作精神。几个人的力量一定比一个人的力量大。在设计开始时,就依据每个人的特点,将整个工作分为硬件设计,软件设计,论文撰写三个部分。通过我们的通力合作,圆满的完成了此次课程设计任务。第二,是刻苦钻研精神。虽然这只是简单的课程设计,但对于我们这些“新手”,很多问题并没有很好的解决办法,甚至找不到问题的原因。这就需要我们能仔细分析问题,刻苦钻研,找到问题的根源,对症下药,不能轻言放弃。其次,是在本次课程设计中学习到的知识。我主要负责软件的设计,根据我们前期提出的目标,在单片机例程的基础上,编写软件。前期,由于经验

13、不足,整个设计过程变成了“边做边改”,一次一次的尝试,没有坚实的理论基础作为指导。之后,认识到这个问题之后,从单片机各管脚作用,各寄存器的使用等方面入手,在对单片机有了更深了解的同时,对编程也有了新的认识。在丰富理论知识,构成了小体系之后,再着手实现功能就感觉游刃有余了。最后,在完成课程设计之后,看到自己做的导盲仪能够帮助“盲人”上下台阶,并能够提醒“盲人”前方是否有障碍,有一种成就感。同时,也认识到要实现真正的导盲,这是远远不够的。要用电子设备代替眼睛,让盲人感知这世界,还有很长的路要走。四、 软件设计1、 软件框图计算距离超声波发射超声波接收距离判别 控制警报控制系统初始化以及标定正常距离

14、2、 流程图是否是否标定距离发射超声波利用定时器中断每20ms发送一个触发信号收到回波信号计算障碍物距离障碍物距离小于正常值蜂鸣器报警图7:程序流程图3、 说明本设计系统软件采用模块化结构,由主程序定时子程序、预警灯子程序实时中断子程序、定时中断子程序、蜂鸣器子程序标定子程序构成。程序流程图如图所示。其中:标定功能为本系统的一个特色。调试试验1、 试验验证方法1.1超声波模块测距性能试验验证方法我们调试使用的超生波模块是买来的HCSR04超声波测距模块。利用信号源产生频率为50HZ,占空比为20%的矩形波信号作为触发信号。然后,通过示波器观察在不同的障碍情况下收到的回波信号的脉宽。根据脉宽与距

15、离的关系即可知道超声波模块工作是否正常。1.2标定装置试验验证方法在检测标定装着是否工作以及标定的距离是否准确的过程中,只需将系统开启,首先,以一个适当的距离将传感器对准障碍物,按下标定按钮,然后在标定距离的前后进行移动,观察传感器电平输出变化即可判断标定是否成功。 1.3系统报警性能试验验证方法 本功能为系统使用性的核心功能,在现场演示时效果比较理想,现将演示步骤展示如下:将系统佩戴在模拟的盲人身上,以有台阶和行人的楼道为例测试系统。当前方有行人走来时,系统判断距离在预警范围之内,就根据距离不同进行不同的报警,距离越近,警报声音越急促。在测试台阶时,标定距离起到了很重要的作用,当传感器距离地

16、面在标定距离附近时,盲人正常行走,不会报警,但是一旦远或者近(模拟上下台阶)即会出发系统进行预警,十分敏感。2、 遇到问题及解决方法在系统功能实现的过程中我们还是遇到了很多的问题,例如如何设计算法能让报警功能更加准确。我们在实际生活中找到了答案,我们根据盲人的反映速度和行动能力,算出了传感器应该设置的预警范围,使得既不过早预警,又能让用户安全躲避障碍。有如关于标定距离,这个问题的提出是为了更好地适应不同的用户身高和佩戴高度而采取的措施。五、 总结分析1、 性能分析1.1超声波模块的性能分析为了检验超声波模块的测距性能,对模块进行了简单的测距实验。 环境温度()系统测值(mm)实测值(mm)误差

17、(%)311061040.016311321300.01431176175-0.005312482500.008302962990.013313773700.018315375200.032316126000.02326736550.027表 6.1 超声波模块测距性能从以上看出,整机误差率不超过0.03%,但是从试验数据来看,在测量距离小于300时误差很小,而当300以上时,误差已经比较大,虽然误差率不大,但是在精确测量下是不能容忍的,从设计的方案来看,这个误差的造成是有多方面原因的。首先,超声波发射和接收头安装之间有一个夹角,如图所示6.1所示: 图 6.1 测量夹角这样测量的值就是一个斜

18、边的距离。所以程序中应该进行修正。1.2系统预警性能分析 一开始,程序设定的是一旦测得正前方障碍物的距离小于0.5米系统就会发出预警声音,并随着距离的缩短而变得短促,在走廊的现场测试发现系统能在障碍前及时报警,无论障碍物是墙壁、行人还是门窗、木杆等。不过在2、 试验结果分析测距模块的精度非常好,但由于硬件的限制,精度很难进一步提高。如果采用一体化收发探头,可以减小三角误差。小车基本实现了避障,但由于控制策略的原因,避障的反应时间以及路径规划还有很大提升空间。六、 自我评价1、 设计总结本实用导盲系统的设计基于单片机原理和传感器原理,以51单片机为主控芯片,采用HCSR04产生不测距模块为核心部

19、件,通过软件编程制作了一整套结构完整,功能模块化,反应较为灵敏的导盲系统。经过对该系统的测试实验,实验结果证明该系统能够准确地测出障碍物的距离并且能够准确灵敏地为用户进行预警。效果显著,功能完善,实用价值强。但是该导盲系统还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,对于斜前方地面的坑和突起物检测效果比较差。这些都是有待进一步发展和提高的。尽管后来开发了标定功能,但是其灵敏度与准确还是受到环境复杂程序的限制。本次课程设计只有短短的两周,所以我们虽然设计了电路,但没有时间自己制板。在调试中,我们采用买来的超声波模块对算法和进行了测

20、试。最后,通过自己的努力让导盲系统能实现正常的基础的功能。两周的课程设计,再加上暑假在家准备的时间,在这段时间里,我们一起讨论,一起研究,解决了一个又一个起初看来无法逾越的障碍,收获颇丰。2、 进一步改进措施系统经过测试,预警效果良好。硬件上没有错误,主要瓶颈在于探测模块的灵敏度以及个数,因为软件完全靠探测模块返回的信号作为依据进行下一步控制的操作,无法确认该信号是否准确.我们认为可以做如下改进:(1)增加传感器的种类和个数,让本系统真正的更加贴近地模仿视觉系统,为盲人用户开发前所未有的体验。(2)增加语音提醒模块的应用,让用户对于障碍物的判断更加清楚,更加方便使用。(3)集成电源模块,使得系

21、统真正能投入日常的应用。七、 附录 # include<reg51.h>#include <intrins.H>#define uchar unsigned char#define uint unsigned int uchar distance_H0,distance_L0,distance_H1,distance_L1;/特殊寄存器定义sfr CLK_DIV =0x97;/STC MCU IO register define total waysfr P1M1= 0x91;sfr P1M0= 0x92;sfr P3M1= 0xB1;sfr P3M0= 0xB2;/I

22、O口引脚说明sbit Trig0 =P10;sbit Echo0 =P32;sbit Trig1 =P01;sbit Echo1 =P33;sbit SPK = P15;uint range;uint mark=0;sbit key=P31;sbit led1_5 =P11; sbit led5_10 =P12;sbit led10_15 =P13;sbit led15_20 =P14;void IO_inint(void);void sys_inint(void);void delay_nop(uint timer);void led_out(void);/*- 函数声明-*/void De

23、layUs2x(unsigned char t);/函数声明 void DelayMs(unsigned char t);void IO_inint(void) CLK_DIV=0x02;/系统时钟四分之一分频 P1M1= 0x00; /0000 0000 P1M0= 0x1e; /0001 1110 P1=0x00; /0000 0000 P3M1= 0x04; /0000 0100 P3M0= 0x00; /0000 0000/定时中断初始化设定void sys_inint0(void) TMOD=0x10; TH0=0; TL0=0; TR0=0; IT0=0; EX0=0; EA=1;

24、 void sys_inint1(void) TMOD=0x10; TH1=0; TL1=0; TR1=0; IT1=0; EX1=0; EA=1; /NOP延时void delay_nop(uint timer) while(timer-)_nop_();/外部中断0,用做判断回波电平 void int0_routine0(void) interrupt 0 EX1=0; distance_H0 =TH0; /取出定时器0的值 distance_L0 =TL0; /取出定时器0的值 EX0=0; /关闭外部中断 void int0_routine1(void) interrupt 2 EX0

25、=0; distance_H1 =TH1; /取出定时器1的值 distance_L1 =TL1; /取出定时器1的值 EX1=0; /关闭外部中断 void DelayUs2x(unsigned char t) while(-t);/*void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(200); */LED输出控制void led_out0(void) int i; uint distance0; distance0=distance_H0; /测量结果的高8位 distance0<<=8; /放入16位的高8位

26、 distance0=distance0|distance_L0; /与低8位合并成为16位结果数据/ distance0*=4; /因为定时器默认为12分频 distance0/=58; /一厘米就是58us if(distance0>2&&distance0<150)/测量距离在2到50厘米时,led1_5亮 led1_5=0; for(i=0;i<distance0*20;i+) DelayUs2x(600); SPK=!SPK; else led1_5=1; if(distance0>200&&distance0<400)/

27、测量距离在50到100厘米时,led5_10灯亮 led5_10=0; else led5_10=1; void led_out1(void) int i; uint distance1; distance1=distance_H1; /测量结果的高8位 distance1<<=8; /放入16位的高8位 distance1=distance1|distance_L1; /与低8位合并成为16位结果数据 distance1*=4; /因为定时器默认为12分频 distance1/=58; /一厘米就是58us if(distance1>range-60&&di

28、stance1<range-20)/有台阶 led10_15=0; for(i=0;i<200;i+) DelayUs2x(400); SPK=!SPK; else led10_15=1; /* if(distance1>100&&distance1<150)/测量距离在150到200厘时,led15_20灯亮 led15_20=0; else led15_20=1; */if(distance1>range+20&&distance1<range+60)/测量距离在150200厘米时,led15_20灯亮 led15_20=0; for(i=0;i<200;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论