【超声波测距及红外测距的相关硬件和软件系统结构设计案例分析7600字】_第1页
【超声波测距及红外测距的相关硬件和软件系统结构设计案例分析7600字】_第2页
【超声波测距及红外测距的相关硬件和软件系统结构设计案例分析7600字】_第3页
【超声波测距及红外测距的相关硬件和软件系统结构设计案例分析7600字】_第4页
【超声波测距及红外测距的相关硬件和软件系统结构设计案例分析7600字】_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

超声波测距及红外测距的相关硬件和软件系统结构设计案例分析目录TOC\o"1-3"\h\u15935超声波测距及红外测距的相关硬件和软件系统结构设计案例分析 111127第1章超声波测距及红外测距的相关硬件结构设计 1187481.1单片机电路 1279271.2超声波传感器电路 3168231.3红外传感器电路 472171.4直流电机驱动 5309441.5总体结构设计。 6324921.6本章小结。 1014127第2章超声红外融合测距的软件设计 1148952.1单片机开发工具 1113682.2主程序设计 1281912.3测距子程序 13127412.4避障子程序 16302572.5本章小结 20第1章超声波测距及红外测距的相关硬件结构设计1.1单片机电路单片机又被叫做单片微型控制器,是一种集成电路芯片。制造工艺采用了超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、只读存储器ROM、随机存储器RAM、多种I/O口和中断系统、定时器/计数器等多种功能集成到一块硅片上,最终构成了一个虽小但却完善的微型计算机系统,在工业控制及相关领域有着广泛的应用[11]。自40多年前开始,由当初的4位、8位型号,拓展到目前16位、32位单片机等各种型号。单片机的位数表示的是CPU同一时间处置数据能力的强弱,位数越高,处理数据的能力越强。其中8位单片机由于性能强大,在工业控制、数据交换、仪器仪表等各个方面有着普遍的应用。即便是现在,在中、小规模的使用领域中,8位单片机仍然是采用的主要选择,其代表了单片机的未来趋势。同时,在单片机的开发领域中,8位单片机能起到的作用也越来越多。本课题采用的是STC89C52型号单片机,系统结构中控制部分的主控芯片采用STC89C52单片机,它是宏晶科技生产的一种CMOS8位微控制器,指令代码完全兼容传统8051单片机,具有高性能、低功耗、超强抗干扰、使用方便简单的特点,是新一代8051单片机[12]。使用的是传统的MCS-51内核,但由于其对芯片做了很多的加工处理,相对于那些一般的机型来说,它的性能更为强大。STC89C52型单片机具有512字节的随机存取存储器、8K的只读存储器,供电电压为1.4-5V,共有6个向量2级的中断结构。STC89C52单片机有内部和外部两种不同的制造时钟信号的办法,本课题使用的是内部时钟的办法。内部时钟信号产生的原理为:在单片机的XTAL1和XTAL2引脚外接晶振,就能在单片机内部组成能够制造时钟脉冲信号的振荡器。振荡频率的范围可以根据需要进行调控,一般频率范围在1.2-12MHz。本课题通过添加两个30pF的电容,调节振荡频率为11.0592MHz。STC89C52单片机引脚结构为图3-1。图3-1STC89C52单片外部引脚特性图其各引脚都有不同的作用。这些引脚当中,Vcc代表电源输入接口,GND代表地线接口;X1和X2分别为片内振荡电路的输入端和输出端;RST为复位引脚,当引脚上持续存在两个机器周期的高电平时,将引起复位;PSEN能够选择性的读取外部存储器的信号;ALE能控制相关地址信号的读取,在访问外部存储器时,能够锁存位数低8位的脉冲信号;EV是程序存储器的内外部选通,根据电平的高低,能够分别从内外部的程序存储器中读取指令。可传输信号的I/O口被分成四组:P0、P1、P2、P3。其中P0为双向I/O口,引脚为P32-P39,其余都是准I/O口。1.2超声波传感器电路本课题运用的超声波测距模块款式为HC-SR04,该型号的探测距离为可以达到4米,且测距精度可以小到3mm。模块由控制电路、超声波发射器和接收器所组成,能够进行非接触式距离感测。该模块工作时的稳定电压为5V,测量范围为15度,运作产生的信号为40KHz。该模块共有四个引脚,分别为:Vcc供电引脚、GND地线引脚、TRIG触发信号控制输入引脚和ECHO回响信号输出引脚。HC-SR04的工作时序如图3-2:图3-2工作时序图当控制器向TRIG输入一个10uS的TTL触发信号时,系统开始工作。系统内部将会不断制造8个40KHz的脉冲信号,这个信号会控制发射器释放出超声信号。与此同时,回响信号输出端口ECHO将变为高电平。等到超声波信号遇到前方物体返回,反射信号被超声波接收器感知以后,控制模块会对其做出回应,重新将ECHO端口转为低电平,中间经过的时间就是测得的传播时间。在实际工作过程中,单片机的信号并不会直接作用于超声波发射器,接收STC89C52单片机10uS信号的是HC-SR04中的另一个单片机STC11,然后STC11会制造40KHz的脉冲信号。此时脉冲信号强度不够大,需要经由MAX232将电压放大。超声波接收器实质是一种压电效应的转换器,在收到信号后会产生mV级别的电压,需要经过TL074进行增益放大,然后才能输出电平信号。HC-SR04的内部电路图如图3-3:图3-3HC-SR04原理图1.3红外传感器电路红外线测距模块的构成部件有红外发射器和接收器,其实物如图3-4所示。透明的红外发射二极管,黑色封装的是红外接收二极管。红外接收管是一个高灵敏度的光电二极管,其功能是将不可见的红外光信号转化为电信号[13],通过对电信号进行对比测算出反射距离。在传播过程中,红外光的强度会伴随距离的增加而缩小,但这种关系并不是线性的,因此红外测距的数值需要根据电压的变化判断距离。图3-4红外接收管与发射管红外测距的功能原理如图3-5所示:当传感器探测到红外线信号时,受光线强度变化影响,光敏电阻的大小发生了变化,对应的电压V也会产生变化。由于这个电压过小,因此需要通过放大电路,增强之后的电压V1会与比较器进行对比,根据结构比较器会输出电压Vo。最后单片机根据接收到的输出电压Vo大小对与障碍物间的距离进行计算,然后通过比较进行是否进行避障的判断。图3-5红外测距功能框图与超声波传感器不同,超声波传感器只需计算从发射到接收信号的时间就能通过速度计算出距离,而光强由于不是线性变化,红外传感器则需要添加比较器通过比较电流的变化来计算距离。其结构电路如图3-9所示。通过R9和R10限制电流保护红外发射器V1和V5不被烧毁。当传感器工作时,红外发射器V1和V5发射红外信号,光线遇到障碍物返回,接收器V3和V7接收到返回的光线时,其中的光敏电阻会根据反射光线的强弱发生改变。距离越近,发射光越强,光敏电阻阻值越小,通过LM393比较器输出口OUTA和OUTB的电压信号越大,单片机根据接收到电压信号的变化从而判断与障碍物的间距以及对左右两边避障方向的判断。其结构如下图所示:图3-6红外传感电路图1.4直流电机驱动直流电机是移动载具不能缺少的一部分,系统必须的驱动力就是由其提供的,用来实现载具的运动。本课题使用的是直流减速电机。一般情况下,直流驱动有三个问题需要解决:增大驱动、实现换向和实现减速。单片机的I/O口供给的电流一般不是很充足,难以支撑电机的运作,因此需要增加驱动电路。本课题使用的是直流减速电机,而电源又是直流电源,因此需要增加一个开关帮助电机进行转向。在载具的运动过程中需要对物体进行躲避,因此要求设计关联电路以控制速度。在本系统中采用的方法为使用L298N驱动芯片和单片机产生的PWM信号对载具进行对于速度的调节。L298N驱动模块的电路图如图3-5所示:图3-7L298N原理图该芯片最高工作电压能够达到46V,稳定电流为2A,能够很好的增大驱动为提供直流减速电机供能,同时芯片内部含有两个H桥电路,H桥电路能很便利的完成电机驱动的转向变换,普遍应用于各种驱动器中。H桥电路含有4个三级管和一个电机,按照三极管的导通状况不同,能够调节电机中电流的方向,从而调节电机的转动方向。而三级管本身也具有放大电流的作用,因此L298N能一次实现增大驱动和实现换向两个功能。1.5总体结构设计。在超声红外复合测距的硬件系统主要由STC89C52单片机、超声波传感器、红外传感器、显示模块和驱动电机组成。图3-8系统硬件功能框图系统以STC89C52单片机作为控制核心,通过单片机内部的软件程序融合由超声波传感器和红外传感器传送的距离信息。单片机将多个距离信息融合完毕之后,将其发送到显示模块,显示模块根据收到的信号显示距离。单片机会根据融合后的距离信息判断与障碍物之间的距离,当判断距离缩小到0.1m时,单片机通过结合左右两边的红外传感器接收到的信号判断避障方向,然后发送信息到驱动芯片,驱动芯片收到信息后通过H桥电路电位发生变化改变,改变对应的直流电机的转动方向,小车转向从而避开障碍物。图3-9结构电路图小车的总体结构如图3-9所示,由于之前对各电路的详细结构进行了说明,所以对部分电路进行了简化处理。在总体设计思路当中,单片机除了作为控制器控制其他硬件的开关和运行,通过设定电容的值和晶振的振荡频率构成需要的计时装置。通过设置电容C1和C2为30pF,然后调整晶振的振荡频率,使得在单片机内部的一个指令的运行时间为1us,通过设置循环指令和空指令进行计时。在单片机执行循环指令和空指令时指令计数器在寄存器中的数据发生变化,通过指针记录指令执行前后指令计数器在寄存器中的数据差值,得到对应的指令数。之后根据一条指令的执行时间为1us从而计算出两者之间的时间。复位电路是单片机最基础的电路,其主要组成部分为电容和电阻和复位开关。其中,电容的主要作用是防止外部噪声对复位造成的干扰。正常工作时,单片机的RET复位端口为低电平,当按下复位开关后,由于电路的接通,单片机复位端口变为高电平,当接收到持续两个单位时间的高电平时,芯片复位。在实际电路中,红外探测器和超声波探测器通过P口连接输入对应的距离信号,通过P1.4和P1.5接收超红外传感器和P2.5接收的超声波传感器发送的信号。这些信号都会以数字信号的形式寄存在单片机的内部寄存器当中。之后通过选取的对应距离测量方法设置计算软件,通过单片机设置的软件程序计算出小车到前方物体之间的距离。在收到传感器的发出的信号后单片机会对周期内的距离信息进行计算,通过软件代码实现基于Bayes理论的传感器数据融合处理技术。在融合处理完成之后,单片机将通过I/O口P0.0-P0.7将信号发送给LCD1602液晶模块,LCD1602显示模块根据单片机P1.0口的控制信号选择数据或程序,根据P1.1口屏幕上输出信号选择读取或执行对应的数据和程序。当探测距离信息小于避障设定值时,单片机将根据左右两边的红外传感器的信号来判断避障方向,之后通过I/O口P1.2-P1.5输出对应的信号到L298N驱动芯片,L298N驱动芯片根据收到的信号控制四个直流电机的转动变化从而实现小车的转向进而避开前方的物体。其实物及各连接端口如下图所示。图3-10主板实物图在实际焊接过程中,由于主板空间不足以容纳所有的元器件,所以分为以单片机为中心的主板和放置传感器的底板两部分。其中主板部分包含了单片机、驱动芯片、显示模块以及开关和电阻等相关元器件,底板包含超声波模块。红外模块、电路放大器和电阻等元器件。通过两节1.7V电压的电池供电,底板上的传感器通过pin排线进行传输和接收信号。由于组装小车的元器件器材性能有限,制作出来的小车成品的质量一般,在实际运行时测量的距离能够保证有效的范围仅为4米,测量精度的误差则是被限制在1cm之内。最终成品如下图所示。图3-11小车成品图1.6本章小结。本章先是简单说明了单片机的相关内容,然后对本课题采用的SCT89C52单片机的机构进行了介绍,说明了其功能的强大,对电路结构进行分析,说明各引脚的功能。然后对超声波传感器、红外传感器和驱动电机的电路进行分析,说明其各接线口的作用和工作原理。最后结合总体的设计思路和总体电路设计简图对总体硬件的拼装设计进行说明。

第四章超声红外融合测距的软件设计前文对相关的硬件构造进行了阐明,但通过硬件只能得到测距的数据,要有与之相对的软件编程才能完成避障的功能。采用模块化编程可以使结构更加清晰,通过将程序拆分,便于问题的排查。使用C语言和汇编语言结合,使得软件的设计更加方便和快捷。该设计大体上可以分为主程序、测距程序和避障程序等几个方面。2.1单片机开发工具KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,其能将汇编语言与C语言结合使用,在代码编译的功能上、结构性、可读性、可维护性上都具有显著的优势。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境组合在一起,使其能通过C语言和汇编语言结合能快速编译出优质且紧凑的代码[14]。同时,其强大的功能使得它可以完成包括编辑、编译、连接、调试、仿真等整个开发流程,使得软件的开发便利又高效。本智能小车采用鉴于STC89C52单片机控制,属于新一代51单片机。鉴于Keil开发工具的上述优点,采用Keil2.0版本作为相关软件的开发工具平台。其开发界面如图4-1:图4-1Keil开发环境2.2主程序设计图4-2主程序流程图主程序流程大致如图4-2所示,一旦按下开关,系统就会被启动,在程序启动后,将会触发整个系统的初始化。通过将测量变量、寄存器、定时器和I/O口初始化,使系统的各个参数初始得到清零。初始化过后,小车启动,会发出控制信号启动电机,小车开始向前进行运动。之后进入循环模式,通过红外传感器和超声波传感器对距离信息进行采集,之后计算与障碍物之间的距离,通过与设定的避障距离值进行比较,如果未达到避障距离,小车将保持向前行驶的状态,同时重复上述循环。如果到达避障距离,单片机将调用相关的避障程序进行避障操作。完成避障后将再次返回信息采集过程进入循环。2.3测距子程序图4-3红外测距流程图红外测距流程图如图4-3所示,由于红外信号是通过光线的强弱对距离进行判断,所以可以根据接收信号进行判断。在收到红外信号后光敏电阻变小,比较器OUT端口的电压变大,此时比较器将根据电压变化输出电平信号,这个电平信息会转换为一个8位的数据信号传输到单片机当中。图4-3超声测距流程图超声探测在发出信号的同时启动计时器,设置寄存器指针,指针记录指令计数器发射信号时的4位16进制数。为避免发射信号对回波信号的干扰,设置等待回波的测量周期为60ms。当收到回波信号时,停止计时,记录此时指令计数器的4位16进制数。单片机通过两次指针之间数值的差值得出时间信息,根据渡越时间法设置的软件程序计算距离信息。收集到的多个距离信号通过单片机内部设置的基于Bayes理论的数据融合程序进行融合。为提高测量精度,数据采集的周期尽量选择的长一些,这样可以避免数据值得抖动[15]。对于采集到的n个距离信息,用基于Bayes理论的多传感器数据融合计算出一个最佳融合数据,并作为最后的距离测量结果,其原理计算公式如下P(μ|n设置参数μ服从N(μ0,σ20),且使得取得的数据集合服从N(μ,,σ2n)μ0在实际过程中取得多组传感器数据,经过数据融合后效果如下表表4-1避障数据融合表数据1数据2数据3数据4数据5数据6数据7数据8融合数据测量值78.180.581.979.082.679.378.378.079.7偏差值1.02.00.3在面对实际距离为80cm的情况下,融合数据相对其他测量结果更接近实际距离。融合数据基于Bayes估计理论的数据融合得到的测量结果比表中所列其他方法更接近被测量真值。实际应用中,参数的测量分散性较大,数据融合对测量结果的改善效果更显著[16]。由于采用的探测器的性能有限,实际能够测量的有效范围仅为2.0m。在探测过程中,若测得数据在有效探测范围内则根据融合后计算的数据显示距离,对于超出能够准确测量的距离数值将在液晶模块上显示error表示超出探测范围。LCD显示模块与单片机有8个数据端口P0.0-P0.7和3个控制端口RS(数据/命令选择)、R/W(读/写)和E(使能信号)。当得到距离信息后,单片机通过拉低R/W端口和RS端口为低电平拉选择数据进行读取,之后拉低RS为低电平拉高R/W为高电平将读取的数据写入LCD内部寄存器,最后拉低RS为高电平R/W为高电平选取显示命令执行。在实际运行过程中,LCD显示的数字和字母都是通过图片点阵的方式写入的,在编写程序时先将所需要的字母和数字准备好,使用时在程序中直接调用相应的程序即可将对应的字母和数字显示出来。2.4避障子程序图4-5避障子程序流程图避障子程序流程图如图4-5所示,在接收到测距子程序发送的信号之后,单片机在前进时会将接收信号中测得的距离数值大小与初始程序中设定的避障启动距离进行对比。通过对比判断测得的距离是否大于设定的避障启动距离0.1米,根据对比结果判断进行避障。若测量得到的距离信息对比结果为大于0.1米,则单片机的电平信号不发生变化,小车继续向前运动。如果测量得到的距离信息对比到达0.1米时,单片机将根据方向判断程序对避障方向进行判断。小车从前进到转向需要一定的反应时间,同时在转向时对于偏转角度的调节也会影响到小车避障的成功率和避障所需要的时间。在避障测试中,通过将小车放入一个由纸箱围成的圈中,观测小车的避障效果(如图4-5)。并且通过调节纸箱之间的角度为90°来观测小车在面对直角转角时是否会陷入循环的陷阱(如图4-6)。图4-6一般避障测试图4-7直角避障测试在进行直角避障测试时,将通过调节避障时的偏转角度和避障反应时间分为四组进行对比测试,其测试数据如表4-2所示。在偏转角度为30°时,避障次数高达8次才能完成避障;调节角度为45°时,第五次避障进行时才能避开障碍物;在避障角度为60°时,需要3次才能避开;而角度90°虽然2次就能避开,但有概率陷入循环的陷阱。结合在一般避障测试中的表现,60°是一个比较好的避障角度。而在调节避障反应时间的测试中,调整反应时间为1ms时,小车无法及时停下,将会撞在纸箱上,需要进行倒车再避障。而在调整反应时间为5ms时小车在停下后能马上进行避障,避障过程非常流程。在调整反应时间为10ms和20ms时,都能感受到小车在停止后还会停顿一段时间才能进行避障。对于小车避障时的前进速度,为了减少直流电机反向时电压的改变对电路板的造成冲击,同时也要考虑避障完成所需要的时间,在多次对比测试之后选择了以0.5m/s的速度作为小车的避障速度。因此,最终对于小车的避障调节结果为60°偏转角度、5ms的反应速度和0.5m/s的行驶速度。表4-2避障反应数据测试编号偏转角度避障次数反应时间避障效果130°81ms发生碰撞245°55ms流畅避障360°310ms轻微停顿490°2(有概率循环)20ms明显停顿在小车进行左右方向避障的选择时,单片机将根据左右两侧红外传感器的反馈对避障方向进行判断。若小车右侧的红外探头接收到障碍物反射的信号,则右侧的红外接收管输出高电平,单片机调用小车左转程序,驱动芯片发出控制信号,控制小车左转。若是左侧的红外探头检测到了相应的反射信号,左侧的红外接收管输出高电平,单片机调用小车右转程序,驱动芯片调节电机的转动,使得小车向右边进行转向从而避开前方的障碍物。其部分代码及如下所示:if(S<=100) // { if(turn_right_flag!=1) { Stop(); Delay1ms(5);//在小车进行复位的时候,通过稍微延长一点这个延时,可以减少电机反向电压对电路板的冲击。 } turn_right_flag=1; P2_3=0; Delay1ms(50); P2_3=1; Turn_Left(120,120); //小于设定距离时电机后退转弯 } else { turn_right_flag=

温馨提示

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

最新文档

评论

0/150

提交评论