【摘 要】本文介紹了基于MC9S12XS128MAL的兩輪自平衡循跡小車軟件和硬件設計,智能小車采用MMA8451加速度傳感器和ENC—03MB陀螺儀傳感器檢測智能小車的角度和角速度,采用TSL1401線性CCD傳感器采集道路路徑信息,利用左右兩側驅動電動機的差速實現智能小車的轉向,同時使用兩個光電編碼器分別對左右兩側的電動機的轉速進行實時精確測量。該兩輪自平衡小車系統還可以為自動駕駛汽車的研究提供實驗依據。
【關鍵詞】智能小車;兩輪自平衡;PID;循跡
0 引言
兩輪自平衡小車系統目前已經應用到我們的生活中和各種行業領域中,其特點是運動靈活,體積小巧,運行穩定,它可以作為我們日常生活中的代步工具,也可以用于大型工廠的巡檢等。該系統采用陀螺儀和加速度計互補來檢測車子在運行中的角速度和角度變化,運用PID控制技術控制兩個車輪的速度和轉動方向,從而使車子保持直立平衡狀態。而在車子保持平衡狀態后,它的前進和后退的速度控制以及左轉、右轉的方向控制都是疊加在平衡控制里的。這些動作都可以視為對小車平衡控制的干擾量,該平衡系統的任務是執行這些操作動作,克服干擾保持平衡。
1 智能小車系統設計
1.1 控制器模塊方案
控制器模塊采用飛思卡爾公司的MC9S12XS128MAL單片機,該單片機I/O口資源豐富,能夠產生8路8位PWM波、4路16位PWM波,足夠控制兩個電機使用,同時該單片機最高可以超頻到80MHZ,為小車的姿態計算,路徑檢測以及速度和方向控制提供足夠快的運行速度。本系統的核心控制板是MC9S12XS128MAL最小系統,包含有電源電路、JTAG接口電路、系統時鐘電路、復位電路、串口電路和LED指示電路等組成。
1.2 傾角傳感器模塊
檢測車子的角速度和角度采用ENC-03MB陀螺儀和MMA8451加速度計,該陀螺儀輸出的是模擬量,因此需要A/D端口對其進行模數轉換,陀螺儀的輸出信號放大了10倍左右,并將零點偏置電壓調整到工作電源的一半(1.65V)左右。放大倍數需要根據傳感器選取的傳感器輸出靈敏度設計,可以選擇5至10倍范圍都可以滿足車模控制需要。加速度計輸出的是數字量,采用的是低g值的傳感器MMA8451,它的輸出信號很大,不需要再進行放大。
1.3 路徑檢測模塊
路徑檢測的傳感器采用TSL1401線性CCD,用來檢測白底黑線。TSL1401的線性傳感器陣列由一個128x1的光電二極管陣列、相關的電荷放大電路和一個內部的像素數據保持功能。光電二極管的能量沖擊產生的光電流是由有源積分電路與該像素積分的集成。積分器的輸出和復位是由一個128位的移位寄存器和復位邏輯控制的。積分時間計算方法如下:Tint(min)=(128-18)*時鐘周期+20us,其中128是串聯的像素的數量,18是所需的邏輯設置時鐘,us是像素電荷轉移時間。
1.4 驅動模塊
小車的兩個電機的驅動采用4片BTS7960半橋驅動芯片驅動,該芯片驅動電流可達43A,同時具有過溫、過流、過壓、欠壓保護功能。兩片BTS7960可以構成一個全橋驅動電路,驅動一個電機的正反轉,主控芯片產生的4路PWM信號分別控制4片BTS7960驅動芯片的使能,在控制的時候要注意防止全橋驅動的兩片驅動同時使能而燒壞電路。
1.5 速度檢測模塊
分別在兩個電機齒輪上加裝兩個增量式光電編碼器,該編碼器測速精度較高,車模在平穩運行中是處于高速運行狀態的,而且編碼器測得的是電機的轉速,所以測速精度完全滿足所需精度,即使用普通的M法測速也滿足精度的要求。
1.6 電源模塊
該系統所需要的電源電壓為5V電壓和3.3V電壓,兩個直流電機需要的7.2V電壓由7.2V的鋰電池直接供電,所以電源模塊需要把7.2V的電壓轉換為5V的電壓和3.3V的電壓,因此需要的電源芯片為5V線性穩壓電源芯片LM2940和3.3V穩壓芯片LM1117。LM2940文波小、電路結構簡單,線性度非常好,所以很適合用于對主控芯片的電源供電。LM1117是一個低壓差三端可調穩壓集成電路電源芯片,用于對線性CCD模塊的供電非常適合。
2 智能小車系統軟件設計
軟件系統可分為三個部分:直立控制、方向控制和速度控制。其中直立控制系統采用PID控制器,把三個輸出的部分疊加后再輸出給兩個控制電機。直立控制、方向控制和速度控制都是分別放在1ms中斷里完成的,因為該控制芯片在1ms的時間內可以完成這些任務,所以我們把中斷時間定為1ms。
3 總結
本設計以第八屆飛思卡爾杯全國智能車大賽為背景,以大賽組委會指定的D型車模為平臺,搭建了一個以飛思卡爾半導體公司的16位微控制器MC9S12XS128MAL為控制核心的智能車控制系統。以CodeWarrior6.0為開發環境,利用基于微機械工藝MEMS的陀螺儀和加速度計實現了兩輪小車穩定地自平衡,自主地識別兩側鋪有黑色線的賽道,并沿著賽道以盡可能快的速度運行。該兩輪自平衡小車系統顯示了高度的智能化、人性化,并且具備良好的安全性、穩定性,可以為無人駕駛汽車的后續研究提供經驗。
【參考文獻】
[1]徐寶文,李志(譯).C程序設計語言[M].北京:機械工業出版社,2006.
[2]義和.Altium Designer完全電路設計[M].北京:機械工業出版社,2007.
[3]卓晴,黃開勝,邵貝貝.學做智能車-挑戰“飛思卡爾”杯[M].北京:航空航天大學出版社,2007,3.
[責任編輯:湯靜]