使用超声波可以很方便的对一定空间内的运动物体进行有效的探测,具有安装方便,探测效果好的特点。本文介绍一种利用超声波多普勒效应设计的来人探测装置。该设计使用了PIC16F628A单片机,对以往用到的超声波探测硬件电路进行改进,利用软件编程对来人情况进行有效地探测,继而输出控制信号控制照明装置的开关。
1 工作原理及特点
当声源与声波接收器之间存在有相对运动时,声波接收器所接收到的信号频率将与传播的声波频率有所不同,频率差量与声源和接收器之间的相对运动速度有关,这就是多普勒效应造成的。本设计采用超声波发送器和接收器均朝同方向固定不动,当有障碍物体朝向或者远离二者运动时,可以看作是由障碍物表面对声波的反射效应所形成的镜像声源与接收器之间存在相对运动,同样可以利用多普勒效应,根据接收器收到的信号来判断是否有人在探测范围内移动。
该装置同时具有超声波发射和接收换能器,使用时安装方便。正面最大探测距离在1~5.5 m可调,可以对该空间内运动物体进行有效地探测。当探测到运动物体之后输出+12 V信号控制照明装置的开关。其输出+12 V的持续时间可以在15~1 800 s可调。
2 硬件系统
本装置采用发射和接收分别独立的超声波换能器,硬件系统基本可以分为微处理器部分、发射部分和接收部分。
微处理器使用的是Microchip公司生产的PIC16F628A单片机,其引脚如图1所示。该单片机为精简指令集型处理器(RISC),共有35条汇编指令,使用起来简捷有效。PIC16F628A共有18个引脚,标准工作电压为5 V,外接晶振最大可以达到20 MHz。其内部资源非常丰富,含有2 KB的Flash程序存储器、224B的数据存储器、2个模拟比较器、1个PWM控制器、1个16位的定时器/计数器,1个8位定时器/计数器,1个8位定时器,以及上电启动电路、掉电复位电路和看门狗电路等。PIC16F628A还能够响应定时器、比较器、RB端口等多种硬件中断合理地使用这些资源可以有效简化外围电路,降低产品的成本(本设计未用的片内资源此处没有列出)。
发射部分电路图如图2所示。超声波发射换能器采用328STl60,其中心频率为32.81.O kHz。使用PIC16F628A单片机的PWM控制器,由RB3端口输出约32.8 kHz的方波信号,并通过三极管Q1和4069进行电压和电流的放大,从而驱动发射换能器发射出超声波信号。其中三极管Q2是为系统自检而设计的。在正常的探测过程中,RBO端口一直输出低电平,使三极管Q2保持截止状态,不会影响超声波发送换能器的正常发射。
接收部分电路图如图3所示。超声波接收换能器采用328SRl60,其中心频率亦为32.8士1.0 kHz。由于接收换能器直接接收到的信号比较微弱,首先需要通过运算放大器进行放大。这里使用的运算放大器型号为TLO62,为了配合后面进行检波,分别组成正相和反相放大电路。检波电路实际上使用了双向模拟开关芯片4066,利用超声波发送的驱动信号作为检波的参考信号,即由RB3控制4066的模拟开关的切换。当RB3电平为高时,连通正相放大电路;当RB3电平为低时,连通反相放大电路。这相当于把放大之后的信号不停地乘以土1,其切换频率和超声波的发送频率一样。设该频率为,fo,则模拟开关所产生的等效信号是频率为fo,幅值为土1的方波,设之为uo。则由傅里叶级数可得uo。的表达式为:
设接收信号为u1=Usin(2πf1t+π),设正相和反相放大电路的放大倍数为A,则通过检波电路之后的信号u的表达式为:
其中,fo。为超声波发送信号的频率,θ0为其初相角,f1为接收到的超声波信号的频率,θ1为其初相角,U为其幅值。
由于多普勒效应,如果没有运动物体反射超声波,则,fo=f1;一旦有运动物体反射超声波,则fo一f1≠O。虽然fo和f1都比较大,但是由人体运动所产生的频差,即,fo一fl的绝对值却不会太大。由上面的公式推导结果可以看出,只要经过一个低通RC滤波器把高频信号滤掉,便可以得到由人体运动所产生的特征信号
接着通过一个微分器对u’进一步处理,得到变化更加明显的波形,从而可以有效提高探测灵敏度。再通过带通滤波器除去无用信号或者干扰信号之后,经过比较器输出波形送至单片机RB5端口,利用单片机的RB口中断便可以实时处理接收到的脉冲信号。如图3,调节R可以改变电平比较电路的比较电平,从而使该装置的正面最大探测距离在1~5.5 m可调。
如图4所示,利用PIC16F628A单片机RA4端口为集电极开路的结构特点,可直接在RA4端口加个上拉电阻,即可方便地实现对照明装置的控制。PIC系列单片机端口的驱动能力非常强,能够直接驱动LED。当探测到运动物体时,单片机通过RA4端口输出+12 V电平信号驱动照明设备,同时通过RB2端口控制LED闪亮一次。
另外,调节R3可以使+12V电平信号的持续时间在15~1800 s变化。该功能主要利用单片机内部的两个比较器,结合外围RC充电电路来实现对:R3位置的检测。具体过程如下:通过对单片机的控制字进行设置,使比较器P1和P2的正相输入端在单片机内部连接在一起并与RA2端口相连,RA0、RAl、RA2都为输入端口,如图4所示。
在正常状态下RA3为输出端口,且输出为低电平,此时电容Cl和比较器P1、P2处于稳定状态。当需要测试R3滑动头的位置时,RA3端口则从输出变为输入,并且单片机内部的定时器开始计时。这样一来+12 V便通过电阻R1开始对电容C1进行充电,当端口RA2的电平超过端口RAl时,比较器P2的输出会发生变化,引起单片机的比较器中断。在中断服务程序里,读取定时器的数值便可以计算出电阻R3滑动头的位置。然后再把端口.RA3恢复成输出低电平,使电容C1放电,整个电路回到初始的状态,为下一次检测做好准备。比较器P1的作用是防止比较器P2出现意外。当端口RA2的电平超过端口RAl时还没产生中断的话,就由比较器P1产生中断,并使电容C1停止充电,避免端口RA2和RA3的电平过高,使单片机损坏。对电阻R3的测量是为了设定照明设备的点亮时间,精度要求并不高,所以使用该电路进行测量不但简单方便成本低,而且实际当中使用效果良好。
3 软件编程
在硬件处理的基础上,到达单片机的波形已经比较理想了,但是并不能单纯以收到脉冲信号作为探测的标准,仍然需要利用软件编程进一步增加抗干扰性能。由于该装置主要目的是探测人体的运动情况,而人体稍微地一个小动作至少都能使单片机接收到几百个ms时间的脉冲信号。为了提高可靠性,本设计对于持续时间不到100 ms的信号忽略不计。另外,如果多台装置同时工作,由于各种硬件误差可能导致发送出来的超声波频率不能完全相同,当差别比较大时会持续收到一定频率的脉冲信号,如果不作处理,这也会影响正常的探测。考虑到在没有人通过时,如果有干扰,且干扰源稳定的话,单片机收到脉冲信号的频率是基本不变的,所以,比较理想的探测机制为:根据返回频差信号的频率是否变化来判断是否有人体运动存在。
在本设计中,对连续2个100 ms时间段内对接收到脉冲信号进行计数,如果计数值有增加,则判断为探测成功。在计数的同时,如果1OOms内的计数值小于5,则舍弃不计。为了在使用期间确保可靠,本装置间隔一定时间就进行自检。如图2所示,在正常的探测过程中,RBO端口一直输出低电平,只有在需要自检时,RB0端口才输出一定频率的方波,作为自检信号。此时,超声波信号在发射之前就已经被自检信号调制了,如果整个装置工作正常,即使在没有运动物体反射超声波的情况下,单片机也能接收到脉冲信号。依此便可进行自检,判断自身工作是否正常。假如自检失败,则使LED不停闪烁以指示自身出现故障,并且一直输出+12 V信号控制照明装置常亮,避免影响行人正常通过。
4 总 结
该装置外形如图5所示,底部有悬挂卡口,可以方便地安装在通道的墙壁上。顶部的灵敏度旋钮可以调节探测的灵敏度,延时时间旋钮可以调节来人之后照明装置点亮的时间。顶部的LED能够指示正常状态下的探测情况以及自检失败时的故障。
实践证明,该装置不仅安装方便,而且使用效果良好,能够满足多种场合下的来人探测要求。另外,该装置探测灵敏度高,稍作调整也可以作为安防系统的报警装置使用。