第一篇:红外测距总结报告
红外测距电路总结报告
学 院:机电工程学院班 级:学 号:姓 名:刘丰源
11电气1班 1100103139 摘要
本次实验是设计一个红外测距电路,它由软件和硬件两部分组成。软件部分包括信号产生、AD接收、数据处理、液晶显示;硬件部分包括发射模块和接收模块。此电路可以测较短的距离,精度在0~5mm之间。
关键词
STC8051单片机;红外测距;
一、方案设计
1、发射模块
采用用单片机产生一个1khz的信号经红外发射管发射这样设计既简单又方便,电路也更加简单。
2、接收模块 放大电路:
采用5v电源供电,利用lm358芯片进行单电源放大。由于放大倍数在20到40倍之间,经过一级放大即可。
滤波电路:
由于经过放大以后的信号还有很多杂波,而我们需要的是接收到的1khz的信号,一般的滤波器很难解决干扰问题,所以直接选用有源二阶带通滤波器。
峰值检波电路:
根据要求的精度为5mm,最简单的峰值检波电路即可胜任,出于节约成本的考虑,决定不用带运放的高精度检波电路,假如还要进一步提升测量精度,就需要选用更好的峰值检波电路。
AD转换电路:
AD转换选用0809芯片,它是并行传输的,占用的IO口太多,但是软件编写非常简单。
单片机控制电路:
AD转换的数字信号传入单片机,通过软件自动求出所测的距离,显示正确的距离。
二、电路分析
1.发射模块
由8051的定时器产生一个1khz的方波,用一个三极管驱动,将信号加载到红外发射管上。2.接收模块电路设计
因为红外接收管接收到的信号只有一百毫伏左右,而且还有很多干扰,需要先放大再带通滤波,单片机只能接受数字信号,所以还需要通过峰值检波输出一个直流电压,经TLC1543芯片转换成数字信号输入单片机进行处理。
考虑到题目测量范围和接收到的信号大小,选取放大倍数为40倍左右,倍数太大回出现波形失真,使测量的最短距离变小,倍数太小信号强度不够,则能测量的最远距离会变小,放大倍数B=R4/R3=40; 关于有源二阶带通滤波器的设计:
令C=C3=C4,则req=R5//R6=(R5*R6)/(R5+R6)品质因数Q等于中心频率除以带宽
即Q=fc/BW=1/2*R7/req
由上边的公式,取中心频率f=1khz,增益A=2,品质因数Q=10,则令C=C3=C4=50nf,可以得到电阻值为R5=16K,R6=160,R7=64K;关于峰值检波电路的设计:
考虑到电容值越大检波效果越好,但是放电速度越慢,经过测试,选取了20uf的电容和100k的电阻以及1n4148构成最简单的峰值检波电路。
电路图及元件参数如下:
3.单片机控制模块
接收模块处理好的数据传入单片机,程序自动计算出此时的距离,再在1602液晶上显示。
三、软件分析
软件由4部分组成,信号产生模块、AD接收模块、数据处理模块和LCD显示模块,利用单片机的定时器0可以持续不断的产生1khz信号并输出,由于输出信号是稳定的,而接收管接收到的信号随着障碍物距离的变远而变小,所以我们可以通过检测信号的强弱来判断距离,我采用提前把正确的距离和信号强弱的关系先测量好,建成一张信号距离表,然后利用exelc将得到的数据汇成一条曲线,得到一个函数关系式,在程序中插入这个关系式,单片机得到一个信号,程序就会算出相应的距离,这样既简单又方便。处理好的数据直接传送到1602液晶屏显示即可。
四、调试和测试
调试中所用到的仪器设备主要有:有示波器,函数信号发生仪,稳压电源。数字万用表。调试过程如下:
首先调试发射部分,直接用示波器测量单片机输出的信号,为1khz;
再调试接收部分的放大模块:先用函数发生仪模拟一个接收信号,把放大电路和滤波电路断开,测量358芯片的1脚,输入信号为1khz,100mv的正弦信号,用示波器测量1脚为1khz,2.8v的正弦信号,放大倍数为28倍,由于有信号衰减,放大部分正常;
接下来调试带通滤波:把放大电路和滤波电路连好,输入函数发生仪产生的模拟信号,测量358芯片的7脚,得到一个稳定的正弦波,通过调节输入信号的频率,测得带通滤波器的中心频率为1.8khz,带通滤波器不正常。由于电阻自身的误差比较大,电容也有误差,再加上计算出来的电阻值没有刚好合适的,取得是相近的电阻元件,所以照成了较大的误差,我再在C3,C4上分别并联了一个相同容量的电容,再次测量中心频率变为880hz,截止频率400hz,这次滤波器可以满足要求了。然后接着测量整个电路的输出端,示波器打到直流档,调节信号强弱,发现检波电路工作良好。
最后我修改程序将输出信号改为880hz,接入红外发射和接收管,直接进行最终的整合调试,解决一些电路连接上的问题后,将电压再液晶上显示出来,用米尺画出一张标准距离图,测量出电压和距离之间的关系并做成表,最终填入程序中,再验证距离和长度的关系是否正确。整个红外测距电路到此结束。
五、心得总结
该电路设计简单,精度为5mm,但还可以进一步提高。虽然测量距离和超声波比起来短很多,但是精度高,适合短距离的高精度测量。但是当测量距离从近到远变化时,距离测量变化的灵敏度比较低。需要一个更好的峰值检波电路才能提高响应速度。
六、参考文献和资料
1.郭天祥编著《新概念51单片机c语言教程—入门、提高、开发、扩展全攻略》 2.TLC1543编程实例——百度文库 3.《运算放大器电路设计手册》
4.《有源带通滤波器的设计和计算》 5.《单片机C语言程序设计》
第二篇:超声波测距总结报告
电子技术实验课程设计
超声波测距系统
总结报告
自03 胡效赫 2010012351
自03 胡效赫 2010012351
一、课题内容及分析
首先根据课程所给的几个题目进行选择,由于自己最近在做电子 设计大赛的平台设计,希望对超声波测距在定位方面应用有更详尽的了解,所以选择课题三——超声波测距作为课程设计,内容如下:
对课题进行分析:实验提供超声波传感器T40-16和R40-16,利用面包板和小规模芯片搭接电路,实现距离的测量及显示。大致思路即驱动发射端发出超声波,接收端收到返回的脉冲进行处理与计算得到测量距离并通过数码管和蜂鸣器显示。
二、方案比较与选择
由于超声波测距方案原理基本相同,只要能够检测出发射到接收的时间,并通过相应计算就可以得到所测距离。所以问题大致分为驱自03 胡效赫 2010012351 动发射端、接收端检测、间隔时间计算与计算结果显示四部分。具体的方案设计如下:
闸门脉冲源产生基准宽度为T 的闸门脉冲,该脉冲一方面控制计数电路的计数启动和并产生计数器清零脉冲,使计数器从零开始对标准脉冲源输出的时钟脉冲(频率为17KHz)计数。同时开启控制门,超声波振荡器输出的40kHz脉冲信号通过控制门,放大后送至超声波换能器,由发射探头转换成声波发射出去。该超声波经过一定的传播时间,达到目标并反射回来,被超声波换能器的接收探头接收变成电信号,经放大、滤波、电压比较和电平转换后,还原成方波。图中的脉冲前沿检测电路检测出第一个脉冲的前沿,输出控制信号关闭计数器,使计数器停止计数。则计数器的计数值反映了超声波从发射到接收所经历的时间(或距离)。
自03 胡效赫 2010012351
三、模块化设计及参数估算
1、闸门控制模块 设计思路
555振荡电路产生频率为2Hz的脉冲,作为闸门脉冲源。RC微分电路将输出的2Hz脉冲进行微分运算产生脉冲信号,作为计数启动和计数清零的信号,分别控制D触发器的置高端和74LS90的清零端。 参数设计:
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取4.7kΩ,R2接入10kΩ滑动变阻器,最后实测7.51kΩ,C取47uF。RC微分电路R为1kΩ,C为4.7nF
2、超声波发生模块 设计思路
555振荡电路产生频率为40kHz的脉冲,作为驱动超声波发射端 自03 胡效赫 2010012351 的基础脉冲信号。
同时由2Hz闸门信号作为门控(高电平有效)。
再利用电压比较器,对555脉冲信号进行整形,而后输出。 参数设计
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取2kΩ,R2接入 1kΩ滑动变阻器,最后实测440Ω,C取10nF。
3、超声波接收模块 设计思路
电压放大电路,利用LF347放大超声接收端信号
电压比较电路,利用电阻分压设计阈值电压VREF,当没有接收到信
号时V-大于V+,输出为负,当接收到信号时V-小于V+,输出为正。稳压电路,电压比较器输出端接1kΩ电阻,反接5V稳压管接地,自03 胡效赫 2010012351 使没有信号即输出为负时,输出-0.7V电平,有信号即输出为正时,输出5V电平。 参数设计
放大电路电阻值为1kΩ和750kΩ,放大倍数为750。
电压比较器VREF由100kΩ电阻和100kΩ的滑动变阻器分压决定,最终滑动变阻器阻值取为5.68kΩ,VREF取值大致为-0.6V。
4、计数控制模块 设计思路
计数控制模块由,计数启动和计数停止控制组成。由D触发器进行实现 当计数开始时闸门信号的微分电路给出低电平脉冲将Q置高,计数信号有效。而接收到回波后,接收信号由低变自03 胡效赫 2010012351 高,CLK产生上升沿将Q置低,计数信号关闭。
5、计数模块 设计思路
555振荡电路产生17kHz的脉冲型号用来计数 三个74LS90级联,采用十进制接法计数,分别对应米、分米、厘米。
计数信号控制源由计数控制模块的D触发器的Q信号给出 计数信号清零源由闸门控制信号的微分模块经由缓冲器后给出高脉冲清零。 参数设计
555振荡电路T =(R1+2*R2)*C*ln2。其中R1取5.1kΩ,R2接入
47kΩ滑动变阻器,最后实测18.98kΩ,C取2.2nF。
6、报警模块 设计思路
令A[4],B[4],C[4]分别对应米、分米、厘米,同时当模块计数时报 警应该无效,设D触发器输出信号为Q,则 逻辑函数Alarm = A1’A0’B3’B2’B1’Q 自03 胡效赫 2010012351 利用与非、或非及非逻辑运算搭接电路
四、实验电路总图
1、电路原理图
自03 胡效赫 2010012351
2、时序图
3、面包板布局
五、实验结果与实验中出现的问题分析
1、实验结果 结果:基本要求及提高要求全部完成。其中四个地方用到了滑动变阻器分别是三个555的脉冲源(产生2Hz、17kHz和40kHz的方波)和接收模块的电压比较器阈值电压VREF的确定。调试结果的各自03 胡效赫 2010012351 阻值已在模块设计中标明。
2、实验中出现的问题及分析
A.微分电路输出信号的检查
开始分模块调试时,不会测量微分电路输出的脉冲信号,然后不能确定问题出现在下级还是本级。经过老师的提示,只要把示波器显示的波形调到最粗最亮,调成相应扫描速度,可以看到面板上有亮点间歇显示。从而验证微分电路输出信号无误,并且幅值正确。
B.数码管显示不稳定
数码管显示不稳定,多数原因是由于数字电路与模拟电路相互干扰,计数器中混有杂波和高频信号。用示波器测量计数电路的74LS90的信号,发现有17kHz的杂波。首先将模拟地和数字地分开将555振荡电路的地直接由引线接到学习机上,而后数码管开始显示,但仍不太稳定。再在VCC和GND之间跨接0.1uF的电容滤掉杂波。之后数码管稳定显示。
C.信号输出不正确
D触发器输出电平Q在未接受到信号时应该是低电平,但始终是高电平。开始时不确定前级各模块的正确与否,有些停滞,之后确定前级信号正确,D触发器接线正确,而输出信号不对,则一定芯片的问题。换了芯片之后,输出正常。
六、收获、体会和建议
1、收获与体会 本次实验充分体会电路模块设计与调试的过程,对于设计电路和自03 胡效赫 2010012351 测试电路的能力有了更一步的提升。首先,搭接与调试电路时,应该本着自顶向下逐步求精的原则,在理解原理并确定原理正确之后,先对于面包板的布局进行规划,把相应的芯片测试后,插到相应部分,保证后面搭接时方便并且思路清晰。然后,按分模块逐级搭接调试的原则测试电路,保证了每一级的输入信号都是正确的后,如果输出不正确,去检查接线,接线正确后检查芯片是否正常工作。最后,发现信号干扰问题,尝试用滤波,分离数字地和模拟地,以及简单的搭接电容的方法,解决干扰。依照上述方法调试电路,保持一颗正常心态,可以高效并且正确的完成问题。
2、建议 由于整个实验过程中只需要,测量接收波形的上升沿,所以对于模拟电路中波形整形处理部分现对简单。现提出以下课程建议: 建议老师将提高要求的测量距离改为高于3m,这样同学们利用波形放大然后与阈值电压比较的方法就不能实现了,因为相应的杂波干扰也会随之放大,冲过阈值电压,影响结果。所以此时同学应该使用选频电路选出40kHz的波形,控制后面的计数模块,对于模拟电路部分会有更高的锻炼。
附工作日志
8月21日 自03 胡效赫 2010012351 经过周末的预习,查找了关于超声传感器的原理知识和超声测距的相关内容。分析了超声测距的实现方案,并将电路分为各个模块实现,每个模块进行了相应仿真(但有些仿真结果不理想,待硬件实测)。
本日上午首先针对超声测距系统方案中的几个模块与同学进行了讨论,包括方波频率的选择与实现,闸门信号的实现与清零,以及面包板的布局合理性。
而后首先搭接了三个555方波发生器。上午只搭接测试出了,40kHz的方波 本日下午再次对于板子的规划进行思考,并大致划分了区域,把相应用到的芯片放到了相应的位置。然后搭接测试出了2Hz方波。分别测试两种方波的频率均很稳定,效果不错。而后开始搭接超声发射模块的实现,将两种频率的方波进行逻辑运算,经由LS00,信号传至运算放大器LF347,将信号与2.5V电压值进行比较,得到最终的大约0.5s驱动一次超声波发射器的效果。
但是遇到的问题是,当2Hz和40kHz的方波共同输入到LS00中时,对2Hz的方波进行测量,示波器显示的频率很难稳定下来,发现混有杂波,可能是40kHz的杂波,也可能是交流成分。进行了各种测试,重新退到上一步骤,检查芯片的问题,等等。但是问题并没解决,后来怀疑是示波器测量可能不是很准。直接测量最终运放发射的信号,发现效果正常。问题解决。
而后进行超声接收信号接收处理的部分电路的搭接,以及触发器电路的搭接。之后搭出17kHz的脉冲源后,下课。
晚上又把数码显示和蜂鸣器部分搭出来了,明天分模块测试。8月22日
由于昨天已经把各个模块全部搭好,今天开始分模块测试和模块的联调测试。今天下来调试结果:
超声波发射模块调试通过正常运行,并且接收模块可以接收到相应信号,在示波器上显示相应波形。40kHz的555脉冲源正常,2Hz的555脉冲源正常,经过LS00运算后,到LF347正常驱动T40-16,而相应的R40-16接收到反射的超声波信号后,产生较大幅值的波形(较之原有的干扰信号),可以通过放大,与阈值电压比较后得到相应的脉冲信号(没有接收到信号时,信号为0,大于阈值电压,最终输出低电平信号-0.7V;接收到信号后,信号为负,小于阈值电压,最终由于稳压管稳压后输出高电平5V)。即,当调整出较好的阈值电压后接收到超声信号后会产生相应的上升沿信号。
对于闸门信号的作用部分,由74LS74双上升沿D触发器来完成。对2Hz脉冲信号进行微分运算,上升沿时给出正脉冲,经由40106COMS施密特反相器可以得到一直是高电平闸门信号时给出低电平和一直是低电平闸门信号时给出高电平的信号。将LS74的置高端接前者信号,给出低电平脉冲时D触发器被置高,而只有CLK信号给出上升沿后才能将D触发器置低。
!!但是输入信号都测出来了,输出不对哎有木有 所以明天LS74是重点哎有木有!!
而后是计数器显示模块,需要有17kHz的555脉冲源,搞定。与经由闸门信号控制锁存后的Q输出端进行逻辑运算(LS00),结果输出到LS90中进行计数并在数码管中显示。同时从计数的信号端中做组合逻辑实现低于0.2m时报警。同时计数器的清零信号由闸门信号微分运算后COMS施密特反相器整形后得到。
开始没有产生555脉冲信号的时候,将CLK和CLR用学习机模拟,效果很好,接上555后发现数码管不稳,有木有!!
模拟地和数字有干扰有木有!!想办法有木有!!自03 胡效赫 2010012351 数电电子技术实验考核的时候就有这个问题木有解决,明天上午一定要解决有木有!!
8月23日
今天来到实验室后重新整理了思路,调整了心态。理清了各个模块的作用关系,由最初级开始逐级测试,当确定D触发器的输入信号均正常,并且接线正常,而输出不正常,所以果断换了74LS74。突然之间信号变好了,然后数码管开始工作了,无比的开心。直接找助教验收基本实验,助教发现信号并不是很稳定,然后感觉计数器和数码管显示部分仍有杂波干扰,在VCC和GND之间接入0.1uF,信号稳定了,基本实验调试通过。好开心,有木有。而后通过改变阈值电压,使阈值电压接近0V,将距离较远处的返回信号,也作为有效信号。然后通过了提高要求。搞定!
第三篇:红外测距仪总结报告
红外测距仪总结报告
一、摘要:
本次设计任务是设计一个红外测距电路,它由硬件和软件两部分组成,硬件部分包括发射模块和接收模块,先由stc8051单片机产生一个1khz的信号,经红外发射管发射,碰到障碍物后返回,接收管接收到信号通过放大、滤波、峰值检波、AD转换后传回单片机,单片机即可通过判断接收电压的大小来确定距离。软件部分包括信号产生、AD接收、数据处理、液晶显示。
关键词: STC8051 红外测距
二、电路总体方案:
1、发射部分: 用单片机产生一个1khz的信号经红外发射管发射。因为用单片机产生信号方便控制盒调节,电路也更加简单。
2、接收部分: 采用±5v双电源供电,利用LM358芯片进行双电源放大,因放大倍数在20至40倍之间即可,所以只需经过一级放大。
滤波部分: 由于经过放大以后的信号还有很多杂波,而我们需要的是接收到的1khz的信号,一般的滤波器很难解决干扰问题,所以直接选用有源二阶带通滤波器。
峰值检波部分:
根据要求的精度为5mm,最简单的峰值检波电路即可胜任,出于节约成本的考虑,决定不用带运放的高精度检波电路,假如还要进一步提升测量精度,就需要选用更好的峰值检波电路。
AD转换部分: 由于所买单片机缺少AD转换模块,另购带PCF8591芯片的AD转换模块外接到单片机与电路板之间来实现AD转换。简化了软件编程中繁杂的IO口编程。
单片机控制部分: AD转换的数字信号传入单片机,通过软件采用查表发进行处理,得出正确的距离。
三、硬件设计:
1.红外发射管电路设计:
1.1 红外发射管原理
由STC8051的定时器产生一个1KHZ的方波,用
一个三极管驱动,将信号传送到红外发射管上。
1.2 红外发射管外围电路和元件参数设计
注:通过R3的调节改变测量范围。
1.3红外接收管电路设计:
红外接收管接受的信号只有一百毫伏左右,而
且还有很多干扰,需要先放大在带通滤波,单片机只能接受信号,所以
还需要通过峰值检波输出一个直流电压,经pcf8591 芯片转换成数字信
号输入单片机进行处理。
2.放大器的设计
2.1放大器的工作原理:
考虑到题目测量范围和接收到的信号大小,选取放大倍数为30倍左右,倍数太大会出现波形失真,是测量范围的最短距离变小,倍数太小信号强度不够,则能测量的最远距离会变小,放大倍数:
B=Rf / Rb =30;
3.关于有源二阶带通滤波器的设计:
则令C = C3 = C4,则 Rep = R5 / / R6 =(R5 * R6)/(R5 + R6)
品质因素Q等于中心频率除以带宽
即 Q = fc / BW = 1/2*(R7 / Rep)½
由上边的公式,去中心频率 f = 1 khz ,增资A = 5,品质因素 Q=8,则令C = C3 = C4 =104,可以得到电阻值为R5=2.5 K,R6=100,R7=25K;
4.关于峰值检波电路的设计:
考虑到电容值越大检波效果越好,但是放电速度越慢,经过测试,选取了200uf的电容和100k的电阻以及LM358构成最简单的峰值检波电路。
5.电路图如下:
注: 1.R4的电阻大小可改变测量精度;
2.整流电路中R8的大小决定最后测量结果精度;
3.前两个放大器用TL082,后一个选用LM358;
四. 程序设计:
软件由4个部分组成,信号产生模块,AD接受模块,数据处理模块和LCD显示模块,利用单片机的定时器0可以持续不断的产生1khz信号并输出,由于输出信号时稳定的,而接收管接收的信号时随着障碍物距离的变远而变小,所以我们可以通过检测信号的强弱来判断距离,但是接收的信号并不是完全是线性变化,采用一个或者几个固定的公式并不能得出准确的距离,所以采用提前把正确的距离和信号强弱的关系先测量好,建成一张信号距离表,这样测量时就可以查表快速得出距离。精度也方便控制。处理好的数据直接传送到1502液晶屏显示即可。
流程图如下:
五.测试方案:
本次测试所用到的仪器设备主要有: 示波器,函数信号发生仪,稳压电源,数字万用表。
调试过程如下:
调试发射部分,直接用示波器测量单片机输出的信号,为1khz;
调试接收部分的放大模块:先用函数信号发生仪模拟一个接收信号,把放大电路和滤波电路断开,测量TL082芯片的1脚,输入信号为1khz,1 00mv的正弦信号,用示波器测量1脚为1khz,2.9v的正弦信号,放大倍
数为29倍,由于有信号的衰减,放大部分正常;
调试带通滤波: 把放大电路和滤波电路连好,输入函数发生仪产生的 模拟信号,测量TL082芯片的7脚,得到一个稳定的正弦波,通过调节输入信号的频率,测得带通滤波器的中心频率为1khz,满足要求。然后接着测量整个电路的输出端,示波器打到直流档,调节信号强弱,发现检波电路工作良好。
最后,接入红外发射管与接收管,直接进行最终整调试,适当改变了R3与R4的电阻大小,再将电压在液晶上显示出来,用米尺画出一张标准的距离图,测量距离图上每隔5mm所对应的电压记录并做成表格最终填入程序中,并多次验证距离和长度的关系是否正确。并做多次修正。
六、参考文献和资料:
1.《新概念51单片机c语言教程——入门、提高、开发、扩展全攻略》
——郭天祥著
2.《运算放大器电路设计手册》
3.《电路与模拟电子技术》
—— 殷祥瑞
4.pcf8591中文资料——百度文库
5.pcf8591编程实例——百度文库
第四篇:超声波测距模块总结报告
超声波测距模块总结报告
董升亮
Senscomp公司的超声波测距系统包括两个部分,分别是测距模块(6500)和静电换能器(600)。前者驱动后者,后者负责发送和接收超声波,之后用户便可根据超声波发收这一时间间隔计算出与目标物之间的距离。经过多次户外实验与优化,目前可实现一片单片机对4个超声波测距模块的控制,并且每个的探测距离都可达到10米左右。
一、超声波测距原理
超声波是指频率高于20khz的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波。完成这种功能的装置就是超声波换能器或超声波探头。超声波换能器有发送器和接收器,600系列换能器同时具有发送和接收声波的作用。超声波换能器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距原理也很简单,就是测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就可以得到二倍的声源与障碍物之间的距离。
即:D=C*T/2。其中,D为600换能器到障碍物之间的距离;C为超声波此时在空气中的传播速度;T为超声波的发收时间。在空气中,声波的传播速度一般受温湿度的影响,在没有温湿度传感器或对测量精度要求不高的情况下,一般取340m/s。在以上几次实验中,程序中采用C=340m/s。
二、6500驱动模块
我们所采用的这款6500驱动模块,手册上说可以实现6英寸-35英尺(0.152m-10.668m)的准确测距,但由于所采用的600模块是自发自收的,在发送过程中从障碍物返回的信号就无法捕获。另外,超声波换能器有一定的惯性,发送结束后还留有一定的余振,这种余振经换能器同样产生电压信号,扰乱了系统捕捉返回信号的工作。因此,在余振未消失以前,还不能启动系统进行回波接收(要等待2.38ms),以上两个原因造成了超声传感器具有测量一定的测量范围。模块最近可以到测量37cm。当然实际实验过程中会在这些标准上稍有浮动。该模块操作简单,但要特别注意的是它的噪声干扰问题。该模块共有九个引脚如图1。
图1
1引脚:接地
2引脚:BLNK,多返回模式时,用于控制(拉低)ECHO信号 3引脚:不用
4引脚:INIT,拉高启动模块发射超声波。拉低时,ECHO也同时拉低 5引脚:不用
6引脚:OSC,6500模块内部时钟,一般用不到
7引脚:ECHO,当超声波遇到障碍物返回至换能器时,该引脚拉高。该引脚需要一个470KΩ的电阻上拉至Vcc 8引脚:BINH,可使能探测37cm以内的障碍物 9引脚:Vcc,4.5V-6.8V供电,我们采用5V供电 说明:在这9个引脚当中,我们只用到其中的4个(Vcc,GND,INIT,ECHO)。另外一点值得强调的是,由于BLNK和BINH受内部噪声影响比较大,因此这两个引脚直接连接到GND。并且6500模块与单片机控制板之间的连接排线长度尽量要短。
6500驱动模块具有两种工作方式。第一种工作方式测量的是换能器到其前方第一个障碍物之间的距离。第二种工作方式可探测多个障碍物的回波,其区分能力为间隔3英寸以上的障碍物。
图2 单返回模式,控制时序实例
三、600系列换能器
此超声波换能器是集发送与接收一体的一种换能器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4khz、电压为300vacpk-pk左右的方波电压时,薄片以同样的频率震动,从而产生频率为49.4khz的超声波。当接收回波时,6500内有一个调谐电路,使得只有频率接近49.4khz的信号才能被接收,而其它频率的信号则被过滤。
换能器在将电信号转化成声波的过程中,所产生的声波并不是理想中的矩形,而是一个类似花瓣一样形状,发送超声波的波束角大约为30度,见图3。在实际应用中,该波束应为一个立体的圆锥形,这也导致两个问题:
1)随着探测距离的延长,探测障碍物方位的准确性下降。即无法对障碍物进行准确定位。
2)探测距离越远,能量扩散越严重,在障碍物不理想的情况下,返回信号减弱,以至于在标准探测范围内,返回脉冲也达不到600换能器的判断阈值。
图3
四、单片机控制模块
系统采用PIC30F4011控制芯片,同时集成串口和CAN总线两种数据传输方式。该电路共配置了8个6500模块接口,目前已经用到了其中的4个。为了减小相互之间的干扰,每个模块之间都采用了LC滤波电路。同时在每个模块的电源到地之间增加了一个1uF的旁路电容和一个470uF的铝电解电容,前者用来消除内部干扰对BINH引脚的影响,后者起储能作用,这两者视情况可选择使用。其电路连接如图4,PCB布线如图5。两者中的电感用相近引脚间距的电容做了代替。
图4
图5
五、程序控制模块
由于该单片机控制多个超声波测距模块,因此在编程过程中要首先考虑到各个模块之间的相互影响,最基本的要求是某一个模块突然的硬件错误不会对其他模块的正常运行造成影响。最初考虑到在uCOS-II上进行编程,但实施过程中发现要借用互斥信号量与多个邮箱,任务多且复杂,既费时又费力,并且会对超声波往返时间的计时产生影响,同时也使对程序的阅读更加困难。最终放弃了这个方案。
新方案采用多重循环来进行模块控制调度,为避免陷入死循环,程序中采用了goto语句。在此程序中,我们定义了一个整型变量Con6500,让他分别等于1、2、3、4来分别控制这四个模块,同时还用到了3个定时器:
Timer1:用于设置6500模块探测周期。
Timer2:用于记录各个模块超声波往返时间。Timer3:用于防止某一模块超时。
程序中对各个模块的返回引脚均采用查询的方式,整个程序的关键代码如下: int main(void){ //CAN、UART、Timer、IO初始化 Con6500=1;//从第一个模块开始探测 //……
while(1){ StartChk:while(Timer1Lock==1)//有一个6500模块开启
{
while(Con6500==1)//开启的是第一个模块(6500-1)
{
TMR3=0;//为第一个模块计时,以避免其超时
while(1)//查询6500-1返回引脚
{
if(PORTDbits.RD1==1)//ECHO1有返回
{
ECHO1();//完成距离计算及数据发送
LATBbits.LATB8=0;//关闭6500-1超声波换能器
Con6500=2;//下一次6500-2模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
else if(TMR3>=WaitTMR3)//如果6500-1超时
{
LATBbits.LATB8=0;//关闭6500-1超声波换能器
Con6500=2;//下一次6500-2模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
}
}
while(Con6500==2)//若开启的是第二个模块(6500-2)
{
TMR3=0;//为6500-2计时,避免其超时
while(1)//查询6500-2返回引脚
{
if(PORTEbits.RE1==1)//ECHO2有返回
{
ECHO2();//完成距离计算及数据发送
LATBbits.LATB7=0;//关闭6500-2超声波换能器
Con6500=3;//下一次6500-3模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
else if(TMR3>=WaitTMR3)//若6500-2超时
{
LATBbits.LATB7=0;//关闭6500-2超声波换能器
Con6500=3;//下一次6500-3模块发送
Timer1Lock=0;//标记所有模块都关闭
goto StartChk;//等待下一个模块开启
}
}
} //……其它模块
} } } /*定时器1中断服务程序*/
void __attribute__((__interrupt__))_T1Interrupt(void){ IFS0bits.T1IF=0;//清除T1中断标志
if(Con6500==1){
TMR2=0;//超声波收发时间计时开始
LATBbits.LATB8=1;//开启6500-1超声波换能器
Timer1Lock=1;//标记有模块开启
} if(Con6500==2)//判断SonarLock=1是为了防止6500-1不工作
{
TMR2=0;//超声波收发时间计时开始
LATBbits.LATB7=1;//开启6500-2超声波换能器
Timer1Lock=1;//标记有模块开启
} //…… }
六、关于噪声干扰
噪声问题是必须要注意和解决的问题,否则它将影响测距模块的可靠性和准确性,有时甚至会直接导致其无法正常工作。对超声波测距模块产生的干扰主要包括内部干扰和外部干扰。
1、内部干扰
内部干扰主要来自超声波发送时产生的发送脉冲,6500模块的内部电路见图6。
图6 其中TL851是一个数字12步测距控制集成电路。内部有一个420khz的陶瓷晶振,6500系列超声波距离模块开始工作时,在发送的前16个周期,陶瓷晶振被8.5分频,形成49.4khz的超声波信号,然后通过三极管Q1和变压器T1输送至超声波传感器。发送之后陶瓷晶振被4.5分频,以供单片机定时用。在发生脉冲的过
程中,通过示波器观察,会发现在GND和BINH上会有多个尖峰脉冲,其峰峰值有时甚至达到4V,这将导致在发送超声波时,ECHO引脚被突然拉高,从而导致根本无法探测障碍物。其原因为BINH引脚对噪音过于敏感,官方提供的解决办法为将BINH直接连接到地,同时在Vcc与GND之间加1uF的旁路电容。但在实际应用过程中我们发现,即便单个模块调试成功,当将多个6500模块集成在一个板子上同时工作时,仍会有干扰发生从而影响某一个或几个模块的正常工作。经过反复调试,我们发现有必要在6500模块排线的末端加一大容量的铝电解电容来稳定供电电压滤除噪音。
TL852是专门为接收超声波而设计的芯片。因为返回的超声波信号比较微弱,需要进行放大才能被单片机接收,TL852主要提供了放大电路,当TL852接收到4个脉冲信号时,就通过REC给TL851发送高电平表明超声波已经接收。由此可见,当返回超声波信号太弱或者达不到4个返回脉冲时,将不能实现准确测距。
2、外部干扰
外部比较复杂,包括外部事物产生与该超声波类似的噪音;不理想的障碍物对测距的干扰;以及个测距模块之间的相互干扰。
虽然多数超声波传感器的工作频率为50Khz左右,远远高于人类能够听到的频率。但是周围环境也会产生类似频率的噪音。比如,电机在转动过程会产生一定的高频,轮子在比较硬的地面上的摩擦所产生的高频噪音,机器人本身的抖动。这些都将对换能器接收信号造成影响。但这一类噪音出现的几率比较低,有时可以忽略不计。
由于换能器发送的超声波并不是理想的圆柱型,而是开口呈30度的圆锥形。这将导致测距模块对障碍物的方位判断产生误差。即超声波可能会先碰到周围的物体产生返回信号,从而无法准确探测换能器与目标物体之间的距离。这个问题也是在后期实验过程中验证了的。在这种情况下,可采用复合返回模式,但这样又极易造成内部干扰。因此在对测距精度要求不高的情况下,我们还是采用单返回模式。
最后一个要注意的是多模块之间的交叉问题,由于我们所采用的超声波测距模块发射的超声波几乎完全相同,这就导致相互间产生干扰的几率增大,其解决方案为增大模块之间的朝向角,也可以在换能器前加一遮挡物,前提是不影响超声波的发送。
七、实验过程及测试结果分析
实验过程完全没有预想中的那么顺利,看似操作简单的测距模块,至今为止已经耗费了一个多月的时间。总结起来,大部分时间都耗费在了消除噪音上。
第一阶段主要是对第一套测距模块的测试和相关电路的设计修改。但在一开始就遇到了麻烦,主要原因归结于自己的粗心大意和不重视官方材料。以至于在电路设计时忽略了ECHO引脚的上拉电阻,导致无法测得返回信号。由于英语水平并不很高和当时的习惯问题,并未意识到从官方网站上查找相关资料,而是仅仅局限于对电路电气规则的检查。
第二阶段主要集中于对噪声的发现与处理。在相关电路及元件问题解决后,模块仍无法正常工作,具体表现就是ECHO引脚的突然拉高从而导致无法进行正常测量,这也是该超声波测距模块最常见的问题。其原因是BINH引脚对噪声过于敏感,而噪声有来源于模块内部,即在每次发送超声波时产生的脉冲会对供电电压造成影响。经过示波器观察会发现在BINH引脚和GND引脚上有峰峰值(大约为3.6V)较大脉冲信号。我们采取的主要解决办法是将BINH和BLNK引脚在排线末端直接
连接到地,并在Vcc与GND之间加一个1uF的滤波电容。后期实验我们发现,即使这样也会存在问题。
第三阶段主要是对多个6500模块控制程序的编写。由于PIC30F4011控制芯片只有两个外部中断引脚,于是我们选择用查询的方式监测返回信号。经过多次尝试,最终放弃了在操作系统上进行编程。新方案的详细介绍见第五部分:程序控制模块。
第四阶段为对4个模块的组装与调试。由于有先前积累的经验与教训,这一阶段耗时相对较少,主要问题仍然是噪音处理,将个别模块1uF的滤波电容换成了330uF,主要用来稳定改模块的供电电压。实验时,我们将四个6500模块和单片机控制电路安装在小车上,其中两侧各一个,前方两个。为了减震,将4个模块和控制电路固定在了一块泡沫砖上。实验场地前期选在一楼东门口的丁字路口上,后期沿路行进至环校公路。各个6500模块的探测周期设定为1次/秒。
静态测量时,地点选在东门口,测试数据稳定,效果较好。后来选取一10米左右障碍物(楼梯),该障碍物形状很不规范。对4个6500模块进行分别测量测试数据基本稳定,但偶尔会无返回信号,测试数据见附件。在移动测量时,发现有时测得的数据并不反映真实情况,特别是在周围环境比较复杂的情况下,会无法探测到与前方障碍物之间的真正距离。但总体来讲,效果还可以。另外还有一点需要注意,那就是车子不能移动太快,否则将会影响超声波返回信号的接收。
实验至此还存在的不足是,其中的一个模块仍不很稳定,其内部干扰有时会影响正常。一般断电重启就能解决。
八、心得体会
经过这么长时间的锻炼,得到的最重要的一点体会是:不能急功近利,遇事不能浮躁,要想解决问题最终还是要靠静下心来仔细分析。遇到困难不能退缩更不能半途而废,不懂的可以上网查,这也是一个不断学习和不断积累经验的过程。另外实验室的设备齐全,要学会充分利用。
对于烧毁的那个三极管Q1,其原因最终还要归结于TL851芯片的XMIT引脚脉冲持续时间过长,导致Q1长时间导通,而三极管的集电极与发射极又直接与Vcc和GND相连,从而致使短路电流持续时间过长,超过三极管允许极限,进而将其烧毁。
九、附件说明
附件1为东门口静态测试,单位为米。为了便于观察,对串口输出做了规范,1
至4列分别对应1至4个模块测得的数据,空白单元代表无返回数据。
附件2为静态远距(9m-10m)测试结果。
附件3为由东门口行至南楼西侧以及返回所得数据。附件4为该测距系统的相关电路与PCB板图。里面电感用相同引脚电容做了代替。
附件5为PIC30F4011芯片的4模块控制程序。
十、补充
ECHO引脚会出现一个尖峰脉冲影响对返回时间的判断,需要接一104电容加以滤除。
第五篇:军事测距
军事上的测量距离的方法
测量距离,在战场上的用处最大,在简易测绘中最为重要,方法也最多。在这里,我们只能拣些最简单实用的讲一讲。
每人都有一副灵便的尺子,随时带在身边,使用起来十分方便。这副尺子就是我们的双脚。
用双脚测量距离,首先要知道自己的步子有多大?走的快慢有个谱。不然,也是测不准确的。
《队列条令》上对步子的大小有个规定,齐步走时,一单步长七十五厘米,走两单步为一复步,一复步长一米五;行进速度每分钟一百二十单步。
为啥规定步长一米五,步速每分钟一百二十单步呢?这是根据经验得来的。无数次测验的结果说明:一个成年人的步长,大约等于他眼睛距离地面高度的一半,例如某人从脚根到眼睛的高度是150厘米,他的步长就是75厘米。如果你有兴趣的话,不妨自己量量看。还有一个经验:我们每小时能走的公里数,恰与每三秒钟内所迈的步数相同。例如,你平均三秒钟能走五单步,那每小时你就可以走五公里。不信,也可以试一试。
这两个经验,只是个大概数,对每个人来说,不会一点不差,这里有个步长是否均匀,快慢能否保持一致的问题。要想准确地测定距离,就要经常练习自己的步长和步速。
怎么练习呢?连队不是天天出操、练步法吗?这就是练习步长和步速的极好机会。
还有个练习的办法,在公路上,每隔一公里就有一块里程碑,你可以经常用步子走一走,算算步数,看看时间,反复体会自己的步长和
掌握了自己的步长和步速,步测就算学会了。步测时,只要记清复步数或时间,就能算出距离。例如,知道自己的复步长1.5米,数得某段距离是540复步,这段距离就是:540×1.5米=810米。若知道自己的步速是每分钟走54复步,走了10分钟,也可以算出这段距离是:54×10=540复步,540×1.5米=810米。根据复步与米数的关系,我们把这个计算方法简化为一句话:“复步数加复步数之半,等于距离。”就能很快地算出距离来。
2.目测
人的眼睛是天生的测量“仪器”,它既可以看近,近到自己的鼻子尖,又能看远,远到宇宙太空的天体。用眼睛测量距离,虽然不能测出非常准确的数值,但是,只要经过勤学苦练,还是可以测得比较准确的。在我军炮兵部队中,有许多同志练出了一手过硬的目测本领,他们能在几秒钟内,准确地目测出几千米以内的距离,活象是一部测距机。
怎样用眼睛测量物体的距离呢?
人的视力是相对稳定的,随着物体的远近不同,视觉也不断地起变化,物体的距离近,视觉清楚,物体的距离远,视觉就模糊。"
而物体的形状都有一定规律的,各种不同物体的远近不同,它们的清晰程度也不一样。我们练习目测,就是要注意观察、体会各种物体在不同距离上的清晰程度。观察的多了,印象深了,就可以根据所观察到的物体形态,目测出它的距离来。例如当一个人从远处走来,离你2000米时,你看他只是一个黑点;离你1000米时,你看他身体上下一般粗;500米时,能分辨出头、肩和四肢;离200米时,能分辩出他们的面孔、衣服颜色和装具。
这种目测距离的本领,主要得靠自己亲身去体会才能学到手。别人的经验,对你并不是完全适用的,下面这个表里列的数据,是在一般情况下,正常人眼力观察的经验,只能供同志们参考。不同距离上不同目标的清晰程度
距离(米)分 辨 目 标 清 晰 程 度 100人脸特征、手关节、步兵火器外部零件。
150—170衣服的纽扣、水壶、装备的细小部分。
200房顶上的瓦片、树叶、铁丝。
250—300墙可见缝,瓦能数沟;人脸五官不清;衣服、轻机枪、步枪的颜色可分。
400人脸不清,头肩可分。
500门见开关,窗见格,瓦沟条条分不清;人头肩不清,男女可分。
700瓦面成丝;窗见衬;行人迈腿分左右,手肘分不清。
1000房屋轮廓清楚,瓦片乱,门成方块窗衬消;人体上下一般粗。
1500瓦面平光,窗成洞;行人似蠕动,动作分不清。2000窗是黑影,门成洞;人成小黑点,停、动分不清 3000房屋模糊,门难辨,房上烟囱还可见。
你觉得根据目标的清晰程度判断距离没有把握时,还可以利用与现地的已知距离,相互进行比较,有比较才能判定。比如,两电线杆之间的距离,一般为五十米,如果观测目标附近有电线杆,就可以将观测的物体与电引杆间隔比较,然后再判定。现地没有距离比较时,就用平时自己较熟悉的50米、100米、200米、500米等基本距离,经过反复回忆比较后再判定。如果要测的距离较长,可以分段比较,尔后推算全长。
由于天候、阳光、物体颜色和观察位置、角度的不同,眼睛的分辨力常会受到影响,目测的距离就会产生误差。
晴天:面向阳光观测,眼睛受到光线的刺激,视力会减弱,容易把物体测远了;如背向阳光观测,眼睛不受光线刺激,物体被阳光照射得清晰明亮,容易把物体测近了。
阴天或早晚天色较暗时:能见度减弱,物体显得模糊,容易把目标测远了。
雨后:空气清新,物体颜色鲜明,又容易把目标测近了。在开阔地形上目测,或隔着水面、沟谷观察,或从高处往低处观察,都容易把目标测近了。
应根据各种具体情况,经过艰苦练习,反复体会,摸出自己的经验。俗话说:“熟能生巧”,练得多,体会深,经验丰富了,就能比较准确地目测出物体的距离来。-