紅外監測是安防設計中常用的一種傳感器,通過該傳感器可以快速的探測到移動的物體,目前許多攝像頭上都集成了紅外移動偵測開關,可以在有移動物體入侵的時候快速的啟動攝像設備觀察和拍照記錄,這樣就可以有效的避免了攝像頭長期工作中浪費電能和影響其使用壽命,本節博客將基于DragonBoard410c開發板來實現通過紅外移動偵測傳感器來探測人體的運動,具體的設計如下:
一、硬件設備的準備
這里大家首先要準備的硬件設備包括一個Dragonboard 410c開發板、給開發板供電的電源、面包板和杜板線等,如下圖1所示:
圖1 DragonBoard 410c開發板及相關套件
Dragonboard 410c開發板是由高通推出的一塊面向創客群體的開發套件,體積小但是功能非常強大,具體的資料和相關的學習內容可以在http://qualcomm.csdn.net/上有詳細介紹。
然后還需要,準備一個紅外感應模塊,本文使用的是常用的HC-SR501紅外模塊,如下圖2所示,該模塊的技術參數如下:
1)工作電壓:DC5V至20V
2)靜態功耗:65微安
3)電平輸出:高3.3V,低0V
4)延時時間:可調(0.3秒~18秒)
5)封鎖時間:0.2秒
6)觸發方式:L不可重復,H可重復,默認值為H
7)感應范圍:小于120度錐角,7米以內
8)工作溫度:-15~+70度
9)PCB外形尺寸:32*24mm,螺絲孔距28mm,螺絲孔徑2mm,感應透鏡尺寸:(直徑):23mm(默認)
圖2 HC-SR501人體紅外感應模塊
以上就是所使用的硬件,開發軟件工具的準備大家可以參考http://blog.csdn.net/andymfc/article/details/52127413中的軟硬件環境的搭建過程,因為我們最終要完成對紅外感應開關的控制主要還是需要通過GPIO控制來實現,
二、軟件環境的搭建
本文在設計程序過程中,使用的是linux操作系統,Dragonboard 410c開發板linux系統的安裝和環境搭建參考https://developer.qualcomm.com/hardware/dragonboard-410c/tools上的資源和工具,下載linux鏡像和使用手冊根據使用手冊進行安裝,完成linux環境的搭建。
完成linux環境的搭建后還需要在linux環境下安裝一個QT庫,該庫的移植可以參考博客http://blog.csdn.net/andymfc/article/details/52368199,這個庫主要是為后續我們設計和開發紅外人體傳感器模塊提供相應的顯示功能,以上就是整個開發過程中的軟件環境的搭建。
三、硬件連接
準備好硬件后,我們各個硬件模塊用杜邦線進行連接,如下圖3所示。這里連接過程需要注意,供電直接從Dragoboard 410c開發板提供的5v電源給紅外感應模塊進行供電,完成連線后,如果大家手中有萬用表最好先測量一下,看是否有出現短路現象,還有一點就是在I/O口連接的過程中,不能直接將紅外模塊的輸出I/O口接到Dragoboard410c開發板上,應為開發板的I/O電壓為1.8v,而紅外模塊的輸出電壓為3.3v,直接接會導致系統工作不問題,I/O口被燒壞。
圖3 硬件連接示意圖
四、軟件設計
完成硬件連接后,接著就可以進行軟件設計了,軟件設計中主要是采用QT作為界面,然后通過調用系統函數來訪問和控制相關的GPIO口來監測和讀取紅外感應模塊輸出端的電平變化,對其輸出進行監測,具體的軟件設計與http://blog.csdn.net/andymfc/article/details/52127413GPIO程序設計一樣,只是在上層增加了QT來進行處理,在QT環境下通過一個定時器來控制GPIO訪問的頻率,然后將獲取的結果顯示到界面上,核心程序設計如下:
int get_Infrared _status(int Key){
int tmp=1;
int time=0;
Write_GPIO(Infrared_stat, 1) ;
do{
delay_ms(10);
if(Read_GPIO(infrared_stat, &tmp)==0){
time++;
}
else return -1;
if(time》=100){
break; //輸出的電平維持時間超過1s,表示探測到人體,退出檢測。
}
}while(!tmp)
if(time》=50){ //輸出電平大于0.5s認為有人體進入,不是干擾
return 1;
}
else return 0;
}
五、測試
完成軟件設計后,利用qmake工具進行交叉編譯,編譯后的文件下載到安裝了linux的Dragoboard 410c開發板,并將開發板的HDMI輸出連接到顯示器上,運行后用手在傳感器邊上移動,可以看到LED燈變亮和熄滅。
總結,本文介紹了大家如何通過Dragobard 410c開發板來實現紅外感應監測,后續大家還可以結合前面有關利用Dragobard和攝像頭實現幀測的博客,實現一個利用紅外傳感器來喚醒攝像頭工作進行基于觸發方式的拍照和監測功能。