基于二維物體斜面黑線運(yùn)動(dòng)智能小車(chē)的設(shè)計(jì)
摘要:采用黑色膠布鋪設(shè)在淺色紙張中心,作為小車(chē)運(yùn)動(dòng)時(shí)的模擬黑線跑道。在凌陽(yáng)公司單片機(jī)SPCE061A的支持下,通過(guò)反射式光電傳感器判斷小車(chē)運(yùn)動(dòng)時(shí)的路面信息,經(jīng)過(guò)算法處理,送出控制信號(hào)到小車(chē)電機(jī),從而控制小車(chē)左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)和后退,使小車(chē)能夠準(zhǔn)確跟蹤黑線跑道,實(shí)現(xiàn)小車(chē)的簡(jiǎn)易智能化。
關(guān)鍵詞:SPCE061A單片機(jī);電機(jī);光電傳感器;自控小車(chē)
二維物體斜面運(yùn)動(dòng)算法是2005年全國(guó)大學(xué)生索尼杯電子競(jìng)賽E題“懸掛運(yùn)動(dòng)控制系統(tǒng)”延伸出的研究課題,其主要內(nèi)容是設(shè)計(jì)一個(gè)電機(jī)控制系統(tǒng),控制物體在傾斜(仰角≤100°)的板上運(yùn)動(dòng)。在一個(gè)白色底板上固定兩個(gè)滑輪,兩只電機(jī)(固定在板上)通過(guò)穿過(guò)滑輪吊繩控制一個(gè)物體在板上運(yùn)動(dòng),并達(dá)到如下要求:
1)控制物體在80x100 cm的范圍內(nèi)做自行設(shè)定的運(yùn)動(dòng);
2)控制物體作圓心可任意設(shè)定、直徑為50 cm的圓周運(yùn)動(dòng);
3)控制物體跟隨板上標(biāo)出的任意曲線運(yùn)動(dòng),線寬1.5~1.8 cm,總長(zhǎng)度約50 cm,顏色為黑色,曲線的前一部分是連續(xù)的,長(zhǎng)約30 cm,后一部分是兩段總長(zhǎng)約20 cm的間斷線段,間斷距離不大于1 cm,沿連續(xù)曲線運(yùn)動(dòng)限定在200 s內(nèi)完成,沿間斷曲線運(yùn)動(dòng)限定在300 s內(nèi)完成。
1 硬件電路設(shè)計(jì)
根據(jù)設(shè)計(jì)要求,系統(tǒng)可分為智能控制、傳感器檢測(cè)和電源3部分,整個(gè)系統(tǒng)示意圖如圖1所示。
智能控制部分:系統(tǒng)中控制器件根據(jù)由光電傳感器變換輸出的電信號(hào)進(jìn)行邏輯判斷,控制懸掛系統(tǒng)的電機(jī),顯示數(shù)碼管,完成了懸掛物體的自動(dòng)尋跡,尋跡移動(dòng)等各項(xiàng)任務(wù)??刂撇糠职?個(gè)主要單元電路:?jiǎn)纹瑱C(jī)控制電路,左右電機(jī)驅(qū)動(dòng)及控制電路,4x4按鍵輸入電路,數(shù)碼管動(dòng)態(tài)顯示電路。
傳感器檢測(cè)部分:系統(tǒng)利用光電傳感器檢測(cè)到的外部信息轉(zhuǎn)化為可控制器件能識(shí)別的電信號(hào),傳感器檢測(cè)部分主要用于軌跡探測(cè)電路。
電源部分:系統(tǒng)中采用自制的電源將220 V電壓降至恒穩(wěn)的12 V和5 V電壓對(duì)單片機(jī)、電機(jī)、電機(jī)控制部分、顯示數(shù)碼管、鍵盤(pán)、計(jì)數(shù)器、光電傳感器供電。
2 模塊選擇與電路設(shè)計(jì)
2.1 系統(tǒng)各模塊的選擇
1)單片機(jī)選擇模塊:選用凌陽(yáng)SPCE061A單片機(jī)。
2)電機(jī)選擇模塊:選用齒輪減速同步電機(jī)。
3)電機(jī)控制模塊:選用繼電器和光電傳感器組合控制電機(jī)。
4)顯示模塊:選用8位數(shù)碼管LED。
5)輸入模塊:選用4×4的鍵盤(pán)。
6)信號(hào)檢測(cè)模塊:選用反射式紅外傳感器。
2.2 主要電路設(shè)計(jì)
2.2.1 電機(jī)光電開(kāi)關(guān)檢測(cè)電路
利用電動(dòng)機(jī)的正反轉(zhuǎn)來(lái)帶動(dòng)控制物體運(yùn)動(dòng),在該設(shè)計(jì)中采用在電機(jī)的轉(zhuǎn)盤(pán)上安裝一個(gè)60條黑白線均勻的圓盤(pán),再用光電開(kāi)關(guān)來(lái)檢測(cè),如圖2所示。當(dāng)要控制物體在畫(huà)板上運(yùn)動(dòng)時(shí),電機(jī)轉(zhuǎn)動(dòng),光電傳感器利用接收黑自電平時(shí)輸出的高低電平,當(dāng)光點(diǎn)傳感器檢測(cè)到黑色條紋時(shí),輸出高電平給單片機(jī),相反當(dāng)檢測(cè)到白色條紋時(shí),輸出低電平,從而把連續(xù)輸出高低電平轉(zhuǎn)化為脈沖數(shù),也就把電機(jī)轉(zhuǎn)動(dòng)時(shí)帶動(dòng)有黑白線的圓盤(pán)黑自條數(shù)轉(zhuǎn)換成脈沖數(shù),從而觸發(fā)光耦U1或U2,經(jīng)單片機(jī)IOB2或IOB3口輸入信號(hào)來(lái)控制電機(jī)的轉(zhuǎn)動(dòng),計(jì)算物體運(yùn)動(dòng)軌跡,從而控制物體的運(yùn)動(dòng)。
2.2.2 路面檢測(cè)模塊選擇
在小車(chē)前面的左右兩端分別安裝反射式光電傳感器,安裝的寬度至少要大于黑線的寬度,如圖3所示。小車(chē)運(yùn)動(dòng)路面是在白色紙張上面鋪設(shè)黑色膠布作為中心,這主要基于光電傳感器在檢測(cè)到白色和黑色時(shí)兩種不同的電平狀態(tài)的原理。當(dāng)光電傳感器面對(duì)黑線時(shí),發(fā)出的光被吸收,不能發(fā)生發(fā)射,此時(shí)光敏三極管Q不能導(dǎo)通,輸出為低電平;當(dāng)面對(duì)白線時(shí),光電二極管發(fā)出的光經(jīng)過(guò)白線反射到達(dá)光敏三極管Q,使Q導(dǎo)通從而輸出高電平,再經(jīng)觸發(fā)非門(mén)74HC14的兩次觸發(fā)反相,消除干擾,把信號(hào)送到單片機(jī)相應(yīng)的引腳。由此可以在小車(chē)行進(jìn)的時(shí)候,讓系統(tǒng)的控制模塊同時(shí)監(jiān)視兩個(gè)光電傳感器的狀態(tài),并送到單片機(jī)的相應(yīng)引腳,經(jīng)過(guò)程序算法處理后送到電機(jī)控制引腳,根據(jù)不同的信號(hào)組合實(shí)現(xiàn)不同的運(yùn)動(dòng)調(diào)整方式,完成小車(chē)的黑線運(yùn)動(dòng)。
2.2.3 電機(jī)控制部分的單元電路設(shè)計(jì)
電機(jī)驅(qū)動(dòng)部分分為左右兩部分,兩個(gè)電機(jī)配合工作負(fù)責(zé)懸掛物體的拉動(dòng)定位。兩個(gè)電機(jī)為齒輪減速同步電機(jī),轉(zhuǎn)數(shù)恒定為20 r/min,設(shè)計(jì)兩個(gè)控制電路來(lái)控制電機(jī)的開(kāi)關(guān)。繼電器對(duì)電動(dòng)機(jī)的開(kāi)或關(guān)進(jìn)行控制,通過(guò)引腳電平的切換對(duì)電機(jī)的轉(zhuǎn)向進(jìn)行調(diào)整。
電路采用光耦繼電器式對(duì)電機(jī)的轉(zhuǎn)動(dòng)及轉(zhuǎn)向進(jìn)行控制,如圖4所示,各端口功能為,IOB8控制電機(jī)1的正轉(zhuǎn),IOB9控制電機(jī)1的反轉(zhuǎn),IOB 10控制電機(jī)2的正轉(zhuǎn),IOB11控制電機(jī)2的反轉(zhuǎn)。
當(dāng)IOB8或IOB10為高電平時(shí),光耦U2導(dǎo)通,8050導(dǎo)通,+12 V電壓驅(qū)動(dòng)繼電器,從而使交流220 V電壓加到電動(dòng)機(jī)上,電動(dòng)機(jī)正轉(zhuǎn)。當(dāng)IOB9或IOB11為高電平時(shí),光耦U3導(dǎo)通,8050導(dǎo)通,+12 V電壓驅(qū)動(dòng)繼電器,從而使交流220 V電壓加到電動(dòng)機(jī)上,電動(dòng)機(jī)反轉(zhuǎn)。當(dāng)IOB8或IOB10與IOB9或IOB11都為低電平時(shí),電機(jī)停止轉(zhuǎn)動(dòng)。由于所選電動(dòng)機(jī)具有抱閘功能,為齒輪減速電動(dòng)機(jī),因此在斷電的時(shí)候,幾乎能同時(shí)停止運(yùn)動(dòng),保證了物體運(yùn)動(dòng)的準(zhǔn)確性,而且外圍電路簡(jiǎn)單,很容易操作。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)采用凌陽(yáng)獨(dú)有的C語(yǔ)言和匯編混合使用對(duì)單片機(jī)進(jìn)行編程以實(shí)現(xiàn)各項(xiàng)功能,主程序主要起到一個(gè)導(dǎo)向和決策功能。為了讓小車(chē)能夠準(zhǔn)確的沿黑線運(yùn)動(dòng),所設(shè)計(jì)的程序就應(yīng)該讓控制系統(tǒng)實(shí)時(shí)地監(jiān)視光電傳感器地狀態(tài),調(diào)整小車(chē)運(yùn)動(dòng)一直回到正常運(yùn)動(dòng)狀態(tài)中。因此,主程序主要包括小車(chē)運(yùn)動(dòng)子程序、光電檢測(cè)的子程序、顯示時(shí)間的子程序清看門(mén)狗子程序等。小車(chē)運(yùn)動(dòng)程序流程圖如圖5所示。
在程序中,為了小車(chē)運(yùn)動(dòng)能夠準(zhǔn)確地判斷出當(dāng)前所處的運(yùn)動(dòng)狀態(tài),讓單片機(jī)及時(shí)地讀取B口低8位的數(shù)據(jù)。為了小車(chē)運(yùn)動(dòng)的連貫性和準(zhǔn)確性,在流程圖中使用了延時(shí)程序。同時(shí),為了避免出現(xiàn)單片機(jī)系統(tǒng)自動(dòng)復(fù)位,對(duì)小車(chē)的運(yùn)動(dòng)造成影響,設(shè)置了清看門(mén)狗程序。
4 系統(tǒng)測(cè)試
在此設(shè)計(jì)的基礎(chǔ)上,通過(guò)安裝調(diào)試,整個(gè)智能小車(chē)系統(tǒng)已經(jīng)形成,為了能讓小車(chē)能很準(zhǔn)確沿黑線運(yùn)動(dòng),利用光電測(cè)試模塊,由單片機(jī)控制物體作任意形狀的尋跡運(yùn)動(dòng),并能判斷間斷線段,測(cè)試結(jié)果如表1、表2所示。在運(yùn)動(dòng)時(shí)間測(cè)試時(shí)采用精度為0.01的秒表,檢測(cè)小車(chē)運(yùn)動(dòng)時(shí)顯示時(shí)間的正確性,如果程序中存在誤差,就應(yīng)該通過(guò)軟件或者硬件的方法修正誤差,進(jìn)一步減小誤差。測(cè)試時(shí)間過(guò)程如表3所示。
5 結(jié)束語(yǔ)
本系統(tǒng)以凌陽(yáng)SPCE061A單片機(jī)芯片為核心部件,主要是利用繼電器控制技術(shù)和光電傳感器的檢測(cè)技術(shù)二維斜面的黑線運(yùn)動(dòng)智能小車(chē)的設(shè)計(jì),在系統(tǒng)設(shè)計(jì)過(guò)程中,力求硬件線路簡(jiǎn)單,充分發(fā)揮軟件編程的方便靈活的特點(diǎn),來(lái)滿足本設(shè)計(jì)的要求。從測(cè)試項(xiàng)目來(lái)看,所設(shè)計(jì)出的小車(chē)能夠?qū)崿F(xiàn)誤差較小的沿黑線準(zhǔn)確運(yùn)動(dòng)和同時(shí)顯示運(yùn)動(dòng)時(shí)間的要求。在運(yùn)動(dòng)方面,整個(gè)運(yùn)動(dòng)過(guò)程比較連續(xù),但在轉(zhuǎn)彎幅度比較大的地方時(shí),小車(chē)運(yùn)動(dòng)時(shí)就需要時(shí)間來(lái)計(jì)算、調(diào)整。在顯示時(shí)間方面,雖然存在一定的誤差,考慮到誤差很小,以及程序的執(zhí)行花費(fèi)的時(shí)間,可以忽略不計(jì)。