国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenWrt開源系統(tǒng)的無線視頻監(jiān)控智能車設(shè)計(jì)

2015-07-02 08:42陶文寅
關(guān)鍵詞:舵機(jī)開源攝像頭

陶文寅

(蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院 納米技術(shù)系,蘇州215123)

引 言

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

基于以上這些原因,本文提出了一種基于開源硬件的無線遙控視頻監(jiān)控智能車的設(shè)計(jì),把開源硬件和Linux系統(tǒng)相結(jié)合,把視頻監(jiān)控車變?yōu)橐粋€(gè)帶WiFi功能的智能設(shè)備,用戶可以通過合理的系統(tǒng)配置,使智能車加入已有的WiFi網(wǎng)絡(luò),從而使用戶可以通過無線方式實(shí)現(xiàn)對智能車運(yùn)動(dòng)的控制和實(shí)時(shí)視頻監(jiān)控畫面的傳輸,解決了因某些原因?qū)е乱恍﹫鏊鶡o法進(jìn)入時(shí),對內(nèi)部環(huán)境的監(jiān)控和物資運(yùn)輸?shù)膯栴}。同時(shí),采用開源硬件也避免了硬件設(shè)備高額的設(shè)計(jì)費(fèi)用和調(diào)試費(fèi)用,為今后智能設(shè)備的開發(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ì)。而無線視頻監(jiān)控系統(tǒng)則采用目前公認(rèn)的相對穩(wěn)定的WiFi解決方案,即Atheros AR9331芯片方案,該芯片采用MIPS架構(gòu),CPU主頻達(dá)到400 MHz,并且只需要3.3 V就可以實(shí)現(xiàn)超低功耗的802.11n協(xié)議。因此對于本系統(tǒng)來說只需要一個(gè)5 V的USB接口就可以為整個(gè)系統(tǒng)實(shí)現(xiàn)供電以及程序的燒錄等功能,使得系統(tǒng)的開發(fā)極為方便。

此外在軟件運(yùn)行過程中,用戶可以通過智能系統(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的OpenWrt系統(tǒng),并基于該系統(tǒng)搭建了實(shí)時(shí)視頻傳輸系統(tǒng)——MJPEG-STREAM,用戶只需要使用HTTP接口就可以方便地實(shí)現(xiàn)實(shí)時(shí)圖像數(shù)據(jù)的傳輸。

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

圖1 系統(tǒng)結(jié)構(gòu)圖

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

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

本項(xiàng)目基于OpenWrt系統(tǒng)對MJPEG-STREAM的構(gòu)建,而OpenWrt也是一個(gè)開源的嵌入式Linux系統(tǒng),其包含3 000多個(gè)軟件包,用戶只需要通過簡單的指令就可以實(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開源庫。

OpenWrt:~#opkg install mjpeg-streamer

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

OpenWrt:~#mjpg_streamer-i"input_uvc.so/dev/video0-r 640x480"-o"output_h(yuǎn)ttp.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 Transfer)即表述性狀態(tài)傳遞,是Roy Fielding博士在2000年提出的一種軟件架構(gòu)風(fēng)格,是一種針對網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。其定義了一組體系架構(gòu)原則,開發(fā)人員可以根據(jù)這些原則設(shè)計(jì)以系統(tǒng)資源為中心的Web服務(wù),包括使用不同語言編寫的客戶端如何通過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)用戶沒有設(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è)接口來返回本系統(tǒng)包含的所有傳感器類型,然后再通過該類型獲取相應(yīng)傳感器當(dāng)前實(shí)時(shí)的數(shù)據(jù),如表3所列。

表1 攝像頭接口設(shè)計(jì)

表2 智能車運(yùn)動(dòng)接口設(shè)計(jì)

表3 傳感器實(shí)時(shí)數(shù)據(jù)接口

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

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

CGI(Common Gateway Interface)是萬維網(wǎng)技術(shù)中最重要的技術(shù)之一,是本地應(yīng)用程序與Web服務(wù)器之間的接口標(biāo)準(zhǔn)和信息傳遞的規(guī)范。通過CGI可以使Web服務(wù)器執(zhí)行本地應(yīng)用程序,并將它們的輸出發(fā)送給Web瀏覽器,使得Web頁面由單一的靜態(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)對于串口的操作非常方便,因此在接收到用戶的REST請求之后,只需要按照CGI程序的編寫規(guī)范獲取用戶的請求數(shù)據(jù),并從中解析出請求類型和請求參數(shù)即可,最后通過串口把這些請求和參數(shù)發(fā)送給ATmega32U4進(jìn)行后期處理,具體流程如圖2所示。

圖2 解析用戶請求的CGI程序流程

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

智能車控制系統(tǒng)主要包含3方面內(nèi)容,即智能車運(yùn)動(dòng)控制、攝像頭云臺(tái)控制,以及各類傳感器的數(shù)據(jù)獲取。通過接收前端用戶的指令,并經(jīng)過CGI程序的分析和傳遞,用戶就可以利用任意平臺(tái)中的HTTP訪問來控制智能車和云臺(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)目需要使用對4路步進(jìn)電機(jī)的驅(qū)動(dòng),因此采用對原來的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í)針。

表4 電機(jī)驅(qū)動(dòng)真值表

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脈沖來進(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所示。

圖3 舵機(jī)PWM與角度的關(guān)系

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

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

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

圖4 傳感器處理流程

結(jié) 語

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

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

[1]馬潮.AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2011.

[2]約翰-戴維.沃倫(John-David Warren).Arduino機(jī)器人權(quán)威指南[M].北京:電子工業(yè)出版社,2014.

[3]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

[4]王偉.基于開源軟硬件的嵌入計(jì)算平臺(tái)研究與實(shí)踐[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013(13).

[5]馬丹萍,李勇,梁勤歐.無線遙控智能小車的運(yùn)動(dòng)模擬及軌跡繪制[J].浙江師范大學(xué)學(xué)報(bào):自然科學(xué)版,2013(1).

[6]MJPG-streamer[EB/OL].[2015-04].http://sourceforge.net/projects/mjpg-streamer/.

猜你喜歡
舵機(jī)開源攝像頭
浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
攝像頭連接器可提供360°視角圖像
五毛錢能買多少頭牛
2019開源杰出貢獻(xiàn)獎(jiǎng)
含齒隙彈載舵機(jī)的全局反步模糊自適應(yīng)控制
基于dsPIC單片機(jī)的飛艇舵機(jī)控制實(shí)現(xiàn)
基于高速同步485總線通信的多通道舵機(jī)控制器設(shè)計(jì)
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
奔馳360°攝像頭系統(tǒng)介紹
台南市| 绥中县| 蓝山县| 堆龙德庆县| 准格尔旗| 虹口区| 白河县| 文登市| 屏东市| 舒城县| 靖州| 潜山县| 祥云县| 上饶县| 叙永县| 垣曲县| 稻城县| 台南市| 宣武区| 延吉市| 六枝特区| 长治县| 高雄县| 彭水| 砚山县| 温泉县| 香港 | 蒲城县| 景谷| 三台县| 乐平市| 宜黄县| 巴林右旗| 万州区| 磐安县| 措勤县| 公主岭市| 富平县| 元江| 怀仁县| 宁河县|