基于單片機的智能小車的設計——畢業(yè)論文
《基于單片機的智能小車的設計——畢業(yè)論文》由會員分享,可在線閱讀,更多相關《基于單片機的智能小車的設計——畢業(yè)論文(54頁珍藏版)》請在裝配圖網上搜索。
1、基于單片機的智能小車的設計基于單片機的智能小車的設計摘要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入。同時帶動傳統(tǒng)控制檢測,日新月益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用。單片機是把主要計算機功能部件都集成在一塊芯片上的微型計算機。它是一種集計數和多中接口于一體的微控制器。而51單片機是單片機中最為典型和最有代表性的一種。本設計主要應用AT89S51作為控制核心,與顯示器、驅動電路等相結合的系統(tǒng)?;趩纹瑱C設計。利用單片機AT89S51作為報警裝置的控制器,能充分發(fā)揮AT89S51的數據處理和實時控制功能。使系統(tǒng)工作處于最佳狀態(tài),提高系統(tǒng)的
2、靈敏度。當產生信號驅動小車前進時,通過尋跡模塊里的紅外對管是否尋到黑線產生的電平信號再返回到單片機,單片機根據程序設計要求做出相應的判斷送給電機驅動模塊.控制小車讓其在黑線上實現(xiàn)前進后退以及轉向。關鍵詞:單片機 尋跡 報警 紅外 電機驅動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 rapi
3、dly 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.
4、 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
5、 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 requiremen
6、t 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 設計任務及方案21.1 設計任務及要求21.2 設計方案論證21.2.1 控制器選擇21.2.2 電機驅動芯片的選擇31.2.3 路況檢測模塊42 系統(tǒng)
7、硬件電路與實現(xiàn)52.1 紅外遙控及解碼模塊52.1.1 二進制信號的調制62.1.2 二進制信號的解調72.1.3 二進制信號的解碼72.2 單片機紅外接收硬件電路的實現(xiàn)82.3 電機驅動模塊92.4路況檢測模塊132.4.1 尋跡模塊142.4.2 智能防撞報警模塊163系統(tǒng)軟件設計與實現(xiàn)173.1整體程序的構架183.2紅外遙控解碼的實現(xiàn)193.3電機驅動213.4 小車尋跡213.5 小車防撞報警224 小車系統(tǒng)原理圖245 系統(tǒng)調試265.1 遙控發(fā)送接收調試265.2 電機驅動調試275.3 尋黑線和防撞的調試27總結27致謝28參考文獻29附錄30元件清單30系統(tǒng)程序31前言當今世
8、界,傳感器技術和自動控制技術正在飛速發(fā)展,機械、電氣和電子信息已經不再明顯分家,自動控制在工業(yè)領域中的地位已經越來越重要,“智能”這個詞也已經成為了熱門詞匯?,F(xiàn)在國外的自動控制和傳感器技術已經達到了很高的水平,特別是日本,比如日本本田制作的機器人,其仿人雙足行走已經做得十分逼真,而且具有一定的學習能力,還據說其智商已達到6歲兒童的水平。作為機械行業(yè)的代表產品汽車,其與電子信息產業(yè)的融合速度也顯著提高,呈現(xiàn)出兩個明顯的特點:一是電子裝置占汽車整車(特別是轎車)的價值量比例逐步提高,汽車將由以機械產品為主向高級的機電一體化方向發(fā)展,汽車電子產業(yè)也很有可能成為依托整車制造業(yè)和用車提升配置而快速成為新
9、的增長點;二是汽車開始向電子化、多媒體化和智能化方向發(fā)展,使其不僅作為一種代步工具、同時能具有交通、娛樂、辦公和通訊等多種功能。無容置疑,電子信息化人才的培養(yǎng)不論是在國外還是國內,都開始重視起來,主要表現(xiàn)在大學生的各種大型的創(chuàng)新比賽,比如:亞洲廣播電視聯(lián)盟亞太地區(qū)機器人大賽(ABU ROBCON)、全國大學生“飛思卡爾”杯智能汽車競賽等眾多重要競賽都能很好的培養(yǎng)大學生對于機電一體化的興趣與強化機電一體化的相關知識。但很現(xiàn)實的狀況是,國內不論是在機械還是電氣領域,與國外的差距還是很明顯的,所以作為電子信息化學生,必須加倍努力,為逐步趕上國外先進水平并超過之而努力。為了適應智能控制的發(fā)展在汽車智能
10、化方向的發(fā)展要求,提出簡易智能小車的構想,目的在于:通過獨立設計并制作一輛具有簡單智能化的簡易小車,獲得項目整體設計的能力,并掌握多通道多樣化傳感器綜合控制的方法。所以立“智能循跡小車”一題作為嘗試。此項設計是在以楊老師提供的小車為基礎上,采用AT89C52單片機作為控制核心,實現(xiàn)能夠自主識別黑色引導線并根據黑線走向實現(xiàn)快速穩(wěn)定的尋線行駛。1 設計任務及方案1.1 設計任務及要求此次的設計任務是設計一款基于單片機的智能小車的設計。設計要求如下:具有單片機核心控制模塊;具有紅外遙控解碼模塊;具有電機驅動模塊;具有路況檢測模塊;具有光感模塊;具有聲控模塊;具有七段數碼管顯示模塊;具有報警模塊;1.
11、2 設計方案論證1.2.1 控制器選擇方案一:采用MSP430單片機MSP430是德州儀器 (TI)的一種RISC混合信號處理器,MSP430產品系列為電池供電測量應用提供了最終解決方案。作為混合信號和數字技術的領導者,TI創(chuàng)新生產的MSP430,使系統(tǒng)設計人員能夠在保持獨一無二的低功率的同時同步連接至模擬信號、傳感器和數字組件。MSP430優(yōu)點:0.1uA RAM 保持;0.8uA實時時鐘模式;250uA/MIPS有效;高性能模擬器件;是精確測量的理想選擇;先進的16位RISC CPU使得新的應用僅需一段代碼即可實現(xiàn);系統(tǒng)內可編程閃存允許更改代碼、更新字段和記錄數據。但是,MSP430每個管
12、腳的驅動能力較弱,有利于低功耗,但是在電源方面,處理器使用的功耗相對輸入幾乎沒有多大影響。MSP430使用的主頻相對較低,處理速度較慢,在本系統(tǒng)中要使用電機驅動控制,對管腳輸出都有較高的要求。所以在本系統(tǒng)中使用MSP430不利于系統(tǒng)的控制。方案二:采用AT89S51單片機1AT89S51是一種低功耗、高性能CMOS8位微控制器,具8K在系統(tǒng)可編程 Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程 Flash,使得 AT89S51為眾
13、多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S51具有以下標準功能:8k字節(jié)Flash,256字節(jié) RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM 內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。方案選擇:綜上所述:通過以上方案比較,在本系統(tǒng)中控制器選用第二個方案,使用AT89S51作控制器。因
14、為該單片機成本低廉,操作起來方便,因此本設計控制器選用此方案。1.2.2 電機驅動芯片的選擇方案一:采用L298N L298N為SGS-THOMSON Microelectronics 所出產的雙全橋步進電機專用驅動芯片( Dual Full-Bridge Driver ) ,內部包含4信道邏輯驅動電路,是一種二相CEs838電子-技術資料-電子元件-電路圖-技術應用網站-基本知識-原理-維修-作用-參數-電子元器件符號-各種圖紙和四相步進電機的專用驅動器,可同時驅動2個二相或1個四相步進電機,內含二個H-Bridge 的高電壓、大電流雙全橋式驅動器,接收標準CEs838電子-技術資料-電子元
15、件-電路圖-技術應用網站-基本知識-原理-維修-作用-參數-電子元器件符號-各種圖紙TTL邏輯準位信號,可驅動46V、2A以下的步進電機,且可以直接透過電源來調節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號,CEs838電子-技術資料-電子元件-電路圖-技術應用網站-基本知識-原理-維修-作用-參數-電子元器件符號-各種圖紙但在智能小車電路中單片機IO 端口的使用匱乏。該設計也不用于速度控制,相對來講LG9110成本較低。方案二:采用LG9110LG9110是為控制和驅動電機設計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本降低,整機可靠性提
16、高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅動電機的正反轉運動,它具有較大的電流驅動能力,每通道能通過750-800mA的持續(xù)電流,峰值電流能力可達1.5-2.0A;同時它具有較低的輸出飽和壓降;內置的鉗位二極管能釋放感性負載的反向沖擊電流,使它在驅動繼電器、直流電機、步進電機或開關功率管的使用安全可靠。LG9110被廣泛應用于玩具汽車電機驅動、步進電機驅動、和開關功率管等電路上。方案三:使用分立原件搭建電機驅動電路 使用分立原件搭建電機驅動電路造價低廉,在大規(guī)模生產中使用廣泛。但分立原件H橋電路工作性能不夠穩(wěn)定,較易出現(xiàn)硬件上的故障,故我們放棄了這一
17、方案。綜上所述:通過以上方案比較,在本系統(tǒng)中電機驅動芯片選用第二個方案,使用LG9110作為驅動電路。因為該LG9110驅動能力強,成本低廉,操作起來方便,因此本設計控制器選用此方案。1.2.3 路況檢測模塊采用紅外發(fā)送接收探頭來檢測實時路況信息,并傳回單片機處理。紅外發(fā)射探頭發(fā)射紅外信號,遇地面或障礙物反射回紅外接收探頭,紅外接收探頭接收到從地面或障礙物反射回的紅外信號之后給單片給一個電平信號,來判斷整體路況信息。2 系統(tǒng)硬件電路與實現(xiàn)本設計采用了AT89C52單片機作為主控芯片來處理各個模塊的運營,系統(tǒng)硬件總框圖如圖2.1AT89C52遙控模塊路面檢測模塊電機驅動模塊報警模塊顯示模塊 圖2
18、.1 系統(tǒng)硬件總體框圖2.1 紅外遙控及解碼模塊紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,低成本,易實現(xiàn)等顯著優(yōu)點,被諸多電子設備特別是家用電器廣泛采用,并越來越多的應用到計算機系統(tǒng)中。紅外遙控由發(fā)送和接收兩個部分組成。發(fā)送部分由主芯片將待發(fā)的二進制信號編碼調制為一系列的脈沖串信號,通過紅外發(fā)射管發(fā)射紅外信號紅外信號接收端普遍采用價格便宜,性能可靠的一體化紅外接收頭(如HS0038,它接收紅外頻率為38KHz,周期為26us)接收紅外信號,它同時對信號進行放大、檢波、整形,得到TTL電平的編碼信號,再送給單片機,經單片機解碼并執(zhí)行,去控制相關對象。如圖2.1.
19、1所示。遙控器一體化紅外接收頭單片機發(fā)送接收解調解碼圖2.1.1 紅外遙控解碼框圖 2.1.1 二進制信號的調制二進制信號的調制由遙控器的主芯片來完成,它把編碼后的二進制信號調制成頻率為 38KHz的間斷脈沖串,相當于用二進制信號的編碼乘以頻率為38KHz 的脈沖信號得到的間斷脈沖串,即是調制后用于紅外發(fā)射二極管發(fā)送的信號。如圖2.1.2所示,A是二進制信號的編碼波形,B 是頻率為38KHz(周期為26us) 的連續(xù)脈沖串,C是經調制后的間斷脈沖串(相當于C=AB),用于紅外發(fā)射二極管發(fā)送的波形。圖2.1.2中,待發(fā)送的二進制數據為 101。如圖 2.1.2所示。 圖2.1.2 二進制信號的調
20、制2.1.2 二進制信號的解調二進制信號的解調由一體化紅外接收頭HS0038來完成,它把收到的紅外信號經內部處理并解調復原,輸出圖2.1.3中波形E(正好是對圖2.1.2中波形A 的取反),HS0038的解調可理解為:在輸入有脈沖串時,輸出端輸出低電平,否則輸出高電平。一體化紅外接收頭HS0038的 1腳GND接電源地,2腳VCC接+5V,3腳OUT為數據輸出(TTL電平,反相輸出),可直接與單片機相聯(lián)。 圖2.1.3 HS0038解調出的波形2.1.3 二進制信號的解碼二進制信號的解碼由接收單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,還原出發(fā)送端發(fā)送的數據。如圖2.1.3,把波
21、形E解碼還原成數據信息101。圖2.1.4為紅外信號的編碼格式傳輸開始8位數據傳輸結束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),當有紅外信號輸入時,1腳解調之后將數據信息傳送給單片機引起單片機中斷,從而對紅外信號進行解碼。2.3 電機驅動模塊在幾乎所有的遙控車大都采用了直流電機來控制小車的行為,直流電機有兩個控制端,通過改變輸入電平的
22、不同來改變電機的運轉。圖2.3.1為電機驅動模塊的硬件電路圖。圖2.3.1電機驅動模塊 在圖2.3.1中,單片機通過控制P0.0P0.3引腳電平的高低來控制直流電機M1、M2的正反轉。當P0.0P0.3輸入為1010時,兩電機均處于正轉狀態(tài),此時小車表現(xiàn)為整體前進;當P0.0P0.30輸入為0101時,兩電機均處于反轉模式,小車整體表現(xiàn)為后退。當P0.0P0.3輸入為1001以及0110時,一電機正轉,另一電機反轉,從而實現(xiàn)了左右轉向功能。很顯然,僅僅只靠單片機來驅動小車的行為是不現(xiàn)實的,因為單片機自身管腳輸出的高電平的電壓是很微弱的,這種電壓直接控制電機會使得電機馬力不足,沒能夠帶動整個小車
23、運行,所以在這種情況之下,最適合的就是運用電機驅動芯片來完成小車的驅動,這里我們采用了一款價格低廉的電機驅動芯片L9110來完成它的使命,實際上L298N這款芯片能夠更好的驅動電機,并能實現(xiàn)電機調速的功能,但由于小車自身重量因數和電壓問題我們就采用L9110了。下面給出關于L9110的相關數據手冊。 圖2.3.2 LG9110的實物圖特點: 低靜態(tài)工作電流; 寬電源電壓范圍 2.5V-12V; 每通道具有800mA連續(xù)電流輸出能力; 較低的飽和壓降; TTL/CMOS輸出電平兼容,可直接連接CPU; 輸出內置鉗位二極管,適用于感性負載; 控制和驅動集成于單片IC之中; 具備管腳高壓保護功能;
24、圖2.3.3 LG9110管腳圖管腳定義如表2.3.1表2.3.1 LG9110的管腳定義序號符號功能1OAA路輸出管腳2VCC電源電壓3VCC電源電壓4OBB路輸出管腳5GND地線6IAA路輸入管腳7IBB路輸入管腳8GND地線L9110電機驅動芯片有八個管腳,其中兩個電源管腳和兩個接地管腳,另外有兩個輸入(IA/IB)、和兩個輸出管腳(OA/OB),兩個輸出管腳接,電機的兩極,而兩輸入管腳和單片機連接,從而控制電機的狀態(tài)。圖2.2.4為L9110的硬件連接圖。圖2.3.4 LG9110硬件連接圖2.4路況檢測模塊采用了紅外發(fā)射和接收探頭來探測路況信息。紅外發(fā)射管發(fā)射紅外信號,經路面反射傳回
25、給紅外接收管進行判斷處理。由于黑線和白紙對光線的反射系數不同,可根據接收到的反射光的強弱來判斷“道路”情況和前方是否存在障礙物。筆者在該模塊中利用了簡單、應用也比較普遍的檢測方法紅外探測法。 圖2.4.1為路況檢測模塊的硬件設計原理圖。 圖2.4.1 路況檢測模塊硬件連接圖上電之后紅外發(fā)射管V1、V6、V3導通,向地面以及前方實時發(fā)射紅外信號,當遇到白色墻或路面時,紅外信號經白色路面有較強發(fā)射,這時紅外接收探頭V2、V5、V4剛好接收到紅外信號,使得這些探頭導通,將低電平送給P3.5、P3.6、P3.7讓單片機進行判斷處理。路面檢測模塊分為小車尋黑線的檢測和前方是否有障礙物的檢測兩部分。2.4
26、.1 尋跡模塊所謂尋跡,就是我們建立一條畫畫有彎曲黑線的白紙跑道,該智 利用紅外線在不同顏色的物理表面具有不同的反射性質的特點。在小車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色地面時發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號。 黑線要有一定寬度,應該是大于兩紅外線發(fā)射探頭的距離,如圖2.4.2所示。 圖2.4.2 小車前方探頭實物這里的紅外線發(fā)射探頭為前端向下伸出的透明的探頭,所以黑色跑道寬度應該至少大于兩透明探頭的距離,才能保證小車正常運行。小車放在黑色跑道上時,打開電源時,小車前端向下伸出的紅外線發(fā)射探頭發(fā)射紅外線,如果小車
27、在黑線上,小車發(fā)出的紅外線就遇到黑色時,不產生反射。當左邊稍微跑出黑色跑道時,發(fā)出的紅外線就會遇到白色而產生反射,這時旁邊的黑色接收探頭接收到反射信號,從而使接收探頭導通。原理圖如下圖所示,當D2接收到紅外信號時,會使P3.5產生一個低電平,進而送給單片機進行處理,單片機接收到來至左側的接收頭給的低電平時,給予小車右轉操作;同理,當小車右邊跑出黑線時,右側探頭識別之后會給小車低電平,提示小車應該進行左轉操作。這樣就完成了整個小車的尋跡功能。2.4.2 智能防撞報警模塊智能防撞報警是現(xiàn)代智能小車的一個非常有研究價值的課題,十分有現(xiàn)實意義。智能小車能夠自識別前方是否有障礙物。如果有則自動調節(jié)小車的
28、運動軌跡來成功避免撞到障礙物所帶來的損失,同時在遇到障礙物時,能夠提示報警,以提示主人應注意安全。將小車放置在空曠的路面上,小車的前端兩探頭感應前面是否有障礙物,與此同時,朝下的四個探頭也會同時接收來自地面路況的信息,當小車運行到懸崖邊上時,小車上面主控芯片單片機就會接收到此時的路況信息,進而去改變小車的運行路徑。同時發(fā)出報警信號。報警模塊硬件圖如圖2.4.3所示。 圖2.4.3 防撞探頭實物 當前面有障礙物時,單片機分析之后送給P0.6一個高電平信號,使得三極管V1導通,從而引起SB1蜂鳴器導通,發(fā)出報警信號。當前方無障礙物時,另一個紅外接收探頭則接收不到由發(fā)射頭發(fā)射出來的紅外信號,當前方遇
29、到障礙物時,發(fā)射頭發(fā)出去的紅外信號被前方障礙物反射回來,此時剛好被接受探頭接收,探頭接收到信號時,將會使其中一個管腳變?yōu)榈碗娖?,再傳送給單片機;同理小車在判斷前方是否有懸崖時也一樣,當前方沒有出現(xiàn)懸崖時,小車朝下的探頭發(fā)出去的紅外信號就會經路面反射,而且只要小車在路面上行駛,那么紅外信號就會一直被反射進而被接收,也就會使得單片機與紅外接收探頭其中一腳相連的管腳一直至0,當前面遇到懸崖時,紅外信號發(fā)射出去之后,由于紅外接收頭的接收距離有限,就會檢測不到有傳回的紅外信號,此時就會給單片機一個高電平,單片機識別之后便會做出相應的修正動作,并給蜂鳴器一個信號,使得蜂鳴器出現(xiàn)報警提示。3系統(tǒng)軟件設計與實
30、現(xiàn)遙控器輸入單片機解碼電機控制(前進后退左右轉)黑線尋跡防撞報警在系統(tǒng)軟件設計時,我們將所有的模塊程序嵌入到遙控器中,這種嵌入式主要是為了便于控制,且不占CPU,因為遙控模塊、尋跡模塊、以及避障模塊等都同時用到了實時檢測掃描,這樣不僅占用CPU,而且多個程序一塊運行還會產生沖突。各個模塊銜接如圖3.1所示。 圖3.1 程序模塊連接遙控器發(fā)送紅外信號時,開啟單片機外部中斷0,主程序進入中斷函數,進行解碼。解碼處理完成之后,將遙控信息反饋給主程序,主程序對比遙控器輸入值之后進入相應模塊執(zhí)行相關操作,各模塊最終會處理是由電機驅動來完成的,所以在圖3.1中最終箭頭是指向電機控制模塊的。3.1整體程序的
31、構架程序框圖如圖3.1.1所示圖3.1.1 整體程序框圖3.2紅外遙控解碼的實現(xiàn)整個控制程序都嵌入到了遙控模塊這一單元里邊,所以紅外遙控的解碼是貫穿整個設計的主線,起到了整個系統(tǒng)入口的作用。當遙控器上按下按鍵時,1腳收到遙控器發(fā)送的紅外脈沖信號并解碼出脈寬波形,同時使單片機產生中斷,并開啟定時器、脈沖個數計數。記錄出每來一個脈沖的時間和脈沖總個數,等到一幀的數據發(fā)送完成之后,單片機結束計數,并關閉定時器。之后進入判斷階段,首先判斷這一幀數據中的脈沖個數,如果脈沖個數大于31個則將數據丟棄,如果剛好則判斷接收的脈沖是0還是1,接收完之后將這些數據保存起來,再來比對數據的對錯,首先比對前導碼是否正
32、確,也就是看一下當前遙控器是不是與小車匹配的遙控器,如果都正確之后再來將碼值存起來。主程序用一個swich函數來對相應碼值進行對應函數的調用就可以了,比如按下了上鍵,則調用前進函數來完成小車前進動作。如圖3.2所示初始化中斷口是否有遙控信號輸入是否有抖動進入解碼計數脈沖個數同時計數單個脈沖寬度脈沖個數是否為32個數據解碼并判斷數據碼和數據反碼取非之后是否相等執(zhí)行相關模塊否是是否是否是否 圖3.2 解碼程序框圖3.3電機驅動從宏觀上講,電機驅動在小車運行中占據主導,也是小車接收到命令之后的最終輸出,任何一個模塊所執(zhí)行命令的外在表現(xiàn)。電機驅動包括驅動電機前進、后退、左轉、右轉以及暫停功能,這些功能
33、不僅僅只是遙控器按下上下左右之后才執(zhí)行,而是每一個模塊都會有執(zhí)行電機驅動模塊的操作,所以在設計程序時,最優(yōu)設計應該是將這些前進、后退、左右轉向單獨編譯成一個函數塊,每一個子模塊的運行就只需調用這些函數就可完成。這樣做就節(jié)省了很大的程序空間。舉個例子,在編寫前進函數時,為了滿足小車前進功能,只需將P0.0P0.3賦值1010就可完成,其他左轉右轉只是改變相應P0.0P0.3的碼值則可實現(xiàn)。當然為了使得更準確,可以添加一下延時函數在內部,以避免操作太快給電機帶了的損壞。3.4 小車尋跡在主程序中只要檢測到遙控器上按下了尋跡功能鍵之后,主程序直接調用尋跡函數,來實現(xiàn)尋跡功能。這里介紹一下尋跡模塊編寫
34、的一些思路。要實現(xiàn)尋跡就必須清楚尋跡原理,在前面的技術介紹中,已經介紹了他的原理。這里不做過多說明,以免冗余。尋跡函數的編寫是一個實時掃描單片機管腳P3.5/P3.6,P3.5管腳代表左方探頭傳回的信息,P3.6代表右邊探頭傳回的信號。當左方探頭跑出黑線時,會給P3.5至0,單片機檢測到P3.5為0時,便調用右轉向函數,來完成右側轉功能,當右方探頭跑出黑線時,同樣會使P3.6至0,這時再調用左轉向函數來調節(jié)小車的位置。圖3.4為小車尋跡模塊的程序流程圖初始化探頭跑出黑線了嗎哪邊探頭有輸入前進后退右轉左轉是否左左右均有右 圖3.4 尋跡程序流程圖3.5 小車防撞報警 主人命令開啟防撞功能時,小車
35、主程序調用防撞報警函數,在防撞報警函數打開時進入實時檢測P3.7腳,當前方遇到懸崖或障礙物時,小車內部防撞函數調用電機驅動函數來調節(jié)小車行經來避免掉入懸崖或撞擊障礙物,并觸發(fā)報警信號引起報警。圖3.5為防撞報警模塊的程序流程圖。初始化前方有懸崖或障礙物嗎前進后退并報警左轉并報警是否 圖3.5 防撞報警程序流程圖 4 小車系統(tǒng)原理圖硬件電路總設計圖如圖4.1所示 圖4.1 硬件電路原理圖最終主板PCB圖前板PCB5 系統(tǒng)調試把原理圖畫、最終PCB畫好之后再根據實驗室現(xiàn)有的實驗條件進行制版,并一并把所有元器件焊接上,在焊接時應注意以下幾點: 、電解電容容有正負極之分,長正短負; 、二極管有正負極之
36、分,長正短負; 、話筒有正負之分,負極與外殼相連; 、蜂鳴器有正負之分,長正短負; 、三極管按照電路板封裝焊接; 、集成電路即芯片,安裝時要注意缺口對應(缺口對應位置和封裝對應位置要一致)。(缺口在芯片或芯片底座的一端); 、數碼管焊接時注意數碼管上的小數點要與電路板封裝上的小數點對應;、每個電機都需要焊接瓷片電容104。焊接完之后,還需對小車各個模塊進行調試,以確保硬件的完好。5.1 遙控發(fā)送接收調試由于遙控器是由廠家直接提供的,為了確保遙控器能夠正常發(fā)送紅外信號,必須提前進行測試,但遙控器是集成的,而紅外線發(fā)射燈又是透明的,當發(fā)送的時候人眼觀察不到任何現(xiàn)象,那么怎樣知道遙控器是否正常呢?這
37、里教你一小招,將遙控器裝上電池,然后將你自己的手機的照相功能打開,將手機上的攝像頭對準你遙控器前面的發(fā)射燈,然后按下遙控器上的任何一個按鍵,觀察手機照相功能里面的遙控器發(fā)射燈是否點亮,如果燈已被點亮,則說明遙控器能夠正常發(fā)射紅外信號,否則遙控不能發(fā)射紅外信號。這一招很簡單,在家里也能用,平常家里面的遙控電視機遙控器不靈了就可試著采用這一方法,進而初步判斷是不是遙控器已壞或者遙控器上面電池沒電了。在上面已經介紹了遙控器的測試,現(xiàn)在再來談談紅外接收頭的調試,如果遙控器能夠正常工作,下一步就應該測試一下接收頭是否正常接收了。小車上電之后將接收頭的1號管腳接上示波器,然后一直按下遙控器上面的按鍵,觀察
38、示波器上面波形,如果能夠發(fā)現(xiàn)有重復的高低脈沖,但看不清具體的脈沖寬度,則說明紅外線能夠正常接收紅外信號。如果接上之后沒什么反應,也未見其波形,初步推斷是接收頭有問題,或許是元器件已壞,也可能是焊接時有虛焊或短路,這時應該再次檢查電路連接。以上步驟都完成且正常之后可燒寫遙控小程序以此來檢查所用程序是否能夠正常解碼。5.2 電機驅動調試最直接的方法來判斷電機是否完好就是那一節(jié)干電池做電源,將兩極分別接在直流電機的兩極,來觀察能否實現(xiàn)正轉反轉,當然在接之前最好在直流電機兩引腳之間接上一個104的瓷片電容,這樣做是防止由于電流過大將電機燒壞。完成之后再燒電機驅動程序,程序里邊在執(zhí)行完正轉之后設置一個延
39、遲時間,燒寫完程序之后再運行小車,觀察小車前進后退敏不敏捷,左右轉向弧度大小怎樣,如果不滿足自己要求,則可改變延遲時間的長短來實現(xiàn),不斷進行調試。已達到最佳效果。5.3 尋黑線和防撞的調試首先檢查前板探頭是否正常,紅外信號發(fā)射探頭可繼續(xù)采用檢測器正常與否中使用的方法,黑色接收探頭正常與否可參考原理圖,將小車置于白色跑道上,正前方放一障礙物,注意障礙物表面一定不能為黑色,然后用萬用表測量一下P3.5、P3.6、P3.7管腳電壓。觀察是否為0電壓,如果為0,則正常工作,如果不為0,則可能電路存在問題,需檢查電路完整性。然后再次燒寫尋跡和防撞報警程序,并自己建立邊緣為白色,跑道為黑色的實驗臺,觀察小
40、車在自動尋跡功能上是否能正常實現(xiàn),并觀察小車在彎曲跑道上的轉向弧度是否合理,如果不合理則應調節(jié)內部延時間。以跑道要求。總結畢業(yè)設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。這次的畢業(yè)設計通過搜集相關資料和撰寫論文對我來說是一次非常難得的鍛煉機會,可以說已經囊括了大學期間大部分的知識,從選題到定稿,從理論到實踐可以把所學的專業(yè)知識充分運用起來解決具體的問題,不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識,能夠使所學知識融會貫通。對于我來說這不僅僅是一次畢業(yè)設計,更重要的是在過程中提高了我學
41、習的能力、解決問題的能力和實際工作的能力,這些技能和方法都會對將來的工作有很大的幫助?;仡櫰鸫舜萎厴I(yè)設計,至今我仍感慨頗多,可以說得是苦多于甜,但是可以學到很多很多的東西。在設計和寫論文的過程中遇到很多問題,可以說得是困難重重,發(fā)現(xiàn)了自己還有很多的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,這次課程設計也讓我對以前所學過的知識有了溫故知新。參考文獻1 宋建國:AVR單片機原理及應用A,北京航空航天大學出版社,1998.2,P35-P45 2 黃繼昌:傳感器工作原理及應用實例A,北京人民郵電出版社,1998.6,P32-P353 雷輝:基于AT89C2051的智能防撞報警器設計,
42、電氣時代J,2005.1,P44-P464吳愛萍: 基于AT89S51的多功能紅外遙控器設計期刊論文-儀表技術與傳感器 2008(8)5洪剛:一種簡易紅外遙控鍵盤的設計期刊論文-重慶科技學院學報(自然科學版) 2008(4)6王建躍:紅外遙控器編碼方法期刊論文-工礦自動化 2005(z1)附錄元件清單位號名稱位號名稱M1電機1接線座SIUILED數碼管M2電機2接線座IR1紅外接收頭X1前端探測板接線座RX110K排阻9腳DC15KZ111.0592晶振R1220IC1STC89C52RCR2150IC2MAX232CPER31MIC3L9110集成電路R447KIC4L9110集成電路R54
43、.7KC110uF/16VR6560C2104R7560C3104R8560C4104R9560C510uF/16VR10560C610uF/16VR11560C730PFR12560C830PFR13560C9104R14220C1010uF/16VR1510KC1110uF/16VR16560C1210uF/16VR17560C1310uF/16VR18560D1D8紅色發(fā)光二極管R19560D9綠色發(fā)光二極管R20560S1按鍵開關R21560S2按鍵開關R22560S3按鍵開關R23560COM1DB9針串口R24560D1D2LED(前板用)R2510KV1發(fā)射頭(前板用)R2656
44、0V2接收頭(前板用)RL1光敏電阻V3發(fā)射頭(前板用)SB1蜂鳴器V4接收頭(前板用)B1話筒V5發(fā)射頭(前板用)R1220(前板用)V6接收頭(前板用)R2560(前板用)R3220(前板用)R415K(前板用)R515K(前板用)R6220(前板用)R7560(前板用)R815K(前板用)9012紅外遙控發(fā)射器V1V28550J1J2跳線帽系統(tǒng)程序#include /包含51單片機相關的頭文件#define uint unsigned int /重定義無符號整數類型#define uchar unsigned char /重定義無符號字符類型uchar code LedShowData=
45、0 x03,0 x9F,0 x25,0 x0D,0 x99, /定義數碼管顯示數據 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; /定義閃動頻率計數變量unsigned char RunFlag=0; /定義運行標志位bit EnableLight=0; /定義指示燈使能位/*完成基本數據變量定義*
46、/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
47、 S2=P34; /定義S2按鍵端口/*完成按鍵端口的定義*/ sbit LeftLed=P20; /定義前方左側指示燈端口sbit RightLed=P07; /定義前方右側指示燈端口/*完成前方指示燈端口定義*/sbit LeftIR=P35; /定義前方左側紅外探頭sbit RightIR=P36; /定義前主右側紅外探頭sbit FontIR=P37; /定義正前方紅外探頭/*完成紅外探頭端口定義*/sbit M1A=P00; /定義電機1正向端口sbit M1B=P01; /定義電機1反向端口sbit M2A=P02; /定義電機2正向端口sbit M2B=P03; /定義電機2反向
48、端口/*完成電機端口定義*/sbit B1=P04; /定義話筒傳感器端口sbit RL1=P05; /定義光敏電阻端口sbit SB1=P06; /定義蜂鳴端口/*完成話筒,光敏電阻,蜂鳴器.端口定義*/sbit IRIN=P33; /定義紅外接收端口/*完成紅外接收端口的定義*/#define ShowPort P2 /定義數碼管顯示端口extern void ControlCar(uchar CarType); /聲明小車控制子程序void delay(unsigned char x) /0.14mS延時程序 unsigned char i; /定義臨時變量 while(x-) /延時時
49、間循環(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; /關閉前方左側指示燈 RightLed=1; /關閉前方右側指示燈 Delay()
50、; /將此狀態(tài)延時一段時間 switch(CarType) /判斷小車控制指令類型 case 1: /前進 /判斷是否是前進 M1A=1; /將電機1正向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData1; /數碼管顯示前進狀態(tài) break; /退出判斷 case 2: /后退 /判斷是否是后退 M1B=1; /將電機1反向端口置高 M2B=1; /將電機2反向端口置高 ShowPort=LedShowData2; /數碼管顯示后退狀態(tài) RightLed=0; /將前方右側指示燈置低(亮) LeftLed=0; /將前方左側指示燈置低(亮) break; /退出判斷 case 3: /左轉 /判斷是否是左轉 M1B=1; /將電機1反向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData3; /數碼管顯示左轉狀態(tài) LeftLed=0; /將前方左側指示燈置低(亮) break; /退出判斷 case 4: /右轉 /判斷是否是右轉 M1A=1; /將電機1正向端口置高 M2B=1;
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當頭廉字入心爭當公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔當時代大任的中國青年PPT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學期末考試經驗總結(認真復習輕松應考)
- 支部書記上黨課筑牢清廉信念為高質量發(fā)展營造風清氣正的環(huán)境
- 冬季消防安全知識培訓冬季用電防火安全
- 2025加強政治引領(政治引領是現(xiàn)代政黨的重要功能)
- 主播直播培訓直播技巧與方法
- 2025六廉六進持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領鄉(xiāng)村振興工作總結
- XX中小學期末考試經驗總結(認真復習輕松應考)
- 幼兒園期末家長會長長的路慢慢地走