在自主行走机器人系统中,机器人要实现在未知和不确定环境下行走,必须实时采集环境信息,以实现避障和导航,这必须依靠能感知环境信息的传感器系统来实现。视觉、红外、激光、超声波等传感器都在行走机器人中得到广泛应用。由于超声波测距方法设备简单、价格便宜、体积小、设计简单、易于做到实时控制,并且在测量距离、测量精度等方面能达到工业实用的要求,因此得到了广泛的应用。本文所介绍的机器人采用三个方向的超声波测距系统,该系统可为机器人识别其运动的前方、左方和右方环境而提供关于运动距离的信息。
一、超声波测距原理
超声波发生器内部由两个压电片和一个共振板组成:当它的两极外加脉冲信号,且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振并带动共振板振动,便产生超声波;反之,如果两极间未加外电压,当共振板接收到超声波时,就成为超声波接收器。超声波测距一般有两种方法:① 取输出脉冲的平均电压值,该电压与距离成正比,测量电压即可测量距离;② 测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔 t,根据被测距离 s = vt/2 来得到测量距离。由于超声波速度 v 与温度有关,所以如果温度变化比较大,应通过温度补偿的方法加以校正。
本测量系统采用第二种方法,由于测量精度要求不是特别高,所以可以认为温度基本不变。本系统以 PIC16F877 单片机为核心,通过软件编程实现其对外围电路的实时控制,并提供给外围电路所需的信号,包括频率振动信号、数据处理信号等,从而简化了外围电路,且移植性好,系统硬件电路方框图见图 1。

图 1 系统硬件电路方框图
由于本系统只需要清楚机器人前方、左方、右方是否有障碍物,并不需要知道障碍物与机器人的具体距离,因此不需要显示电路,只需要设定一距离阈值,使障碍物与机器人的距离达到某一值时单片机控制机器人电机停转,这可通过软件编程实现。
二、超声波发射电路
超声波发射电路以 PIC16F877 为核心:当单片机上电时,单片机从 RA0 口产生 40 kHz 的超声波信号,但此时该信号无法通过与非门进入放大电路使超声波发射头发射超声波;只有闭合开关 S1 时,从 RA1 口发射出一门控信号,该信号的频率为 4 kHz,同时启动单片机内部的定时器 TMR1 开始计数。该门控信号每发射一个周期的波形,超声波就会发射 10 个完整的波形,这可由它们的频率得出:超声波的周期为 1/(40 kHz) = 0.025 ms,而门控信号的周期为 1/(4 kHz) = 0.25 ms。最后根据 s = vt/2 求出障碍物与移动机器人的距离。当超声波接收头收到反射回来的超声波时,计数器停止计数,时间 t 可以根据计数器的计数与门控信号的周期求出。RA2 口接 RS 触发器,RS 触发器可以自动控制超声波的发射和停止;本系统的电路还包括人工复位电路,由单片机的 MCLR 引脚接 S2 来控制,超声波发射电路如图 2 所示。

图 2 超声波发射电路
三、门控电路(RS 触发器)
为实现对超声波发射和接收的自动控制,须在电路中加一门控电路,该门控信号频率为 4 kHz。如果把输出脉冲作为闸门信号,让已知频率 fc 的脉冲恰好通过闸门,那么 t = NTc,其中 Tc 为已知脉冲的周期、N 为脉冲的个数。门控电路由 RS 触发器组成:当输入端 R = 1(S = 0)时复位,即输出端 Q = 0;当 R = 0(S = 1)时置位,即 Q = 1。RS 触发器与单片机的 RA2 口相连。
四、超声波放大电路
超声波放大电路由三极管等组成:由于单片机 RA 口最多只有 20~25 mA 上拉电流,而超声波发射器最小需要 60 mA 的电流,所以在与非门后加一级放大电路来放大电流,以完成超声波的发射,超声波放大发射电路如图 3 所示。

图 3 超声波放大发射电路