北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京100192
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,汽車的定位導(dǎo)航技術(shù)被利用的日益廣泛,它將GPS和現(xiàn)代通訊技術(shù)相結(jié)合,具有監(jiān)控、調(diào)度、報(bào)警、自檢等功能。它通過(guò)采集汽車的地理位置信息,設(shè)備自動(dòng)跟蹤汽車信息,以及其周邊信息,然后將其信息顯示出來(lái)。它還有一個(gè)重要的功能,那就是它存儲(chǔ)了很多交通網(wǎng)信息,包括我國(guó)城市交通圖,以及精度比較高的全國(guó)公路網(wǎng),方便自動(dòng)控制行駛路線,使其應(yīng)用前景廣闊。
自定位技術(shù)在各個(gè)領(lǐng)域有重要的應(yīng)用。在無(wú)人機(jī)上也有很強(qiáng)的應(yīng)用性,導(dǎo)航系統(tǒng)指引無(wú)人機(jī)到達(dá)正確的位置,例如農(nóng)業(yè)領(lǐng)域中有農(nóng)藥噴灑無(wú)人機(jī)等,遙感測(cè)繪無(wú)人機(jī)用此技術(shù)來(lái)測(cè)繪地理信息,此技術(shù)的開(kāi)發(fā)與應(yīng)用在國(guó)內(nèi)蓬勃發(fā)展。
設(shè)計(jì)出AVR單片機(jī)作為控制自定位控制系統(tǒng)的樞紐,該系統(tǒng)通過(guò)設(shè)計(jì)相關(guān)硬件模塊以及相關(guān)的電路的設(shè)計(jì)實(shí)現(xiàn)汽車導(dǎo)航系統(tǒng)的功能,可以根據(jù)GPS信息以及綜合車流信息,控制轉(zhuǎn)向舵機(jī)和直流驅(qū)動(dòng)電機(jī)的工作,實(shí)現(xiàn)調(diào)整小車的行駛方向和速度的目的。通過(guò)設(shè)計(jì)一些非常實(shí)用的內(nèi)容來(lái)實(shí)現(xiàn)相關(guān)功能,例如顯示車輛相關(guān)信息,該系統(tǒng)把常見(jiàn)的道路圖、停車設(shè)施、道路屬性、等信息實(shí)時(shí)傳給主控人員。有助于在不熟悉的環(huán)境中處理交通問(wèn)題,在未知的道路中,可以比較準(zhǔn)確掌握道路的情況。
首先主控人員將前往目標(biāo)輸入系統(tǒng)中,然后電腦便能根據(jù)各種道路情況選出最好的路徑,這些情況包括速度限制、紅綠燈數(shù)等,并將這些信息顯示出來(lái)讓駕駛員觀察。這樣的系統(tǒng)具有很多優(yōu)點(diǎn),它不但幫助司機(jī)避開(kāi)忙碌的交通路線,還具有利于疏散擁擠的車流。除此之外,它還有適時(shí)改變路線的功能,例如司機(jī)沒(méi)有按照設(shè)定的路線行走,新的路線會(huì)被系統(tǒng)從新設(shè)計(jì)出來(lái)。通過(guò)小車的測(cè)試,最終實(shí)現(xiàn)到達(dá)的目的地,其實(shí)驗(yàn)對(duì)實(shí)際自定位工程技術(shù)的研究具有重要借鑒意義,其對(duì)生產(chǎn)生活具有重要的影響。
系統(tǒng)主要包括AVR單片機(jī)最小系統(tǒng)[1]、電子羅盤、GPS模塊、無(wú)線信息傳輸模塊、舵機(jī)轉(zhuǎn)向模塊、電機(jī)驅(qū)動(dòng)模塊以及電源模塊,系統(tǒng)結(jié)構(gòu)如圖1所示。
首先利用GPS將數(shù)據(jù)傳給單片機(jī),單片機(jī)將當(dāng)前數(shù)據(jù)與目標(biāo)數(shù)據(jù)進(jìn)行比較,得到正確的航向,再通過(guò)電子羅盤得到車當(dāng)前的航向,通過(guò)與當(dāng)前航向與正確航向的比較,將比較結(jié)果送給單片機(jī)控制模塊進(jìn)行實(shí)時(shí)控制,為了實(shí)現(xiàn)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)和舵機(jī)運(yùn)轉(zhuǎn),需要輸出相應(yīng)的電信號(hào)來(lái)滿足其需求。
在此系統(tǒng)中,通過(guò)無(wú)線模塊,小車可以將當(dāng)前位置信息息、時(shí)間信息發(fā)送到電腦上。操作者同樣可以在小車運(yùn)行的時(shí)候,改變程序,并通過(guò)無(wú)線模塊傳送到小車,實(shí)現(xiàn)對(duì)小車的在線控制。
本設(shè)計(jì)用的ATMEL公司的AVR單片機(jī)[2],其典型特點(diǎn)就是增強(qiáng)型RISC,具有內(nèi)載Flash的特征的單片機(jī),芯片上的Flash存儲(chǔ)器附在用戶的產(chǎn)品中,具有可隨時(shí)編程和再編程的功能。為了使其具有較強(qiáng)的信息處理能力,故設(shè)計(jì)的AVR單片機(jī)有增強(qiáng)的RISC結(jié)構(gòu)[3],使其具有在單位時(shí)間內(nèi)處理復(fù)雜的信息。2.7~6V的電壓即可滿足AVR單片機(jī)的工作。通過(guò)其他的電源、頻率、復(fù)位以及下載電路的設(shè)計(jì)來(lái)滿足其最小系統(tǒng)的需求。
通過(guò)設(shè)計(jì)的分級(jí)電源電路的設(shè)計(jì),為控制板、舵機(jī)和電機(jī)提供不同電壓值的電源,為系統(tǒng)各模塊供電。小車系統(tǒng)根據(jù)各部件正常工作的需要,對(duì)配發(fā)的7.2V蓄電池進(jìn)行調(diào)節(jié)電壓。其中,為AVR單片機(jī)提供5V電壓,為舵機(jī)供電3.5~6V電壓,電機(jī)驅(qū)動(dòng)芯片的供電電壓直接用電池電壓,驅(qū)動(dòng)芯片的邏輯控制電平小于7V。電壓分配如圖2所示。
(1)單片機(jī)芯片的供電
為了穩(wěn)定的得到3.3V電壓,在本設(shè)計(jì)中采用LM1117穩(wěn)壓芯片。LM1117-3.3芯片產(chǎn)生1A輸出電流,可以為單片機(jī)和大部分芯片提供工作電壓。通過(guò)在穩(wěn)壓芯片兩端都并聯(lián)了一個(gè)電解電容,得到波形準(zhǔn)確的3.3V電壓。3.3V穩(wěn)壓電路如圖3所示。
(2)舵機(jī)及驅(qū)動(dòng)電路的供電
電壓與電機(jī)的速度成正比例關(guān)系,電壓越高,舵機(jī)反應(yīng)越快。3.5~6V的電壓為舵機(jī)供電范圍,正常情況,為舵機(jī)的供電電壓為6V,可以通過(guò)電池電壓經(jīng)過(guò)三個(gè)限流管得到6V電壓,以供舵機(jī)使用。3個(gè)限流管的壓降是2.1V,電池的標(biāo)準(zhǔn)電壓為7.2V,由于電池充滿電后電壓會(huì)達(dá)到8V左右,所以使用三個(gè)限流管。為了實(shí)現(xiàn)對(duì)電機(jī)的驅(qū)動(dòng),特使用L298N芯片來(lái)實(shí)現(xiàn)其功能,4.5~46V電壓為其提供的標(biāo)準(zhǔn)電壓范圍,由于其電壓與電流成正比關(guān)系,為了得到大電流,通常需要提供一個(gè)較大的電壓。因?yàn)長(zhǎng)298N芯片有一個(gè)邏輯控制電壓,由電池電壓經(jīng)過(guò)兩個(gè)限流管得到限高電壓。驅(qū)動(dòng)電路的供電與舵機(jī)電路的供電如圖4所示。
GPS[4]接口電路為GPS向AVR單片機(jī)傳輸GPS數(shù)據(jù)提供了支持,是系統(tǒng)能夠?qū)崿F(xiàn)定位功能的重要部分。為了實(shí)現(xiàn)GPS模塊的輸出電平與單片機(jī)電平兼容,特設(shè)計(jì)MAX232芯片實(shí)現(xiàn)RS232電平轉(zhuǎn)換為TTL電平。AVR單片機(jī)具有兩個(gè)USART,通過(guò)USART進(jìn)行數(shù)據(jù)的傳輸,將GPS模塊經(jīng)過(guò)電平轉(zhuǎn)換電路后與單片機(jī)的USART0相連,GPS模塊接口電路得到了實(shí)現(xiàn),如圖5所示。在數(shù)據(jù)傳輸過(guò)程中,首先對(duì)USART模塊初始化,GPS模塊將字符逐一傳給單片機(jī),通過(guò)USART的數(shù)據(jù)寄存器UDR來(lái)將字符存放在這里,每來(lái)一個(gè)數(shù)據(jù),可由相應(yīng)的標(biāo)志位置位產(chǎn)生中斷,在中斷程序中,系統(tǒng)通過(guò)軟件編程將UDR里的數(shù)據(jù)取走放在定義的數(shù)組里,并且標(biāo)志位會(huì)清零,以接收下一個(gè)字符,通過(guò)這樣的過(guò)程,最后GPS數(shù)據(jù)就被成功地保存在數(shù)組中了。原理如圖5所示。
本系統(tǒng)選用的芯片是L298N[6],共有15個(gè)引腳,VS接動(dòng)力電源,范圍為4.5~46V,直接將電源電壓接至VS上,將電源電壓經(jīng)過(guò)兩個(gè)限流管分壓后接至VSS,每個(gè)限流管有0.7V的壓降,所以接至VSS的電壓不會(huì)超過(guò)7V。ENA與ENB為使能端,將他們分別接至PD4與PD5,這樣通過(guò)輸入0或1就可以起使能作用。IN1與IN2分別接PWM2與PWM3,在ENA為1的情況下,通過(guò)設(shè)置IN1=1,IN2=0使其控制電機(jī)正轉(zhuǎn),這時(shí)令PWM2為一個(gè)占空比不是0的PWM波,PWM3為一占空比為0的PWM波即可得到實(shí)現(xiàn),為了改變速度,可以通過(guò)改變PWM2占空比的大小來(lái)實(shí)現(xiàn)。如需要實(shí)現(xiàn)反轉(zhuǎn),只需要令PWM2占空比為0,PWM3占空比非零即可。電機(jī)驅(qū)動(dòng)電路如圖6所示。
在此系統(tǒng)中,選用的是GY-26電子指南針,其工作原理是感應(yīng)地球磁場(chǎng)的磁分量,因?yàn)槠淦骷袃蓚€(gè)相互垂直軸,使其具有能夠同時(shí)得出方位角度的功能,此羅盤以RS232 協(xié)議,及I2C 協(xié)議與其他設(shè)備通信。這個(gè)芯片還具有重新標(biāo)定方位的功能,再加上其具有磁偏角補(bǔ)償功能,使其方位角能夠在各種環(huán)境下得到。GY-26電子指南針是一個(gè)12引腳模塊,1~6號(hào)引腳為主要引腳,9號(hào)引腳用于矯正。將9號(hào)引腳連接的開(kāi)關(guān)閉合,并將電子羅盤緩慢旋轉(zhuǎn)一周,則實(shí)現(xiàn)了對(duì)電子羅盤的矯正。電路連接圖如圖7所示。
無(wú)線模塊是調(diào)試與控制小車的重要部分,通過(guò)無(wú)線模塊解決了電腦與單片機(jī)只能通過(guò)串口線進(jìn)行通訊的問(wèn)題。通過(guò)無(wú)線模塊可以在小車行駛的時(shí)候通過(guò)電腦讀取單片機(jī)里面變量的數(shù)據(jù),也可以用電腦通過(guò)無(wú)線模塊來(lái)修改單片機(jī)里面變量的數(shù)據(jù),這樣就可以實(shí)時(shí)了解小車的位置信息,可以實(shí)時(shí)改變小車的速度與轉(zhuǎn)角,也可以隨時(shí)更改小車的目標(biāo)位置[5]。圖8為其連接電路。
小車在工作中的路況:
①小車通過(guò)低速調(diào)整自己的舵機(jī)轉(zhuǎn)向,使航向逐漸調(diào)整正確,這樣來(lái)解決小車的航向與當(dāng)前位置和目標(biāo)位置連線構(gòu)成的方向不一致的問(wèn)題;
②為了節(jié)省時(shí)間,在小車航向正確的狀態(tài)時(shí),也就是小車按當(dāng)前的航向可以直線到達(dá)目的地時(shí),應(yīng)加大小車的速度;
③當(dāng)小車快要到達(dá)目標(biāo)時(shí),為了實(shí)現(xiàn)小車減速的功能,要求設(shè)計(jì)轉(zhuǎn)向識(shí)別功能和調(diào)速功能[6]。
在各個(gè)模塊的有機(jī)配合下,使小車可以正確地行駛到給定位置。其工作的主流程圖如圖9所示。當(dāng)系統(tǒng)初始化開(kāi)始正常工作時(shí),通過(guò)傳感器采集信息傳遞到系統(tǒng)中,系統(tǒng)自動(dòng)調(diào)節(jié)舵機(jī)和電機(jī),并顯示出相關(guān)信息,實(shí)現(xiàn)對(duì)小車的控制。
系統(tǒng)為了完成對(duì)定位信息的采集[7],需要使用GPS定位信息的采集程序。由于單片機(jī)RX、TX端口被占用,且單片機(jī)只有一個(gè)硬件實(shí)現(xiàn)的UART數(shù)據(jù)通信,因此需要采用軟件模擬UART的方式進(jìn)行數(shù)據(jù)傳遞。在設(shè)計(jì)中所采用的是中斷方式模擬軟UART。按照一定的頻率更新一次采集過(guò)程。程序流程圖如圖10所示。單片機(jī)初始化后,通過(guò)串口實(shí)現(xiàn)對(duì)GPS的控制,采集定位信息,并將信息傳給單片機(jī),完成GPS定位信息采集任務(wù)。
單片機(jī)的PWM波提供小車的電機(jī)與舵機(jī)的驅(qū)動(dòng)信號(hào),改變PWM波的占空比就可以改變控制。在本系統(tǒng)中,定時(shí)器1的通道A與通道B產(chǎn)生的兩路PWM波用于控制電機(jī) ,定時(shí)器3的通道C產(chǎn)生的PWM用于控制舵機(jī)。PWM的兩個(gè)主要參數(shù)為周期與脈寬,這兩個(gè)參數(shù)都在定時(shí)、計(jì)數(shù)器對(duì)應(yīng)的寄存器中設(shè)置。
定時(shí)器1的A、B、C三個(gè)通道的PWM初始化如下所示:
通過(guò)設(shè)計(jì),電子指南針能夠輸出小車的航向,我們可以得到小車與正北方向的夾角。通過(guò)GPS技術(shù)可以將定位信息及時(shí)的傳給應(yīng)用者。給定一個(gè)經(jīng)緯度的位置數(shù)據(jù),小車能夠按照一定的路線走到目標(biāo)位置。
小車實(shí)現(xiàn)的主要功能為:在操場(chǎng)上兩邊禁區(qū)的四個(gè)頂點(diǎn)處,將小車放在第一個(gè)頂點(diǎn)處,小車能緩慢啟動(dòng),然后以較快速度運(yùn)行至第二個(gè)頂點(diǎn)處,在即將到達(dá)第二個(gè)頂點(diǎn)時(shí),會(huì)減速和提前拐彎,在轉(zhuǎn)彎90°時(shí),繼續(xù)以較快速度運(yùn)行至第三個(gè)頂點(diǎn)和第四個(gè)頂點(diǎn)處,在到達(dá)第四個(gè)頂點(diǎn)時(shí),小車會(huì)停車,最后,小車在操場(chǎng)上跑了一個(gè)近似的長(zhǎng)方形,誤差為10m左右,最終能夠完成設(shè)計(jì)的目標(biāo)。
通過(guò)硬件各個(gè)模塊的設(shè)計(jì)以及其軟件設(shè)計(jì),實(shí)現(xiàn)了所設(shè)計(jì)的目標(biāo)。本系統(tǒng)運(yùn)用了L298N驅(qū)動(dòng)芯片,確保了驅(qū)動(dòng)電路的質(zhì)量,系統(tǒng)只用一個(gè)LM1117-3.3穩(wěn)壓電路,簡(jiǎn)化了系統(tǒng)的電路結(jié)構(gòu)。在本系統(tǒng)中,在原有小車的基礎(chǔ)上,使用機(jī)械傳動(dòng)原理安裝了舵機(jī),舵機(jī)通過(guò)機(jī)械固定,運(yùn)行可靠穩(wěn)定。單片機(jī)及大部分芯片采用3.3V供電,這樣在電池電壓下降一定范圍后仍可以正常提供3.3V電壓,最終實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。
隨著新技術(shù)的發(fā)展,研究串口和SPI協(xié)議的應(yīng)用,使用更加精密的加工方式安裝舵機(jī)裝置,盡可能使舵機(jī)工作穩(wěn)定、可靠,轉(zhuǎn)彎角度較大,使其自控小車性能更佳。