湖北大學知行學院 李 欣
隨著科技地發展,GPS導航的應用領域越來越多元化。利用GPS導航小車,可以實現惡劣環境下的無人駕駛,具體設計如下。
GPS接收機接收到的GPS信號,經處理實現對GPS信號的跟蹤、鎖定、測量。利用UART0將GPS導航定位信息發送到控制器LM3S1138并從中提取經度和緯度。這些坐標值與預設目標點坐標比較后,將按一定的算法控制小車按預設航線行駛,最終實現GPS自動導航的功能。同時,LM3S1138內部的64KB的FLASH可以實現數據的存儲。具體的系統總體設計框圖如圖1所示。

圖1 系統總體設計框圖
GPS導航板通過數據輸出線與EasyARM1138開發板上的異步收發UART0的數據接收口相連接,這樣GPS定位信息將直接傳輸到主控芯片LM3S1138中。將開發板上的串口與上位機連接,通過軟件編程控制異步收發UART2口的數據發送,這樣控制芯片LM3S1138內儲存的數據就傳送到上位機中。設計中使用兩個減速電機對小車進行驅動,提取GPS數據并結合導航算法給對應引腳高低電平實現對兩個輪子的控制。在總體設計中使用12V蓄電池供電,利用降壓芯片將12V電壓降至5V分別為電機和EasyARM1138開發板供電。
選用GARMIN的GPS-15W,可同時跟蹤多達12顆GPS衛星,從而能夠快速的定位。在設計中用到的三個接口線分別為黑色的地線、紅色的電源線和黃色的數據輸出線。數據輸出線與LM3S1138的U0Rx口相接,將GPS接收到的數據輸入到ARM中。GPS接收板所輸出的數據是以美國國家海洋電子協會的NMEA 0183 ASCII碼接口協議為基礎的,包括$PGRMM、$GPRMC、$GPGGA、$GPGSA、$GPGSV、$PGRME,在設計中主要提取$GPRMC。接口特性為CMOS電平,波特率固定為4800。GPS使用的是3.3V供電,由EasyARM1138開發板提供的。
EasyARM1138開發板具有簡明的外圍電路設計,調試時無需任何連線和跳線,操作極為方便。開發板內嵌 USB 接口與上位機連接可實現“三合一”功能:程序下載與在線仿真、5V供電、UART 串行通信。具體的應用如下:GPIO管腳PB0~PB3與無線電接收模塊相連;GPIO管腳PA4和PA5與L298N的兩個使能端口ENA和ENB相連,來控制使能兩個電機;GPIO管腳PC4~PC7與L298N的四個數據口相連,在有使能信號的情況下分別用來控制兩個電機的正轉和反轉。
小車的機械部分使用的兩輪驅動,即前輪為主動輪,后輪為從動輪。具體電路如圖2所示。

圖2 小車行駛狀態控制電路圖
L298N是一個H橋集成芯片,其中IN1~IN4接收EasyARM1138開發板的高低電平控制信號,ENA和ENB為兩個使能口。經過H橋后,IN1、IN2和ENA三個信號一起控制B1電機的工作,B1電機的兩端分別接OUT1和OUT2,利用OUT1和OUT2輸出的高低電平可以控制電機的正轉和反轉;IN3、IN4和ENB三個信號一起控制B2電機的工作, B2電機的兩端分別接OUT3和OUT4。B1、B2電機分別對應的小車的左輪和右輪。
EasyARM1138的UART0中斷負責接收GPS定位信息,同時判斷提取對導航有用的GPS數據并存儲。在存儲數據時可以利用數組存儲,也可以利用EasyARM1138內部的64KB的FLASH。GPS導航板每秒鐘接收一組數據,當定位有效時提取$GPRMC推薦定位信息中的經度和緯度。
為提高效率,在UART中斷讀取到GPS數據時會直接提取以$GPRMC開頭的一整行數據。這樣在存儲時就可以減少存儲的數據量,在后續的經度和緯度的提取中,可以直接讀取經度和緯度所在的字段。
整個GPS導航的軟件部分從總體上說是一個反饋系統,根據小車的目前形式情況和目前的經度緯度信息,控制小車調整行駛方向,每次做完小的調整后,直走2秒鐘。再次處理數據判斷當前位置是否是目標位置,如果是目標位置停車演奏音樂作為提示,如果不是目標位置繼續上一步的工作。在多次重復的判斷和調整中,最終找到目標位置。
本文在提出方案的基礎上,完成了系統的硬件和軟件設計,可以準確的接收當前點的GPS導航坐標并進行單點對單點的導航,同時也可以完成多點的導航,但是在一定程度上還是受到天氣的影響。
[1]Simon Haykin,Adaptive Filter Theory,Publishing House of Electronics Industry.
[2]周立功.Cortex-M3處理器簡介[M].廣州:廣州致遠電子有限公司.
[3]鮑遠律,中國科學技術大學GPS實驗室——GPS.
[4]李文天,GPS原理及應用[M].北京:科學出版社,2003.
[5]胡友健,羅昀,曾云,全球定位系統(GPS)原理與應用[M].武漢:中國地質大學出版社,2003.