李敏++劉穎



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