單片機 巡線小車
《單片機 巡線小車》由會員分享,可在線閱讀,更多相關(guān)《單片機 巡線小車(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、自動循跡小車 南京工程學院 課程設(shè)計報告 課 程 名 稱 單片機原理及應(yīng)用 班 級 數(shù)控092 姓 名 卞維彬 學 號 203090639 起 止 日 期 2011.11.5~2011.11.16 指 導(dǎo) 教 師 孫來業(yè)
2、
3、 一、系統(tǒng)方案 1.1設(shè)計要求 設(shè)計一個基于直流電機的自動尋跡小車,使小車能夠自動檢測地面黑色軌跡,并沿著黑色車軌跡行駛。系統(tǒng)方案方框圖如圖1-1所示。 檢測(黑線) 驅(qū)動電機 軟件控制 控制小車 圖1-1 系統(tǒng)方案方框圖 1.2.方案論證與比較 1、小車循跡原理 這里的循跡是指小車在白色地板上循黑線行走,由于黑線和白色地板對光線的反射系數(shù)不同,可以根據(jù)接收到的反射光的強弱來判斷“道路”。通常采取的方法是紅外探測法。 紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點,在小
4、車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色紙質(zhì)地板時發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線。紅外探測器探測距離有限,一般最大不應(yīng)超過3cm。但是由于我們的傳感器離地面距離較近,所以,用紅外探測器就足夠?qū)崿F(xiàn)尋跡功能。 2、小車變速原理 采用PWM 調(diào)速法進行調(diào)速,利用單片機輸出端輸出高電平的脈寬及其占空比的大小來控制電機的轉(zhuǎn)速,從而控制小車的速度。 在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。只要按一定規(guī)律,改變通
5、、斷電的時間,即可讓電機轉(zhuǎn)速得到控制。本系統(tǒng)中通過控制單片機的定時器T0的初值,從而可以實現(xiàn)P1.0、P1.1、P1.2和P1.3輸出口輸出不同占空比的脈沖波形來控制電機驅(qū)動。 3、控制系統(tǒng)總體設(shè)計 自動循跡小車控制系統(tǒng)由有以STC89C52作為核心的主控器模塊、穩(wěn)壓電源模塊、紅外檢測模塊、電機及驅(qū)動模塊、顯示模塊、聲光報警模塊等部分組成,控制系統(tǒng)的結(jié)構(gòu)框圖如圖所示。從單片機發(fā)出PWM波,驅(qū)動直流電機對小車進行加減速控制以及控制電機對小車進行轉(zhuǎn)向。為了對小車的速度進行控制,在小車電機齒輪旁安裝編碼盤,采集電機轉(zhuǎn)速的脈沖信號,經(jīng)光電傳感器捕獲后來進行速度的一系列計算,完成小車速度的閉環(huán)控
6、制。 電機 驅(qū)動 主控芯片 STC89C52 穩(wěn)壓電源 模塊 電壓比較器 光電傳感器 控制系統(tǒng)結(jié)構(gòu)框圖 1、 主控制電路模塊:用STC89C52單片機、復(fù)位電路、時鐘電路 2、 傳感檢測模塊:光電傳感器RPR220 3、 電機及驅(qū)動模塊:電機驅(qū)動電路、兩個直流電機 4、 電源模塊:LM7805 1.3系統(tǒng)方案選擇與論證 1、車體設(shè)計 方案一:自己動手制作電動車,由于制作過程要花費大量的時間,也受到手藝不
7、好的影響,制作出來的小車還可能機械性能不好??紤]到時間與性能這兩方面,我們放棄了這一方案。 方案二:購買玩具電動車,購買的小車具有組裝完整的車架車輪、電機及其驅(qū)動電路。易改裝,好控制,機械性能有保障。但選擇購買時應(yīng)注意有的玩具電動車由于裝配緊湊,使得各種所需傳感器的安裝十分不方便。 綜上考慮,我們選擇了方案2。 2、電源模塊 單片機系統(tǒng)、路徑識別的傳感器等均需要5V電源,市場上5V的穩(wěn)壓芯片有很多,例如LM2940、LM7805、開關(guān)型LM2575、LM2596,其中2940和7805轉(zhuǎn)換效率比較低,只有40%左右,但是輸出紋波很小,對于單片機這種對電源要求比較高的元件而言
8、很適合,而2575和2596是開關(guān)型的穩(wěn)壓芯片,轉(zhuǎn)換效率可以達到75%甚至80%以上,最大過流1A。但是輸出有紋波,很可能讓單片機出現(xiàn)重啟現(xiàn)象。7805輸入7.5V以上可以穩(wěn)定輸出5V,所以我們決定選用LM7805作為穩(wěn)壓芯片。 3、尋跡傳感器模塊 方案1:用光敏電阻組成光敏探測器。光敏電阻的阻值可以跟隨周圍環(huán)境光線的變化而變化。當光線照射到白線上面時,光線發(fā)射強烈,光線照射到黑線上面時,光線發(fā)射較弱。因此光敏電阻在白線和黑線上方時,阻值會發(fā)生明顯的變化。將阻值的變化值經(jīng)過比較器就可以輸出高低電平。但是這種方案受光照影響很大,不能夠穩(wěn)定的工作。因此我們考慮其他更加穩(wěn)定的方案。 方
9、案2:用紅外發(fā)射管和接收管自己制作光電對管尋跡傳感器。紅外發(fā)射管發(fā)出紅外線,當發(fā)出的紅外線照射到白色的平面后反射,若紅外接收管能接收到反射回的光線則檢測出白線繼而輸出低電平,若接收不到發(fā)射管發(fā)出的光線則檢測出黑線繼而輸出高電平。這樣自己制作組裝的尋跡傳感器基本能夠滿足要求。 因此我們選擇了方案2。 5、電機模塊 對于電動車來說,其驅(qū)動輪的驅(qū)動電機的選擇就顯得十分重要。由于本實驗要實現(xiàn)對路徑的準確定位和精確測量,我們綜合考慮了一下兩種方案。 方案1:采用步進電機作為該系統(tǒng)的驅(qū)動電機。由于其轉(zhuǎn)過的角度可以精確的定位,可以實現(xiàn)小車前進路程和位置的精確定位。雖然采用步進電機有諸多優(yōu)點,步進
10、電機的輸出力矩較低,隨轉(zhuǎn)速的升高而下降,且在較高轉(zhuǎn)速時會急劇下降,其轉(zhuǎn)速較低,不適用于小車等有一定速度要求的系統(tǒng)。經(jīng)綜合比較考慮,我們放棄了此方案。 方案2:采用直流電機。直流電機轉(zhuǎn)動力矩大,體積小,重量輕,裝配簡單,使用方便。由于其內(nèi)部由高速電動機提供原始動力,帶動變速(減速)齒輪組,可以產(chǎn)生較大扭力。能夠較好的滿足系統(tǒng)的要求,因此我們選擇了此方案。 6、驅(qū)動模塊 方案1:采用專用芯片L298N作為電機驅(qū)動芯片。L298N是一個具有高電壓大電流的全橋驅(qū)動芯片,一片L298N可以分別控制兩個直流電機,而且還帶有控制使能端。用該芯片作為電機驅(qū)動,性能優(yōu)良。但是該芯片成本較高,不符合實際
11、情況。 方案2:對于直流電機用分立元件構(gòu)成驅(qū)動電路。由分立元件構(gòu)成電機驅(qū)動電路,結(jié)構(gòu)簡單,價格低廉,在實際應(yīng)用中應(yīng)用廣泛,也完全符合題目要求。 因此我們選用了方案2。 二、模塊介紹與電路 2.1傳感器模塊電路設(shè)計 1.光電傳感器RPR220簡介 含一個反射模塊(發(fā)光二極管)和一個接收模塊(光敏三極管)。通過發(fā)射紅外信號,看接收信號變化判斷檢測物體狀態(tài)的變化。A、K之間接發(fā)光二極管,C、E之間接光敏三極管(二者在電路中均正接,但要串聯(lián)一定阻值的電阻) RPR220實物圖 2.具體電路 通過RPR220檢測黑線,輸出接收到的信號
12、給非門 ,接收電壓與比較電壓比較后,輸出信號變?yōu)楦叩碗娖?,再輸入到單片機中,用以判定是否檢測到黑線。 傳感器模塊電路圖 如果輸出加施密特觸發(fā)器就可以實現(xiàn)良好的輸出波形。 但是這種電路用電量比較大,給此種傳感器調(diào)理電路供電的電池壓降較快。究其原因,是因為光敏三極管和三極管VT1導(dǎo)通時的導(dǎo)通電流較大。 考慮用比較器的方案,圖中可調(diào)電阻可以調(diào)節(jié)比較器的門限電壓,經(jīng)示波器觀察,輸出波形相當規(guī)則,可以直接夠單片機查詢使用。 而且經(jīng)試驗驗證給此電路供電的電池的壓降較小。因此我們選擇此電路作為我們的傳感器檢測與調(diào)理電路。此光電對管電路簡單,工作性能
13、穩(wěn)定。 3.傳感器安裝 我們用一個字節(jié)來代表車底的3個光電傳感器。用每一個位來代表當前傳感器的檢測狀態(tài)。 我們把小車直線行進時分成三種狀態(tài),當中間2個傳感器都檢測到白線時,小車在跑道的正上方,這時控制兩電機同速度全速運行。當檢測到有一個傳感器或者同側(cè)的兩個傳感器偏出白線時,小車處于微偏狀態(tài),這時將一個電機速度調(diào)慢,另一電機速度調(diào)快,完成調(diào)整。當檢測到有三個電機偏出時,小車處于較大的偏離狀態(tài),這時把一個電機的速度調(diào)至極低,另一電機全速運行,從而在較短時間內(nèi)完成路線的調(diào)整。 用這種三級調(diào)速的尋跡算法同單純的判斷檢測到對管的位置并作出判斷的方法相比,程序思路清晰,程序執(zhí)行結(jié)果較好。 該
14、檢測傳感器子程序的流程圖如圖所示: ? 在小車具體的循跡行走過程中,為了能精確測定黑線位置并確定小車行走的方向,需要同時在底盤裝設(shè)3個紅外探測頭,進行兩級方向糾正控制,提高其循跡的可靠性。這3個紅外探頭的具體位置如圖所示 中間 左x1 右y1 右輪 左 輪 傳感器安裝圖 圖中循跡傳感器全部在一條直線上。其中X1與Y1為方向控制傳感器。小車前進時,始終保持(如圖3-6中所示的行走軌跡黑線)在X1和Y1這兩個第一級傳感
15、器之間,當小車偏離黑線時,把檢測的信號送給小車的處理、控制系統(tǒng),控制系統(tǒng)發(fā)出信號對小車軌跡予以糾正。若小車回到了軌道上,即2個探測器都只檢測到白紙,則小車會繼續(xù)行走。 2.2控制器模塊 采用STC89C52 單片機作為主控制器。它是一個低功耗,高性能的8 位單片機,片內(nèi)含32k 空間的可反復(fù)擦寫100,000 次Flash 只讀存儲器,具有4K 的隨機存取數(shù)據(jù)存儲器(RAM),32 個I/O口,2個8位可編程定時計數(shù)器,且可在線編程、調(diào)試,方便地實現(xiàn)程序的下載與整機的調(diào)試。 時鐘電路和復(fù)位電路 如圖(與單片機構(gòu)成最小系統(tǒng)) 1)采用外部時鐘,晶振頻率為12MHZ 2)采用按鍵復(fù)位
16、 時鐘電路和復(fù)位電路 單片機構(gòu)成最小系統(tǒng)實物圖 2.3電機驅(qū)動模塊 驅(qū)動: 用分立元件搭建的H橋驅(qū)動電路。 驅(qū)動電路的設(shè)計如圖3-10 所示: 圖3-10電機驅(qū)動電路 電機轉(zhuǎn)動狀態(tài)編碼: 左電機 右電機 左電機 右電機 電動車運行狀態(tài) Z1 Z2 Y1 Y2 0 1 0 1 正轉(zhuǎn) 正轉(zhuǎn) 直走 1 0 0 1 正轉(zhuǎn) 反轉(zhuǎn) 左轉(zhuǎn) 0 1 1 0 反轉(zhuǎn) 正轉(zhuǎn) 右轉(zhuǎn) 1 1 1 1 殺停 殺停 立刻停止 電機驅(qū)動模塊實物圖 2.4系統(tǒng)總體說明
17、 當光電傳感器開始接受信號,通過比較器將信號傳如單片機中。小車進入尋跡模式,即開始不停地掃描與探測器連接的單片I/O 口,一旦檢測到某個I/O 口有信號變化,就執(zhí)行相應(yīng)的判斷程序,把相應(yīng)的信號發(fā)送給電動機從而糾正小車的狀態(tài)。單片機采用T0定時計數(shù)器,通過來產(chǎn)生PWM波,控制電機轉(zhuǎn)速。 小車總實物圖 三、系統(tǒng)測試 測試工具: 儀器名稱 用途 電腦 調(diào)試及下載程序 數(shù)字萬用表 測量各種電路工作情況 單元模塊的測試 (A)電源測試:用數(shù)字萬用表電壓檔測量電路輸出的電壓值是否正常。 (B)光電對管線路尋跡模塊測試:通電后,在光電對管下面
18、放一張白紙是,用電壓表測量輸出端是不是為高電平;在放一張貼有黑膠布的紙張在光電對管下面,看電壓表的的電壓是否為低電平;來回移動帶有黑膠布的紙張,看電壓表的電壓值是否高低電平的變化。 (C) 電機驅(qū)動模塊電路測試:給電路通電以后,分別對2電路每個輸入端一個高低電平,看電機是否轉(zhuǎn)動;然后在反接試下,電機是否和開始的運轉(zhuǎn)方向相反。 四、軟件設(shè)計流程圖 4.1 PWM控制 本系統(tǒng)采用PWM來調(diào)節(jié)直流電機的速度。PWM是通過控制固定電壓的直流電源開關(guān)頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,如電機調(diào)速、溫度控制、壓力控
19、制等。 在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉(zhuǎn)速。因此,PWM又被稱為“開關(guān)驅(qū)動裝置”。 在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時間,即可讓電機轉(zhuǎn)速得到控制。 本系統(tǒng)中通過控制51單片機的定時器T0的初值,從而可以實現(xiàn)P1.0和P1.1輸出口輸出不同占空比的脈沖波形。定時計數(shù)器若干時間(比如0.1ms)中斷一次, 就使P1.2或P1.3產(chǎn)生一個高電平或低電平。占空比為高電平脈沖
20、個數(shù)占一個周期總脈沖個數(shù)的百分數(shù)。一個周期加在電機兩端的電壓為脈沖高電壓乘以占空比。占空比越大, 加在電機兩端的電壓越大, 電機轉(zhuǎn)動越快。電機的平均速度等于在一定的占空比下電機的最大速度乘以占空比。當我們改變占空比時, 就可以得到不同的電機平均速度, 從而達到調(diào)速的目的。精確地講, 平均速度與占空比并不是嚴格的線性關(guān)系, 在一般的應(yīng)用中, 可以將其近似地看成線性關(guān)系。 4.2小車循跡流程圖 小車進入循跡模式后,即開始不停地掃描與探測器連接的單片機I/O口,一旦檢測到某個I/O口有信號,即進入判斷處理程序,先確定5個探測器中的哪一個探測到了黑線,如果左面第一級傳感器或者左面第二級傳感器探
21、測到黑線,即小車左半部分壓到黑線,車身向右偏出,此時應(yīng)使小車向左轉(zhuǎn);如果是右面第一級傳感器或右面第二級傳感器探測到了黑線,即車身右半部壓住黑線,小車向左偏出了軌跡,則應(yīng)使小車向右轉(zhuǎn)。在經(jīng)過了方向調(diào)整后,小車再繼續(xù)向前行走,并繼續(xù)探測黑線重復(fù)上述動作。循跡流程圖如圖所示 循跡流程圖 啟動循跡模式 探測黑線 是否檢測到黑線 判斷處理程序 向左轉(zhuǎn) 向右轉(zhuǎn) 直走 停止 繼續(xù)前進 N Y 4.3中斷程序流程圖 這里利用的是51單片機的T0定時計數(shù)器,從而讓單片機P1口的P1.0、P1.1、P1.2和P1.3引腳輸出占空比不同的方波, 然后經(jīng)驅(qū)動芯片放大后控
22、制直流電機。定時計數(shù)器若干時間(比如0.1ms)比如中斷一次, 就產(chǎn)生一個高電平或低電平。中斷程序流程圖如圖所示 P1.0 P1.1 P1.2 P1.3 狀態(tài) 控制左電機 控制右電機 0 1 0 1 直走 0 1 1 0 右轉(zhuǎn) 1 0 0 1 左轉(zhuǎn) 1 1 1 1 停止 五. 設(shè)計感想 本次單片機課程設(shè)計我是選擇自主命題,自己畫電路板,這樣可以提高我的動手能力和實踐應(yīng)用能力。我以前看到過別人的尋跡小車,感覺很好玩,很想自己也做一輛,所以我就選擇做尋跡
23、小車了。 剛開始做時,基本沒有什么思路,所以我只好通過上網(wǎng),去圖書館找資料來搜集信息,這讓我對傳感器知識有了很多了解。我和我們班幾個同學是自己做電路板,自己畫電路圖并自己畫pcb板,由于我們是用單層板腐蝕制板,pcb圖比較困難,要通過不同的修改,有的地方還要用跳線,所以通過這次課程設(shè)計,我的pcb畫圖能力得到很大提高。 板子制好后要用多用表測量有沒有短路的電路,所以檢查要十分細心。然后打孔也十分困難,如果打孔時鉆頭稍微偏一點,就會是線路破壞,板子可能就沒用了。焊接元件也十分小心,由于沒有阻焊層,電路很容易短路,連接完后一定要記得檢查是否短路,不然會燒毀器件。 對于每一個硬件模塊,我都要用
24、程序去檢查調(diào)試,以此來發(fā)現(xiàn)問題,然后在合起來一起測試。所以模塊化設(shè)計是一個很好的設(shè)計思路,可以使問題化解,把復(fù)雜的問題簡單化。 其實尋跡小車的設(shè)計,硬件部分比較難,軟件部分相對簡單。我是采用PWM技術(shù)來進行速度調(diào)試的,只要控制電壓的占空比來調(diào)節(jié)速度的,所以只要通過開關(guān)的延時來調(diào)節(jié)。通過查詢探頭的狀態(tài)然后用switch語句來判斷,可以實現(xiàn)不同速度的轉(zhuǎn)換,從而控制左轉(zhuǎn),右轉(zhuǎn)等運動。 從這次課程設(shè)計中我收獲頗多。雖然遇到了很多困難,但從解決困難中是自己的工程實踐能力得到顯著提高,自己分析解決問題的能力也得到提高。書本上很多語句只有在實際應(yīng)用中才能采能發(fā)現(xiàn)它的具體用法,在實踐中才能真正檢驗自己的能
25、力。 六.參考資料 [1] 宋健,姜軍生,趙文亮. 基于單片機的直流電動機PWM 調(diào)速系統(tǒng)[J ] . 農(nóng)機化研究,2006 , (1) :102 - 103. [2] 邊春元 李文濤 江杰 杜平等;C51單片機典型模塊設(shè)計與應(yīng)用;機械工業(yè)出版社;2008.4 [3] 李華. MCS- 51 系列單片機實用接口技術(shù)[M].北京:航空航天大學出版社, 2003 [4] 樓然苗.51 單片機設(shè)計實例[M].北京:航空航天大學出版社,2005.8 [5] 王晶,翁顯耀,梁業(yè)宗 自動尋跡小車的傳感器模塊設(shè)計.武漢理工大學自動化學院 湖北武漢 [6] 劉迎春. 傳感器原理設(shè)計
26、與應(yīng)用[M] . 長沙:國防科技大學出版社,1992.
七.程序附件:
#include
27、0=t%256; EA=1; ET0=1; TR0=1; while(TF0!=1); TF0=0; TR0=0; } void zuodianji(uchar x,uchar y) { y1=0; y2=1; delay(x); y1=1; y2=1; delay(y); } void youdianji(uchar x,uchar y) { z1=0; z2=1; delay(x); z1=1; z2=1; delay(y); } void stop() { z1=1; z2=1; y
28、1=1; y2=1; } void zhizou() { zuodianji(10,10); youdianji(10,10); } void xunji() { uchar temp,a; uchar i=50; P0=0xff; a=P0; temp=(a&0x07); switch(temp) { case 0x05: zhizou();break; case 0x00: zhizou();break; case 0x04: zuodianji(30,60);youdianji(60,30);break; case 0x06: zuodianji(10,60);youdianji(60,10);break; case 0x01: zuodianji(60,30);youdianji(30,60);break; case 0x03: zuodianji(60,10);youdianji(10,60);break; case 0x07: stop();break; default: break; } } void main() { while(1) { xunji(); } } 20
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。