• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于OpenWrt開源系統的無線視頻監(jiān)控智能車設計

    2015-07-02 08:42:52陶文寅
    單片機與嵌入式系統應用 2015年10期
    關鍵詞:舵機開源攝像頭

    陶文寅

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

    引 言

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

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

    1 系統總體設計

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

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

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

    圖1 系統結構圖

    2 MJPEG-STREAM視頻流的實現

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

    本項目基于OpenWrt系統對MJPEG-STREAM的構建,而OpenWrt也是一個開源的嵌入式Linux系統,其包含3 000多個軟件包,用戶只需要通過簡單的指令就可以實現軟件的下載、編譯、安裝和使用,具體構建步驟如下:

    ①更新OpenWrt的軟件源。

    OpenWrt:~#opkg update

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

    OpenWrt:~#opkg install kmod-video-uvc

    ③下載并安裝MJPEG-STREAM開源庫。

    OpenWrt:~#opkg install mjpeg-streamer

    ④連接攝像頭,啟動MJPEG-STREAM,并設置其輸出的分辨率和地址。

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

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

    http://local_ip:8080?action=snapshot

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

    3 REST接口的設計

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

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

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

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

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

    表1 攝像頭接口設計

    表2 智能車運動接口設計

    表3 傳感器實時數據接口

    4 CGI程序的設計

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

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

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

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

    5 智能車控制系統的設計

    智能車控制系統主要包含3方面內容,即智能車運動控制、攝像頭云臺控制,以及各類傳感器的數據獲取。通過接收前端用戶的指令,并經過CGI程序的分析和傳遞,用戶就可以利用任意平臺中的HTTP訪問來控制智能車和云臺的運動,以及獲取傳感器的數據。

    5.1 智能車運動系統的設計

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

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

    表4 電機驅動真值表

    5.2 攝像頭云臺系統的設計

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

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

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

    圖3 舵機PWM與角度的關系

    5.3 智能車傳感器系統的設計

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

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

    圖4 傳感器處理流程

    結 語

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

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

    [1]馬潮.AVR單片機嵌入式系統原理與應用實踐[M].北京:北京航空航天大學出版社,2011.

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

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

    [4]王偉.基于開源軟硬件的嵌入計算平臺研究與實踐[J].單片機與嵌入式系統應用,2013(13).

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

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

    猜你喜歡
    舵機開源攝像頭
    浙江首試公路非現場執(zhí)法新型攝像頭
    攝像頭連接器可提供360°視角圖像
    五毛錢能買多少頭牛
    含齒隙彈載舵機的全局反步模糊自適應控制
    自動化學報(2019年6期)2019-07-23 01:18:36
    基于dsPIC單片機的飛艇舵機控制實現
    電子制作(2018年1期)2018-04-04 01:48:14
    基于高速同步485總線通信的多通道舵機控制器設計
    大家說:開源、人工智能及創(chuàng)新
    開源中國開源世界高峰論壇圓桌會議縱論開源與互聯網+創(chuàng)新2.0
    開源計算機輔助翻譯工具研究
    奔馳360°攝像頭系統介紹
    孝义市| 阜康市| 巫山县| 乌拉特后旗| 张家川| 崇礼县| 儋州市| 庆元县| 镇远县| 淳安县| 平邑县| 繁峙县| 北流市| 北安市| 吉水县| 盐山县| 阿克苏市| 正蓝旗| 稷山县| 高尔夫| 南川市| 五寨县| 遂平县| 宁国市| 中方县| 拉萨市| 太白县| 琼中| 镇平县| 壤塘县| 涡阳县| 古蔺县| 固安县| 温州市| 昆明市| 鸡东县| 贵州省| 德化县| 遂昌县| 东乌珠穆沁旗| 温宿县|