當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]引入了一種基于開(kāi)源系統(tǒng)的無(wú)線視頻監(jiān)控智能車設(shè)計(jì)方案,該方案利用雙核、雙系統(tǒng)的開(kāi)源硬件來(lái)搭建智能車的基礎(chǔ)設(shè)備,再利用開(kāi)源的OpenWrt系統(tǒng)構(gòu)建基于REST API的用戶交互接口。用戶可以通過(guò)該接口控制智能車的運(yùn)動(dòng),以及獲取傳感器數(shù)據(jù),最后利用基于Web的開(kāi)源攝像頭采集系統(tǒng)MJPEG—STREAM搭建視頻監(jiān)控系統(tǒng)。本方案可降低開(kāi)發(fā)成本、提高開(kāi)發(fā)效率,具有較高的應(yīng)用價(jià)值。

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

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

引言

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

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

1 系統(tǒng)總體設(shè)計(jì)

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

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

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

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

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

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

①更新OpenWrt的軟件源。

OpenWrt:~# opkg update

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

OpenWrt:~#opkg install kmod-video-uvc

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

OpenWrt:~# opkg install mjpeg—streamer

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

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

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

http://local_ip:8080? action=snapshot

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

3 REST接口的設(shè)計(jì)

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

在本項(xiàng)目中REST接口主要實(shí)現(xiàn)3方面的應(yīng)用,分別為監(jiān)控?cái)z像頭的多角度轉(zhuǎn)動(dòng)、智能車的運(yùn)動(dòng)控制,以及各類傳感器實(shí)時(shí)數(shù)據(jù)的獲取,具體如下。

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

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

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

4 CGI程序的設(shè)計(jì)

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

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

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

5 智能車控制系統(tǒng)的設(shè)計(jì)

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

5.1 智能車運(yùn)動(dòng)系統(tǒng)的設(shè)計(jì)

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

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

5.2 攝像頭云臺(tái)系統(tǒng)的設(shè)計(jì)

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

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

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

5.3 智能車傳感器系統(tǒng)的設(shè)計(jì)

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

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

結(jié)語(yǔ)

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉