<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于OPenWrt開(kāi)源系統的無(wú)線(xiàn)視頻監控智能車(chē)設計

基于OPenWrt開(kāi)源系統的無(wú)線(xiàn)視頻監控智能車(chē)設計

作者: 時(shí)間:2016-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:引入了一種基于系統的無(wú)線(xiàn)視頻監控智能車(chē)設計方案,該方案利用雙核、雙系統的硬件來(lái)搭建智能車(chē)的基礎設備,再利用系統構建基于REST API的用戶(hù)交互接口。用戶(hù)可以通過(guò)該接口控制智能車(chē)的運動(dòng),以及獲取傳感器數據,最后利用基于Web的開(kāi)源攝像頭采集系統MJPEG—STREAM搭建視頻監控系統。本方案可降低開(kāi)發(fā)成本、提高開(kāi)發(fā)效率,具有較高的應用價(jià)值。

本文引用地址:http://dyxdggzs.com/article/201610/307246.htm

關(guān)鍵詞;MJPEG—STREAM;開(kāi)源;;Atheros AR9331

引言

隨著(zhù)計算機科學(xué)技術(shù)的不斷發(fā)展,各種智能化的設備也應運而生,特別是近期無(wú)人遙控飛機新聞的頻繁曝光,從明星求婚到快遞運送,都體現了無(wú)人遙控設備將是未來(lái)產(chǎn)業(yè)發(fā)展和創(chuàng )新應用的一個(gè)新起點(diǎn)。然而目前無(wú)人機在多數情況下只用于航拍或空中測繪,而對于室內應用,如對無(wú)塵、防盜,以及環(huán)境參數要求較高的企業(yè)倉儲管理來(lái)說(shuō),無(wú)人機在續航和室內定向巡航方面就顯現出了劣勢;而對于如地震、泥石流等自然災害中常見(jiàn)的狹窄處補給物資的運輸和地下生命的探測,無(wú)人機的功能則大打折扣。

基于以上這些原因,本文提出了一種基于開(kāi)源硬件的無(wú)線(xiàn)遙控視頻監控智能車(chē)的設計,把開(kāi)源硬件和Linux系統相結合,把視頻監控車(chē)變?yōu)橐粋€(gè)帶WiFi功能的智能設備,用戶(hù)可以通過(guò)合理的系統配置,使智能車(chē)加入已有的WiFi網(wǎng)絡(luò ),從而使用戶(hù)可以通過(guò)無(wú)線(xiàn)方式實(shí)現對智能車(chē)運動(dòng)的控制和實(shí)時(shí)視頻監控畫(huà)面的傳輸,解決了因某些原因導致一些場(chǎng)所無(wú)法進(jìn)入時(shí),對內部環(huán)境的監控和物資運輸的問(wèn)題。同時(shí),采用開(kāi)源硬件也避免了硬件設備高額的設計費用和調試費用,為今后智能設備的開(kāi)發(fā)及應用提供一種新的解決思路。

1 系統總體設計

本設計采用雙核、雙系統的方式進(jìn)行架構設計,從而明確各子系統的責任,減輕硬件系統的負擔,提高各子系統的內聚性,并降低各子系統間的耦合性。其中,智能車(chē)控制系統采用基于A(yíng)VR內核的芯片,該芯片的時(shí)鐘頻率為16 MHz,具有20個(gè)數字接口、12個(gè)模擬接口,以及7個(gè)PWM接口,同時(shí)內建的USB通信功能可以省去外圍電路中UART轉USB的設計。而無(wú)線(xiàn)視頻監控系統則采用目前公認的相對穩定的WiFi解決方案,即Atheros AR9331芯片方案,該芯片采用MIPS架構,CPU主頻達到400 MHz,并且只需要3.3 V就可以實(shí)現超低功耗的802.11n協(xié)議。因此對于本系統來(lái)說(shuō)只需要一個(gè)5 V的USB接口就可以為整個(gè)系統實(shí)現供電以及程序的燒錄等功能,使得系統的開(kāi)發(fā)極為方便。

此外在軟件運行過(guò)程中,用戶(hù)可以通過(guò)智能系統提供的REST API輕松地實(shí)現與智能車(chē)系統之間的通信,并控制智能車(chē)的各種運動(dòng)、避障,甚至在智能車(chē)自動(dòng)控制和手動(dòng)控制之間進(jìn)行切換;同時(shí),在視頻監控系統中內建了基于嵌入式Linux的Open Wrt系統,并基于該系統搭建了實(shí)時(shí)視頻傳輸系統——MJPEG-STREAM,用戶(hù)只需要使用HTTP接口就可以方便地實(shí)現實(shí)時(shí)圖像數據的傳輸。

硬件方面采用了開(kāi)源的設計,通過(guò)全世界硬件工程師的不斷改進(jìn)和完善,保障了硬件系統的穩定,同時(shí)開(kāi)源設計也節約了大量的前期硬件開(kāi)發(fā)成本,提高了硬件系統的開(kāi)發(fā)效率,降低了開(kāi)發(fā)成本。而在軟件方面,其主要特點(diǎn)體現在用戶(hù)接口上,不論智能車(chē)控制系統還是視頻監控系統,均采用HTTP通信方式,可以實(shí)現對各類(lèi)終端設備的支持,如移動(dòng)終端、PC端,甚至Web端。系統結構如圖1所示。

a.jpg

2 MJPEG—STREAM視頻流的實(shí)現

MJPEG—STREAM是一個(gè)基于“運動(dòng)圖像壓縮技術(shù)”的攝像頭圖像采集系統,并且該系統通過(guò)Web方式進(jìn)行實(shí)時(shí)圖片傳輸,用戶(hù)只需要利用瀏覽器就可以實(shí)現視頻監控等工作,同時(shí)由于該系統采用開(kāi)源方式進(jìn)行開(kāi)發(fā),因此對該系統的任何修改和使用都不存在版權的問(wèn)題,降低了視頻開(kāi)發(fā)的成本,提高了開(kāi)發(fā)的效率。

本項目基于系統對MJPEG—STREAM的構建,而OpenWrt也是一個(gè)開(kāi)源的嵌入式Linux系統,其包含3000多個(gè)軟件包,用戶(hù)只需要通過(guò)簡(jiǎn)單的指令就可以實(shí)現軟件的下載、編譯、安裝和使用,具體構建步驟如下:

①更新OpenWrt的軟件源。

OpenWrt:~# opkg update

②下載并安裝UVC攝像頭驅動(dòng),安裝結束后插入攝像頭,如果在OpenWrt的/dev目錄下看到video0文件,則表示安裝成功。

OpenWrt:~#opkg install kmod-video-uvc

③下載并安裝MJPEG—STREAM開(kāi)源庫。

OpenWrt:~# opkg install mjpeg—streamer

④連接攝像頭,啟動(dòng)MJPEG—STREAM,并設置其輸出的分辨率和地址。

OpenWrt:~# mjpg_streamer-i“input_uvc.so/dev/video0—r 640x480”-o”output_http.so-p 8080-w/www/webcam”

⑤最后在瀏覽器中輸入以下地址,就可以進(jìn)行視頻監控。

http://local_ip:8080? action=snapshot

http://local_ip:8080/?action=stream

3 REST接口的設計

REST(Representational State Trans fer)即表述性狀態(tài)傳遞,是Roy Fielding博士在2000年提出的一種軟件架構風(fēng)格,是一種針對網(wǎng)絡(luò )應用的設計和開(kāi)發(fā)方式,可以降低開(kāi)發(fā)的復雜性,提高系統的可伸縮性。其定義了一組體系架構原則,開(kāi)發(fā)人員可以根據這些原則設計以系統資源為中心的Web服務(wù),包括使用不同語(yǔ)言編寫(xiě)的客戶(hù)端如何通過(guò)HTTP處理和傳輸資源狀態(tài)。目前 REST已經(jīng)成為最主要的Web服務(wù)設計模式。

在本項目中REST接口主要實(shí)現3方面的應用,分別為監控攝像頭的多角度轉動(dòng)、智能車(chē)的運動(dòng)控制,以及各類(lèi)傳感器實(shí)時(shí)數據的獲取,具體如下。

①監控攝像頭的多角度轉動(dòng):包含控制水平舵機和垂直舵機的角度,其中垂直方面以攝像頭面向地面為0°,向上為0~180°,而水平向左為0°,向右為0~180°,但當用戶(hù)沒(méi)有設定角度時(shí),則傳遞默認值10給后端進(jìn)行處理,具體如表1所列。

b.jpg

②智能車(chē)的運動(dòng)控制:包含控制車(chē)輛的前進(jìn)、后退、轉彎,以及停止等操作,同時(shí)需要用戶(hù)傳遞車(chē)輛前進(jìn)、后退、轉彎的速度值給系統,否則系統將使用默認值向后端系統進(jìn)行傳遞,如表2所列。

③各類(lèi)傳感器實(shí)時(shí)數據的獲?。阂@取傳感器參數,首先要獲取各類(lèi)傳感器的類(lèi)型,因此本系統要提供一個(gè)接口來(lái)返回本系統包含的所有傳感器類(lèi)型,然后再通過(guò)該類(lèi)型獲取相應傳感器當前實(shí)時(shí)的數據,如表3所列。

4 CGI程序的設計

在本項目中除了通過(guò)REST API接收到用戶(hù)的各類(lèi)請求之外,更為重要的是在分析和辨識這些請求后,能夠利用串口通信把這些指令發(fā)送給ATmega 32U4進(jìn)行處理,而要把REST接口和本地應用相結合的橋梁就是CGI。

CGI(Common Gateway Interface)是萬(wàn)維網(wǎng)技術(shù)中最重要的技術(shù)之一,是本地應用程序與Web服務(wù)器之間的接口標準和信息傳遞的規范。通過(guò)CGI可以使Web服務(wù)器執行本地應用程序,并將它們的輸出發(fā)送給Web瀏覽器,使得Web頁(yè)面由單一的靜態(tài)展示變?yōu)橥暾慕换ッ襟w。

首先本項目采用雙核、雙系統的方式進(jìn)行架構,因此在A(yíng)theros AR9331和之間采用串口作為數據通信的方式,另外由于在A(yíng)theros AR9331上部署了基于Linux系統的OpenWrt,而Linux系統對于串口的操作非常方便,因此在接收到用戶(hù)的REST請求之后,只需要按照 CGI程序的編寫(xiě)規范獲取用戶(hù)的請求數據,并從中解析出請求類(lèi)型和請求參數即可,最后通過(guò)串口把這些請求和參數發(fā)送給ATmega32U4進(jìn)行后期處理,具體流程如圖2所示。

c.jpg

5 智能車(chē)控制系統的設計

智能車(chē)控制系統主要包含3方面內容,即智能車(chē)運動(dòng)控制、攝像頭云臺控制,以及各類(lèi)傳感器的數據獲取。通過(guò)接收前端用戶(hù)的指令,并經(jīng)過(guò)CGI程序的分析和傳遞,用戶(hù)就可以利用任意平臺中的HTTP訪(fǎng)問(wèn)來(lái)控制智能車(chē)和云臺的運動(dòng),以及獲取傳感器的數據。

5.1 智能車(chē)運動(dòng)系統的設計

本系統中智能車(chē)運動(dòng)系統的電機驅動(dòng)采用ST公司的典型雙H橋直流電機驅動(dòng)芯片L298N,該芯片具有較強的驅動(dòng)能力,最多可提供2 A的峰值電流和46 V的峰值電壓,此外由于L298N只提供2路驅動(dòng),但本項目需要使用對4路步進(jìn)電機的驅動(dòng),因此采用對原來(lái)的2路輸出進(jìn)行擴展,把其變?yōu)?路兩相輸出,使得把左、右兩邊獨立的4路輸出合并為左、右兩邊2路的輸出,具體如表4所列。

d.jpg

在表4中EA和EB分別表示左、右電機的PWM速度,當PWM越高時(shí),智能車(chē)的運動(dòng)速度越快;I1、I2和I3、I4分別表示左、右兩個(gè)電機的轉向,0、1時(shí)為順時(shí)針,1、0時(shí)為逆時(shí)針。

5.2 攝像頭云臺系統的設計

本系統中攝像頭云臺控制系統主要采用RobotBase生產(chǎn)的RB-421一維度舵機進(jìn)行控制,該舵機可以精準地進(jìn)行水平或垂直方向轉動(dòng)角度。

舵機控制系統主要由舵機控制線(xiàn)傳送可變PWM脈沖來(lái)進(jìn)行控制。通常舵機的基準信號周期為20 ms,寬度為1.5 ms,當傳輸該PWM信號為基準信號時(shí),舵機處于最大角度和最小角度的中間位置,即90°位置。

當PWM信號的周期為0.5 ms時(shí),舵機所處的位置為0°,而當PWM信號周期為2.5 ms時(shí),舵機所處的位置為180°,如果此時(shí)傳輸的PWM信號保持不變,那么舵機的位置就不發(fā)生變化,直到所受的外力大于其自身的最大扭力,舵機才會(huì )發(fā)生角度的變化。具體PWM與角度的關(guān)系如圖3所示。

e.jpg

5.3 智能車(chē)傳感器系統的設計

本系統中采用了多種傳感器,例如通過(guò)灰度傳感器實(shí)現智能車(chē)的自動(dòng)巡視功能,通過(guò)超聲波傳感器和舵機的結合實(shí)現小車(chē)180°的避障,通過(guò)紅外傳感器實(shí)現尾部障礙物的躲避,以及通過(guò)溫濕度、煙霧等環(huán)境傳感器來(lái)獲取實(shí)時(shí)環(huán)境參數。

當用戶(hù)向智能車(chē)發(fā)送傳感器數據請求時(shí),系統通過(guò)CGI把請求發(fā)送到ATmega32U4芯片,該芯片與各類(lèi)請求類(lèi)型進(jìn)行匹配從而運行相應的傳感器處理函數,并通過(guò)串口發(fā)送至CGI程序,最后CGI程序通過(guò)Web的方式把數據呈現在用戶(hù)面前,其流程如圖4所示。

f.jpg

結語(yǔ)

本文討論了基于開(kāi)源硬件的無(wú)線(xiàn)視頻監控智能車(chē)的主要技術(shù),通過(guò)雙核、雙系統的架構提高了系統整體的穩定性,并減輕了各模塊的工作負擔;其次在本系統中用戶(hù)指令和視頻監控均采用HTTP方式進(jìn)行數據交互,使得本系統能夠通過(guò)任何終端對智能車(chē)進(jìn)行控制,擴大了系統的應用范圍和應用場(chǎng)合,擺脫了以往只有專(zhuān)用設備才能進(jìn)行控制的局面。

最后,本系統中不論軟件還是硬件都采用開(kāi)源設計,大大降低了系統開(kāi)發(fā)成本,提高了系統開(kāi)發(fā)的效率。本項目通過(guò)整合多方面的資源,為今后智能設備以及無(wú)人駕駛技術(shù)的開(kāi)發(fā)提供了一種可行的方法,具有一定的應用價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>