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