基于線性CCD的兩輪自平衡智能小車控制系統(tǒng)設(shè)計
近年來,隨著技術(shù)的不斷進步,兩輪自平衡小車以其結(jié)構(gòu)簡單、輕盈小巧、運動靈活、高效節(jié)能等特點,在許多個領(lǐng)域得到了較大的發(fā)展。本文設(shè)計并制作了一臺兩輪小車,用飛思卡爾公司生產(chǎn)的MK60DN512ZVLQ10單片機作為核心控制器,加速度計MMA7260和陀螺儀ENC03作為車身姿態(tài)控制測量元件,實現(xiàn)兩輪小車的自平衡。根據(jù)設(shè)定速度與小車速度的偏差控制電機的電壓,以實現(xiàn)速度控制,并利用線性CCD采集賽道信息,根據(jù)路徑的彎度控制小車兩個輪子的轉(zhuǎn)速實現(xiàn)轉(zhuǎn)向控制,從而實現(xiàn)兩輪直立車的尋跡方案。
本文引用地址:http://2s4d.com/article/201610/309880.htm1 系統(tǒng)組成
系統(tǒng)主要由單片機核心控制器、直立控制模塊、速度控制模塊、方向控制模塊等功能模塊構(gòu)成。直立控制模塊包含陀螺儀及加速度計,將它們安裝在小車的重心位置,這樣能保證傳感器不會太敏感或太遲鈍,兩者的數(shù)據(jù)融合使小車能保持一定的傾角前進。速度控制模塊:電機驅(qū)動模塊驅(qū)動直流電機運轉(zhuǎn),通過安裝于左、右輪的編碼器測速,與設(shè)定速度進行比較,控制小車按設(shè)定速度行駛。方向控制模塊:通過安裝于小車運動上方支架上的線性CCD,控制兩輪實現(xiàn)差速轉(zhuǎn)彎,以控制運動方向,系統(tǒng)框圖如圖1所示。
2 各個控制模塊
2.1 直立控制模塊
兩輪車行走的首要條件是車的直立平衡,我們設(shè)計的參考方案如圖2所示。它是通過陀螺儀ENC03采集到車傾斜的角速度w,通過加速度計采集車傾斜的角度θacc,與陀螺儀積分得到的角度θ比較,得到偏差量e2(t)經(jīng)過比例1/Tg轉(zhuǎn)換作為反饋量給陀螺儀,偏差量e1(t)與陀螺儀采集到的角速度相加再積分作為車傾斜的角度θ。由于陀螺儀會有積分誤
差及溫漂,采用加速度計就可以減少陀螺儀的誤差,加速度由于受外界的干擾比較大,瞬間值不夠準(zhǔn)確,所以配合陀螺儀的使用,兩者共同作用來采集車模的傾角。
2.2 速度控制模塊
電機驅(qū)動采用4個BTS7960組成H橋電路來驅(qū)動直流電機的轉(zhuǎn)動,另外采用MK60N512VMD10單片機兩路脈沖計數(shù)器,通過編碼器分別測出小車左、右輪的脈沖量。利用4路PWM分別控制兩個電機的正反轉(zhuǎn)。如圖3所示,當(dāng)開關(guān)QA、QD接通,電機為正向轉(zhuǎn)動,開關(guān)QB、QC接通則電機反向轉(zhuǎn)動,從而實現(xiàn)電機的正反轉(zhuǎn),電流的大小,決定電機的轉(zhuǎn)速,通過PWM占空比來決定電流的大小,從而間接地控制了電機的轉(zhuǎn)速。
小車的速度控制是建立在小車直立的基礎(chǔ)上的,通過給小車一個設(shè)定速度,然后將編碼器測得的小車實際速度與設(shè)定速度進行比較,偏差量作為反饋量,經(jīng)過比例PSPEED、積分ISPEED的和作為速度的輸出,進一步控制PWM的輸出從而使小車按設(shè)定速度行走,如圖4所示。
2.3 方向控制模塊
小車運行方向控制是通過兩個輪子的差速來實現(xiàn),而差速是由線性CCD采集賽道信息來計算彎道兩邊黑線與直道時兩邊黑線的偏差值來確定。我們比賽使用的CCD型號為TSL1 401,屬于線性CCD,與面陣CCD相比,線性CCD只是采集一行的數(shù)據(jù),而這一行數(shù)據(jù)是由線性CCD傳感器128個光電二極管通過積分電路所采集的圖像灰度值。
對于采集回來的128個數(shù)據(jù),要確定一個閾值Th,一般情況下為200左右(還能通過撥碼開關(guān)根據(jù)現(xiàn)場環(huán)境亮度來選擇幾個不同的閾值Th),來區(qū)分開白色跑道與其它顏色灰暗的非跑道區(qū)域。對于白色跑道反饋回來的值肯定是比其它反饋回來的值大,取這些數(shù)的一個中值來作為閾值,來區(qū)分賽道的黑白點(除了白色賽道,其余都是黑點),就可以判別
出白色跑道,然后就可以計算出彎道時與正常跑道的偏差值,將兩邊的偏差值相減再轉(zhuǎn)換成電壓值加到方向輸出函數(shù)中,就可以控制小車的轉(zhuǎn)向了。程序框圖如圖5所示。
由于比賽的賽道有虛線,所以我們將采集到128個點的數(shù)據(jù)從中間(第64個點的數(shù)據(jù))往兩邊處理(左邊64-0跟右邊64-127的情況是一樣的),目的是尋找兩邊的黑點,與設(shè)定的閾值Th相比,如果小于閾值Th,再判斷3個點是否都小于閾值Th,如果是,則認(rèn)為是檢測到了賽道邊上的黑線。
程序?qū)崿F(xiàn)部分(左邊64-0的64個點檢測部分):
3 結(jié)束語
文中討論了基于線性CCD的兩輪自平衡小車控制系統(tǒng)的設(shè)計思想及實現(xiàn)方法,對系統(tǒng)中通過線性CCD完成對賽道識別的方向控制模塊,以及直立控制模塊、速度控制模塊等模塊的軟硬件進行了分析,并給出了關(guān)鍵程序段。通過測試及參加飛思卡爾智能車比賽,證明這個系統(tǒng)是合理的,也提高了小車運行的速度。開展對兩輪自平衡車的深入研究對提高我國在這一領(lǐng)域的科研水平、擴展機器人的應(yīng)用背景等具有重要的理論及現(xiàn)實意義。
評論