歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

基于單片機的智能小車的設(shè)計——畢業(yè)論文

  • 資源ID:116418086       資源大小:1.94MB        全文頁數(shù):54頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

基于單片機的智能小車的設(shè)計——畢業(yè)論文

基于單片機的智能小車的設(shè)計基于單片機的智能小車的設(shè)計摘要近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入。同時帶動傳統(tǒng)控制檢測,日新月益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用。單片機是把主要計算機功能部件都集成在一塊芯片上的微型計算機。它是一種集計數(shù)和多中接口于一體的微控制器。而51單片機是單片機中最為典型和最有代表性的一種。本設(shè)計主要應(yīng)用AT89S51作為控制核心,與顯示器、驅(qū)動電路等相結(jié)合的系統(tǒng)?;趩纹瑱C設(shè)計。利用單片機AT89S51作為報警裝置的控制器,能充分發(fā)揮AT89S51的數(shù)據(jù)處理和實時控制功能。使系統(tǒng)工作處于最佳狀態(tài),提高系統(tǒng)的靈敏度。當(dāng)產(chǎn)生信號驅(qū)動小車前進時,通過尋跡模塊里的紅外對管是否尋到黑線產(chǎn)生的電平信號再返回到單片機,單片機根據(jù)程序設(shè)計要求做出相應(yīng)的判斷送給電機驅(qū)動模塊.控制小車讓其在黑線上實現(xiàn)前進后退以及轉(zhuǎn)向。關(guān)鍵詞:單片機 尋跡 報警 紅外 電機驅(qū)動48AbstractWith the rapid development of science and technology in recent years, SCM applications are continually deepening. Traditional control test drive at the same time, the rapidly growing update. In real-time detection and control of the microcomputer application system, the microcontroller is often used as a core component. SCM is the main feature integrated computer chip in a micro-computer. It is a set of multi-counting and the interface in one of the micro-controller. The 51 single-chip microcontroller is the most typical and most representative one.The design of the main application AT89S51 as the control, and display driver integrated circuits and other systems. Based on single chip design. MCU AT89S51 using the controller as an alarm device that can give full play to AT89S51 of data processing and real-time control functions. Make the system work in the best condition, improve the system sensitivity.When two signal driven forward by car tracing module,the infrares on whether to produce level signals through the black,retutn again according to requirement of design procedure of judgment for motor driver module,it controls the car turning back forward of running on the black line.Keywords: SCM,Tracing, Alarm device, Level signals, Motor driver module目錄摘要IAbstractII目錄III前言11 設(shè)計任務(wù)及方案21.1 設(shè)計任務(wù)及要求21.2 設(shè)計方案論證21.2.1 控制器選擇21.2.2 電機驅(qū)動芯片的選擇31.2.3 路況檢測模塊42 系統(tǒng)硬件電路與實現(xiàn)52.1 紅外遙控及解碼模塊52.1.1 二進制信號的調(diào)制62.1.2 二進制信號的解調(diào)72.1.3 二進制信號的解碼72.2 單片機紅外接收硬件電路的實現(xiàn)82.3 電機驅(qū)動模塊92.4路況檢測模塊132.4.1 尋跡模塊142.4.2 智能防撞報警模塊163系統(tǒng)軟件設(shè)計與實現(xiàn)173.1整體程序的構(gòu)架183.2紅外遙控解碼的實現(xiàn)193.3電機驅(qū)動213.4 小車尋跡213.5 小車防撞報警224 小車系統(tǒng)原理圖245 系統(tǒng)調(diào)試265.1 遙控發(fā)送接收調(diào)試265.2 電機驅(qū)動調(diào)試275.3 尋黑線和防撞的調(diào)試27總結(jié)27致謝28參考文獻29附錄30元件清單30系統(tǒng)程序31前言當(dāng)今世界,傳感器技術(shù)和自動控制技術(shù)正在飛速發(fā)展,機械、電氣和電子信息已經(jīng)不再明顯分家,自動控制在工業(yè)領(lǐng)域中的地位已經(jīng)越來越重要,“智能”這個詞也已經(jīng)成為了熱門詞匯?,F(xiàn)在國外的自動控制和傳感器技術(shù)已經(jīng)達到了很高的水平,特別是日本,比如日本本田制作的機器人,其仿人雙足行走已經(jīng)做得十分逼真,而且具有一定的學(xué)習(xí)能力,還據(jù)說其智商已達到6歲兒童的水平。作為機械行業(yè)的代表產(chǎn)品汽車,其與電子信息產(chǎn)業(yè)的融合速度也顯著提高,呈現(xiàn)出兩個明顯的特點:一是電子裝置占汽車整車(特別是轎車)的價值量比例逐步提高,汽車將由以機械產(chǎn)品為主向高級的機電一體化方向發(fā)展,汽車電子產(chǎn)業(yè)也很有可能成為依托整車制造業(yè)和用車提升配置而快速成為新的增長點;二是汽車開始向電子化、多媒體化和智能化方向發(fā)展,使其不僅作為一種代步工具、同時能具有交通、娛樂、辦公和通訊等多種功能。無容置疑,電子信息化人才的培養(yǎng)不論是在國外還是國內(nèi),都開始重視起來,主要表現(xiàn)在大學(xué)生的各種大型的創(chuàng)新比賽,比如:亞洲廣播電視聯(lián)盟亞太地區(qū)機器人大賽(ABU ROBCON)、全國大學(xué)生“飛思卡爾”杯智能汽車競賽等眾多重要競賽都能很好的培養(yǎng)大學(xué)生對于機電一體化的興趣與強化機電一體化的相關(guān)知識。但很現(xiàn)實的狀況是,國內(nèi)不論是在機械還是電氣領(lǐng)域,與國外的差距還是很明顯的,所以作為電子信息化學(xué)生,必須加倍努力,為逐步趕上國外先進水平并超過之而努力。為了適應(yīng)智能控制的發(fā)展在汽車智能化方向的發(fā)展要求,提出簡易智能小車的構(gòu)想,目的在于:通過獨立設(shè)計并制作一輛具有簡單智能化的簡易小車,獲得項目整體設(shè)計的能力,并掌握多通道多樣化傳感器綜合控制的方法。所以立“智能循跡小車”一題作為嘗試。此項設(shè)計是在以楊老師提供的小車為基礎(chǔ)上,采用AT89C52單片機作為控制核心,實現(xiàn)能夠自主識別黑色引導(dǎo)線并根據(jù)黑線走向?qū)崿F(xiàn)快速穩(wěn)定的尋線行駛。1 設(shè)計任務(wù)及方案1.1 設(shè)計任務(wù)及要求此次的設(shè)計任務(wù)是設(shè)計一款基于單片機的智能小車的設(shè)計。設(shè)計要求如下:具有單片機核心控制模塊;具有紅外遙控解碼模塊;具有電機驅(qū)動模塊;具有路況檢測模塊;具有光感模塊;具有聲控模塊;具有七段數(shù)碼管顯示模塊;具有報警模塊;1.2 設(shè)計方案論證1.2.1 控制器選擇方案一:采用MSP430單片機MSP430是德州儀器 (TI)的一種RISC混合信號處理器,MSP430產(chǎn)品系列為電池供電測量應(yīng)用提供了最終解決方案。作為混合信號和數(shù)字技術(shù)的領(lǐng)導(dǎo)者,TI創(chuàng)新生產(chǎn)的MSP430,使系統(tǒng)設(shè)計人員能夠在保持獨一無二的低功率的同時同步連接至模擬信號、傳感器和數(shù)字組件。MSP430優(yōu)點:0.1uA RAM 保持;0.8uA實時時鐘模式;250uA/MIPS有效;高性能模擬器件;是精確測量的理想選擇;先進的16位RISC CPU使得新的應(yīng)用僅需一段代碼即可實現(xiàn);系統(tǒng)內(nèi)可編程閃存允許更改代碼、更新字段和記錄數(shù)據(jù)。但是,MSP430每個管腳的驅(qū)動能力較弱,有利于低功耗,但是在電源方面,處理器使用的功耗相對輸入幾乎沒有多大影響。MSP430使用的主頻相對較低,處理速度較慢,在本系統(tǒng)中要使用電機驅(qū)動控制,對管腳輸出都有較高的要求。所以在本系統(tǒng)中使用MSP430不利于系統(tǒng)的控制。方案二:采用AT89S51單片機1AT89S51是一種低功耗、高性能CMOS8位微控制器,具8K在系統(tǒng)可編程 Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程 Flash,使得 AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S51具有以下標準功能:8k字節(jié)Flash,256字節(jié) RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。方案選擇:綜上所述:通過以上方案比較,在本系統(tǒng)中控制器選用第二個方案,使用AT89S51作控制器。因為該單片機成本低廉,操作起來方便,因此本設(shè)計控制器選用此方案。1.2.2 電機驅(qū)動芯片的選擇方案一:采用L298N L298N為SGS-THOMSON Microelectronics 所出產(chǎn)的雙全橋步進電機專用驅(qū)動芯片( Dual Full-Bridge Driver ) ,內(nèi)部包含4信道邏輯驅(qū)動電路,是一種二相CEs838電子-技術(shù)資料-電子元件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識-原理-維修-作用-參數(shù)-電子元器件符號-各種圖紙和四相步進電機的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進電機,內(nèi)含二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器,接收標準CEs838電子-技術(shù)資料-電子元件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識-原理-維修-作用-參數(shù)-電子元器件符號-各種圖紙TTL邏輯準位信號,可驅(qū)動46V、2A以下的步進電機,且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號,CEs838電子-技術(shù)資料-電子元件-電路圖-技術(shù)應(yīng)用網(wǎng)站-基本知識-原理-維修-作用-參數(shù)-電子元器件符號-各種圖紙但在智能小車電路中單片機IO 端口的使用匱乏。該設(shè)計也不用于速度控制,相對來講LG9110成本較低。方案二:采用LG9110LG9110是為控制和驅(qū)動電機設(shè)計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本降低,整機可靠性提高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅(qū)動電機的正反轉(zhuǎn)運動,它具有較大的電流驅(qū)動能力,每通道能通過750-800mA的持續(xù)電流,峰值電流能力可達1.5-2.0A;同時它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放感性負載的反向沖擊電流,使它在驅(qū)動繼電器、直流電機、步進電機或開關(guān)功率管的使用安全可靠。LG9110被廣泛應(yīng)用于玩具汽車電機驅(qū)動、步進電機驅(qū)動、和開關(guān)功率管等電路上。方案三:使用分立原件搭建電機驅(qū)動電路 使用分立原件搭建電機驅(qū)動電路造價低廉,在大規(guī)模生產(chǎn)中使用廣泛。但分立原件H橋電路工作性能不夠穩(wěn)定,較易出現(xiàn)硬件上的故障,故我們放棄了這一方案。綜上所述:通過以上方案比較,在本系統(tǒng)中電機驅(qū)動芯片選用第二個方案,使用LG9110作為驅(qū)動電路。因為該LG9110驅(qū)動能力強,成本低廉,操作起來方便,因此本設(shè)計控制器選用此方案。1.2.3 路況檢測模塊采用紅外發(fā)送接收探頭來檢測實時路況信息,并傳回單片機處理。紅外發(fā)射探頭發(fā)射紅外信號,遇地面或障礙物反射回紅外接收探頭,紅外接收探頭接收到從地面或障礙物反射回的紅外信號之后給單片給一個電平信號,來判斷整體路況信息。2 系統(tǒng)硬件電路與實現(xiàn)本設(shè)計采用了AT89C52單片機作為主控芯片來處理各個模塊的運營,系統(tǒng)硬件總框圖如圖2.1AT89C52遙控模塊路面檢測模塊電機驅(qū)動模塊報警模塊顯示模塊 圖2.1 系統(tǒng)硬件總體框圖2.1 紅外遙控及解碼模塊紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強,信息傳輸可靠,功耗低,低成本,易實現(xiàn)等顯著優(yōu)點,被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應(yīng)用到計算機系統(tǒng)中。紅外遙控由發(fā)送和接收兩個部分組成。發(fā)送部分由主芯片將待發(fā)的二進制信號編碼調(diào)制為一系列的脈沖串信號,通過紅外發(fā)射管發(fā)射紅外信號紅外信號接收端普遍采用價格便宜,性能可靠的一體化紅外接收頭(如HS0038,它接收紅外頻率為38KHz,周期為26us)接收紅外信號,它同時對信號進行放大、檢波、整形,得到TTL電平的編碼信號,再送給單片機,經(jīng)單片機解碼并執(zhí)行,去控制相關(guān)對象。如圖2.1.1所示。遙控器一體化紅外接收頭單片機發(fā)送接收解調(diào)解碼圖2.1.1 紅外遙控解碼框圖 2.1.1 二進制信號的調(diào)制二進制信號的調(diào)制由遙控器的主芯片來完成,它把編碼后的二進制信號調(diào)制成頻率為 38KHz的間斷脈沖串,相當(dāng)于用二進制信號的編碼乘以頻率為38KHz 的脈沖信號得到的間斷脈沖串,即是調(diào)制后用于紅外發(fā)射二極管發(fā)送的信號。如圖2.1.2所示,A是二進制信號的編碼波形,B 是頻率為38KHz(周期為26us) 的連續(xù)脈沖串,C是經(jīng)調(diào)制后的間斷脈沖串(相當(dāng)于C=AB),用于紅外發(fā)射二極管發(fā)送的波形。圖2.1.2中,待發(fā)送的二進制數(shù)據(jù)為 101。如圖 2.1.2所示。 圖2.1.2 二進制信號的調(diào)制2.1.2 二進制信號的解調(diào)二進制信號的解調(diào)由一體化紅外接收頭HS0038來完成,它把收到的紅外信號經(jīng)內(nèi)部處理并解調(diào)復(fù)原,輸出圖2.1.3中波形E(正好是對圖2.1.2中波形A 的取反),HS0038的解調(diào)可理解為:在輸入有脈沖串時,輸出端輸出低電平,否則輸出高電平。一體化紅外接收頭HS0038的 1腳GND接電源地,2腳VCC接+5V,3腳OUT為數(shù)據(jù)輸出(TTL電平,反相輸出),可直接與單片機相聯(lián)。 圖2.1.3 HS0038解調(diào)出的波形2.1.3 二進制信號的解碼二進制信號的解碼由接收單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,還原出發(fā)送端發(fā)送的數(shù)據(jù)。如圖2.1.3,把波形E解碼還原成數(shù)據(jù)信息101。圖2.1.4為紅外信號的編碼格式傳輸開始8位數(shù)據(jù)傳輸結(jié)束20個脈沖高位在前,低位在后10個脈沖 圖2.1.4 紅外信號的編碼格式2.2 單片機紅外接收硬件電路的實現(xiàn)圖2.2.1中,一體化紅外接收頭IR的圓形面為紅外接收面,它與SE303紅外發(fā)射管的有效收發(fā)直射距離為35m。 圖2.2.1 紅外接收電路3腳接電源,2腳接地,一腳接單片機的P3.3(外部中斷0),當(dāng)有紅外信號輸入時,1腳解調(diào)之后將數(shù)據(jù)信息傳送給單片機引起單片機中斷,從而對紅外信號進行解碼。2.3 電機驅(qū)動模塊在幾乎所有的遙控車大都采用了直流電機來控制小車的行為,直流電機有兩個控制端,通過改變輸入電平的不同來改變電機的運轉(zhuǎn)。圖2.3.1為電機驅(qū)動模塊的硬件電路圖。圖2.3.1電機驅(qū)動模塊 在圖2.3.1中,單片機通過控制P0.0P0.3引腳電平的高低來控制直流電機M1、M2的正反轉(zhuǎn)。當(dāng)P0.0P0.3輸入為1010時,兩電機均處于正轉(zhuǎn)狀態(tài),此時小車表現(xiàn)為整體前進;當(dāng)P0.0P0.30輸入為0101時,兩電機均處于反轉(zhuǎn)模式,小車整體表現(xiàn)為后退。當(dāng)P0.0P0.3輸入為1001以及0110時,一電機正轉(zhuǎn),另一電機反轉(zhuǎn),從而實現(xiàn)了左右轉(zhuǎn)向功能。很顯然,僅僅只靠單片機來驅(qū)動小車的行為是不現(xiàn)實的,因為單片機自身管腳輸出的高電平的電壓是很微弱的,這種電壓直接控制電機會使得電機馬力不足,沒能夠帶動整個小車運行,所以在這種情況之下,最適合的就是運用電機驅(qū)動芯片來完成小車的驅(qū)動,這里我們采用了一款價格低廉的電機驅(qū)動芯片L9110來完成它的使命,實際上L298N這款芯片能夠更好的驅(qū)動電機,并能實現(xiàn)電機調(diào)速的功能,但由于小車自身重量因數(shù)和電壓問題我們就采用L9110了。下面給出關(guān)于L9110的相關(guān)數(shù)據(jù)手冊。 圖2.3.2 LG9110的實物圖特點: 低靜態(tài)工作電流; 寬電源電壓范圍 2.5V-12V; 每通道具有800mA連續(xù)電流輸出能力; 較低的飽和壓降; TTL/CMOS輸出電平兼容,可直接連接CPU; 輸出內(nèi)置鉗位二極管,適用于感性負載; 控制和驅(qū)動集成于單片IC之中; 具備管腳高壓保護功能; 圖2.3.3 LG9110管腳圖管腳定義如表2.3.1表2.3.1 LG9110的管腳定義序號符號功能1OAA路輸出管腳2VCC電源電壓3VCC電源電壓4OBB路輸出管腳5GND地線6IAA路輸入管腳7IBB路輸入管腳8GND地線L9110電機驅(qū)動芯片有八個管腳,其中兩個電源管腳和兩個接地管腳,另外有兩個輸入(IA/IB)、和兩個輸出管腳(OA/OB),兩個輸出管腳接,電機的兩極,而兩輸入管腳和單片機連接,從而控制電機的狀態(tài)。圖2.2.4為L9110的硬件連接圖。圖2.3.4 LG9110硬件連接圖2.4路況檢測模塊采用了紅外發(fā)射和接收探頭來探測路況信息。紅外發(fā)射管發(fā)射紅外信號,經(jīng)路面反射傳回給紅外接收管進行判斷處理。由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強弱來判斷“道路”情況和前方是否存在障礙物。筆者在該模塊中利用了簡單、應(yīng)用也比較普遍的檢測方法紅外探測法。 圖2.4.1為路況檢測模塊的硬件設(shè)計原理圖。 圖2.4.1 路況檢測模塊硬件連接圖上電之后紅外發(fā)射管V1、V6、V3導(dǎo)通,向地面以及前方實時發(fā)射紅外信號,當(dāng)遇到白色墻或路面時,紅外信號經(jīng)白色路面有較強發(fā)射,這時紅外接收探頭V2、V5、V4剛好接收到紅外信號,使得這些探頭導(dǎo)通,將低電平送給P3.5、P3.6、P3.7讓單片機進行判斷處理。路面檢測模塊分為小車尋黑線的檢測和前方是否有障礙物的檢測兩部分。2.4.1 尋跡模塊所謂尋跡,就是我們建立一條畫畫有彎曲黑線的白紙跑道,該智 利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號。 黑線要有一定寬度,應(yīng)該是大于兩紅外線發(fā)射探頭的距離,如圖2.4.2所示。 圖2.4.2 小車前方探頭實物這里的紅外線發(fā)射探頭為前端向下伸出的透明的探頭,所以黑色跑道寬度應(yīng)該至少大于兩透明探頭的距離,才能保證小車正常運行。小車放在黑色跑道上時,打開電源時,小車前端向下伸出的紅外線發(fā)射探頭發(fā)射紅外線,如果小車在黑線上,小車發(fā)出的紅外線就遇到黑色時,不產(chǎn)生反射。當(dāng)左邊稍微跑出黑色跑道時,發(fā)出的紅外線就會遇到白色而產(chǎn)生反射,這時旁邊的黑色接收探頭接收到反射信號,從而使接收探頭導(dǎo)通。原理圖如下圖所示,當(dāng)D2接收到紅外信號時,會使P3.5產(chǎn)生一個低電平,進而送給單片機進行處理,單片機接收到來至左側(cè)的接收頭給的低電平時,給予小車右轉(zhuǎn)操作;同理,當(dāng)小車右邊跑出黑線時,右側(cè)探頭識別之后會給小車低電平,提示小車應(yīng)該進行左轉(zhuǎn)操作。這樣就完成了整個小車的尋跡功能。2.4.2 智能防撞報警模塊智能防撞報警是現(xiàn)代智能小車的一個非常有研究價值的課題,十分有現(xiàn)實意義。智能小車能夠自識別前方是否有障礙物。如果有則自動調(diào)節(jié)小車的運動軌跡來成功避免撞到障礙物所帶來的損失,同時在遇到障礙物時,能夠提示報警,以提示主人應(yīng)注意安全。將小車放置在空曠的路面上,小車的前端兩探頭感應(yīng)前面是否有障礙物,與此同時,朝下的四個探頭也會同時接收來自地面路況的信息,當(dāng)小車運行到懸崖邊上時,小車上面主控芯片單片機就會接收到此時的路況信息,進而去改變小車的運行路徑。同時發(fā)出報警信號。報警模塊硬件圖如圖2.4.3所示。 圖2.4.3 防撞探頭實物 當(dāng)前面有障礙物時,單片機分析之后送給P0.6一個高電平信號,使得三極管V1導(dǎo)通,從而引起SB1蜂鳴器導(dǎo)通,發(fā)出報警信號。當(dāng)前方無障礙物時,另一個紅外接收探頭則接收不到由發(fā)射頭發(fā)射出來的紅外信號,當(dāng)前方遇到障礙物時,發(fā)射頭發(fā)出去的紅外信號被前方障礙物反射回來,此時剛好被接受探頭接收,探頭接收到信號時,將會使其中一個管腳變?yōu)榈碗娖剑賯魉徒o單片機;同理小車在判斷前方是否有懸崖時也一樣,當(dāng)前方?jīng)]有出現(xiàn)懸崖時,小車朝下的探頭發(fā)出去的紅外信號就會經(jīng)路面反射,而且只要小車在路面上行駛,那么紅外信號就會一直被反射進而被接收,也就會使得單片機與紅外接收探頭其中一腳相連的管腳一直至0,當(dāng)前面遇到懸崖時,紅外信號發(fā)射出去之后,由于紅外接收頭的接收距離有限,就會檢測不到有傳回的紅外信號,此時就會給單片機一個高電平,單片機識別之后便會做出相應(yīng)的修正動作,并給蜂鳴器一個信號,使得蜂鳴器出現(xiàn)報警提示。3系統(tǒng)軟件設(shè)計與實現(xiàn)遙控器輸入單片機解碼電機控制(前進后退左右轉(zhuǎn))黑線尋跡防撞報警在系統(tǒng)軟件設(shè)計時,我們將所有的模塊程序嵌入到遙控器中,這種嵌入式主要是為了便于控制,且不占CPU,因為遙控模塊、尋跡模塊、以及避障模塊等都同時用到了實時檢測掃描,這樣不僅占用CPU,而且多個程序一塊運行還會產(chǎn)生沖突。各個模塊銜接如圖3.1所示。 圖3.1 程序模塊連接遙控器發(fā)送紅外信號時,開啟單片機外部中斷0,主程序進入中斷函數(shù),進行解碼。解碼處理完成之后,將遙控信息反饋給主程序,主程序?qū)Ρ冗b控器輸入值之后進入相應(yīng)模塊執(zhí)行相關(guān)操作,各模塊最終會處理是由電機驅(qū)動來完成的,所以在圖3.1中最終箭頭是指向電機控制模塊的。3.1整體程序的構(gòu)架程序框圖如圖3.1.1所示圖3.1.1 整體程序框圖3.2紅外遙控解碼的實現(xiàn)整個控制程序都嵌入到了遙控模塊這一單元里邊,所以紅外遙控的解碼是貫穿整個設(shè)計的主線,起到了整個系統(tǒng)入口的作用。當(dāng)遙控器上按下按鍵時,1腳收到遙控器發(fā)送的紅外脈沖信號并解碼出脈寬波形,同時使單片機產(chǎn)生中斷,并開啟定時器、脈沖個數(shù)計數(shù)。記錄出每來一個脈沖的時間和脈沖總個數(shù),等到一幀的數(shù)據(jù)發(fā)送完成之后,單片機結(jié)束計數(shù),并關(guān)閉定時器。之后進入判斷階段,首先判斷這一幀數(shù)據(jù)中的脈沖個數(shù),如果脈沖個數(shù)大于31個則將數(shù)據(jù)丟棄,如果剛好則判斷接收的脈沖是0還是1,接收完之后將這些數(shù)據(jù)保存起來,再來比對數(shù)據(jù)的對錯,首先比對前導(dǎo)碼是否正確,也就是看一下當(dāng)前遙控器是不是與小車匹配的遙控器,如果都正確之后再來將碼值存起來。主程序用一個swich函數(shù)來對相應(yīng)碼值進行對應(yīng)函數(shù)的調(diào)用就可以了,比如按下了上鍵,則調(diào)用前進函數(shù)來完成小車前進動作。如圖3.2所示初始化中斷口是否有遙控信號輸入是否有抖動進入解碼計數(shù)脈沖個數(shù)同時計數(shù)單個脈沖寬度脈沖個數(shù)是否為32個數(shù)據(jù)解碼并判斷數(shù)據(jù)碼和數(shù)據(jù)反碼取非之后是否相等執(zhí)行相關(guān)模塊否是是否是否是否 圖3.2 解碼程序框圖3.3電機驅(qū)動從宏觀上講,電機驅(qū)動在小車運行中占據(jù)主導(dǎo),也是小車接收到命令之后的最終輸出,任何一個模塊所執(zhí)行命令的外在表現(xiàn)。電機驅(qū)動包括驅(qū)動電機前進、后退、左轉(zhuǎn)、右轉(zhuǎn)以及暫停功能,這些功能不僅僅只是遙控器按下上下左右之后才執(zhí)行,而是每一個模塊都會有執(zhí)行電機驅(qū)動模塊的操作,所以在設(shè)計程序時,最優(yōu)設(shè)計應(yīng)該是將這些前進、后退、左右轉(zhuǎn)向單獨編譯成一個函數(shù)塊,每一個子模塊的運行就只需調(diào)用這些函數(shù)就可完成。這樣做就節(jié)省了很大的程序空間。舉個例子,在編寫前進函數(shù)時,為了滿足小車前進功能,只需將P0.0P0.3賦值1010就可完成,其他左轉(zhuǎn)右轉(zhuǎn)只是改變相應(yīng)P0.0P0.3的碼值則可實現(xiàn)。當(dāng)然為了使得更準確,可以添加一下延時函數(shù)在內(nèi)部,以避免操作太快給電機帶了的損壞。3.4 小車尋跡在主程序中只要檢測到遙控器上按下了尋跡功能鍵之后,主程序直接調(diào)用尋跡函數(shù),來實現(xiàn)尋跡功能。這里介紹一下尋跡模塊編寫的一些思路。要實現(xiàn)尋跡就必須清楚尋跡原理,在前面的技術(shù)介紹中,已經(jīng)介紹了他的原理。這里不做過多說明,以免冗余。尋跡函數(shù)的編寫是一個實時掃描單片機管腳P3.5/P3.6,P3.5管腳代表左方探頭傳回的信息,P3.6代表右邊探頭傳回的信號。當(dāng)左方探頭跑出黑線時,會給P3.5至0,單片機檢測到P3.5為0時,便調(diào)用右轉(zhuǎn)向函數(shù),來完成右側(cè)轉(zhuǎn)功能,當(dāng)右方探頭跑出黑線時,同樣會使P3.6至0,這時再調(diào)用左轉(zhuǎn)向函數(shù)來調(diào)節(jié)小車的位置。圖3.4為小車尋跡模塊的程序流程圖初始化探頭跑出黑線了嗎哪邊探頭有輸入前進后退右轉(zhuǎn)左轉(zhuǎn)是否左左右均有右 圖3.4 尋跡程序流程圖3.5 小車防撞報警 主人命令開啟防撞功能時,小車主程序調(diào)用防撞報警函數(shù),在防撞報警函數(shù)打開時進入實時檢測P3.7腳,當(dāng)前方遇到懸崖或障礙物時,小車內(nèi)部防撞函數(shù)調(diào)用電機驅(qū)動函數(shù)來調(diào)節(jié)小車行經(jīng)來避免掉入懸崖或撞擊障礙物,并觸發(fā)報警信號引起報警。圖3.5為防撞報警模塊的程序流程圖。初始化前方有懸崖或障礙物嗎前進后退并報警左轉(zhuǎn)并報警是否 圖3.5 防撞報警程序流程圖 4 小車系統(tǒng)原理圖硬件電路總設(shè)計圖如圖4.1所示 圖4.1 硬件電路原理圖最終主板PCB圖前板PCB5 系統(tǒng)調(diào)試把原理圖畫、最終PCB畫好之后再根據(jù)實驗室現(xiàn)有的實驗條件進行制版,并一并把所有元器件焊接上,在焊接時應(yīng)注意以下幾點: 、電解電容容有正負極之分,長正短負; 、二極管有正負極之分,長正短負; 、話筒有正負之分,負極與外殼相連; 、蜂鳴器有正負之分,長正短負; 、三極管按照電路板封裝焊接; 、集成電路即芯片,安裝時要注意缺口對應(yīng)(缺口對應(yīng)位置和封裝對應(yīng)位置要一致)。(缺口在芯片或芯片底座的一端); 、數(shù)碼管焊接時注意數(shù)碼管上的小數(shù)點要與電路板封裝上的小數(shù)點對應(yīng);、每個電機都需要焊接瓷片電容104。焊接完之后,還需對小車各個模塊進行調(diào)試,以確保硬件的完好。5.1 遙控發(fā)送接收調(diào)試由于遙控器是由廠家直接提供的,為了確保遙控器能夠正常發(fā)送紅外信號,必須提前進行測試,但遙控器是集成的,而紅外線發(fā)射燈又是透明的,當(dāng)發(fā)送的時候人眼觀察不到任何現(xiàn)象,那么怎樣知道遙控器是否正常呢?這里教你一小招,將遙控器裝上電池,然后將你自己的手機的照相功能打開,將手機上的攝像頭對準你遙控器前面的發(fā)射燈,然后按下遙控器上的任何一個按鍵,觀察手機照相功能里面的遙控器發(fā)射燈是否點亮,如果燈已被點亮,則說明遙控器能夠正常發(fā)射紅外信號,否則遙控不能發(fā)射紅外信號。這一招很簡單,在家里也能用,平常家里面的遙控電視機遙控器不靈了就可試著采用這一方法,進而初步判斷是不是遙控器已壞或者遙控器上面電池沒電了。在上面已經(jīng)介紹了遙控器的測試,現(xiàn)在再來談?wù)劶t外接收頭的調(diào)試,如果遙控器能夠正常工作,下一步就應(yīng)該測試一下接收頭是否正常接收了。小車上電之后將接收頭的1號管腳接上示波器,然后一直按下遙控器上面的按鍵,觀察示波器上面波形,如果能夠發(fā)現(xiàn)有重復(fù)的高低脈沖,但看不清具體的脈沖寬度,則說明紅外線能夠正常接收紅外信號。如果接上之后沒什么反應(yīng),也未見其波形,初步推斷是接收頭有問題,或許是元器件已壞,也可能是焊接時有虛焊或短路,這時應(yīng)該再次檢查電路連接。以上步驟都完成且正常之后可燒寫遙控小程序以此來檢查所用程序是否能夠正常解碼。5.2 電機驅(qū)動調(diào)試最直接的方法來判斷電機是否完好就是那一節(jié)干電池做電源,將兩極分別接在直流電機的兩極,來觀察能否實現(xiàn)正轉(zhuǎn)反轉(zhuǎn),當(dāng)然在接之前最好在直流電機兩引腳之間接上一個104的瓷片電容,這樣做是防止由于電流過大將電機燒壞。完成之后再燒電機驅(qū)動程序,程序里邊在執(zhí)行完正轉(zhuǎn)之后設(shè)置一個延遲時間,燒寫完程序之后再運行小車,觀察小車前進后退敏不敏捷,左右轉(zhuǎn)向弧度大小怎樣,如果不滿足自己要求,則可改變延遲時間的長短來實現(xiàn),不斷進行調(diào)試。已達到最佳效果。5.3 尋黑線和防撞的調(diào)試首先檢查前板探頭是否正常,紅外信號發(fā)射探頭可繼續(xù)采用檢測器正常與否中使用的方法,黑色接收探頭正常與否可參考原理圖,將小車置于白色跑道上,正前方放一障礙物,注意障礙物表面一定不能為黑色,然后用萬用表測量一下P3.5、P3.6、P3.7管腳電壓。觀察是否為0電壓,如果為0,則正常工作,如果不為0,則可能電路存在問題,需檢查電路完整性。然后再次燒寫尋跡和防撞報警程序,并自己建立邊緣為白色,跑道為黑色的實驗臺,觀察小車在自動尋跡功能上是否能正常實現(xiàn),并觀察小車在彎曲跑道上的轉(zhuǎn)向弧度是否合理,如果不合理則應(yīng)調(diào)節(jié)內(nèi)部延時間。以跑道要求??偨Y(jié)畢業(yè)設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程。這次的畢業(yè)設(shè)計通過搜集相關(guān)資料和撰寫論文對我來說是一次非常難得的鍛煉機會,可以說已經(jīng)囊括了大學(xué)期間大部分的知識,從選題到定稿,從理論到實踐可以把所學(xué)的專業(yè)知識充分運用起來解決具體的問題,不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識,能夠使所學(xué)知識融會貫通。對于我來說這不僅僅是一次畢業(yè)設(shè)計,更重要的是在過程中提高了我學(xué)習(xí)的能力、解決問題的能力和實際工作的能力,這些技能和方法都會對將來的工作有很大的幫助?;仡櫰鸫舜萎厴I(yè)設(shè)計,至今我仍感慨頗多,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西。在設(shè)計和寫論文的過程中遇到很多問題,可以說得是困難重重,發(fā)現(xiàn)了自己還有很多的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,這次課程設(shè)計也讓我對以前所學(xué)過的知識有了溫故知新。參考文獻1 宋建國:AVR單片機原理及應(yīng)用A,北京航空航天大學(xué)出版社,1998.2,P35-P45 2 黃繼昌:傳感器工作原理及應(yīng)用實例A,北京人民郵電出版社,1998.6,P32-P353 雷輝:基于AT89C2051的智能防撞報警器設(shè)計,電氣時代J,2005.1,P44-P464吳愛萍: 基于AT89S51的多功能紅外遙控器設(shè)計期刊論文-儀表技術(shù)與傳感器 2008(8)5洪剛:一種簡易紅外遙控鍵盤的設(shè)計期刊論文-重慶科技學(xué)院學(xué)報(自然科學(xué)版) 2008(4)6王建躍:紅外遙控器編碼方法期刊論文-工礦自動化 2005(z1)附錄元件清單位號名稱位號名稱M1電機1接線座SIUILED數(shù)碼管M2電機2接線座IR1紅外接收頭X1前端探測板接線座RX110K排阻9腳DC15KZ111.0592晶振R1220IC1STC89C52RCR2150IC2MAX232CPER31MIC3L9110集成電路R447KIC4L9110集成電路R54.7KC110uF/16VR6560C2104R7560C3104R8560C4104R9560C510uF/16VR10560C610uF/16VR11560C730PFR12560C830PFR13560C9104R14220C1010uF/16VR1510KC1110uF/16VR16560C1210uF/16VR17560C1310uF/16VR18560D1D8紅色發(fā)光二極管R19560D9綠色發(fā)光二極管R20560S1按鍵開關(guān)R21560S2按鍵開關(guān)R22560S3按鍵開關(guān)R23560COM1DB9針串口R24560D1D2LED(前板用)R2510KV1發(fā)射頭(前板用)R26560V2接收頭(前板用)RL1光敏電阻V3發(fā)射頭(前板用)SB1蜂鳴器V4接收頭(前板用)B1話筒V5發(fā)射頭(前板用)R1220(前板用)V6接收頭(前板用)R2560(前板用)R3220(前板用)R415K(前板用)R515K(前板用)R6220(前板用)R7560(前板用)R815K(前板用)9012紅外遙控發(fā)射器V1V28550J1J2跳線帽系統(tǒng)程序#include /包含51單片機相關(guān)的頭文件#define uint unsigned int /重定義無符號整數(shù)類型#define uchar unsigned char /重定義無符號字符類型uchar code LedShowData=0 x03,0 x9F,0 x25,0 x0D,0 x99, /定義數(shù)碼管顯示數(shù)據(jù) 0 x49,0 x41,0 x1F,0 x01,0 x19;/0,1,2,3,4,5,6,7,8,9uchar code RecvData=0 x07,0 x0A,0 x1B,0 x1F,0 x0C,0 x0D,0 x0E,0 x00,0 x0F,0 x19;uchar IRCOM7;static unsigned int LedFlash; /定義閃動頻率計數(shù)變量unsigned char RunFlag=0; /定義運行標志位bit EnableLight=0; /定義指示燈使能位/*完成基本數(shù)據(jù)變量定義*/sbit S1State=P10; /定義S1狀態(tài)標志位sbit S2State=P11; /定義S2狀態(tài)標志位sbit B1State=P12; /定義B1狀態(tài)標志位sbit IRState=P13; /定義IR狀態(tài)標志位sbit RunStopState=P14; /定義運行停止標志位sbit FontIRState=P15; /定義FontIR狀態(tài)標志位sbit LeftIRState=P16; /定義LeftIR狀態(tài)標志位sbit RightIRState=P17; /定義RightIRState狀態(tài)標志位/*完成狀態(tài)指示燈定義*/sbit S1=P32; /定義S1按鍵端口sbit S2=P34; /定義S2按鍵端口/*完成按鍵端口的定義*/ sbit LeftLed=P20; /定義前方左側(cè)指示燈端口sbit RightLed=P07; /定義前方右側(cè)指示燈端口/*完成前方指示燈端口定義*/sbit LeftIR=P35; /定義前方左側(cè)紅外探頭sbit RightIR=P36; /定義前主右側(cè)紅外探頭sbit FontIR=P37; /定義正前方紅外探頭/*完成紅外探頭端口定義*/sbit M1A=P00; /定義電機1正向端口sbit M1B=P01; /定義電機1反向端口sbit M2A=P02; /定義電機2正向端口sbit M2B=P03; /定義電機2反向端口/*完成電機端口定義*/sbit B1=P04; /定義話筒傳感器端口sbit RL1=P05; /定義光敏電阻端口sbit SB1=P06; /定義蜂鳴端口/*完成話筒,光敏電阻,蜂鳴器.端口定義*/sbit IRIN=P33; /定義紅外接收端口/*完成紅外接收端口的定義*/#define ShowPort P2 /定義數(shù)碼管顯示端口extern void ControlCar(uchar CarType); /聲明小車控制子程序void delay(unsigned char x) /0.14mS延時程序 unsigned char i; /定義臨時變量 while(x-) /延時時間循環(huán) for (i = 0; i13; i+) /14mS延時 void Delay() /定義延時子程序 uint DelayTime=30000; /定義延時時間變量 while(DelayTime-); /開始進行延時循環(huán) return; /子程序返回void ControlCar(uchar CarType) /定義小車控制子程序 M1A=0; /將電機1正向電平置低 M1B=0; /將電機1反向電平置低 M2A=0; /將電機2正向電平置低 M2B=0; /將電機2反向電平置低 LeftLed=1; /關(guān)閉前方左側(cè)指示燈 RightLed=1; /關(guān)閉前方右側(cè)指示燈 Delay(); /將此狀態(tài)延時一段時間 switch(CarType) /判斷小車控制指令類型 case 1: /前進 /判斷是否是前進 M1A=1; /將電機1正向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData1; /數(shù)碼管顯示前進狀態(tài) break; /退出判斷 case 2: /后退 /判斷是否是后退 M1B=1; /將電機1反向端口置高 M2B=1; /將電機2反向端口置高 ShowPort=LedShowData2; /數(shù)碼管顯示后退狀態(tài) RightLed=0; /將前方右側(cè)指示燈置低(亮) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 3: /左轉(zhuǎn) /判斷是否是左轉(zhuǎn) M1B=1; /將電機1反向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData3; /數(shù)碼管顯示左轉(zhuǎn)狀態(tài) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 4: /右轉(zhuǎn) /判斷是否是右轉(zhuǎn) M1A=1; /將電機1正向端口置高 M2B=1;

注意事項

本文(基于單片機的智能小車的設(shè)計——畢業(yè)論文)為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!