湖北大學(xué)知行學(xué)院 李 欣
隨著科技地發(fā)展,GPS導(dǎo)航的應(yīng)用領(lǐng)域越來越多元化。利用GPS導(dǎo)航小車,可以實(shí)現(xiàn)惡劣環(huán)境下的無人駕駛,具體設(shè)計(jì)如下。
GPS接收機(jī)接收到的GPS信號(hào),經(jīng)處理實(shí)現(xiàn)對(duì)GPS信號(hào)的跟蹤、鎖定、測量。利用UART0將GPS導(dǎo)航定位信息發(fā)送到控制器LM3S1138并從中提取經(jīng)度和緯度。這些坐標(biāo)值與預(yù)設(shè)目標(biāo)點(diǎn)坐標(biāo)比較后,將按一定的算法控制小車按預(yù)設(shè)航線行駛,最終實(shí)現(xiàn)GPS自動(dòng)導(dǎo)航的功能。同時(shí),LM3S1138內(nèi)部的64KB的FLASH可以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)。具體的系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
GPS導(dǎo)航板通過數(shù)據(jù)輸出線與EasyARM1138開發(fā)板上的異步收發(fā)UART0的數(shù)據(jù)接收口相連接,這樣GPS定位信息將直接傳輸?shù)街骺匦酒琇M3S1138中。將開發(fā)板上的串口與上位機(jī)連接,通過軟件編程控制異步收發(fā)UART2口的數(shù)據(jù)發(fā)送,這樣控制芯片LM3S1138內(nèi)儲(chǔ)存的數(shù)據(jù)就傳送到上位機(jī)中。設(shè)計(jì)中使用兩個(gè)減速電機(jī)對(duì)小車進(jìn)行驅(qū)動(dòng),提取GPS數(shù)據(jù)并結(jié)合導(dǎo)航算法給對(duì)應(yīng)引腳高低電平實(shí)現(xiàn)對(duì)兩個(gè)輪子的控制。在總體設(shè)計(jì)中使用12V蓄電池供電,利用降壓芯片將12V電壓降至5V分別為電機(jī)和EasyARM1138開發(fā)板供電。
選用GARMIN的GPS-15W,可同時(shí)跟蹤多達(dá)12顆GPS衛(wèi)星,從而能夠快速的定位。在設(shè)計(jì)中用到的三個(gè)接口線分別為黑色的地線、紅色的電源線和黃色的數(shù)據(jù)輸出線。數(shù)據(jù)輸出線與LM3S1138的U0Rx口相接,將GPS接收到的數(shù)據(jù)輸入到ARM中。GPS接收板所輸出的數(shù)據(jù)是以美國國家海洋電子協(xié)會(huì)的NMEA 0183 ASCII碼接口協(xié)議為基礎(chǔ)的,包括$PGRMM、$GPRMC、$GPGGA、$GPGSA、$GPGSV、$PGRME,在設(shè)計(jì)中主要提取$GPRMC。接口特性為CMOS電平,波特率固定為4800。GPS使用的是3.3V供電,由EasyARM1138開發(fā)板提供的。
EasyARM1138開發(fā)板具有簡明的外圍電路設(shè)計(jì),調(diào)試時(shí)無需任何連線和跳線,操作極為方便。開發(fā)板內(nèi)嵌 USB 接口與上位機(jī)連接可實(shí)現(xiàn)“三合一”功能:程序下載與在線仿真、5V供電、UART 串行通信。具體的應(yīng)用如下:GPIO管腳PB0~PB3與無線電接收模塊相連;GPIO管腳PA4和PA5與L298N的兩個(gè)使能端口ENA和ENB相連,來控制使能兩個(gè)電機(jī);GPIO管腳PC4~PC7與L298N的四個(gè)數(shù)據(jù)口相連,在有使能信號(hào)的情況下分別用來控制兩個(gè)電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。
小車的機(jī)械部分使用的兩輪驅(qū)動(dòng),即前輪為主動(dòng)輪,后輪為從動(dòng)輪。具體電路如圖2所示。
圖2 小車行駛狀態(tài)控制電路圖
L298N是一個(gè)H橋集成芯片,其中IN1~I(xiàn)N4接收EasyARM1138開發(fā)板的高低電平控制信號(hào),ENA和ENB為兩個(gè)使能口。經(jīng)過H橋后,IN1、IN2和ENA三個(gè)信號(hào)一起控制B1電機(jī)的工作,B1電機(jī)的兩端分別接OUT1和OUT2,利用OUT1和OUT2輸出的高低電平可以控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn);IN3、IN4和ENB三個(gè)信號(hào)一起控制B2電機(jī)的工作, B2電機(jī)的兩端分別接OUT3和OUT4。B1、B2電機(jī)分別對(duì)應(yīng)的小車的左輪和右輪。
EasyARM1138的UART0中斷負(fù)責(zé)接收GPS定位信息,同時(shí)判斷提取對(duì)導(dǎo)航有用的GPS數(shù)據(jù)并存儲(chǔ)。在存儲(chǔ)數(shù)據(jù)時(shí)可以利用數(shù)組存儲(chǔ),也可以利用EasyARM1138內(nèi)部的64KB的FLASH。GPS導(dǎo)航板每秒鐘接收一組數(shù)據(jù),當(dāng)定位有效時(shí)提取$GPRMC推薦定位信息中的經(jīng)度和緯度。
為提高效率,在UART中斷讀取到GPS數(shù)據(jù)時(shí)會(huì)直接提取以$GPRMC開頭的一整行數(shù)據(jù)。這樣在存儲(chǔ)時(shí)就可以減少存儲(chǔ)的數(shù)據(jù)量,在后續(xù)的經(jīng)度和緯度的提取中,可以直接讀取經(jīng)度和緯度所在的字段。
整個(gè)GPS導(dǎo)航的軟件部分從總體上說是一個(gè)反饋系統(tǒng),根據(jù)小車的目前形式情況和目前的經(jīng)度緯度信息,控制小車調(diào)整行駛方向,每次做完小的調(diào)整后,直走2秒鐘。再次處理數(shù)據(jù)判斷當(dāng)前位置是否是目標(biāo)位置,如果是目標(biāo)位置停車演奏音樂作為提示,如果不是目標(biāo)位置繼續(xù)上一步的工作。在多次重復(fù)的判斷和調(diào)整中,最終找到目標(biāo)位置。
本文在提出方案的基礎(chǔ)上,完成了系統(tǒng)的硬件和軟件設(shè)計(jì),可以準(zhǔn)確的接收當(dāng)前點(diǎn)的GPS導(dǎo)航坐標(biāo)并進(jìn)行單點(diǎn)對(duì)單點(diǎn)的導(dǎo)航,同時(shí)也可以完成多點(diǎn)的導(dǎo)航,但是在一定程度上還是受到天氣的影響。
[1]Simon Haykin,Adaptive Filter Theory,Publishing House of Electronics Industry.
[2]周立功.Cortex-M3處理器簡介[M].廣州:廣州致遠(yuǎn)電子有限公司.
[3]鮑遠(yuǎn)律,中國科學(xué)技術(shù)大學(xué)GPS實(shí)驗(yàn)室——GPS.
[4]李文天,GPS原理及應(yīng)用[M].北京:科學(xué)出版社,2003.
[5]胡友健,羅昀,曾云,全球定位系統(tǒng)(GPS)原理與應(yīng)用[M].武漢:中國地質(zhì)大學(xué)出版社,2003.