任克強,王傳強
(江西理工大學 信息工程學院,江西 贛州 341000)
隨著視頻監(jiān)控技術的不斷進步以及網(wǎng)絡技術的不斷發(fā)展,無線視頻監(jiān)控技術以其部署簡單、易于組網(wǎng)、運行穩(wěn)定等特點[1],已被廣泛的應用在家庭、工業(yè)、農業(yè)等諸多領域[2~7]。雖然無線視頻監(jiān)控技術在視頻監(jiān)控領域展現(xiàn)出巨大優(yōu)勢,但是其移動性能較差,一般是固定攝像頭監(jiān)控某個特定的區(qū)域,監(jiān)控范圍具有一定的局限性,難以滿足一些復雜區(qū)域的監(jiān)控需求。
針對傳統(tǒng)固定攝像頭監(jiān)控方式的不足,本文將無線視頻監(jiān)控與移動平臺相結合,設計并實現(xiàn)了一種可移動的無線視頻監(jiān)控平臺。平臺采用STM32F030處理器芯片處理NRF24L01的2.4G信號和ESP8266的Internet數(shù)據(jù),實現(xiàn)兩種方式的移動控制;使用AR9331路由芯片運行OpenWrt系統(tǒng),硬件搭載USB攝像頭實現(xiàn)視頻信號采集,通過WiFi或Internet將視頻信號傳輸?shù)绞謾C或者PC端以網(wǎng)頁的方式進行顯示;通過PID算法對車體運動過程中產(chǎn)生的方向偏差進行修正,并用坐標定位算法定位和獲取車體當前的位置坐標、運行距離和當前距出發(fā)點的直線距離。
整個移動平臺的硬件主要由2個部分組成:遙控部分和車體部分。遙控部分可以通過自制遙控器和手機進行遙控。遙控器以STM32F030為核心,外接控制搖桿、按鍵和OLED屏幕,通過NRF24L01與車體部分的NRF24L01進行通信實現(xiàn)對車體的控制;手機端利用App通過網(wǎng)絡實現(xiàn)與車體端的ESP8266通信,實現(xiàn)對車體的控制。車體硬件部分以STM32F030為核心,外接用于通信的NRF24L01和ESP8266,用于車體移動的電機驅動芯片、帶動攝像頭旋轉的舵機云臺、測量信息的傳感器、與定位有關的陀螺儀和編碼器、顯示信息的OLED屏幕。本設計中移動平臺硬件框圖如圖1所示。
圖1 移動平臺硬件框圖
無線視頻監(jiān)控硬件框圖如圖2所示。主控AR9331路由芯片是一種低功耗、高性能的無線路由芯片,內部集成CPU和WiFi基帶,最高主頻高達400 MHz,最高無線傳輸速率可達150 Mbps。外圍配備8M Flash用于存儲OpenWrt系統(tǒng)和64M的DDR2內存。集成USB2.0接口,可外接USB免驅MJPEG格式輸出的攝像頭。手機或PC可以連接AR9331發(fā)出的WiFi信號,通過網(wǎng)絡進行視頻傳輸。也可以通過租賃服務器,申請動態(tài)域名實現(xiàn)遠程互聯(lián)網(wǎng)視頻監(jiān)控。預留網(wǎng)絡接口用于系統(tǒng)移植。
圖2 無線視頻監(jiān)控硬件框圖
對于攝像頭,OpenWrt支持所有免驅USB攝像頭,而免驅USB攝像頭有MJPEG和YUV兩種格式。YUV格式的攝像頭采集的視頻數(shù)據(jù)沒有經(jīng)過任何處理,視頻數(shù)據(jù)量較大,需要通過處理器將YUV格式轉換為MJPEG格式輸出,由于處理器的性能限制,在無線視頻信號傳輸時會導致較大的延遲;而MJPEG格式的攝像頭,可以將視頻信號直接進行傳輸,視頻顯示效果將會更好。因此,本設計采用USB免驅MJPEG輸出格式的攝像頭。
移動平臺軟件流程圖如圖3所示。
圖3 移動平臺軟件流程
系統(tǒng)上電,各模塊自動完成初始化配置,然后ESP8266進行聯(lián)網(wǎng)與STM32通過串口建立通信。在車體移動前通過陀螺儀獲取Z軸的角度,確定車體當前與虛擬坐標x軸的夾角,設置起始坐標(x0,y0)=(0,0)。云臺調整初始位置到攝像頭對準正前方,安裝在車體的溫濕度傳感器開始獲取數(shù)據(jù)并在車體OLED顯示,為了測試本設計在車體安裝了AM2302溫濕度傳感器,并預留接口,可根據(jù)需求增加傳感器。等待遙控端發(fā)出對車體的控制指令,對于手機App端,可以與車體進行雙向通信,在手機端對車體控制的同時,手機端也可以接收車體傳回來的傳感器數(shù)據(jù)和位置信息等,傳感器獲取的數(shù)據(jù)會實時上傳至手機端,對于位置信息,會在每次車體Z軸角度發(fā)生變化或停止移動時上傳。對于NRF遙控端,兩個NRF24L01之間只能進行單向通信,一個作為發(fā)送端,一個作為接收端,在遙控端對車體和云臺進行控制的時候,遙控端無法進行數(shù)據(jù)接收,因此需要對模式進行切換。切換方式是通過NRF遙控端的按鍵實現(xiàn),當想要獲取傳感器數(shù)據(jù)和當前位置信息時,只需要按下NRF遙控端的切換按鍵,NRF遙控端會發(fā)送切換指令到車體接收端,遙控端發(fā)送完指令后就會切換為接收模式,等待車體發(fā)回來的數(shù)據(jù),當車體端接收到切換指令后,會切換到發(fā)送模式,并將數(shù)據(jù)發(fā)送出去,等待數(shù)據(jù)發(fā)送完成,車體端自動切換回接收模式,當遙控端接收完信息后自動切換為發(fā)送模式。
OpenWrt是Linux的一個嵌入式發(fā)行版本,常用于路由器。它是一個高度自動化和模塊化的嵌入式Linux系統(tǒng),其網(wǎng)絡組件豐富、擴展性能很好。本設計將OpenWrt路由系統(tǒng)移植到AR9331系統(tǒng)板,實現(xiàn)AR9331路由器功能。
OpenWrt系統(tǒng)移植流程如圖4所示。
圖4 OpenWrt系統(tǒng)移植流程
對于一個完整的嵌入式操作系統(tǒng),一般是由U-Boot、內核、文件系統(tǒng)和應用程序組成[8]。系統(tǒng)首先運行的是U-Boot,通過U-Boot引導啟動內核,內核啟動后,掛載文件系統(tǒng),運行應用程序[9]。路由器一般都有個Web界面進行路由器設置,OpenWrt的Web界面定義為luic,可通過命令進行安裝Web界面[10]。要想使OpenWrt支持免驅的USB攝像頭,必須在系統(tǒng)上加載UVC驅動程序,可以通過make menuconfig命令進入菜單進行配置。mipg-streamer是一種可用于視頻數(shù)據(jù)采集、視頻格式轉換和視頻傳輸?shù)姆掌鬈浖?,將此軟件配置進去既可實現(xiàn)Web下的視頻監(jiān)控。所有項配置完成后,插入攝像頭,啟動系統(tǒng),即可以用手機或者PC連接系統(tǒng)發(fā)出的WiFi信號,連接成功后,通過瀏覽器登錄192.168.1.1︰8080/?action=stream便可以查看視頻。也可以通過外網(wǎng)登錄服務器生產(chǎn)的外網(wǎng)訪問地址查看視頻監(jiān)控信息。
車體定位的實現(xiàn)主要是依靠安裝在車輪的編碼器和車體的陀螺儀。為了保證定位準確,在算法中加入PID控制中的P控制,進行修正車體運動過程中產(chǎn)生的方向偏差:Turn=-Basic*Kp。(Turn:修正值,Basic:角度偏差,Kp:比例系數(shù))[11~13]。
車體初始運動方向如圖5所示。
圖5 車體初始運動
利用陀螺儀獲取車體運動前的初始角度θ0,初始點記做A,初始坐標為(x0,y0)=(0,0)。在車體第一次轉向時運動到B點,坐標為(x1,y1),利用編碼器測得AB兩點距離為L12。B點坐標計算式如式(1)所示
(1)
車體在B點轉向后繼續(xù)運動到C點,坐標為(x2,y2),坐標圖如圖6所示。
圖6 第一次轉向后運動
θ1=θ0+α1
(2)
(3)
同理,車體第n次轉向前或者停止運動時(通過獲取編碼器的速度值可以判斷車體是否處于運動狀態(tài))的坐標(xn,yn),坐標(xn,yn)的計算如下
θn-1=θn-2+αn-1
(4)
(xn,yn)=
(5)
定位算法的實現(xiàn),主要依賴STM32F030對三角函數(shù)的處理。通過選取10個不同的角度值并對每個角度分別進行50次的正弦、余弦的運算,得到STM32F030每處理一次三角函數(shù)時間如表1所示。
表1 不同角度正弦和余弦函數(shù)運算時間
通過對三角函數(shù)運算測試,STM32F030能夠較快的完成三角函數(shù)的運算。圖7所示在對184.25°進行正弦運算時,其中,一次運算所需的時間為0.607 25 ms。
圖7 184.25°正弦函數(shù)運算時間
手機和PC連接WiFi后,登錄網(wǎng)頁地址,進行實時視頻監(jiān)控。圖8所示為手機和PC對不同場景進行視頻監(jiān)控的結果。
(a) 手機顯示的監(jiān)控視頻
(b) PC顯示的監(jiān)控視頻圖8 手機和PC顯示監(jiān)控視頻
本文將移動平臺與無線視頻監(jiān)控相結合,通過NRF24L01和ESP8266實現(xiàn)了系統(tǒng)的近距離和遠距離的遙控,增加了整個系統(tǒng)的適用范圍,通過編碼器和陀螺儀實現(xiàn)系統(tǒng)坐標定位,可根據(jù)需求更換安裝在車體的傳感器,以便獲取所需數(shù)據(jù)。系統(tǒng)支持所有USB免驅MJPEG輸出格式的攝像頭,可根據(jù)用戶需求更換不同像素的攝像頭。經(jīng)過實驗測試,遙控系統(tǒng)穩(wěn)定,近、遠距離遙控均無延遲現(xiàn)象;對車體定位較為準確,誤差較??;手機和PC均可連接到AR9331發(fā)出的WiFi信號,并且通過手機和PC均可觀看監(jiān)控視頻,也可以在外網(wǎng)的情況下通過服務器生成的外網(wǎng)訪問地址觀看監(jiān)控視頻,視頻較為流暢,無卡頓現(xiàn)象。