楊 磊(安徽財經大學,安徽 蚌埠 233030)
基于mcf52255微控制器的智能車系統
楊 磊
(安徽財經大學,安徽 蚌埠 233030)
本系統以mcf52255為核心處理器,通過電磁傳感器對導線的信號的檢測,先對檢測的信號進行處理,通過算法得到道路特征,然后再通過PID算法對車輪進行差速控制與轉向控制,使智能車能夠平穩、快速的沿著導線運動。該智能車系統包括電感采集模塊,信號處理模塊,路徑識別算法模塊,PID算法模塊等模塊。
mcf52255;信號處理;PID控制;智能車系統
DOI:10.16640/j.cnki.37-1222/t.2016.16.110
mcf52255主 頻 為80MHz, 片 內 有512K Flash ROM與64K SRAM,還有8通道12位的A/D轉換模塊、4通道DMA模塊與4個32位支持DMA的DTIM模塊以及PWM模塊,另有3個UART模塊,2個IIC模塊及QSPI等等,其中UART模塊用來對于智能車系統的數據采集,以及調試很是方便。
本系統通過采集模塊對導線周圍的電磁信號進行檢測,先由采集模塊對采集的信號進行濾波和放大,然后再通過mcf52255對采集信號進行數模轉換和算法分析得到道路特征,接著再通過PID算法輸出PWM波對車輪進行差速控制與轉向控制,使智能車能夠平穩、快速的沿著導線運動。
3.1電磁傳感器采集模塊
電磁傳感器采集模塊由電感與電容組成的LC諧振電路與AD8032運算放大器共同構成的,它是智能車系統的信息來源。該模塊先由電感與電容組成的LC諧振電路對導線周圍的電磁信號進行采集并過濾,然后將得到的信號經由AD8032放大器進行放大,再將其送入到控制芯片進行處理。
考慮到實際道路狀況有直道、彎道、十字彎道、直角這4種,所以傳感器的位置也由這幾種路況決定。所以經過分析與實驗將傳感器的對稱放置,左右各三個,中間四個水平放置,最外邊的兩個傳感器向內進行一定角度的偏移,前面另放置兩個豎直的傳感器。中間四個水平對稱放置的傳感器可以判斷直線路況;最外邊的兩個向內傾斜一定角度的傳感器可以提前判斷彎道,使智能車做出預判,一定程度上提高智能車入彎的準確性;前面兩個豎直放置的傳感器用于判斷十字彎道路況。
3.2信號處理模塊
(1)數字檢測法。將采集模塊采集到的數據通過控制器的AD轉換模塊數字化處理,可以依據數字量的值來判斷路況,從而達到自主巡線的要求。但是這種方法對于路徑判別不是很穩定,很容易進行誤判,而且當導線電流不穩定的時候,數字量會受到很大的干擾,起伏很大,導致其不能夠正確識別路況,從而進行誤判。為了提高智能車系統的路徑識別能力,只能夠增加傳感器的數量來解決,但是傳感器太多,相互之間的干擾也會很大,同樣會是系統進行誤判。所以放棄了該種方法,選擇了下面的模擬檢測法。
(2)模擬檢測法。首先,將采集模塊采集到的信號值經由mcf52255的AD轉換模塊,轉換成合理的AD值,然后將各個傳感器采集賽道的最大值和最小值,通過一定的公式得到每個傳感器的相對值,最后依此來判斷路況,這就是信號的歸一化處理。
這種方法相比較于上種方法來說,對于路況的判別更加靈敏,誤判率更低,而且對于導線內電流的變化受到的影響經歸一化處理后相應降低很多,能夠使智能車的穩定性提高不少。
3.3路徑識別算法模塊
路徑識別就是對信號處理模塊輸出的信號之進行分析與判斷,它是智能小車的靈魂,它是小車能否穩定且順利完成自主循跡的關鍵模塊。一個好的路徑識別算法模塊,可以使智能車穩定且順利的循跡,并且有一定的適應性。
因為導線周圍的不同位置,磁感應強度的大小和方向各不相同,所以不同位置上的傳感器產生的感應電動勢也不盡相同。因此,則可以根據傳感器采集到的值來判斷電感的位置,又因為電感在智能車上的排布是已知的、固定的,據此,也就可以判斷出智能車偏離導線的位置,從而通過控制舵機轉向,使智能車及時糾正方向。
在直導線時,因為左側電感與右側電感對稱分布,所以,左右電感值大小差不多,則控制智能車沿直線行駛。對于彎道時的導線,如果用左側電感值減去右側電感值,當這個差值為正值時,則說明智能車已經偏離直線向左側轉向,而且這個差值越大說明智能車偏離的角度越大;同樣的道理,如果用右側電感值減去左側電感值,當這個差值為正值時,則說明智能車已經偏離直線向右側轉向,而且這個差值越大說明智能車偏離的角度越大。
3.4PID算法模塊
PID控制器由比例單元(P)、積分單元(I)和微分單元(D)組成。其輸入e (t)與輸出u (t)的關系為:
PID是一個閉環控制算法。因此如果想要實現PID算法,必須在硬件上有閉環控制模塊給予反饋信息。在智能車系統上需要返回的是智能車電機的轉速,所以需要在智能車上安裝一個編碼器,對智能車進行速度測量,并將結果反饋。
比例單元(P)是反應系統的當前偏差e(t),系數P在一定范圍內增大時可以加快調節、減小誤差,但過大時會造成系統的穩定性下降。積分單元(I)是反應系統的累積偏差,可以消除系統的穩態誤差,使誤差盡可能的減小,因為有誤差時,積分調節就會進行,直到消除誤差。微分單元(D)是反應系統的偏差信號的變化率e(t)-e(t-1),可以預見偏差變化的趨勢,能夠提前控制,在偏差還沒有形成之前就已經被微分作用消除了,所以它可以改善系統的動態性能。但是微分作用對噪聲有放大作用,微分作用過大時會對系統產生很大干擾。
總的來說,在設計智能車系統時,首先,要選擇一款性能強大的,且自己熟悉的核心處理器。其次,便是要將智能車能夠自主循跡的原理搞清楚,搞清楚原理對以后的程序的編寫和調試有很大的幫助。接著便是設計智能車的各種硬件模塊了。最后就是程序的編寫與調試了,程序的編寫又需要先對信號進行處理,再就是根據循跡原理編寫路徑識別模塊,然后就是調試程序了,直到智能車能夠平穩、快速的自主循跡。
[1]諶利,張瑞,汪浩,李侃等編著. 深入淺出ColdFire系列32位嵌入式微處理器[M].北京:北京航空航天大學出版社,2009(09).
[2]卓晴,黃開勝,邵貝貝等編.學做智能車-挑戰”飛思卡爾”杯[M].北京:北京航空航天大學出版社,2007:366-369.
楊磊(1995-),男,安徽潁上人,本科在讀,研究方向:電子信息工程 。