基于紅外技術(shù)的AGV控制
摘 要: 提出一種應(yīng)用發(fā)射紅外線的電視機(jī)遙控器來控制小車運(yùn)行方向和速度的方法,并設(shè)計了AGV系統(tǒng)的硬件電路和軟件程序。實(shí)驗(yàn)表明,在Windows環(huán)境下運(yùn)行,通過C語言編程器AVR-GCC和其他的開放源工具,AGV能夠很好地實(shí)現(xiàn)轉(zhuǎn)向和避障控制。
關(guān)鍵詞: RC5代碼;AVR-GCC
無線遙控是指利用無線電波、紅外線、超聲波等作為信息傳輸?shù)妮d體,在空間進(jìn)行信息傳輸,實(shí)現(xiàn)對目標(biāo)的控制。由于紅外線的波長小于其他無線電波的波長,因此紅外線遙控不會影響到其他電器設(shè)備。此外,紅外線為不可見光,對環(huán)境影響較小且具有很強(qiáng)的隱蔽性和保密性,其遙控器結(jié)構(gòu)簡單、成本低廉、抗干擾能力強(qiáng)、工作性能可靠。
紅外遙控的小車(AGV)的技術(shù)要求:
(1)使用遙控器控制小車所產(chǎn)生的紅外信號對周圍其他的電子電器設(shè)備不產(chǎn)生干擾,具有較好的電磁兼容性。
(2)在以小車為圓心、半徑為2~4 m的范圍內(nèi),遙控器輸出命令(依靠光線條件、障礙物、天花板表面和安裝在設(shè)備頂端的擴(kuò)展板)都會被小車檢測到,并且按規(guī)定執(zhí)行,具有很強(qiáng)的信號接收能力。
(3)小車可根據(jù)控制器輸出命令進(jìn)行各種運(yùn)動,如:勻速向前向后,向前左轉(zhuǎn)或右轉(zhuǎn),向后左轉(zhuǎn)或右轉(zhuǎn),加速度運(yùn)動。
(4)為保護(hù)設(shè)備安全,通過中斷設(shè)置小車的最大速度和最大加速度,一旦超過最大速度和加速度的閾值,小車自動停止。
(5)從軟件的平臺上,對于輸入程序,需要Java 6的安裝環(huán)境;對于Atmel單片機(jī),WinAVR是一套可執(zhí)行的、開放源軟件開發(fā)工具,它允許在Windows環(huán)境下運(yùn)行C語言編程器(AVR-GCC)和其他的開放源工具[1]。
1 基本原理
遙控器選用的是普通的電視機(jī)或音響的遙控器,其特點(diǎn)是價格低廉,絕大多數(shù)都可以通過RC5進(jìn)行代碼編程。首先要閱讀針對設(shè)置使用RC5代碼遙控的指南。如果RC5代碼不在代碼表上,可以測試一些其他的不同的廠家產(chǎn)品。其工作原理圖如圖1所示。
用紅外接口來傳輸IR信號。在小車面板上安裝兩個傳輸二極管指向上面的天花板,從天花板和其他物體或視線范圍內(nèi)反射的光線進(jìn)行通信。傳送范圍限制在距離為2~4 m的室內(nèi)(依靠光線條件、障礙物、天花板表面和安裝在設(shè)備頂端的擴(kuò)展板)??梢酝ㄟ^添加更多的IR LED來擴(kuò)展通信范圍,例如通過帶有巨大電容器和一個小的串聯(lián)電阻的MOSFET來控制。同步發(fā)生的操作被task_ACS()函數(shù)所控制,這個函數(shù)頻繁地從主函數(shù)中被調(diào)用,目的是用來處理IR信號的接收(額外管理紅外通信的傳輸)。
2 硬件組成
2.1 硬件結(jié)構(gòu)原理
AGV的硬件組成主要由ATMEGA32的電路板、紅外線接收器、遙控器以及電源等構(gòu)成,ATMEGA32電路板集成有A/D、D/A轉(zhuǎn)換設(shè)備,可將采集進(jìn)來的模擬量轉(zhuǎn)化為數(shù)字量,通過用戶編寫的程序進(jìn)行運(yùn)算。其硬件電路結(jié)構(gòu)原理圖如圖2所示。
2.2 信號接收裝置
信號接收裝置主要由二極管、TSOP34836芯片以及相應(yīng)的電路構(gòu)成,如圖3所示。
3 軟件設(shè)計
紅外線遙控器通過RC5代碼傳輸數(shù)據(jù),而RC5數(shù)據(jù)包包含了設(shè)備地址、鍵盤編碼器和一個觸發(fā)器。5位的設(shè)備地址告訴哪個設(shè)備(如電視機(jī)、錄像機(jī)、或高保真音響等)被遙控器控制。而對于本文的使用,設(shè)備地址也可以用來滿足一些單獨(dú)設(shè)備的使用。6位的編碼器附和按鍵遙控允許傳輸其他的數(shù)據(jù),但對于每個傳輸僅僅提供6位編碼器附和按鍵遙控。
在AVR-GCC環(huán)境下,RC5數(shù)據(jù)包可以通過使用void IRCOMM_sendRC5(unit8_t adr,unit8_t data)函數(shù)[2]傳輸。其中,adr相當(dāng)于設(shè)備地址;data相當(dāng)于鍵盤編碼器。參數(shù)adr允許在重要的位(MSB)通過申請常量TOGGLEBIT來設(shè)置觸發(fā)位,方式如下:IRCOMM_sendRC5(12|TOGGLEBIT,40)[2];這個指令將通過地址12傳輸一個RC5數(shù)據(jù)包給設(shè)備,激活觸發(fā)位并且以40作為數(shù)據(jù)值,如IRCOMM_sendRC5(12,40)。
事件處理程序可以管理RC5的數(shù)據(jù)接收,只要RC5數(shù)據(jù)包接收,事件處理程序?qū)⒆詣拥乇籺ask_ACS()函數(shù)調(diào)用。例如寫一個程序,程序的要求是如果機(jī)器人接收到鍵盤編碼4號鍵,小車會向左轉(zhuǎn);接收到鍵盤編碼6號鍵則向右轉(zhuǎn)。
對于事件處理程序規(guī)定必須相應(yīng)采用void receiveRC5Data(RC5data_t rc5data)形式[2],但也可以自由地命名函數(shù)??梢酝ㄟ^IRCOMM_setRC5DataReadyHandler(receiveRC5Data)[2]函數(shù)允許記錄一個預(yù)定的事件處理程序。在這之后,專用的函數(shù)將被每個有效的RC5接收的代碼調(diào)用。值得一提的是:RC5data_t是專門的預(yù)定義的數(shù)據(jù)類型,包含RC5設(shè)備地址、觸發(fā)位和鍵盤編碼(分別有對應(yīng)的值),可以通過標(biāo)識符rc5data.device、rc5data.toggle_bit、rc5data.key_code[2]就像使用變量一樣地使用這些數(shù)據(jù)。程序流程圖如圖4所示。
4 測試結(jié)果
4.1 紅外發(fā)射器電器參數(shù)
(1)接收距離范圍內(nèi),通過示波器測得發(fā)射器發(fā)送脈沖的參數(shù):發(fā)射器輸出波長為λ0=400 nm。
(2)輸出波形如圖5所示,而標(biāo)準(zhǔn)的發(fā)射器對紅外電管的要求為:波長λ=940 nm,Δλ=60 nm。
4.2 小車運(yùn)行結(jié)果
AGV運(yùn)行時,程序會自動記錄下每個控制間隔內(nèi)得到的側(cè)向偏差e和方向偏差的數(shù)據(jù),圖6、圖7是根據(jù)AGV前進(jìn)時在某一時間段內(nèi)的偏差記錄的曲線。
通常紅外線遙控器遙控的對象是電視機(jī)、影碟機(jī)及音響等設(shè)備,本文設(shè)計實(shí)例說明,AGV或車輛裝備也可以使用紅外線通信裝置。如果將這個實(shí)例換個角度思考,在車輛上安裝紅外線發(fā)射器和接收器,當(dāng)紅外線接收器接收到發(fā)射器發(fā)射后反彈回來的紅外線時,就可證明前方有障礙,這就為未來的汽車發(fā)展提供了一種可能的研究方向。當(dāng)前交通事故頻繁,對社會危害嚴(yán)重,如果將這種紅外通信技術(shù)應(yīng)用于車輛的避障中,將有可能大幅降低交通事故的發(fā)生。
參考文獻(xiàn)
[1] 吳啟華.基于Windows環(huán)境下AVR-GCC示例開發(fā)[J].電訊技術(shù),2001(3):95-98.
[2] 王傳,姜華.基于RC5代碼紅外線遙控[J].通訊技術(shù), 2001,35(11):122-125.