屈寶鵬 張喜鳳 卜文銳
摘 要: 隨著智能控制技術(shù)的發(fā)展,各種智能車不斷涌現(xiàn),在軍警特種用途、工業(yè)生產(chǎn)和日常生活等領(lǐng)域獲得了日益廣泛的應(yīng)用。首先回顧了Arduino平臺(tái)的特性,然后設(shè)計(jì)了一種以ATMEGA328單片機(jī)為核心的微控制器,采用四輪獨(dú)立驅(qū)動(dòng)的車體,設(shè)計(jì)并使用安卓手機(jī)端的監(jiān)控軟件,通過WiFi信號(hào)進(jìn)行視頻監(jiān)控和遠(yuǎn)程遙控的智能車。設(shè)計(jì)的視頻監(jiān)控智能車經(jīng)硬件驗(yàn)證,具備了自動(dòng)避障、視頻監(jiān)控、無線遙控操作等實(shí)用功能。
關(guān)鍵詞: 智能車; Arduino; 視頻監(jiān)控; ATMEGA328
中圖分類號(hào): TN609?34; TM910.6 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)19?0160?03
Abstract: With the development of intelligent control technology, intelligent car has been appeared constantly, and widely used in special purpose of military and police, industrial production, daily life and other fields. The characteristics of the Arduino platform is reviewed. An intelligent car was designed, which is taken ATMEGA328 microcontroller as the core microcontroller, used the car body with four?wheel independent drive, adopted the surveillance software of mobile phone with Android, and conducted with video surveillance and remote control by WiFi signal. The designed intelligent car of video surveillance was verified by hardware, and has the utility functions of automatic obstacle avoidance, video surveillance, and wireless remote control operation.
Keywords: intelligent car; Arduino; video surveillance; ATMEGA328
0 引 言
智能車是當(dāng)今智能機(jī)器人研究領(lǐng)域的一個(gè)重要分支,它體現(xiàn)了車輛工程、人工智能、自動(dòng)控制、計(jì)算機(jī)等多個(gè)學(xué)科領(lǐng)域的交叉和綜合,在軍警無人偵察、消防救災(zāi)探測(cè)、管道維修施工等領(lǐng)域獲得了日益廣泛的應(yīng)用[1?4]。本文設(shè)計(jì)的視頻監(jiān)控智能車,是基于ATMEGA328單片機(jī)設(shè)計(jì)的,具備自動(dòng)避障、視頻監(jiān)控、無線遙控操作等功能。
本文首先回顧了Arduino平臺(tái)和ATMEGA328單片機(jī)的特性,然后設(shè)計(jì)了一種以ATMEGA328單片機(jī)為核心微控制器,具有四輪獨(dú)立驅(qū)動(dòng)車體的視頻監(jiān)控智能車。
1 Arduino平臺(tái)
Arduino平臺(tái)由Arduino硬件開發(fā)板和Arduino IDE集成軟件開發(fā)環(huán)境兩部分組成。Arduino開發(fā)板是以Atmel微處理器為核心微控制器的硬件系統(tǒng)電路板。軟件程序(sketch)可以在IDE下編輯和編譯,通過USB接口可以上傳到Arduino板,實(shí)現(xiàn)對(duì)硬件板的編程,硬件會(huì)自動(dòng)執(zhí)行寫入的軟件[5?7]。
Arduino板是一個(gè)以AVR單片機(jī)為核心的開源硬件平臺(tái),其軟硬件都是開源的,包括Arduino平臺(tái)的電路原理圖、PCB圖等硬件信息,同時(shí)還有內(nèi)部自帶的軟件庫(kù),非常適合二次開發(fā)。Arduino的主要功能特點(diǎn)如下:
(1) 軟硬件開源,開發(fā)接口可以免費(fèi)獲得,并根據(jù)需要自行修改;
(2) 使用低價(jià)格微處理器(單片機(jī)),如ATMEGA8和ATMEGA128等,可以用USB 供電,也可以外接直流電源;
(3) 自帶Bootloader程序,也支持ISP線上燒入,將固件燒入芯片。Bootloader程序是系統(tǒng)上電后運(yùn)行的代碼,它對(duì)Arduino就像BIOS對(duì)于PC機(jī)一樣;
(4) 擴(kuò)展性強(qiáng),Arduino提供了豐富的接口,包括 USB,I2C,SPI等,可插入傳感器裝置、無線通信裝置,插入的感應(yīng)裝置可以獲得外界的光、溫度、濕度、距離等信息,無線通信裝置可方便地與其他設(shè)備進(jìn)行無線通信;
(5) Arduino的缺點(diǎn)在于它缺乏人機(jī)界面,雖然可以通過外接藍(lán)牙、WiFi 等連接無線網(wǎng)絡(luò),但用戶無法方便地操作,需要借助其他平臺(tái)進(jìn)行控制和處理。
Arduino平臺(tái)有自己的一套集成開發(fā)環(huán)境(Arduino IDE),是與硬件平臺(tái)相匹配的集成軟件開發(fā)環(huán)境?;贓clipse,它是由Java,Processing,avr?gcc等軟件寫成,它有跨平臺(tái)的兼容性,可以通過它對(duì) Arduino板進(jìn)行編程,編程語言采用 C++,被 IDE 傳遞給avr?gcc編譯器轉(zhuǎn)換成機(jī)器碼得以執(zhí)行。Arduino 官方自帶的內(nèi)容包括語言、函數(shù)、庫(kù)等,它把 AVR 單片機(jī)相關(guān)的設(shè)置都參數(shù)化了,開發(fā)者不必了解其底層的編寫就可以借此開發(fā)項(xiàng)目。用戶可以通過 IDE 用 C++編寫自己的程序(sketch),編譯通過后下載到開發(fā)板上由開發(fā)板執(zhí)行。
開發(fā)界面非常簡(jiǎn)單,如圖1所示,Arduino IDE提供了串行監(jiān)視功能,點(diǎn)擊右上角功能鍵即可即時(shí)觀測(cè)到板子與電腦的通信數(shù)據(jù)。下方的黑色窗口,顯示程序狀態(tài)和錯(cuò)誤信息。官方提供了很多模塊化的庫(kù),在設(shè)計(jì)之前只需要將其導(dǎo)入即可,另外還支持第三方庫(kù),導(dǎo)入后即可在編程中使用。endprint
2 ATMEGA328單片機(jī)
ATMEGA328是一款基于AVR先進(jìn)RISC架構(gòu)的8?bit CMOS低功耗微型處理器,共有131條指令,一個(gè)時(shí)鐘周期執(zhí)行一條指令,一條指令可以同時(shí)訪問兩個(gè)寄存器,32個(gè)8位工作寄存器直接連接到ALU上。該處理器執(zhí)行代碼效率非常高,是CISC架構(gòu)微處理器的10倍。除此之外,芯片還提供非易失性存儲(chǔ)器:32 KB FLASH, 1 KB E2PROM 和 2 KB SRAM。芯片有32條GPIO線,3個(gè)靈活的計(jì)數(shù)器,提供內(nèi)/外部終端機(jī)制,一個(gè)串行可編程UART接口、兩線I2C串行接口以及SPI串行接口等。
3 視頻監(jiān)控智能車的硬件系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的視頻監(jiān)控智能車系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
各部分的主要功能如下:
電源部分:由鋰電池組、電壓監(jiān)控、線性直流穩(wěn)壓電源組成。為了給智能車的四輪驅(qū)動(dòng)電機(jī)提供足夠的驅(qū)動(dòng)電流,并保證必要的續(xù)航里程,智能車采用3節(jié)18650規(guī)格的鋰電池串聯(lián)構(gòu)成電池組,電池組輸出電壓范圍為10.8~12.6 V。鋰電池組的電能提供給線性直流穩(wěn)壓電源,轉(zhuǎn)換為穩(wěn)定的5 V電源電壓,為智能車系統(tǒng)各部分提供電源。在鋰電池組上安裝了數(shù)字電壓表,通過監(jiān)控鋰電池組的電壓來估算剩余電量,以便適時(shí)充電,防止鋰電池組過度放電。
車體部分:為了更加靈活高效地控制車體,采用了四輪驅(qū)動(dòng)的車體結(jié)構(gòu)。每個(gè)車輪都由單獨(dú)的電機(jī)驅(qū)動(dòng),這樣的設(shè)計(jì)一方面提高了車體的動(dòng)力性能,另一方面使智能車具備了原地轉(zhuǎn)向能力,行駛軌跡的控制更加靈活。
主控部分:智能車采用配備了ATMEGA328單片機(jī)的Arduino開發(fā)板作為主控板。主控部分的主要功能包括接收自動(dòng)避障模塊的信號(hào),防止智能車誤撞障礙物;與WiFi模塊通信,處理遙控信號(hào),實(shí)現(xiàn)智能車的遠(yuǎn)程控制。自動(dòng)避障模塊使用超聲波距離傳感器,當(dāng)智能車前方出現(xiàn)無法跨越的障礙時(shí),自動(dòng)避障模塊會(huì)觸發(fā)主控板的自動(dòng)避障功能,主控板會(huì)命令智能車的四輪驅(qū)動(dòng)電機(jī)立即反轉(zhuǎn)0.5 s,抵消智能車的前進(jìn)速度,向后倒車離開障礙物。
遙控部分:為了保證遠(yuǎn)程視頻監(jiān)控所需要的視頻信號(hào)傳輸帶寬,智能車使用WiFi模塊作為視頻監(jiān)控和遠(yuǎn)程遙控的通信硬件。視頻監(jiān)控功能首先由車載攝像頭將智能車正前方的影像拍攝下來,然后通過WiFi模塊傳輸給安卓智能手機(jī)端,在手機(jī)屏幕上顯示攝像頭拍攝的畫面。遠(yuǎn)程遙控功能則是把來自安卓智能手機(jī)端的控制信號(hào)通過WiFi模塊傳輸給主控板,進(jìn)而控制智能車的行駛。為了擴(kuò)大視頻監(jiān)控和遠(yuǎn)程遙控的距離,本文設(shè)計(jì)的智能車為WiFi模塊安裝了12 dB高增益天線,使得智能車與手機(jī)端之間在無障礙情況下的視頻穩(wěn)定傳輸和遙控距離達(dá)到了25 m以上。完整的智能車硬件部分如圖3所示。
手機(jī)控制部分:為了實(shí)現(xiàn)安卓智能手機(jī)端對(duì)智能車的視頻監(jiān)控和遠(yuǎn)程遙控,本文設(shè)計(jì)的智能車使用了專門設(shè)計(jì)的安卓手機(jī)APP軟件。
4 手機(jī)端的控制軟件
安卓是目前國(guó)內(nèi)使用最為廣泛的智能手機(jī)操作系統(tǒng)之一,所以本文設(shè)計(jì)的智能車使用了安卓智能手機(jī)作為遠(yuǎn)程控制端。安卓是基于Linux內(nèi)核并開放源代碼的操作系統(tǒng),專為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái),由Google從其開發(fā)者購(gòu)買,在2007年推出,后來由開放手機(jī)聯(lián)盟支持,從此安卓系統(tǒng)開始快速發(fā)展,成為手機(jī)和平板系統(tǒng)市場(chǎng)的主要占領(lǐng)者。它包括操作系統(tǒng)、中間件和關(guān)鍵應(yīng)用程序,是真正意義上的開放移動(dòng)設(shè)備平臺(tái),第三方開發(fā)者可以用Java語言自行開發(fā)應(yīng)用軟件在安卓系統(tǒng)上使用。本文設(shè)計(jì)的安卓智能手機(jī)端控制軟件使用Java語言在安卓開發(fā)環(huán)境下編寫完成后,打包成一個(gè).apk文件,安裝到安卓智能手機(jī)上,手機(jī)端的控制界面如圖4所示,手機(jī)屏幕上全屏顯示的就是智能車上安裝的攝像頭拍攝到的畫面。
5 結(jié) 語
本文設(shè)計(jì)的視頻監(jiān)控智能車經(jīng)硬件驗(yàn)證,具備自動(dòng)避障、視頻監(jiān)控、無線遙控操作等實(shí)用功能。智能車的設(shè)計(jì)初衷在于將其應(yīng)用于危險(xiǎn)場(chǎng)合或者人員難以到達(dá)的位置進(jìn)行遠(yuǎn)程視頻監(jiān)控,有望在進(jìn)一步強(qiáng)化結(jié)構(gòu)和提高穩(wěn)定性以后推廣應(yīng)用。目前該智能車有待進(jìn)一步探討的問題在于:其一,車載攝像頭僅支持可見光環(huán)境下的拍攝,對(duì)于微光或者暗夜環(huán)境下的使用,需要更換微光攝像頭或者加裝照明光源;其二,為了擴(kuò)展通信距離使用的12 dB高增益天線導(dǎo)致智能車的高度較大,不利于通過狹窄的通道;其三,智能車的車體本身越障能力有限,缺乏復(fù)雜地形的實(shí)際應(yīng)用,系統(tǒng)穩(wěn)定性和實(shí)用性有待進(jìn)一步提高。
參考文獻(xiàn)
[1] 朱洪波,楊龍祥,于全.物聯(lián)網(wǎng)的技術(shù)思想與應(yīng)用策略研究[J].通信學(xué)報(bào),2010,31(11):2?9.
[2] DHAWAN S. Analogy of promising wireless technologies on different frequencies: Bluetooth, WiFi, and WiMax [C]// Procee?dings of 2007 the 2nd IEEE International Conference on Wireless Broadband and Ultra Wideband Communications. Sydney: IEEE, 2007: 14.
[3] BANZI M. Getting started with Arduino [M]. 2nd ed. USA: Make Books, 2011.
[4] 楊繼志,郭敬.Arduino的互動(dòng)產(chǎn)品平臺(tái)創(chuàng)新設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(4):39?41.
[5] Atmel Corporation. ATmega48PA/88PA/168PA/328PA datasheet [R]. US: Atmel Corporation, 2009.
[6] 楊旭超.基于Android終端應(yīng)用的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[7] 李曉.基于Android平臺(tái)的手持終端應(yīng)用功能開發(fā)與設(shè)計(jì)[D].武漢:湖北大學(xué),2010.endprint