李敏++劉穎
摘 要:系統(tǒng)采用Cortex-A8處理器作為控制核心,結(jié)合物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了一款智能檢測(cè)飛行器,以實(shí)現(xiàn)無(wú)人區(qū)勘察、探測(cè)、報(bào)警的功能。飛行器采用四軸飛行器,搭載傳感器、攝像頭、WiFi等模塊實(shí)現(xiàn)飛行器的探測(cè)偵察工作。設(shè)計(jì)中,在處理器內(nèi)建BOA服務(wù)器,搭載視頻流傳輸技術(shù)Mjpg-streamer以實(shí)現(xiàn)客戶端終端設(shè)備的信息及視頻查看。數(shù)據(jù)流的傳輸采用基于WiFi和2.4 G射頻的傳輸方式。數(shù)據(jù)流、視頻流的傳輸通過WiFi傳輸,手持遙控設(shè)備則通過射頻信號(hào)向飛行器發(fā)送控制指令。經(jīng)測(cè)試,飛行器飛行穩(wěn)定,可實(shí)現(xiàn)飛行姿態(tài)調(diào)整及定點(diǎn)懸停。數(shù)據(jù)流及視頻流傳輸穩(wěn)定,地面可通過PC、手機(jī)等設(shè)備進(jìn)行檢測(cè),效果良好。
關(guān)鍵詞:傳感器;四軸飛行器;BOA服務(wù)器;Mjpg-streamer;無(wú)線通信
中圖分類號(hào):TN915.41;TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)12-00-03
0 引 言
近年來,地震、山洪、泥石流等自然災(zāi)害頻繁發(fā)生,給人們的生命安全及財(cái)產(chǎn)造成了巨大損失。災(zāi)難具有不可預(yù)知性,但是災(zāi)難發(fā)生后第一時(shí)間的搜救工作卻迫在眉睫,就發(fā)生災(zāi)害的地方而言,一般地形地貌比較特殊,救援人員很難進(jìn)入,而且災(zāi)害剛剛發(fā)生,該地區(qū)的危險(xiǎn)系數(shù)極高,即使進(jìn)入受災(zāi)區(qū),也極有可能對(duì)救援人員造成人身傷害。此外,在一些特殊地區(qū),例如極寒極熱地、峽谷之類的人類很難到達(dá)的特殊地區(qū),怎樣開展勘探偵察工作也是待考慮的問題。在這種情況下,基于物聯(lián)網(wǎng)的智能檢測(cè)飛行器的優(yōu)勢(shì)便體現(xiàn)出來。該智能檢測(cè)飛行器可以看作一種智能機(jī)器人,飛行器利用對(duì)角線上的四個(gè)旋翼作為飛行引擎在空中提供動(dòng)力,由于其特殊的動(dòng)力結(jié)構(gòu),使得它具有尺寸小、重量輕、動(dòng)力足、直升直降、低空飛行等優(yōu)點(diǎn),可以做出許多高難度動(dòng)作,并能對(duì)其進(jìn)行跟蹤、定位、遙控和數(shù)字傳輸。此外,它還具備遠(yuǎn)程操控功能和自主導(dǎo)航飛行的能力。所以通過在飛行器上搭載相應(yīng)的功能模塊如視頻采集模塊、傳感器測(cè)量模塊等單元,可實(shí)現(xiàn)對(duì)飛行器的功能擴(kuò)展,實(shí)現(xiàn)許多地面單位難以實(shí)現(xiàn)的功能。設(shè)計(jì)主要分為以下三大部分:
(1)飛行器平衡、姿態(tài)控制及調(diào)整。為了在飛行過程中保持平穩(wěn)飛行,并在遭遇自然不可抗因素時(shí)做出及時(shí)調(diào)整和矯正,以便在突發(fā)情況中依然可以保證穩(wěn)定的飛行和定點(diǎn)定高懸停、低空定高飛行[1];
(2)利用攝像頭傳感器等實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)圖像及信息的采集和無(wú)線傳輸,包括飛行器的飛行狀態(tài)、飛行高度、環(huán)境數(shù)據(jù)監(jiān)測(cè)、生還者搜索等,無(wú)線傳輸方面采用WiFi和2.4 G雙模式通信,在保證傳輸帶寬的同時(shí),提高無(wú)線傳輸?shù)姆€(wěn)定性,以應(yīng)對(duì)復(fù)雜的地形特征;
(3)控制端控制飛行器的飛行,并實(shí)時(shí)顯示飛行器的狀態(tài)及災(zāi)情信息,為應(yīng)對(duì)各種突發(fā)狀況,設(shè)計(jì)系統(tǒng)采用多控制端控制方式,包括智能手機(jī)、平板電腦、筆記本、遙控器等,可以同時(shí)對(duì)飛行器進(jìn)行控制和災(zāi)情查看。
1 系統(tǒng)設(shè)計(jì)方案
智能檢測(cè)飛行器的設(shè)計(jì)原理圖如圖1所示。系統(tǒng)以Cortex-A8處理器核心作為整個(gè)系統(tǒng)的控制中心,即系統(tǒng)的主控模塊。整個(gè)系統(tǒng)由控制中心來負(fù)責(zé)調(diào)度各項(xiàng)任務(wù)的執(zhí)行,負(fù)責(zé)數(shù)據(jù)流和視頻流的采集及傳送??刂浦行耐ㄟ^無(wú)線網(wǎng)絡(luò)和地面遙控端及監(jiān)測(cè)端進(jìn)行信息交互、傳遞,從而控制飛行器的飛行模式及狀態(tài)。同時(shí)將飛行器端采集處理的視頻流發(fā)送給地面單元。此外,該模塊還將傳感器信息實(shí)時(shí)寫入XML文件中,供控制端讀取。
1.1 飛行器控制模塊
飛行控制模塊由三軸陀螺儀、加速度傳感器、重力傳感器、氣壓計(jì)、電子羅盤五部分構(gòu)成。
(1)三軸陀螺儀可在空中檢測(cè)飛行器的飛行姿態(tài),陀螺儀作為水平、垂直、俯仰、航向和角速度傳感器,可以檢測(cè)到飛行器飛行角度何時(shí)發(fā)生偏轉(zhuǎn),系統(tǒng)再通過積分算法計(jì)算出偏轉(zhuǎn)角度,從而得知飛行狀態(tài)并進(jìn)行姿態(tài)調(diào)整[2]。
(2)加速度傳感器的工作原理是利用其內(nèi)部可以通過加速度造成晶體變形產(chǎn)生電壓的特性,系統(tǒng)通過計(jì)算電壓值得知加速度的大小,通過計(jì)算法改變輸出電壓大小從而控制飛行器的加速度。系統(tǒng)可通過加速度傳感器和陀螺儀獲取飛行器在三維空間中的線性加速度,計(jì)算出當(dāng)前的飛行姿態(tài)并加以調(diào)整。
(3)重力傳感器用來測(cè)量飛行器與重力方向的夾角以判斷飛行狀態(tài)是否處于水平,此外,還能通過測(cè)量重力加速度計(jì)算出飛行器和水平面的傾斜角度。
(4)氣壓計(jì)通過計(jì)算氣壓隨時(shí)間的變化值能夠大致計(jì)算出飛行器的海拔高度,再配合超聲波傳感器從而精確確定飛行器的飛行高度。
(5)使用電子羅盤,飛行器能夠得知當(dāng)前飛行的方向,檢測(cè)飛行器是否發(fā)生了旋轉(zhuǎn),并校正當(dāng)前的飛行方向及角度。
1.2 信息采集模塊
信息采集模塊用來獲取探測(cè)地區(qū)的相關(guān)信息,包括是否有生命跡象、地區(qū)當(dāng)前溫度、飛行器飛行高度、直觀攝像信息等,其使用到的器件有超聲波測(cè)距傳感器、攝像頭、人體紅外傳感器、測(cè)溫傳感器。其中,超聲波測(cè)距模塊的工作原理是通過向外發(fā)射超聲波,并接收反射回的超聲波,根據(jù)時(shí)間差計(jì)算出測(cè)量距離。系統(tǒng)通過超聲波測(cè)距配合氣壓計(jì),精確測(cè)量飛行器的飛行高度。此外,系統(tǒng)的自動(dòng)降落功能及定高懸停功能也通過超聲波測(cè)距模塊實(shí)現(xiàn)。系統(tǒng)通過循環(huán)讀取高度信息來自動(dòng)調(diào)整螺旋槳的動(dòng)力大小,實(shí)現(xiàn)定高懸停及自動(dòng)降落。攝像頭模塊負(fù)責(zé)采集視頻信號(hào),通過視頻處理芯片并結(jié)合程序算法可以讓視頻數(shù)據(jù)處理速度加快,并充分利用網(wǎng)絡(luò)傳輸帶寬,使視頻傳輸流暢,消除視頻的跳躍感。系統(tǒng)還可以根據(jù)要求調(diào)整視頻分辨率,進(jìn)行圖像的放大縮小。人體紅外傳感器是基于紅外線技術(shù)的自動(dòng)控制模塊,可以檢測(cè)到地下57 m的人體紅外,通過該模塊來檢測(cè)是否有生命跡象,如有,則立即向控制者發(fā)出報(bào)警從而展開救援工作。
1.3 無(wú)線通信模塊
設(shè)計(jì)中,無(wú)線通信模塊主要包括串口連接的WiFi無(wú)線模塊及2.4 GHz的射頻模塊NRF24L01。通過WiFi模塊搭建AD-HOC點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),可以實(shí)現(xiàn)飛行器與地面監(jiān)控設(shè)備的通信。射頻模塊則只用于飛行器和遙控器之間的無(wú)線通信。無(wú)線通信結(jié)構(gòu)圖如圖2所示。
1.4 動(dòng)力模塊
飛行器的動(dòng)力模塊主要由無(wú)刷電子調(diào)速器和XXD 2212無(wú)刷直流電機(jī)構(gòu)成[3]。無(wú)刷電子調(diào)速器可以根據(jù)飛行器的控制信號(hào)來調(diào)節(jié)電動(dòng)機(jī)的轉(zhuǎn)速以調(diào)整飛行速度。無(wú)刷直流電機(jī)則由電動(dòng)機(jī)主體和驅(qū)動(dòng)器兩部分組成。由于無(wú)刷直流電動(dòng)機(jī)以自控方式運(yùn)行,所以不會(huì)像變頻調(diào)速下重載啟動(dòng)的同步電機(jī)那樣在轉(zhuǎn)子上另加啟動(dòng)繞組,也不會(huì)在負(fù)載突變時(shí)產(chǎn)生振蕩和失步。系統(tǒng)通過主控模塊發(fā)送控制信號(hào)到電子調(diào)速器的控制信號(hào)[4],控制四個(gè)電機(jī)不同的轉(zhuǎn)速,從而改變飛行器的飛行動(dòng)作。
1.5 控制端
手持終端設(shè)備、PC機(jī)與遙控器采用不同的無(wú)線傳輸方式與不同的傳輸機(jī)制。手持終端設(shè)備使用Android系統(tǒng),通過飛行器上搭建的BOA服務(wù)器下載飛行器上的傳感器數(shù)據(jù)XML文件,并在終端的應(yīng)用程序中進(jìn)行XML文件解析,從而讀取出實(shí)時(shí)監(jiān)控信息。PC機(jī)通過飛行器上搭建的BOA服務(wù)器可以直接讀取飛行器發(fā)送的視頻流,同樣通過解析XML文件的方式讀取飛行器上的傳感器數(shù)據(jù)。與手持終端不同的是,PC機(jī)上不需要額外安裝客戶端或配置環(huán)境,打開飛行器搭建的網(wǎng)頁(yè)即可進(jìn)行數(shù)據(jù)接收。
飛行器控制流程圖如圖3所示??刂贫撕惋w行器利用無(wú)線射頻網(wǎng)絡(luò)建立通信后,向飛行器主控模塊發(fā)送控制指令,主控模塊對(duì)指令進(jìn)行識(shí)別后,向飛行控制模塊發(fā)出相應(yīng)的信號(hào),飛行控制模塊最終控制動(dòng)力模塊對(duì)信號(hào)做出響應(yīng)。
2 系統(tǒng)功能實(shí)現(xiàn)方法
智能檢測(cè)飛行器的設(shè)計(jì)實(shí)現(xiàn)是物聯(lián)網(wǎng)應(yīng)用的典型實(shí)現(xiàn),涉及傳感器應(yīng)用、網(wǎng)絡(luò)應(yīng)用、通信、控制系統(tǒng)等各方面,是其綜合應(yīng)用的體現(xiàn)。在各功能模塊實(shí)現(xiàn)方法上,包括實(shí)現(xiàn)各傳感器功能、實(shí)時(shí)視頻采集與傳送、傳感器實(shí)時(shí)數(shù)據(jù)采集與傳送、控制核心部分BOA服務(wù)器的搭建、Mjpg-streamer的移植等。
2.1 傳感器功能實(shí)現(xiàn)
HC-SR501是基于紅外線技術(shù)的自動(dòng)控制模塊,具有全自動(dòng)感應(yīng)功能,當(dāng)有人進(jìn)入其探測(cè)范圍感應(yīng)時(shí)輸入高電平,當(dāng)離開感應(yīng)范圍時(shí)則自動(dòng)延時(shí)關(guān)閉高電平輸入低電平[5];DS18B20采用單線的接口通信方式,通信方式簡(jiǎn)單,可探測(cè)溫度范圍為-55℃至125℃;HC-SR04超聲波傳感模塊采用IO觸發(fā)測(cè)距,給一個(gè)至少10 s的高電平,模塊自動(dòng)發(fā)射8個(gè)方波,并自動(dòng)檢測(cè)是否有信號(hào)返回。有信號(hào)返回便通過IO口輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)出到接收的時(shí)間。檢測(cè)距離=(高電平時(shí)間聲速(340 m/s))/24[6]。
2.2 飛行器實(shí)時(shí)視頻采集
攝像頭將視頻數(shù)據(jù)傳送給主控模塊,主控模塊通過視頻處理芯片并加以視頻算法處理將視頻流通過WiFi發(fā)送給控制端。視頻采集流如圖4所示。
2.3 飛行器傳感器實(shí)時(shí)數(shù)據(jù)采集
主控模塊通過控制信息采集模塊中的傳感器讀取出傳感器的實(shí)時(shí)數(shù)據(jù)信息,將傳感器數(shù)據(jù)寫入XML文件,最終通過無(wú)線通信模塊發(fā)送給控制端,控制端再通過解析XML文件獲取傳感器的實(shí)時(shí)數(shù)據(jù)信息,并做出相應(yīng)顯示。數(shù)據(jù)采集流圖如圖5所示。
2.4 BOA服務(wù)器搭建
BOA服務(wù)器是一款小巧的Web服務(wù)器,裁剪的移植代碼可以達(dá)到60 KB,它支持CGI,能夠?yàn)镃GI程序fork出一個(gè)進(jìn)程來執(zhí)行。其設(shè)計(jì)目標(biāo)是速度和安全。BOA具有很高的HTTP請(qǐng)求處理速度和效率,能夠滿足多用戶的需求。所以選擇BOA服務(wù)器把傳感數(shù)據(jù)寫入XML,并通過終端讀取數(shù)據(jù)。
在配置BOA服務(wù)器的過程中,為了使其支持CGI程序的執(zhí)行,BOA需要在/etc目錄下建立一個(gè)BOA目錄,里面放入BOA的主要配置文件boa.conf。在BOA源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎(chǔ)上進(jìn)行修改[7]。
配置好BOA服務(wù)器后,需要將準(zhǔn)備好的文件放在相應(yīng)的目錄中。最后進(jìn)行相應(yīng)的服務(wù)器網(wǎng)頁(yè)設(shè)計(jì),設(shè)計(jì)過程如下:
(1)在開發(fā)板文件系統(tǒng)的根目錄下創(chuàng)建服務(wù)器網(wǎng)頁(yè)目錄 #mkdir web。
(2)編寫服務(wù)器首頁(yè),保存為index.html,將網(wǎng)頁(yè)復(fù)制到Web目錄下。
(3)編寫環(huán)境信息顯示網(wǎng)頁(yè)message.html。網(wǎng)頁(yè)通過JavaiScript技術(shù)解析當(dāng)前目錄下的message.xml文件中各采集點(diǎn)記錄的數(shù)據(jù),將信息顯示在網(wǎng)頁(yè)上以供用戶查看。
(4)編寫服務(wù)器端信息采集應(yīng)用程序。應(yīng)用程序通過打開傳感器設(shè)備獲取當(dāng)前環(huán)境信息,經(jīng)過必要處理后以XML文件編碼格式將信息保存在message.xml文件中。應(yīng)用程序不斷采集新數(shù)據(jù),刷新XML文件內(nèi)容來改變網(wǎng)頁(yè)上顯示的信息。
(5)在Web目錄下創(chuàng)建CGI程序目錄。
(6)編寫用于控制飛行的CGI程序,并保存在CGI-BIN目錄下??蛻舳送ㄟ^訪問網(wǎng)頁(yè),點(diǎn)擊網(wǎng)頁(yè)上的按鈕來調(diào)用cgi-bin應(yīng)用程序,從而實(shí)現(xiàn)飛行器的定高飛行和自動(dòng)降落。
2.5 移植Mjpg-streamer
Mjpg-streamer是一個(gè)開源軟件,用于從攝像頭采集圖像,把它們以流的形式通過基于ip的網(wǎng)絡(luò)傳輸?shù)綖g覽器播放器,Windows的移動(dòng)設(shè)備或者其他擁有瀏覽器的移動(dòng)設(shè)備都可以正常播放。
首先需要獲取jpeg庫(kù),解壓并配置源碼后拷貝庫(kù)文件到開發(fā)板文件系統(tǒng),將/home/wu/jpeg-6b/jpeg/lib/目錄下的全部文件拷貝到開發(fā)板文件系統(tǒng) /rootfs/usr/local/mjpg-streamer下,配置內(nèi)核支持中微星的ZC3XX攝像頭,編譯內(nèi)核并下載到開發(fā)板后編譯安裝mjpg-streamer,從而實(shí)現(xiàn)Mjpg-streamer的移植。
3 系統(tǒng)總工作流程
飛行器上搭載了基于物聯(lián)網(wǎng)的智能檢測(cè)系統(tǒng)的主要單元模塊。遙控器控制飛行器的起飛、降落懸停姿態(tài)調(diào)整等動(dòng)作。搭載的傳感器單元和視頻采集單元負(fù)責(zé)采集數(shù)據(jù)信息和單元給主控單元,由主控模塊進(jìn)行分析處理以達(dá)到保持穩(wěn)定飛行的目標(biāo),并將各種數(shù)據(jù)通過無(wú)線通信模塊發(fā)送給地面監(jiān)控端諸如PC、手機(jī)等,實(shí)現(xiàn)檢測(cè)數(shù)據(jù)的采集和智能化控制。系統(tǒng)總工作流圖如圖6所示。
4 結(jié) 語(yǔ)
該系統(tǒng)下的智能檢測(cè)飛行器重量輕、體積小、機(jī)動(dòng)靈活度和安全性高,設(shè)計(jì)結(jié)合當(dāng)前的嵌入式物聯(lián)網(wǎng)電子技術(shù),實(shí)現(xiàn)系統(tǒng)控制、信息采集、無(wú)線通信、網(wǎng)絡(luò)傳輸、實(shí)時(shí)視頻監(jiān)控等功能,設(shè)計(jì)使飛行器更具有針對(duì)性,在災(zāi)情發(fā)生后可以第一時(shí)間進(jìn)入災(zāi)區(qū)最危險(xiǎn)、最復(fù)雜的地方進(jìn)行災(zāi)情搜集和生命探測(cè),為救援機(jī)構(gòu)和軍隊(duì)提供更加實(shí)時(shí)的救災(zāi)信息,從而使救災(zāi)效率得到極大提高。與此同時(shí),該系統(tǒng)可以避免救援人員進(jìn)入危險(xiǎn)區(qū)域,更好的保障救援人員的生命安全。
參考文獻(xiàn)
[1]劉煥曄.小型四旋翼飛行器飛行控制系統(tǒng)研究與設(shè)計(jì)[D].上海:上海交通大學(xué),2009.
[2]聶博文,馬宏緒,王劍,等.微小型四翼飛行器的研究現(xiàn)狀與關(guān)鍵技術(shù)[J].電光與控制,2007,14(6):113-117.
[3]范承志,王宇峰,林小娥,等.一種位置無(wú)傳感器無(wú)刷直流電動(dòng)機(jī)驅(qū)動(dòng)電路[J].微電機(jī),2001,34(3):19-20.
[4]吳成富,王睿,陳懷民,等.無(wú)人機(jī)導(dǎo)航地面站軟件研究[J].機(jī)械與電子,2009(4):7-9.
[5]徐小玲,劉美.基于ZigBee的家居環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2016(1):152-155.
[6]朱博,李捍東,王小梅.基于AT89S52的智能家居控制系統(tǒng)[J].現(xiàn)代機(jī)械,2014(1):88-90.
[7]王黔川.嵌入式Linux在咪表無(wú)線通信中的應(yīng)用技術(shù)研究[D].南京:南京理工大學(xué),2008.
[8]廖嘉寶,李捍東.基于ARM的便攜式礦用智能檢測(cè)儀的設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2016,6(8):62-63.