張啟秋,蔡雄友,葉駿輝,劉海剛,項華珍
?
兩輪自平衡智能小車控制系統(tǒng)的設(shè)計與實現(xiàn)
張啟秋,蔡雄友,葉駿輝,劉海剛,項華珍
(五邑大學(xué) 信息工程學(xué)院,廣東 江門 529020)
設(shè)計了以飛思卡爾系列MC9S12XS128單片機為核心控制器,加速度計MMA7260、陀螺儀ENC03為角加速度和角度測量儀的兩輪自平衡智能小車控制系統(tǒng). 該系統(tǒng)通過對測量出的小車傾斜角度及角加速度進行計算和處理,實現(xiàn)了兩輪直立小車的自平衡及小車的速度控制、方向控制和基于軌道的變速控制. 該智能小車在華南賽區(qū)飛思卡爾智能小車大賽電磁組獲三等獎.
自平衡;速度控制;方向控制;變速
兩輪自平衡車是一種動態(tài)平衡機器人,其兩輪共軸、獨立驅(qū)動、車身重心位于車輪軸上方,通過運動保持平衡,可不借助外力直立行走[1]. 近年來,兩輪自平衡小車以行走靈活、便利、節(jié)能等特點在多個領(lǐng)域得到了較大的發(fā)展. 第七屆“飛思卡爾”杯全國大學(xué)生智能車競賽的電磁組比賽要求利用賽用C型小車雙后輪驅(qū)動的特點實現(xiàn)兩輪自平衡直立行走. 本文設(shè)計并制作了一臺兩輪小車,用飛思卡爾系列MC9S12XS128單片機作為核心控制器,MMA7260加速度計和ENC03陀螺儀為姿態(tài)敏感元件,實現(xiàn)兩輪小車的自平衡. 根據(jù)設(shè)定速度與小車速度的偏差,控制電機的電壓以實現(xiàn)速度控制,利用電磁感應(yīng)線圈采集路徑信息,根據(jù)路徑的彎度控制小車直立角度實現(xiàn)變速控制,從而實現(xiàn)兩輪直立車的尋跡變速方案.
系統(tǒng)主要由飛思卡爾公司生產(chǎn)的16位雙核微型處理器MC9S12XS 128、直立控制模塊、速度控制模塊、方向控制模塊和變速模塊等功能模塊組成. 系統(tǒng)框圖如圖1所示. 對鋪設(shè)在車道中心的銅線通交流電,使車道產(chǎn)生交變磁場,小車將通過尋跡該磁場行駛在車道上. 直立控制模塊包含陀螺儀及加速度計,安裝在小車的中心偏下位置,使小車在行駛過程中保持直立. 速度控制模塊通過安裝于左、右輪的編碼器測速,與設(shè)定速度進行比較,控制小車按設(shè)定速度行駛. 方向控制模塊通過安裝于小車運動前方探測支架上的左、右兩電磁傳感器,控制兩輪實現(xiàn)差速轉(zhuǎn)彎,以控制運動方向. 變速模塊利用左、右兩電磁傳感器測量的電壓,進行一定的運算調(diào)節(jié),通過控制小車傾角的大小來控制小車行進加速度的大小.
圖1 系統(tǒng)總體框圖
小車的直立控制是兩輪車行走的基礎(chǔ). 它通過ENC03陀螺儀采集到的角速度,濾波后進行積分,得到的角度值作為脈沖寬度調(diào)制(PWM)的比例系數(shù)控制電機,實現(xiàn)兩輪車的直立行駛[2]. 積分得到的角度值每隔若干時間與加速度計采集的角度值進行比較,用以消除陀螺儀積分誤差和零偏量,從而使陀螺儀的積分值能很好地跟蹤加速度計所測得的瞬時角度值[3].
如果角速度的積分間隔時間太長,則不能很好地反映車模的角度變化情況,如果時間太短則不能很好地消除陀螺儀的噪聲影響. 分析積分數(shù)據(jù)后,發(fā)現(xiàn)積分時間在4 ms時的效果最好. 而陀螺儀的積分結(jié)果和加速度計進行比較的時間若太長,則不能很好地跟蹤加速度計的值,若太短會帶入加速度計的噪聲. 通過分析陀螺儀的積分數(shù)據(jù),確定比較時間在20 ms,陀螺儀的積分結(jié)果能很好地跟蹤加速度計輸出的角度值,同時輸出數(shù)據(jù)平滑,能很好地反映車模的瞬時角度值.
速度控制是在小車直立行駛的基礎(chǔ)上,通過給小車一個設(shè)定速度,將編碼器測得的實際速度與設(shè)定速度比較. 比較結(jié)果作為反饋量,控制PWM的輸出, 使小車按設(shè)定速度行駛.
由于MC9S12XS128單片機只有一路脈沖計數(shù)器,因此采用分時測速的方法實現(xiàn)對小車左、右輪速度的測量. 利用3路2通道數(shù)字模擬開關(guān)CD4053芯片中的B通道,分別對2路編碼器進行分時導(dǎo)通,從而實現(xiàn)分時測速. 如圖2所示, 左輪、右輪速度從BY、BX輸入,從BXY輸出并加載到單片機的片內(nèi)脈沖計數(shù)端(PT7腳),由MC9S12XS128的任一普通輸入輸出口控制CD4053的B腳來實現(xiàn)選擇,當(dāng)B=1時測量BY通道(左輪)輪速,當(dāng)B=0時測量BX通道(右輪)輪速.
小車運行方向采用差速控制,通過測量左、右兩電磁感應(yīng)線圈的電壓數(shù)值,兩者之和及兩者之差分別加載到外輪和內(nèi)輪的PWM輸出,從而實現(xiàn)兩輪小車的差速轉(zhuǎn)彎,其示意圖如圖3所示.
圖2 用CD4053實現(xiàn)分時測速電路圖
圖3 小車方向控制示意圖
差速控制算法公式為:
左輪速=左輪速-(左傳感-右傳感)×比例常數(shù)
右輪速=右輪速+(左傳感-右傳感)×比例常數(shù)
電磁兩輪自平衡小車的變速是速度控制的一個難點. 小車在直立狀態(tài)下的向前或向后的傾角大小直接影響直立時輸出到電機電壓的大小,因此通過控制小車的傾角來控制車子的加速度[4]. 實現(xiàn)的方法是先設(shè)定一個限制值作為加速與減速的分界線,將左右電磁傳感器測量的電壓之差和電壓之和進行比例調(diào)節(jié),得到左右傳感歸一差值, 再將歸一差值與設(shè)定的限制值進行比較,若超過限制值則減速,直到小車運動方向與車道上的電磁定向銅線方向一致,反之加速前進. 此限制值的取得與跑道的彎度有關(guān),若跑道彎道彎度小則限制值取值小,若跑道彎道彎度大則限制值取值大,本文取值為0.08. 具體程序算法流程如圖4所示.
圖4 小車變速算法流程圖
圖4中設(shè)定時間常數(shù)值是為了避免小車因一直加速導(dǎo)致車速太快而沖出跑道. 故設(shè)置定時加速,使車速在可控范圍內(nèi). 時間常數(shù)值的大小可以根據(jù)賽道直道的長短和車模速度來設(shè)定,最佳方案是減速結(jié)束時進入彎道,取值為100 ms;小車在直道時的速度與時間關(guān)系示意圖如圖5所示.
變速函數(shù)實現(xiàn)程序如下:
#define CHANGESPEEDFUNCTION //打開變速數(shù)
#define ChanSpeedPmin -0.08 //用于判斷是否在直道,數(shù)據(jù)試驗測得
#define ChanSpeedPmax 0.08
#define AccExcursion 40 //加速度計的零偏
#define AcceTime 10 //加速時間限制
#define AcceP 15 //增加加速度的大小
#ifdef CHANGESPEEDFUNCTION
void ChangeSpeed(int DireL,int DireR){ //變速控制函數(shù),此函數(shù)在中斷中調(diào)用
float ScaleFactor=0;
ScaleFactor=(DireL-DireR)/(DireL+DireR); //左右控制變量
if((ScaleFactor>ChanSpeedPmin)&&(ScaleFactor AngleExcursion=AccExcursion+AcceP; //更改加速度計的零偏值,即加速 DiretionSpeednum++; if(AcceTime==DiretionSpeednum) { //加速時間到就減速 DiretionSpeednum=0; AngleExcursion=AccExcursion-AcceP; //減速 } } else{ AngleExcursion=AccExcursion; //如果在彎道就正??刂?,即兩輪中心點為勻速 } } #endif 圖5 直道時小車速度與時間的關(guān)系曲線 本文討論了兩輪自平衡小車控制系統(tǒng)的設(shè)計思想與實現(xiàn)方法,從系統(tǒng)中直立控制模塊、速度控制模塊、方向控制模塊和變速模塊等構(gòu)成入手,對速度控制、方向控制和變速等模塊等軟硬件進行了分析,并給出了關(guān)鍵程序段. 通過測試以及飛思卡爾智能車比賽,證明本系統(tǒng)的設(shè)計是合理的,也大大提高了小車運行的速度. 開展對兩輪自平衡車的深入研究對提高我國在該領(lǐng)域的科研水平、擴展機器人的應(yīng)用背景等具有重要的理論及現(xiàn)實意義. [1] 王宜懷,曹金華. 嵌入式系統(tǒng)設(shè)計實戰(zhàn)—基于飛思卡爾S12X微控制器[M]. 北京:北京航空航天大學(xué),2011. [2] 王良成,楊志民,胡聰聰,等. 兩輪自平衡小車的設(shè)計與實現(xiàn)[J]. 實驗室科學(xué),2012,15(6): 52-55. [3] 段旭東,魏衡華,陳星. 基于DSP的二輪小車-倒立擺系統(tǒng)[J]. 控制工程,2004, 11(6): 521-524. [4] 劉金琨. 先進PID控制及其MATLAB仿真[M]. 北京:電子工業(yè)出版社,2003. [責(zé)任編輯:韋 韜] Design and Implementation of the Control System for Two-wheel Self-balancing Smart Cars ZHANGQi-qiu, CAIXiong-you, YEJun-hui, LIUHai-gang, XIANGHua-zhen (School of Information Engineering, Wuyi University, Jiangmen 529020, China) A speed control system is designed for the two-wheel self-balancing smart vertical car. The system adopts Freescale MC9S12XS128 as the core controller, the accelerometer MMA7260 for measuring angle acceleration and the gyroscope ENC03 for measuring the tilt angle of the car. The control of self-balancing, speed, direction and speed changing following the orbit of the smart car is achieved by measuring and calculating the angle acceleration and the tilt angle of the car. The designed car got a third prize in the Electromagnetic Group in the South China District Freescale smart car competition. self-balancing; speed control; direction control; regulating speed 1006-7302(2013)03-0057-04 TP242.6 A 2013-03-04 張啟秋(1988—),男,廣東茂名人,在讀本科生,主要從事傳感器及智能控制技術(shù)研究;劉海剛,高級實驗師,通信作者,主要從事傳感器技術(shù)及應(yīng)用研究.3 結(jié)束語