王 茜
(山西金融職業(yè)學(xué)院 信息技術(shù)系,山西 太原 030008)
?
便攜式移動(dòng)監(jiān)控系統(tǒng)的軟硬件設(shè)計(jì)
王 茜
(山西金融職業(yè)學(xué)院 信息技術(shù)系,山西 太原 030008)
文章設(shè)計(jì)并成功實(shí)現(xiàn)了一個(gè)便攜式移動(dòng)監(jiān)控系統(tǒng),通過監(jiān)控小車自建WIFI熱點(diǎn),實(shí)時(shí)將視頻流傳輸?shù)桨沧渴謾C(jī)客戶端觀看,同時(shí)接收來自手機(jī)端的控制信號(hào)進(jìn)而執(zhí)行攝像頭云臺(tái)轉(zhuǎn)動(dòng)、行駛移動(dòng)、速度調(diào)整等動(dòng)作.文章從小車端硬件、小車端軟件、手機(jī)端軟件三個(gè)方面對(duì)系統(tǒng)進(jìn)行了介紹,并著重說明了硬件電路設(shè)計(jì)及器件選型、視頻采集壓縮傳送算法、小車與手機(jī)通信協(xié)議.實(shí)驗(yàn)證明,系統(tǒng)各項(xiàng)功能滿足設(shè)計(jì)預(yù)期,能夠較好地完成遙控小車移動(dòng)、云臺(tái)轉(zhuǎn)動(dòng)、視頻處理等工作,并且相關(guān)設(shè)備體積較小便于攜帶安裝.
便攜式;移動(dòng)監(jiān)控;視頻處理;WIFI
近年來,智能設(shè)備的研究得到了長足發(fā)展[1],其智能化程度也得到了很大提高,搭載了移動(dòng)視頻監(jiān)控平臺(tái)的智能機(jī)器人的應(yīng)用領(lǐng)域越來越廣泛[2],不僅在工業(yè)、農(nóng)業(yè)、醫(yī)療、服務(wù)等基礎(chǔ)性產(chǎn)業(yè)中應(yīng)用廣泛,而且也在反恐排爆、軍事偵察和空間探測(cè)領(lǐng)域等特殊場(chǎng)合得到很好的應(yīng)用并且表現(xiàn)突出[3].本文介紹了一個(gè)低成本的、便于組裝的可移動(dòng)便攜式監(jiān)控系統(tǒng)的軟硬件設(shè)計(jì).系統(tǒng)通過監(jiān)控小車自建WIFI熱點(diǎn),實(shí)時(shí)將視頻流傳輸?shù)桨沧渴謾C(jī)客戶端觀看,同時(shí)接收來自手機(jī)端的控制信號(hào)執(zhí)行攝像頭云臺(tái)轉(zhuǎn)動(dòng)、行駛移動(dòng)、速度調(diào)整等動(dòng)作.
設(shè)備組成上,系統(tǒng)由可移動(dòng)監(jiān)控小車、Android控制端軟件兩部分組成(見圖1).小車是整個(gè)移動(dòng)視頻監(jiān)控系統(tǒng)的核心,負(fù)責(zé)實(shí)現(xiàn)小車移動(dòng)、視頻采集、編碼、傳輸、WIFI無線通訊等功能.它使用安卓手機(jī)作為主控端,通過WIFI無線網(wǎng)絡(luò)對(duì)小車進(jìn)行移動(dòng)方向、速度的控制,小車上的攝像頭可利用云臺(tái)轉(zhuǎn)動(dòng),可以實(shí)時(shí)采集視頻圖像信號(hào),并通過無線網(wǎng)絡(luò)將視頻信號(hào)傳輸?shù)绞謾C(jī)端供人觀看.
文章將分為小車端硬件、小車端軟件、手機(jī)端軟件三部分進(jìn)行介紹.
圖1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)圖
監(jiān)控小車控制電路的上層以ARM處理器S3C2440A為核心,運(yùn)行Linux系統(tǒng),搭載無線網(wǎng)卡進(jìn)行WIFI通訊,同時(shí)使用串口與下層單片機(jī)通訊.下層51單片機(jī)接收、解析ARM處理器的通訊信號(hào)并控制電機(jī)和云臺(tái)舵機(jī)的運(yùn)動(dòng).硬件上兩層架構(gòu)的設(shè)計(jì)充分發(fā)揮了不同控制芯片的優(yōu)勢(shì),而且系統(tǒng)各組件的模塊化具有系統(tǒng)耦合性低、可拓展性強(qiáng)、系統(tǒng)穩(wěn)定性高的優(yōu)點(diǎn).
2.1 CPU選型
由于在功能設(shè)計(jì)上需要實(shí)現(xiàn)WIFI通訊和實(shí)時(shí)的視頻監(jiān)控,所以硬件上對(duì)處理器的要求比較高,上層平臺(tái)需要一個(gè)速度較快、滿足需求的處理器,這里采用了三星公司的基于ARM9架構(gòu)一款處理器.
2.2 無線網(wǎng)卡選型
無線網(wǎng)卡選擇應(yīng)該基于OpenWrt對(duì)無線網(wǎng)卡的支持列表而定.本設(shè)計(jì)中選擇基于Atheros AR9271芯片的TP-Link wn722n USB無線網(wǎng)卡.
2.3 攝像頭選型
系統(tǒng)采用了基于USB接口的視頻采集.Linux在USB攝像頭的支持方面良好,只要設(shè)計(jì)制作符合UVC規(guī)范的攝像頭,一般都能被Linux兼容.在Linux UVC官方網(wǎng)站上有一個(gè)支持Linux UVC的設(shè)備列表.本設(shè)計(jì)選用的攝像頭即為支持UVC規(guī)范的設(shè)備.
2.4 小車硬件設(shè)計(jì)
小車車體采用三輪式結(jié)構(gòu),前面兩輪負(fù)責(zé)提供動(dòng)力和方向控制,后面萬向輪負(fù)責(zé)保持車體平衡及支撐車體.小車車體材料采用堅(jiān)固、質(zhì)輕的亞克力板,其上打孔安裝控制電路.
小車運(yùn)動(dòng)的實(shí)現(xiàn)依賴于車輪上的直流電機(jī),直流電機(jī)的控制采用L298N雙H橋電機(jī)控制芯片,攝像頭角度的轉(zhuǎn)動(dòng)使用舵機(jī)來實(shí)現(xiàn).在電機(jī)和舵機(jī)控制方面,如果使用ARM處理器來控制,就需要編寫Linux系統(tǒng)中相應(yīng)的字符設(shè)備驅(qū)動(dòng)程序,增加了項(xiàng)目復(fù)雜度和不穩(wěn)定性,所以為了實(shí)現(xiàn)電機(jī)和舵機(jī)的準(zhǔn)確穩(wěn)定的控制,需要將硬件分為兩層架構(gòu),底層采用編程簡(jiǎn)便、成熟、可行性高的STC89C52RC單片機(jī)作為電機(jī)和舵機(jī)云臺(tái)的控制器.
2.5 直流電機(jī)控制
直流電機(jī)用來驅(qū)動(dòng)小車移動(dòng),其轉(zhuǎn)向和速度的控制使用L298N控制芯片實(shí)現(xiàn)(見圖2).直流電機(jī)驅(qū)動(dòng)板在L298N芯片的基礎(chǔ)上設(shè)計(jì)了外圍電路,它具有帶載能力強(qiáng)的特點(diǎn).
圖2 控制板驅(qū)動(dòng)原理圖
2.6 舵機(jī)控制
舵機(jī)用來控制云臺(tái)的轉(zhuǎn)動(dòng).舵機(jī)的控制一般需要一個(gè)20ms左右的時(shí)基脈沖,其中高電平部分用來控制轉(zhuǎn)動(dòng)角度.以180度角度伺服為例,對(duì)應(yīng)的控制關(guān)系如下.
0.5ms-----------0 度
1.0ms-----------45度
1.5ms-----------90度
2.0ms-----------135度
2.5ms-----------180度
設(shè)計(jì)中云臺(tái)使用的舵機(jī)為輝盛SG90 9G舵機(jī),控制脈沖的產(chǎn)生使用單片機(jī)編程實(shí)現(xiàn).
軟件部分涉及到單片機(jī)的串口通信及電機(jī)、舵機(jī)控制、Linux系統(tǒng)下的WIFI通訊、視頻采集、編碼等功能.根據(jù)視頻監(jiān)控小車的功能需求及技術(shù)需求,軟件部分包括無線WIFI通訊、視頻處理和小車控制三個(gè)部分.
3.1 無線WIFI通訊
WIFI通訊移植嵌入式Linux發(fā)行版利用OpenWrt實(shí)現(xiàn)[4],OpenWrt是一個(gè)開源的專用于無線路由器等網(wǎng)絡(luò)設(shè)備的Linux發(fā)行版,對(duì)于無線WIFI通訊有著完善的軟件支持.OpenWrt的設(shè)計(jì)初衷是為無線路由等設(shè)備提供一個(gè)開源、免費(fèi)、可配置性高、自由定制的網(wǎng)絡(luò)專用系統(tǒng)[5].所以,OpenWrt系統(tǒng)對(duì)市面上各種WIFI無線網(wǎng)卡芯片有著廣泛的支持.本設(shè)計(jì)所采用的TP-Link wn722n的無線SoC芯片為基于Atheros方案的AR9271芯片,OpenWrt系統(tǒng)對(duì)該芯片的驅(qū)動(dòng)支持良好.具體使用make menuconfig,在OpenWrt固件編譯過程中啟用對(duì)該型號(hào)芯片支持及無線通訊相關(guān)軟件包配置的過程這里不再贅述.
3.2 視頻處理
視頻采集壓縮傳輸采用開源的MJPG-streamer來實(shí)現(xiàn).MJPG-streamer是一個(gè)開源的視頻服務(wù)器軟件[6],該軟件內(nèi)建一個(gè)輕量級(jí)的HTTP服務(wù)器,可應(yīng)用在基于IP協(xié)議的網(wǎng)絡(luò)中,從攝像頭中獲取JPEG圖像并傳輸MJPG格式的視頻瀏覽器或者專用客戶端觀看.具體可分為視頻采集、視頻壓縮和視頻傳輸三個(gè)部分.
圖3 視頻采集流程圖
(1)視頻采集.視頻采集基本流程如圖3所示.
(2)視頻壓縮.大多數(shù)攝像頭都是以MJPG/YUV格式輸出視頻.本設(shè)計(jì)最終給瀏覽器發(fā)送的是JPEG格式的圖像,故需要把MJPEG轉(zhuǎn)換成JPEG.工程中采用的方法是,在MJPEG的幀起始標(biāo)志0xffc0之前插入Huffman表.
(3)視頻傳輸.視頻傳輸采用了并發(fā)服務(wù)器來提高性能,具體流程如圖4所示.
圖4 多線程服務(wù)器程序流程圖
3.3 小車控制
小車的電機(jī)和舵機(jī)的控制信號(hào)是通過手機(jī)先發(fā)送給ARM上的Linux系統(tǒng),然后ARM平臺(tái)再將控制信號(hào)通過串口通訊轉(zhuǎn)發(fā)給51單片機(jī).本功能采用開源的網(wǎng)絡(luò)串口轉(zhuǎn)換軟件set2net來實(shí)現(xiàn).
舵機(jī)和電機(jī)都是利用單片機(jī)產(chǎn)生PWM(脈沖寬度調(diào)制)信號(hào)分別進(jìn)行轉(zhuǎn)速、角度的控制.通過對(duì)51單片機(jī)的中斷、定時(shí)器等資源進(jìn)行編程來產(chǎn)生PWM控制信號(hào).
(1)通信協(xié)議.為了實(shí)現(xiàn)對(duì)WIFI小車的控制,就必須在Android控制端與移動(dòng)監(jiān)控小車之間預(yù)先定義好一系列指令.每一條控制指令由5個(gè)8位二進(jìn)制數(shù)構(gòu)成.表1是系統(tǒng)中定義的控制指令.
(2)云臺(tái)控制.云臺(tái)有上下和左右兩個(gè)轉(zhuǎn)動(dòng)方向,需要兩路PWM控制.但STC89C52RC單片機(jī)內(nèi)部總共只有三個(gè)定時(shí)器.其中定時(shí)器1用來做串口通訊的波特率發(fā)生器,定時(shí)器2用來做兩路電機(jī)的PWM調(diào)速,只剩下一個(gè)定時(shí)器0可以用來產(chǎn)生舵機(jī)PWM信號(hào).為了只利用一個(gè)定時(shí)器實(shí)現(xiàn)多路舵機(jī)的控制功能,這里通過計(jì)算設(shè)計(jì)了一種算法,可以只利用一個(gè)定時(shí)器0實(shí)現(xiàn)8路舵機(jī)的控制.
表1 小車控制協(xié)議定義
舵機(jī)控制中負(fù)責(zé)控制舵機(jī)角度的高電平脈沖的時(shí)間一般為0.5ms至2.5ms范圍內(nèi).所以,由于一個(gè)脈沖周期高電平的持續(xù)時(shí)間最長也只有2.5ms,所以可以把一個(gè)周期分成8部分,每個(gè)部分2.5ms.定時(shí)器0在一個(gè)20ms周期內(nèi)輪流為8路舵機(jī)服務(wù),控制每路舵機(jī)的高電平時(shí)間.
(3)電機(jī)控制.STC89C52RC中的定時(shí)器2用來控制兩個(gè)電機(jī)的轉(zhuǎn)速.這里用到了與舵機(jī)控制類似的算法,使用一個(gè)定時(shí)器2來產(chǎn)生.
手機(jī)端軟件基于Android sdk進(jìn)行開發(fā),是一款可以安裝使用在主流安卓手機(jī)上的APP,主要負(fù)責(zé)小車控制、視頻接收顯示,以及監(jiān)控信息記錄,各子系統(tǒng)的模塊結(jié)構(gòu)如圖5所示.
圖5 手機(jī)端軟件模塊圖
手機(jī)端軟件功能介紹如下,具體實(shí)現(xiàn)過程不是文章重點(diǎn),這里不再贅述.
(1)視頻接收子系統(tǒng)
視頻網(wǎng)絡(luò)傳輸模塊
為了使得視頻監(jiān)控系統(tǒng)的安卓客戶端和小車端可以進(jìn)行實(shí)時(shí)通信,傳輸模塊通過SOCKET網(wǎng)絡(luò)通信和HTTP傳輸實(shí)現(xiàn);
視頻解碼模塊
把MJPEG解碼成一幀一幀的JPEG圖像;
視頻顯示模塊
為保證視頻較為流暢,采用SurfaceView技術(shù)實(shí)現(xiàn)視頻的顯示.
(2)小車控制子系統(tǒng)
控制信號(hào)通信模塊;
用戶控制界面;
小車狀態(tài)顯示;
(3)監(jiān)控信息記錄子系統(tǒng)
負(fù)責(zé)截屏,錄像等視頻保存功能.
針對(duì)系統(tǒng)核心功能WIFI通訊和視頻采集進(jìn)行了如下實(shí)驗(yàn)內(nèi)容.具體如表2、表3所示.
表2 無線WIFI通訊部分實(shí)驗(yàn)
表3 視頻采集功能實(shí)驗(yàn)
文章介紹的便攜式移動(dòng)視頻監(jiān)控系統(tǒng)包括了無線WIFI通訊,視頻采集、壓縮、編碼和傳輸,并實(shí)現(xiàn)了監(jiān)控平臺(tái)的移動(dòng)功能.從實(shí)驗(yàn)結(jié)果可知,系統(tǒng)各項(xiàng)功能滿足設(shè)計(jì)預(yù)期,能夠較好地采集、傳送、展示和存儲(chǔ)視頻信息,并且相關(guān)設(shè)備體積較小便于攜帶安裝.當(dāng)然,系統(tǒng)在視頻壓縮效果、信號(hào)穩(wěn)定性方面還有一定不足,還需進(jìn)一步完善提高.
[1]朱兆坦.論公共安全視頻監(jiān)控系統(tǒng)的現(xiàn)狀及建設(shè)方向[J]. 信息網(wǎng)絡(luò),2010(06):45-48.
[2]薛子伯.基于WIFI的觸發(fā)式無線圖像采集系統(tǒng)的研究與設(shè)計(jì)[D].長春:吉林大學(xué),2011:3-10.
[3]張科.嵌入式運(yùn)動(dòng)物體自動(dòng)跟蹤視頻監(jiān)控器的設(shè)計(jì)實(shí)現(xiàn)[D].成都:西南交通大學(xué),2010:40-46.
[4]Christopher Hallinan.Embedded Linux Primer[M].3th Edition.Boston: Pearson Education,2011.
[5]Neil Matthew,Richard Stones. Beginning Linux Programming [M].4th Edition.Indianapolis:Wiley Publishing,2007.
[6]Vide04Linux Kernel API Reference.[EB/OL].http:// linux. bytesex.org/v412/API.html
(責(zé)任編輯:王前)
10.13877/j.cnki.cn22-1284.2016.08.005
2016-07-08
王茜,女,山西太原人,講師.
TP27
A
1008-7974(2016)04-0016-04