余世干 苗 清 張廉潔 周紅志
?
兩輪自平衡智能車尋跡系統設計與實現
余世干 苗 清 張廉潔 周紅志
(阜陽師范學院信息工程學院,安徽阜陽 236037)
文章設計和實現了基于單片機的兩輪自平衡自動循跡的智能車.系統采用飛思卡爾公司的mc9s12xs128的單片機芯片和兩輪的智能小車模型;軟件設計采用CodeWarrior作為開發平臺,C語音作為開發工具.最后通過系統測試,智能小車能夠較好的在預定軌道上自動尋跡而且速度較快,各項性能穩定.
智能車;自平衡;模塊;PD算法
智能車技術是一種綜合的新技術,由于可控制性和方便性的特點,其在未來生活中將發揮廣泛應用.在教育部創辦的智能車競賽的背景下,本文的智能車自動導航系統能在45 cm寬的規定白板,兩邊各有2.5 cm寬黑線為引導線的道路上,在無人操作下通過識別路況信息實現自動導航、控制車體速度和方向.本系統是以飛思卡爾公司的MC9S12XS128單片機為主控制器,設計出的智能車系統能自動采集、處理路面信息,在無人操作的情況下實現自動循跡導航的功能.本文主要是設計與實現兩輪自平衡車自動循跡的過程[1].
1 系統實現的理論基礎
1.1 車體直立的原理
兩輪直立車體,頂端相對于底端為相對靜止,頂端相對于底端總會有向前或者向后的運動速度,若想保持直立,則需要使得底端和頂端的運動速度方向、大小一致.而車體底端的電機,通過軸承驅動輪子,則可以保證車體底端和頂端的運動速度方向、大小的一致,從而保持車體直立[1-2].
1.2 車體運動時保持直立的原理
將車體看作一個整體,車體直立時,整體相對于地面來說相對靜止.若車體開始傾斜,車體頂端相對于地面來說有了一定的速度大小和方向,想要保持車體傾斜的角度不再加劇,車體底端需要在車體傾斜的過程中,達到與頂端有著相同方向大小的速度.這樣才能保證車體傾斜的角度不再會變化,但是整體對于地面來說,是從靜止到勻速運動的過程、是從直立靜止到保持一定的傾斜角度勻速運動的過程.
1.3 道路識別原理
實際道路的情況極其復雜,為了實現這一功能,此設計在有限的條件下進行到道路模擬.采用的是以白色KT板為道路主體,以黑色線條為道路邊界,具體實物如圖1所示.使用簡單的模型來模擬實際道路,分析道路情況可得知,道路分為直道,彎道,十字路口.只要能夠獲得黑線的走向,即可獲得道路情況,使得小車在黑色線條圍成的封閉“道路”中運動.
圖1 智能車運行道路實物圖
2系統硬件結構
本系統以MC9S12XS128單片機為核心,外圍擴展了速度檢測、道路信息檢測、電源、直流電機驅動、陀螺儀以及電機差速轉向控制等模塊,具體系統結構[3]37-78如圖2所示,系統組成實物如圖3.

圖2 系統硬件結構圖

圖3 系統組成實物圖
2.1 陀螺儀模塊與加速度傳感器
此設計選定了村田公司出產的ENC-03陀螺儀作為角速度傳感器,飛思卡爾公司的MMA7361加速度傳感器.使用兩個陀螺儀來分別采集車體與地面的角度,車體與“道路”邊界的角度.這兩種芯片都是模擬信號輸出,便于采集.加速度傳感器能夠檢測由地球引力作用或者物體運動所產生的加速度.MMA7361加速度傳感器是一種模擬量輸出的三軸加速度傳感器,測量其中一個方向上的加速度值,經過受力分析就可以計算出車模傾角.例如車模直立時,將加速度傳感器的Z軸固定在水平方向上,此時輸出信號是零偏電壓信號.當車模不平衡時,重力加速度G則會在 Z 軸方向產生加速度分量,從而引起Z軸輸出電壓變化.陀螺儀、加速度傳感器模塊實物如圖4所示.

圖4 陀螺儀與加速度傳感器模塊
2.2 直流電機驅動模塊
車模采用的是直流電機,改變電流的流向即可改變電機旋轉的方向.此類對電機的驅動電路大多數采用H橋電路,其原理為:用四個NMOS管構成可控制電流流向的電路從而驅動電機.在構建電機驅動電路時,要注意電機最大電流值,測量電機最大電流值,可將電機轉子固定,然后根據電機可工作電壓范圍,選擇最大電壓,進行測量電流,圖5為系統設計的電機驅動電路原理圖.
2.3 速度檢測模塊
速度檢測模塊采用編碼器來完成,通過偵測車輪運動的速度、角度、距離、位置以及計數,再把相關信息反饋給主程序以便主程序更好的控制.MC9s12xs128芯片內部集成了一個PCA模塊,可用于捕獲外部脈沖并且計數.關于兩個電機轉速的采集,使用一個外部計數器和內部PCA模塊,分別采集兩個電機的轉速.外部計數器原理圖如圖6所示.
2.4 電源模塊
本次方案使用的單片機芯片,傳感器為5 V供電電壓,其中比較特殊的就是陀螺儀和加速度模塊,此模塊采用3.3 V供電電壓.針對這兩種供電要求,此設計選取了LM2940作為5 V穩壓芯片,LM1117-3.3作為3.3 V穩壓芯片.這兩種芯片的性價比較高,而且可以滿足此系統地供電要求.同時考慮到整體系統需要電流的大小此設計采用將最小系統供電電源與傳感器供電分別用兩個5 V電源來進行供電,保證系統的正常工作[4].圖7,圖8分別為5 V穩壓電路、3.3 V穩壓電路原理圖.
2.5 其他模塊
鍵盤模塊是用來調整軟件程序的輸入參數和其他輔助信息以實現在更好的調試智能車運行狀態.
道路信息檢測模塊是這個系統中重要的一環,在本系統中采用TSL1401線性CCD傳感器,其內部具有128個光電二極管,每個光電二極管通過積分電路所感知的光強以電壓的形式輸出,其電壓與光照強度強度和積分時間成正比.同時,該芯片的采集時間,也是此設計在編寫底層驅動程序是需要考慮的,TSL1401芯片最小的采集時間為12 ms,在此方案中,采用的采集頻率為50 HZ.
核心控制器MC9S12XS128是智能車的“大腦”,它是飛思卡爾公司的一種16位單片機,其片上資源包含有時鐘和復位發生器,128K FLASH,8K ROM,2K EEPROM,8位/16位脈沖累加計數器;128KB程序Flash,8 KB RAM、8 KB數據Flash等功能資源,非常豐富,足以滿足此方案中各種功能需求.在此單片機芯片上再輔助設計電源電路,振蕩器電路,復位電路,BDM下載硬件電路等電路組成最小系統,從而實現對智能小車的整體綜合控制.
系統硬件電路的設計的工具采用Altium Designer 09,它整合了原理圖、PCB圖,包含很多芯片廠家的原理圖庫,使得開發電子線路變得十分方便,同時也擁有者DRC檢測機制等功能.
3 系統軟件設計
系統軟件算法[1]設計是建立與硬件之上,決定著智能小車在實際道路的自動運行以及實際運行的效果,是智能小車設計的不可缺少的重要一環.系統設計需要先進行對于程序框架的設計.通過分析系統功能可知,首先需要完成單片機的初始化,使得單片機能夠正常的進行工作.對于傳感器數據的采集,此設計需要使用中斷服務程序(ISR),這樣設計才能夠精確的按照單位時間來采集需要的數據,采集數據完畢之后,需要對數據進行處理,因為直立控制的精度要求較高,因此需要控制信號處理時間,這需要放在中斷服務程序中來進行.對于算法需要進行優化,否則在中斷中容易鎖死.CCD傳感器的采集時間較長,因此不能放在中斷服務程序中.然后需要考慮到在調試過程中的便捷性,由于每次燒寫程序會消耗大量時間,此設計采用按鍵來設置核心參數的方法,這樣就可以直接在源程序上進行修改,而不需要再一次在IDE中進行修改和燒寫[6-7].
在采集到CCD信號時,需要通過陀螺儀與加速度傳感器完成對車體的整體平衡的控制,然后完成對CCD信息的處理以及對電機的控制,在電機控制過程中,采用了比較典型的PD算法,其原理源自于PID算法,是過程控制中一種模糊自適應算法,用過去,和現在的狀態來預算未來的狀態.用陀螺儀反饋出的角度來對電機狀態來進行比例控制,用陀螺儀反饋角速度對電機狀態來進行微分控制.比例控制代表著直接控制電機輸出得到的結果,微分控制代表著直接控制電機輸出得到的車體整體效果,其物理意義對應為電機速度和加速度,而電機的加速度影響著車體回復直立的速度,則可以用角度來代替.
在直立的前提下,對電機進行速度控制和方向控制,速度控制是利用光電編碼器的負反饋系統.其中Pspeed為上一次脈沖計數和此時脈沖數的差值,對電機進行比例控制,Dspeed為上一次差值與這一次差值之差對對采樣時間進行微分運算,從而對電機進行控制.方向控制使用的是另一個陀螺儀的負反饋,算法過程與直立控制過程相同.按照上述設計出控制車體的控制程序,車體能直立沿著路面自動循跡.程序框架如圖9所示.

圖9 程序框架圖
4 系統測試與實現
系統的測試主要是完成對系統的整體結構檢查是否實現預期功能,系統設計最后一環,在本系統測試中主要包括系統中的穩壓電路測試,最小系統電路測試,光電編碼器測試,陀螺儀、加速度模塊測試,車體單片機與PC機通信電路測試,電機驅動電路測試,線性CCD模塊測試,通過對各模塊的測試發現,各模塊功能均正常,能夠完成預定目標[8-9].
綜上所述,本文針對兩輪智能車完成了自動循跡系統的設計,實現了智能車在規定的直行、S型、十字交叉路口、斜坡、自動避障等賽道上自助循跡行使,速度能達到1.8 m/s的速度.另外基于本文所設計的智能車的控制系統的方法,也可以在其他自動控制領域發揮作用.
[1] 卓晴,黃開勝,邵貝貝,等.學做智能車—挑戰“飛思卡爾”杯[M].北京:北京航空航天大學出版,2007.
[2] 吳懷宇.大學生智能汽車設計基礎與實踐[M].北京:電子工業出版社,2008.
[3] 王威.HCS12微控制器原理及應用[M].北京:北京航空航天大學出版社,2007.
[4] 馬福良.智能車規劃與控制系統的設計與實現[D].吉林:吉林大學,2012.
(責任編輯:涂正文)
Design and Implementation of Two Wheels Self-Balancing Intelligent Car Tracing System
YU Shigan MIAO Qing ZHANG Lianjie ZHOU Hongzhi
In this paper, the two wheels and self-balancing intelligent car, which can automatic tracking on the road, is designed and realized based on single chip microcomputer. In this system, the single chip microcomputer MC9S12XS128 of Free scale and the model of two wheels intelligent car are adopted. The software is developed based on CodeWarrior with using C language tool as development environment. Finally after testing system, intelligent car can track the scheduled track with high speed and has stable performance.
intelligent car; self-balancing; module; PD algorithm
TP242.6
A
1009-8135(2016)03-0043-04
2016-02-15
余世干(1982-),男,安徽定遠人,阜陽師范學院講師,主要研究嵌入式系統開發,數字圖像.
安徽省教育廳自然科學研究項目(編號:2015FXTZK01);安徽省質量工程項目(編號:2014sxzx049,2013jyxm555);安徽省大學生創新創業訓練項目(AH201413619001);阜陽師范學院自然科學研究項目(編號:2013FSKJ15)階段性成果