杨志萌,张凯临
(中国海洋大学 信息科学与工程学院,山东 青岛 266100)
降雨及沙尘暴天气对非全天候工作的仪器具有破坏性。尤其在海上平台或偏远地区,在无人值守条件下的自动运行的仪器经常会因受到降雨及沙尘暴影响而造成测量结果不准或损坏仪器元件的情况,如各种安装有光学镜片等娇贵元器件的仪器。因此,设计一款能在发生以上天气情况时及时向非全天候工作的仪器提供保护报警信号的报警仪极为重要。另外,本仪器也可以应用在公路、铁路沿线易出现地质灾害的位置,还可以扩展为阳台上自动防雨门窗信号的触发。
雨滴、沙尘对透过光会产生消光效应,本仪器使用红外发光二极管作为激励光源,光敏二极管作为接收器来接收由于降雨及沙尘颗粒引起的光强变化以达到探测是否有降雨或沙尘现象发生,并通过计数一分钟之内降雨雨滴滴数来判定降雨相对大小,以提供与之相适应的PWM输出。通过光学透镜的聚焦原理增大了感雨面积,在保证报警检测仪在不显著增加体积的同时,增强了其感应能力。当有雨滴或沙尘颗粒出现在此感知区域时,会使得到达光敏二极管的光强减弱。对于降雨,光强减弱是雨滴沿着光程随机下落遮挡而产生的,根据雨滴降落到地面时的速度结合系统设计,确定出雨滴引起光路闪烁的频率,从而通过选取合适带宽的滤波器来获取降雨信息;对于沙尘天气,光强减弱是由空气中漂浮沙尘颗粒的消光特性而引起,通过模数转换及合理的设置阈值来及时的判断是否有沙尘暴天气产生,以便发出报警信号。
本系统主要分为4部分:红外发射模块、红外接收模块、信号处理模块、实时显示及报警信号发生模块。系统原理框图如图1所示。
传感器输出为微弱信号,不易于检测,所以需要对其输出信号进行放大,选择合适的放大倍数,使其电压信号幅度在可测量范围内[1]。经放大的信号因外界干扰、元器件自身等因素,都会产生噪声,因此需要经过滤波处理,然后将处理过的信号直接输入到PIC16F877A[2-3]的AD模块以及外部计数模块。
图1 系统原理框图Fig.1 System principle and program
红外发射模块的主要元件是红外发光二极管、透镜、滤光片、及带有3 mm宽度狭缝的遮光板。发光二极管利用恒流源驱动电路对其进行驱动(见图2),以达到二极管发射的光强不随外界接入电压波动而产生变化,并延长其使用寿命的作用。为了得到平行的结构光,在发光二极管的前方加入了透镜,将点光源的发散光转变成平行光。此平行光透过带水平狭缝的遮光板而变为厚度为3 mm左右的平行结构光发出。这样,此光路仅对垂直方向变化的光强明暗灵敏,从而减小了由于其他因素,如飞虫、落叶等导致的误判现象的发生,提高了其可靠性。
图2 恒流源电路Fig.2 Constant-current source circuit
红外接收模块的主要作用是将发射模块发射的平行结构光汇聚到光敏二极管的感光面上,从而通过光敏二极管将收到的光信号转变成电信号传输到下一级电路进行处理[4]。其核心元件是一个光敏二极管,并同样配置一带水平狭缝的遮光片与一片透镜来调理光路。由于光敏二极管的感光面积非常小,只有几平方毫米的大小,因此,使用一片透镜将接收到的平行结构光汇聚到光敏二极管的感光面上。带水平狭缝的遮光板在此处起到的作用是只接收由发射模块发射而来的光源,遮挡住来自其他方向的自然光的进入,避免引起干扰。另外,加入的滤光片只允许特定波长的光通过,从而进一步减少了杂散光源的干扰。
信号处理模块是此报警仪的核心模块。它分为两路,一路对光敏二极管传送来的电信号进行处理以得到降雨雨滴引起的光闪烁信号,一路对光敏二极管传送来的电信号进行处理来获取沙尘天气发生时的空气中悬浮沙尘颗粒浓度信息[5]。因为由光敏二极管转换的电流信号非常微弱,因此,紧接光敏二极管的是一低噪声的前置放大器。本仪器选择了光电压模式接法,并通过相应的放大处理,然后将放大的电压信号分为两路。一路通过带通滤波器来得到雨滴引起的光闪烁信号,并送入pic16f877a中进行一分钟计数,根据一分钟降雨雨滴数值来估算降雨强度,进而输出PMW脉冲电压信号;另一路通过低通滤波器来去除高频噪声,送入单片机的A/D模块,并通过合理设置阈值来判断沙尘暴天气是否发生。
带通滤波器选通频率的计算。大部分雨滴到达地面时的下降速度在0.27~9.3 m/s。结合本设计所选遮光板的狭缝孔径宽度为3 mm,可以计算出上限截止频率,及下限截止频率。
对于fmax,将雨滴抽象为直径为6 mm的球形模型,雨滴遮挡住光路的时间 tmin=6 mm/9.3×103mm/s≈0.66×10-3s (1)
则上限截止频率
对于fmax,将雨滴抽象为直径为0.1 mm的球形模型,考虑到遮光板狭缝宽度3 mm,因此,雨滴遮挡住光路的时间
对应的下限截止频率
因此,将带通滤波器选择的带宽设为为50~1 600 Hz。
设计的带通滤波器电路部分如图3所示。
图3 带通滤波器电路Fig.3 Band-pass filter circuit
LCD屏幕用来显示降雨雨滴滴数和沙尘暴天气。降雨报警与沙尘报警信号采用指示灯颜色进行区分。如果报警仪判断为降雨发生,则会通过微控制器控制蓝色指示灯亮起;如果判断为沙尘暴发生则点亮红色指示灯。在判断降雨信号或沙尘信号消失15 min后 (时间从1~30 min任意可调)(防止雨停后,其他地方仍有个别存留的雨滴滴入仪器造成损坏),报警仪自动消除报警信号。
根据控制原理,控制程序由AD转换子程序、外部脉冲计数程序、PWM脉冲输出以及主程序4个主要部分组成,程序流程,如下图4所示。主程序初始化过程,包括 IO口的输入或输出设定,AD转换通道设置、外部脉冲计数设定及PWM的初始设置。 AD转换子程序根据A/D模块数值并结合设置的阈值来产生沙尘暴天气报警,主要包含确定AD转换模拟信号端口,启动转换和贮存转换结果等过程。外部脉冲计数子程序根据单片机计数模块数值来输出调制脉冲宽度。主要包括计数器的定时测量,及清零,及PWM寄存器的设置等过程。经多次测试,决定设定当一分钟内雨滴滴数大于等于200时,设定PWM脉冲占空比为95%,当一分钟内测到一滴雨滴时,PWM脉冲占空比设定为5%。
软件选用嵌入式C语言对单片机进行控制,C语言编译器选择的是CCS公司的CCS c编译器,集成开发环境选择microchip 的 MPLAB[6]。
图4 程序流程图Fig.4 Program flow chart
测试方案分两部分进行,第一部分是测试报警仪对降雨的检测。给报警仪通电后,用胶头滴管滴入一滴自来水时,红色报警指示灯亮起(此时设置为1滴开始报警),如图5所示。
图5 降雨报警Fig.5 Rainfall alarm
说明触发了降雨报警信号,并且LCD上雨滴滴数的显示与胶头滴管滴下的滴数相吻合。改用带喷嘴的水壶洒水,每次控制洒水的量不同,LCD在每一分钟内捕捉到雨滴滴数也不同,同一时刻越多的水滴洒下,LCD雨滴滴数越大。测试发现一分钟内最大达到200滴时,PWM输出的占空比接近于95%,当一分钟内有滴时,PWM输出一个占空比5%的方波。
第二部分是对沙尘暴报警的测试。选取不同的阈值,则可对不同强弱等级的沙尘暴进行报警。根据本仪器对沙尘暴报警的原理,选用一块透明遮光挡板遮挡光路来达到光路光强减弱的效果。结果如图6所示。当挡板遮住光路后,红色报警指示灯亮起。
图6 沙尘暴报警Fig.6 Sandstorm alarm
当检测到沙尘暴或降雨停止15 min后,系统自动恢复正常状态,即下雨计数值为0,绿色指示灯亮起。如图7所示。整个系统外观图如图8所示。
图7 无报警信号Fig.7 No alarm signal
图8 系统外观Fig.8 System appearance
通过测试,发现本仪器对降雨、沙尘暴反应灵敏,在刚开始下雨时,只要在光路中出现一滴雨滴,仪器即可捕捉到,并发出报警信号。并且输出的脉冲宽度正比与一分钟内降雨雨滴滴数,满足报警器的要求。在对沙尘暴的报警中,只要光路中的光强被沙尘暴遮挡,使光强低于阈值,则会产生沙尘暴报警信号,但阈值的选取还需要结合需要报警的沙尘暴强弱等级进行设定。
[1]松井邦彦.传感器应用技巧141例[M].梁瑞林,译.北京:科学出版社,2006.
[2]张明峰.PIC单片机入门与实战[M].北京:北京航空航天大学出版社,2004.
[3]Microchip Technology Inc.PIC16F87XA Data Sheet[EB/OL].[2012-03-15].http://ww1.microchip.com/downloads/en/device doc/39582b.pdf.
[4]钱浚霞,郑坚立.光电检测技术[M].北京:机械工业出版社,1993.
[5]塞尔吉欧·佛朗哥.基于运算放大器和模拟集成电路的电路设计[M].刘树棠,译.西安:西安交通大学出版社,2009.
[6]Richard Barnett.嵌入式C语言编程与Microchip PIC[M].薛晓东,译.北京:清华大学出版社,2005.