王渝鑫,付芳芳,付盛源
(廣州城市理工學(xué)院,廣東廣州,510800)
隨著科技的發(fā)展和社會(huì)的進(jìn)步,城市人口越來越密集,相比在農(nóng)村地區(qū),城市的火災(zāi)救援工作更加危險(xiǎn)?;馂?zāi)機(jī)器人可以通過遙控探測(cè)現(xiàn)場(chǎng)情況,可以實(shí)現(xiàn)現(xiàn)場(chǎng)圖像呈現(xiàn)和煙霧濃度測(cè)量,獲取與火災(zāi)現(xiàn)場(chǎng)相關(guān)的有效數(shù)據(jù),縮短火災(zāi)現(xiàn)場(chǎng)偵測(cè)工作的時(shí)間,為火災(zāi)救援提供幫助。
基于樹莓派的火災(zāi)煙霧探測(cè)機(jī)器人小車采用樹莓派平臺(tái)作為整個(gè)系統(tǒng)的控制和運(yùn)算數(shù)據(jù)處理單元,樹莓派平臺(tái)上電后,電機(jī)驅(qū)動(dòng)操作芯片TB6612、煙霧傳感器MQ-2、成像系統(tǒng)OpenCV同時(shí)啟動(dòng),操作者通過藍(lán)牙模塊,用手機(jī)APP將其遙控至較惡劣環(huán)境中進(jìn)行煙霧濃度探測(cè)以及視頻拍攝,這些數(shù)據(jù)被實(shí)時(shí)傳給樹莓派開發(fā)板,再通過藍(lán)牙傳到APP上,操作者根據(jù)獲取到的信息,遙控機(jī)器人進(jìn)行左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、后退等運(yùn)動(dòng),以及決定是否滅火或繼續(xù)探測(cè)等行動(dòng)。該火災(zāi)探測(cè)系統(tǒng)的結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
樹莓派是一個(gè)微型的計(jì)算機(jī)系統(tǒng),它搭載了 Linux 系統(tǒng),可進(jìn)行桌面可視化操作,具有強(qiáng)大的功能,包括各種軟件的使用、視頻音樂功能等。與 Windows 系統(tǒng)相比,樹莓系統(tǒng)是開源的 Linux 系統(tǒng),這就意味著能夠讓眾多的程序員來參與編寫 Linux 底層系統(tǒng),使樹莓派的操作系統(tǒng)日趨完善。樹莓派的主控是屬于 ARM 的一種,它的數(shù)據(jù)存儲(chǔ)方式是借用了 SD 卡來完成,在控制板上配有八個(gè)接口,包括 USB 接口、WLAN 接口、HDMI 接口和電源以及音頻接口[1]。
圖2 煙霧探測(cè)模塊
本系統(tǒng)采用的圖像采集工具是OpenCV攝像頭。OpenCV是一個(gè)功能強(qiáng)大的機(jī)器視覺模塊,其上搭載了一個(gè)Micro Python解釋器[2],因此允許開發(fā)者使用Micro Python編程語言來編寫程序。本系統(tǒng)可以通過板載二自由度攝像頭來獲取現(xiàn)場(chǎng)圖像。
該煙霧探測(cè)模塊將STC89C51單片機(jī)作為主控芯片,使用煙霧傳感器MQ-2實(shí)時(shí)采集煙霧濃度,通過模數(shù)轉(zhuǎn)換器ADC0809將煙霧濃度數(shù)據(jù)轉(zhuǎn)換成數(shù)字量輸入單片機(jī)STC89C51中,之后在液晶顯示屏LCD1602實(shí)時(shí)顯示。
煙霧探測(cè)電路如圖3所示。其中,IN為MQ-2的輸出,也即為AD轉(zhuǎn)換器的輸入腳。MQ-2型煙霧傳感器輸出的是模擬電壓信號(hào),需經(jīng)過AD轉(zhuǎn)換芯片將其變換成數(shù)字量,才能輸入至單片機(jī)小系統(tǒng)STC89C51進(jìn)行處理。通常情況下MQ-2會(huì)輸出一個(gè)高電平,一旦檢測(cè)到煙霧的存在,MQ-2就會(huì)輸出低電平。MQ-2傳感器的電阻值與濃度存在著一定的關(guān)系:logR=mlogC+n(m,n均為常數(shù)),C4與R8組成了一個(gè)濾波電路,用來抑制電路中的干擾。
圖3 煙霧探測(cè)電路
小車的運(yùn)動(dòng)主要包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、剎車、左旋、右旋、巡線行駛、壁障行駛等,本系統(tǒng)采用TB6612FNG驅(qū)動(dòng)芯片來控制小車。TB6612FNG是基于MOSFET的H橋集成電路,其效率高于晶體管H橋驅(qū)動(dòng)器。相比L293D每通道平均600 m A的驅(qū)動(dòng)電流和1.2 A的脈沖峰值電流[3],它的輸出負(fù)載能力提高了一倍。相比L298N的熱耗性和外圍二極管續(xù)流電路[7],它無需外加散熱片,外圍電路簡(jiǎn)單,只需外接電源濾波電容就可以直接驅(qū)動(dòng)電機(jī),有利于減小系統(tǒng)尺寸。對(duì)于PWM信號(hào),它支持高達(dá)100kHz的頻率,相對(duì)以上兩款芯片的5kHz和40kHz也具有較大優(yōu)勢(shì)。
3.1.1 遙控主工作模式
遙控工作模式需要用到藍(lán)牙控制小車APP,此APP主要是完成對(duì)小車的控制,同時(shí)將小車的相關(guān)數(shù)據(jù)通過串口傳輸實(shí)時(shí)顯示在Android apk的界面上。本系統(tǒng)選用的是Yahboom Robot應(yīng)用控制APP,采用Python語言進(jìn)行編程。APP通過藍(lán)牙串口發(fā)送指令來控制小車的行動(dòng),比如前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、左旋、右旋和舵機(jī)的任意角度控制。遙控工作模式APP界面如圖4所示。
圖4 遙控工作模式APP界面
小車的遙控工作模式主要功能是實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、剎車、左旋和右旋等操作,以及滅火和鳴笛等功能。本系統(tǒng)采用TB6612FNG驅(qū)動(dòng)芯片來控制小車。其控制流程圖如圖5所示。
圖5 遙控工作模式
另外,APP還為小車增加了避障、巡線和尋光工作模式。APP附加功能模式選擇界面如圖6所示。
圖6 APP控制小車工作模式
3.1.2 巡線工作模式
樹莓派開發(fā)板上電后,啟動(dòng)紅外巡線功能,小車自動(dòng)巡黑線行走。巡線工作模式需要使用四路紅外傳感器,利用光的反射特性,當(dāng)紅外線發(fā)射到黑線上時(shí)會(huì)被黑線吸收,發(fā)射到其他顏色材料上會(huì)有部分反射到紅外傳感器的接收管上,所以要保證傳感器探頭的靈敏度,保證小車在運(yùn)動(dòng)過程中檢測(cè)黑線的精確度。
在軟件部分,樹莓派開發(fā)板上電后,電機(jī)GPIO和巡線傳感器初始化,并將PWM頻率設(shè)置為10kHz。利用硬件初始化函數(shù),在巡線模式運(yùn)動(dòng)函數(shù)中完成獲取黑線檢測(cè)狀態(tài),并自動(dòng)調(diào)節(jié)小車運(yùn)動(dòng)方向,包括左右大彎、左右最外側(cè)檢測(cè)、中間黑線上的傳感器微調(diào)車左右轉(zhuǎn)和4路紅外巡線模塊均檢測(cè)到黑色加速前進(jìn)。巡線工作模式軟件工作流程圖如圖7所示。
圖7 巡線工作模式軟件工作流程圖
3.1.3 避障工作模式
該工作模式用到了初始化函數(shù)和紅外避障模式運(yùn)動(dòng)函數(shù),紅外避障模式運(yùn)動(dòng)函數(shù)又包括避障傳感器獲取狀態(tài)函數(shù)和小車檢測(cè)指令運(yùn)動(dòng)函數(shù)。
系統(tǒng)上電后,將電機(jī)GPIO和紅外避障傳感器初始化,紅外傳感器若未檢測(cè)到障礙物,則直線行駛;若左邊傳感器檢測(cè)障礙物時(shí),小車向右轉(zhuǎn);若右邊傳感器檢測(cè)到障礙時(shí),小車向左轉(zhuǎn)。避障工作模式工作流程圖如圖8所示。
圖8 避障工作模式軟件工作流程圖
3.1.4 尋光工作模式
樹莓派開發(fā)板上電后,啟動(dòng)尋光行走功能,當(dāng)兩路光敏電阻均檢測(cè)到有光時(shí),小車前進(jìn);當(dāng)左側(cè)檢測(cè)到有光時(shí),小車左轉(zhuǎn);當(dāng)右側(cè)檢測(cè)到光時(shí),小車右轉(zhuǎn);當(dāng)左右兩側(cè)均未檢測(cè)到光線時(shí),小車停止。利用設(shè)備初始化函數(shù),將電機(jī)GPIO和尋光GPIO初始化,并將PWM頻率設(shè)為10kHz。在尋光運(yùn)動(dòng)函數(shù)中嵌套獲取尋光狀態(tài)函數(shù)、小車指令左轉(zhuǎn)、小車指令右轉(zhuǎn)、小車運(yùn)動(dòng)和小車停止函數(shù)來實(shí)現(xiàn)尋光行走的業(yè)務(wù)。尋光工作模式軟件流程圖如圖9所示。
圖9 尋光工作模式軟件流程圖
本系統(tǒng)利用OpenCV庫來實(shí)現(xiàn)視頻拍攝功能。上電后,啟動(dòng)藍(lán)牙連接,操作者就可以根據(jù)通過攝像頭查看當(dāng)前環(huán)境,攝像頭可以做到對(duì)物體、人臉和顏色等進(jìn)行識(shí)別,本系統(tǒng)主要用到物體識(shí)別。OpenCV攝像頭軟件流程圖如圖10所示。
圖10 OpenCV攝像頭軟件流程
3.3.1 煙霧探測(cè)器的主程序
上電后需要先給煙霧傳感器進(jìn)行預(yù)熱,進(jìn)行初始化。初始化結(jié)束后,煙霧探測(cè)器進(jìn)入待測(cè)狀態(tài),煙霧濃度大小經(jīng)ADC0832轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù),再經(jīng)顯示器顯示出來,主程序流程圖如圖11所示。
圖11 主程序設(shè)計(jì)
3.3.2 煙霧濃度讀取設(shè)置
系統(tǒng)硬件首先對(duì)各個(gè)模塊初始化,再讀取AD轉(zhuǎn)換后的實(shí)時(shí)煙霧濃度值,并判斷當(dāng)下的煙霧濃度范圍,然后執(zhí)行相應(yīng)的指示控制,判斷按鍵是否被按下,如果沒有按下,就繼續(xù)讀取AD轉(zhuǎn)換的煙霧濃度值;如果按鍵處于按下狀態(tài),則需要設(shè)置相對(duì)應(yīng)的參數(shù)值,液晶屏同時(shí)實(shí)時(shí)顯示設(shè)置的數(shù)值。煙霧濃度讀取流程如圖12所示。
圖12 煙霧濃度讀取設(shè)置
將本系統(tǒng)置于6種不同環(huán)境中進(jìn)行測(cè)試,OpenCV成像系統(tǒng)所拍攝的視頻分辨率為640×480,幀率為每秒25幀,可清楚地看到現(xiàn)場(chǎng)情況。煙霧濃度檢測(cè)的結(jié)果如表1所示。
表1 煙霧濃度測(cè)試結(jié)果
3 4 4 0 4 5 5 0 5 7 7 0 6 9 8.9 1.1
測(cè)試結(jié)果表明:此煙霧檢測(cè)器能夠準(zhǔn)確快速地檢測(cè)出環(huán)境中煙霧濃度,誤差范圍為0%~1.1%,所拍視頻能夠使操作者看清楚環(huán)境情況,達(dá)到了預(yù)期目的。
本文設(shè)計(jì)了一款集遙控、現(xiàn)場(chǎng)視頻拍攝和煙霧濃度檢測(cè)于一體的火災(zāi)探測(cè)器,本系統(tǒng)可用于在較惡劣的環(huán)境代替人進(jìn)行火災(zāi)探測(cè),采用手機(jī)APP結(jié)合樹莓派開發(fā)板進(jìn)行總控制,OpenCV攝像系統(tǒng)拍攝現(xiàn)場(chǎng)視頻,基于51單片機(jī)控制的MQ-2進(jìn)行煙霧探測(cè)。實(shí)驗(yàn)表明,整個(gè)系統(tǒng)具有低功耗以及運(yùn)行穩(wěn)定的優(yōu)點(diǎn),操作者可通過手機(jī)觀察到現(xiàn)場(chǎng)實(shí)際情況、獲取到較精確的煙霧濃度值,達(dá)到了設(shè)計(jì)目的。