引言
在自主行走机器人系统中,机器人要实现在未知和不确定环境下行走,必须实时采集环境信息,以实现避障和导航,这必须依靠能实现感知环境信息的传感器系统来实现。视觉、红外、激光、超声波等传感器都在行走机器人中得到广泛应用。由于超声波测距方法设备简单、价格便宜、体积小、设计简单、易于做到实时控制,并且在测量距离、测量精度等方面能达到工业实用的要求,因此得到了广泛的应用。本文所介绍的机器人采用三方超声波测距系统,该系统可为机器人识别其运动的前方、左方和右方环境而提供关于运动距离的信息。
1超声波测距原理
超声波发生器内部由两个压电片和一个共振板组成。当它的两极外加脉冲信号,且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两极间未加外电压,当共振板接收到超声波时,就成为超声波接收器。超声波测距一般有两种方法:①取输出脉冲的平均电压值,该电压与距离成正比,测量电压即可测量距离;②测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔t,根据被测距离s=vt?2来得到测量距离,由于超声波速度v与温度有关,所以如果温度变化比较大,应通过温度补偿的方法加以校正。
本测量系统采用第二种方法,由于测量精度要求不是特别高,所以可以认为温度基本不变。
本系统以PIC16F877单片机为核心,通过软件编程实现其对外围电路的实时控制,并提供给外围电路所需的信号,包括频率振动信号、数据处理信号等,从而简化了外围电路,且移植性好。系统硬件电路方框图见图1。
由于本系统只需要清楚机器人前方、左方、右方是否有障碍物,并不需要知道障碍物与机器人的具体距离,因此不需要显示电路,只需要设定一距离阀值,使障碍物与机器人的距离达到某一值时,单片机控制机器人电机停转,这可通过软件编程实现。
2超声波发射电路
超声波的中心频率为40kHz,该频率可以通过以下程序产生(部分源程序):
2.1超声波发射电路
超声波发射电路以PIC16F877为核心,当单片机上电时,单片机从RA0口产生40kHz的超声波信号,但是此时该信号无法通过与非门进入放大电路使超声波发射头发射超声波,只有闭合开关S1时,从RA1口发射出一门控信号,该信号的频率为4kHz,同时启动单片机内部的定时器TMR1,开始计数。该门控信号每发射一个周期的波形,超声波就会发射10个完整的波形,这可由它们的频率得出。超声波的周期为1(40kHz)=01025ms,而门控信号的周期为1(4kHz)=0125ms。最后根据s=vt2求出障碍物与移动机器人的距离。当超声波接收头收到反射回来的超声波时,计数器停止计数,时间t可以根据计数器的计数与门控信号的周期求出。RA2口接RS触发器,RS触发器可以自动控制超声波的发射和停止。本系统的电路还包括人工复位电路,由单片机的MCLR引脚接S2来控制,超声波发射电路图见图2。
2.2门控电路(RS触发器)
为实现对超声波发射和接收的自动控制,须在电路中加一门控电路,该门控信号频率为4kHz,如把输出脉冲作为闸门信号,让已知频率fc的脉冲恰好通过闸门,那么t=NTc,其中,Tc为已知脉冲的周期,N为脉冲的个数。
门控电路由RS触发器组成,当输入端R=1(S=0)时复位,即输出端Q=0;当R=0(S=1)时置位,即Q=1。RS触发器与单片机的RA2口相连。
2.3超声波放大电路
超声波放大电路由三极管等组成,由于单片机RA口最多只有20mA~25mA上拉电流,而超声波发射器最小需要60mA的电流,所以在与非门后加一级放大电路来放大电流,以完成超声波的发射。超声波放大发射电路见图3。
3超声波接收电路
3.1超声波接收放大电路
由于超声波接收头接收到的超声波信号很微弱,所以在其后需加一超声波接收放大电路。该电路采用两个集成运放,设计为两级,两级都为同相输入,因为同相输入的电压放大倍数为1+RfR,所以每一级的放大倍数为10,两级放大倍数接近100倍,这样后续电路就可以很容易地检测到输入的信号。集成运放采用双电源供电,超声波接收放大电路见图4。
3.2信号滤波电路
从信号放大电路出来的声波带有一定的干扰,为了去除干扰信号,需要一滤波电路,信号滤波电路选用带通滤波器电路,使其中心频率为40kHz、带宽为2kHz,外加一过零比较器,使输出信号转化为方波信号。信号滤波电路见图5。
3.3信号整形电路
从信号滤波电路出来的方波信号很不规则,故其后加一整形电路,整形电路由两级非门串联,并联一电阻组成,整形后再送单片机进行处理,信号整形电路见图6。
4软件程序设计
软件采用模块化设计,由主程序、发射子程序等组成,软件程序框图见图7。
5结语
本文设计的超声波测距系统采用了单片机编程技术,配合硬件完成了系统的要求,其精度能满足大部分的工程需要。与传统的测距系统相比,具有结构简单、价格便宜、移植性好等特点。