本发明涉及一种坠物检测装置及检测方法,属于高空坠物监测设备技术领域。
背景技术:
在大量道路工程建设中,由于受特殊的地形地貌等条件制约会存在许多自然边坡和人工边坡,边坡形成后岩石直接暴露于空气中,在周围特殊的自然环境条件下岩石将产生风化,岩石风化后将改变岩石矿物化学成分、增大并延伸裂隙、从而破坏其完整性,降低岩石力学强度,导致边坡变形失稳,产生坠石、滑坡等危害,严重影响行车安全。
目前,为了预防边坡变形失稳,通常会采用植被绿化带、架设防护网等措施,但是受周围环境因数影响,仍然存在局部落石、滑坡现象,存在一定的安全隐患,并且在许多具有特殊地形地貌的边坡上进行防护施工受限,只能通过相关的检测仪器进行预检测,施工人员则通过检测结果进行后期的边坡维护,以预防重大事故的发生。现有是检测设备是在边坡上预埋固定杆,通过位移传感器来测量预埋固定杆的位移量,进而判定边坡失稳情况,此方法测量位置范围较小,测量准确性低,并且只有在边坡失稳情况较为严重的情况下才能检测到,无法处理边坡落石等情况,处理能力较低,存在严重的安全隐患。
另外,随着社会经济的飞速发展,高楼层的建设和使用越来越多,高楼层在建设过程中,施工材料坠落风险极高,并且高楼层在使用过程中,存在诸多高空坠物风险,如摆放在窗台周围的物件坠落、人为刻意抛物和年久失修房屋外墙脱落等事故,而高楼层周围通常具有较大的人流量和车流量,高空坠物问题严重威胁着市民的生命安全。
技术实现要素:
本发明要解决的技术问题是提供本一种坠物检测装置及检测方法,可以克服现有技术的不足。
为解决上述技术问题,本发明是通过以下技术方案实现的:一种坠物检测装置,它包括检测装置组和与之连接的计时器,所述检测装置组包括从下层至上层依次相对设置在待检测区域的第一检测装置、第二检测装置、...、第n检测装置;在待检测区域下层设有接物装置,且所述第一检测装置设置在接物装置的接物口处;所述检测装置组、计时器和接物装置均与控制其协作的单片机连接,并且所述单片机与远程监测终端连接。
前述检测装置组为红外对管或超声波传感器。
在前述待检测区域下层开设有槽腔a,所述接物装置固连在槽腔a内,所述接物装置包括网兜,其通过伸缩式支架与步进电机连接;所述槽腔a底部为倾斜设置的坠物放置区;所述网兜底部为前高后低的倾斜网底,并且在倾斜网底后下方设有坠物释放口。
前述单片机为stm32单片机或stc单片机,其与lcd1602显示器连接。
一种坠物检测方法,其包括以下步骤:
s1、根据待检测区域的实际因素进行所述坠物检测装置的安装操作,完成后启动检测装置组进行实时检测;
s2、在远程终端上构建坠物预警等级数据库,
所述坠物预警等级数据库内包括坠物频率数据库、坠物数量数据库及预警分析数据库;
s3、根据坠物即时触发检测装置组,启动计时器并使步进电机驱动网兜达到指定接收位置,记录坠物个数、坠物频率并通过计时器记录坠物下落时间t;
s4、通过坠物下落时间t计算出坠物高度h;
s5、将检测信息发送至远程终端,根据坠物高度判断出坠物点,并且根据坠物频率和坠物个数判断预警等级。
前述步骤s1中,对于待检测区域为边坡,根据边坡各区域的稳定性和地质因素,评估出坠物风险较高区域,并根据坠物风险较高区域进行检测装置组的布置;对于待检测区域为高楼层,坠物风险较高区域为窗户及易发生外墙体脱落区域。
前述步骤s3中,当有坠物时立即触发相对坠物最近的检测装置,同时启动计时器并使步进电机驱动网兜达到指定接收位置,当坠物进入网兜时触发设置在网兜接物口的第一检测装置,停止计时和记录坠物个数、坠物频率,同时释放网兜内坠物并由步进电机驱动网兜收回。
前述计时器的中断时间为1ms。
前述步骤s4中,所述坠物高度h的算法表达式为:
其中,t为坠物下落的时间。
前述步骤s5中,远程终端接收并储存坠物高度h、坠物个数及坠物频率数据,并与坠物预警等级数据库中的预警参数进出对比,通过坠物高度h判断出坠物区域,并通过对比分析得出不同等级的预警。
与现有技术比较,本发明公开一种坠物检测装置,其包括检测装置组和与之连接的计时器,所述检测装置组分布在待检测区域上,包括从待检测区域下层至上层依次相对设置的第一检测装置、第二检测装置、...、第n检测装置;在待检测区域下层设有接物装置,且所述第一检测装置设置在接物装置的接物口处;所述检测装置组、计时器和接物装置均与控制其协作的单片机连接,并且所述单片机与远程监测终端连接;本发明还公开了基于该检测装置的检测方法,首先将检测装置组分布在待检测区域坠物风险较高区域,再通过检测装置组实时检测坠物信息,当有坠物下落时,触发相对坠物最近的检测装置,计时器开始计时,并且触发接物装置进行接物操作,当坠物抵达接物装置,触发其接物口处的检测装置,计时停止,获取坠物下落时间,从而计算得到坠物高度,同时记录坠物个数、坠物频率;最后将坠物高度、坠物个数、坠物频率数据发送并储存至远程终端,并与坠物预警等级数据库的预警参数进出分析对比,通过坠物高度h判断出坠物区域,并通过对比分析得出不同等级的预警,便于后续防护措施的制定和迅速找到需要加固区域。
本发明结构简单,成本低廉,操作简单,灵活性好,可以进行各种高空坠物的实时检测,检测精度高,具体地,它有以下有益效果:
(1)本发明可用于边坡检测,进行智能化实时检测,并将检测结果及时反馈到远程终端,让相关边坡维护部门及时、清楚找到边坡失稳区域和了解失稳严重程度,可以在短时间内制定维护措施,及时完成边坡加固,可以有效减少物力、人力和时间的投入;通过检测装置组进行精确、实时检测坠物,并且所述检测装置组根据边坡的实际因素进行布置,实现整个边坡坠物风险较高区域的动态检测,实用性强;并且通过接物装置可以收纳边坡坠物,预防坠物落入道路或砸到出行车辆,有效保证了道路交通顺畅性和行车安全性。
(2)本申请还可以用于高楼层在建设和使用过程中的高空坠物动态检测,可以准确检测高楼层坠物并进行坠物接收,有效保证市民和行车安全性,同时通过远程终端便于有关物管部门的管理和楼层维修工作。
附图说明
图1是本发明的结构示意图。
图2是图1中接物装置的安装结构示意图。
图3是本发明电路原理图。
图4是本发明的工作流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述:
如图1和图2所示,一种坠物检测装置,它包括检测装置组1和与之连接的计时器2,所述检测装置组1包括从下层至上层依次相对设置在待检测区域的第一检测装置101、第二检测装置102、...、第n检测装置103;在待检测区域下层设有接物装置3,且所述第一检测装置101设置在接物装置3接物口处;所述检测装置组1、计时器2和接物装置3均与控制其协作的单片机4连接,并且所述单片机4与远程监测终端5连接。
所述检测装置组1可以分布在边坡上,具体为从边坡下层至上层依次相对设置的第一检测装置101、第二检测装置102、...、第n检测装置103;所述第一检测装置101设置在接物装置3接物口处;通过所述检测装置组1实时检测坠物信息,并输出相应的触发信号至单片机4,由其控制接物装置3进行接物操作,同时控制计时器2记录坠落时间,并且实现所述单片机4与远程监测终端5之间的数据交互。
在待检测区域下层开设有槽腔a,所述接物装置3固连在槽腔a;所述槽腔a底部为倾斜设置的坠物放置区,所述接物装置3包括网兜301和控制网兜301收放的步进电机302,所述第一检测装置101设置在网兜301接物口处,所述网兜301通过伸缩式支架303固定在待检测区域下层,所述伸缩式支架303可以为现有的电动推杆机构或齿轮齿条传动机构,其通过步进电机302控制伸缩,进而实现网兜301收放;并且所述网兜301底部为前高后低的倾斜网底,并且在倾斜网底后下方设有坠物释放口,当坠物落入网兜301内,坠物受重力作用沿倾斜网底滚入槽腔a的坠物放置区,完成坠物的接收和释放。
所述单片机4为stm32单片机或stc单片机,优选为stc单片机,其稳定性性高,型号多样,通用性更好,工程建立简单,制造难度更低。所述单片机4与远程监测终端5进行通信连接,实现二者之间的通信交互。
所述单片机4还与显示模块相连,所述显示模块为lcd1602显示器6,通过lcd1602显示器6可以显示出坠物高度h数值,并进行实时共享,可用于现场坠物检测,适用范围更广。
所述检测装置组1为红外对管或超声波传感器,优选为红外对管,简单可靠,测量精度更高。
采用红外对管检测坠物时,所述红外对管呈多对设置于待检测区域上,通过触发相对坠物最近的一对红外对管和设置在接物装置3接物口处的另一对红外对管来检测坠物释放点和接物装置3之间的距离;与此同时,输出相应的触发信号至单片机,由其控制步进电机302将网兜301打开进行接物操作,具体地,当坠物释放时立即触发最接近坠物的一对红外对管,同时启动计时器并使步进电机302达到指定接收位置,当坠物进入网兜301时触发设置网兜301接物口处的一对红外对管,并停止计时和记录坠物个数、坠物频率,同时,从网兜301底部的坠物释放口释放其内坠物,并由步进电机302控制网兜301收回。
采用超声波传感器检测坠物时,其原理红外对管相似,通过设置在待检测区域上的多处超声波传感器,实时检测坠物。
或者,所述检测装置组1可以分布在高楼层的窗户及易发生外墙体脱落区域。通过检测装置组1实时检测坠物信息,并输出相应的触发信号至单片机4,由其控制步进电机302将网兜301打开进行接物操作,保证高空坠物安全。
上述各部件之间的具体连接方式见图3,图中显示有:外接电源7、开关电压调节器8、单片机4、lcd1602显示器6、检测装置组1中的第一检测装置101和第n检测装置103、脉冲输出9和下载接口10。所述外接电源7电压通过开关电压调节器lm2596-5.0v的调压电路进行调压,输出5v电压给检测装置组1、计时器2、接物装置3、单片机4和lcd1602显示器;而检测装置组1、单片机4及lcd1602显示器6之间的连接方式根据图2中一一对应的引脚接口连接即可。
所述单片机4的设计为基于编辑器keil4进行的c语言程序设计;通过串口uart通信实现单片机4与远程终端5通信,进行初始化串口,将串口发送和接收都将设置成中断方式,使用dma通信,减少cpu的负担;将所述步进电机302驱动程序做成函数,函数入口信息分别正反转、速度、步数,调用函数即可控制步进电机302的转动;所述检测装置组1的信号输出引脚与单片机4的外部中断引脚连接,引脚的中断模式都设置为下降沿,系统初始化时首先初始化定时为1ms的中断,使得外部中断接收到相应信号时启动定时标志位,即坠物释放时触发最接近坠物的一对红外对管、当坠物进入网兜301时触发设置网兜301接物口处的一对红外对管后,停止计时,最终得到坠物下落时间t,从而计算得到坠物高度h。
具体的程序如下:
#include"reg52.h"
#include"lcd1602.h"
#include"timer.h"
#include"uart.h"
#include"intrins.h"
#include"include.h"
#definemotn600//预设步进电机步数
#defineshow_t2500//显示失败的延时时间
//定义全局变量--------------------------------------------
sbitk1=p3^6;//对应板子上的三个按键
sbitk2=p3^5;
sbitk3=p3^4;
bitk1_f=0,k2_f=0;//按键判断辅助变量
bitkey1=0,key2=0;
//定义全局变量--------------------------------------------
unsignedinthigh_t=0;//实时累加时间变量
unsignedcharht_f=0;//开启、关闭计时变量
unsignedintmi=0;//小石头个数
bitget_ht_ok=0;//获取时间成功标志
unsignedintsta_t=0;//高精度时间记录,开始时间
unsignedintend_t=0;//高精度时间记录,结束时间
unsignedinth_result=0;//最终计算高度结果储存变量,单位为cm
unsignedintshow_fail=0;//显示失败时间变量
bitmotor_open=0;//电机操作标志
bitfail_f=0;//失败标志物
//其它函数
=====================================================
//--------------------------------------------------
//函数功能:外部中断0、1初始化化
//输入:无
//返回:无
//--------------------------------------------------
voidintx_init()
{
int0=1;
it0=1;//设置int0的中断类型(1:仅下降沿0:上升沿和下降沿)
ex0=1;//使能int0中断
int1=1;
it1=1;//设置int1的中断类型(1:仅下降沿0:上升沿和下降沿)
ex1=1;//使能int1中断
}
//--------------------------------------------------
//函数功能:定时器初始化程序,定时1ms
//输入:无
//返回:无
//--------------------------------------------------
voidtimer0_init()//1ms
{
auxr|=0x80;//定时器0为1t模式
//auxr&=0x7f;//定时器0为12t模式
tmod=0x00;//设置定时器为模式0(16位自动重装载)
tl0=0xcd;//设置定时初值
th0=0xd4;//设置定时初值
tr0=1;//定时器0开始计时
et0=1;//使能定时器0中断
}
//--------------------------------------------------
//函数功能:延时函数,单位为ms
//输入:延时时间tms
//返回:无
//--------------------------------------------------
voiddelayms(unsignedintt)//@11.0592mhz
{
unsignedchari,j;
while(t--)
{
i=11;
j=190;
do
{
while(--j);
}while(--i);
}
}
//--------------------------------------------------
//函数功能:控制步进电机
//输入:方向,速度,步数,
//返回:无
//--------------------------------------------------
sbiten=p1^5;
sbitdir=p1^4;
sbitcw=p1^3;
voidmotor_con(unsignedcharfx,unsignedcharmot_v,unsignedintmot_n)
{
unsignedchartemp;
mot_v=100;
mot_n=600;
en=0;//使能电机
dir=fx;
while(mot_n--)
{
if(mot_n==300)
if(get_ht_ok==1)//电机还没有转到
{
fail_f=1;//标记为失败
}
cw=1;//高电平
temp=mot_v;
while(temp--)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
if(fx==1)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
cw=0;//低电平
temp=mot_v;
while(temp--)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
en=0;
}
//--------------------------------------------------
//函数功能:显示计时,单位为ms
//输入:时间
//返回:无
//--------------------------------------------------
voidshow_mst(unsignedinttemp)
{
lcd_pos(0xc9);
_nop_();
lcd_wdat('0'+(unsignedchar)((temp/1000)));
_nop_();
lcd_wdat('0'+(unsignedchar)((temp/100)%10));
_nop_();
lcd_wdat('0'+(unsignedchar)((temp/10)%10));
_nop_();
lcd_wdat('0'+(unsignedchar)(temp%10));
}
unsignedintget_h(unsignedintt);
//============主函数
=====================================================
voidmain()
{
//定义相关变量-------------------------------------
u8i=0;
delayms(500);
//系统初始化---------------------------------------
uart_init();delayms(100);//初始化串口
timer0_init();delayms(100);//初始化定时器
intx_init();delayms(100);//初始化外部中断
lcd_init();delayms(100);//初始化lcd
lcd_writebyte(0x01,"h=0.00m");
lcd_writebyte(0x0a,"n=000");
lcd_writebyte(0xc7,"t=0000ms");
delayms(100);//初始化lcd
en=0;
delayms(500);
sendstring("systeminitok!\r\n");//串口提示系统初始化完成
//开启总中断---------------------------------------
ea=1;
while(1)
{
//发现一个小石头
if(high_t>1400||get_ht_ok==1||fail_f==1)
{
ht_f=0;
//发现小石头,但没有落到指定位置
if(high_t>1400)
{
show_fail=show_t;
lcd_writebyte(0xc1,"fail!");
motor_con(1,10,motn);//收电机
lcd_writebyte(0x01,"h=----m");
}
//发现小石头,但是没有落到框里
elseif(fail_f==1)
{
show_fail=show_t;
lcd_writebyte(0xc1,"fail!");
h_result=get_h(high_t);//计算高度
show_dat(h_result,mi);//刷新显示
motor_con(1,10,motn);//收电机
}
//发现小石头,且落到指定位置
elseif(get_ht_ok==1)
{
h_result=get_h(high_t);//计算高度
mi++;//记录小石头个数
show_dat(h_result,mi);//刷新显示
motor_con(1,10,motn);//收电机
}
show_mst(high_t);
//清空所有参数
fail_f=0;
high_t=0;
get_ht_ok=0;
}
elseif(ht_f==1)
{
if(motor_open==1)//步进电机操作
motor_con(0,10,motn);
motor_open=0;
show_mst(high_t);//显示实时时间
delayms(100);
}
delayms(1);
//清空显示接收失败字符
if(show_fail<10&&show_fail>1)
lcd_writebyte(0xc1,"");
}
}
#definemg9.8l//重力加速度
#definekt1.32l//实际高度修正比例,修改此参数可计算得正确的高度
//--------------------------------------------------
//函数功能:获取高度
//输入:时间,理论单位为ms
//返回:高度,单位为厘米
//--------------------------------------------------
unsignedintget_h(unsignedintt)
{
doubleh_temp1;
t=t*kt;
h_temp1=0.5*mg*(t/100.0)*(t/100.0);
if(h_temp1>998)h_temp1=998;
return(unsignedint)(h_temp1);
}
//中断函数
=====================================================
//--------------------------------------------------
//函数功能:定时器0中断服务程序
//输入:无
//返回:无
//--------------------------------------------------
voidtm0_isr()interrupt1using1//定时器t0中断入口
{
if(ht_f)high_t++;
if(show_fail>0)show_fail--;
//k1按键上升沿判断
if(k1==0&&k1_f==0)
k1_f=1;
elseif(k1==1&&k1_f==1)
{
k1_f=0;
key1=1;
}
//k2按键上升沿判断
if(k2==0&&k2_f==0)
k2_f=1;
elseif(k2==1&&k2_f==1)
{
k2_f=0;
key2=1;
}
//k3软件复位
if(k3==0)
{
iap_contr&=~0x40;//软件复位后直接执行用户代码
iap_contr|=0x20;//软件复位
}
}
//--------------------------------------------------
//函数功能:外部中断0中断服务程序,对应实物中下方光电门
//输入:无
//返回:无
//--------------------------------------------------
voidexint0()interrupt0//int0中断入口
{
if(ht_f==1)
{
ht_f=0;//关闭定时
get_ht_ok=1;
motor_open=0;
}
}
//--------------------------------------------------
//函数功能:外部中断1中断服务程序,对应实物中上方光电门
//输入:无
//返回:无
//--------------------------------------------------
voidexint1()interrupt2//int1中断入口
{
if(ht_f==1)return;
ht_f=1;//启动定时
motor_open=1;
}
见图4,一种基于上述坠物检测装置的检测方法,其具体包括以下步骤:
s1、将所述的坠物检测装置安装在待检测区域,启动检测装置组1进行实时检测;
s2、在远程终端5上构建坠物预警等级数据库,
所述坠物预警等级数据库包括坠物频率数据库、坠物数量数据库及预警分析数据库;
s3、当有坠物时立即触发检测装置组1,启动计时器2并使步进电机302驱动网兜301达到指定接收位置,通过计时器2记录坠物触发的第一个检测装置和最后一个检测装置之间的时间差,得到坠物下落时间t,并记录坠物个数;
s4、通过坠物下落时间t计算出坠物高度h,并通过lcd1602显示器6显示出来。
s5、将检测信息发送至远程终端5,根据坠物高度h判断出坠物点,并且根据坠物频率和坠物个数进行不同程度的预警。
步骤s1中,待检测区域为边坡,则根据边坡的实际因素进行检测装置组1的布置,所述边坡的实际因素为边坡各区域的稳定性和地质因素,评估出坠物风险较高区域,并根据坠物风险较高区域进行检测装置组1的布置;待检测区域为高楼层,则坠物风险较高区域为窗户及易发生外墙体脱落区域。
步骤s3中,当有坠物时立即触发相对坠物最近的检测装置,同时启动计时器2,并使步进电机302驱动网兜301打开达到指定接收位置,当坠物进入网兜301时触发其接物口处的检测装置,停止计时并记录坠物个数,同时坠物从网兜301倾斜网底后下方的坠物释放口滚入槽腔a的坠物放置区内,并由步进电机302驱动网兜301收回。
所述计时器2的中断时间为1ms,具体地,当触发相对坠物最近的检测装置时,计时器开始计时,当成功触发网兜301接物口处的检测装置时,计时器2在1ms内中断,最终得到坠物下落时间t。
步骤s4中,所述坠物高度h的算法表达式为:
其中,t为坠物下落的时间,由计时器2获取。
步骤s5中,远程终端5接收并储存坠物高度h、坠物个数及坠物频率数据,并与坠物预警等级数据库中的预警参数进出对比,通过坠物高度h判断出坠物区域,并通过对比分析得出不同等级的预警,便于后续防护措施的制定和迅速找到需要加固区域。