2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  智能機器人能做一些人不能做或危險的事且能提高工作效率,能創(chuàng)造巨大的經(jīng)濟效應,是一個具有巨大潛力的研究領域。AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機。AVR的單片機可以廣泛應用于計算機外部設備、工業(yè)實時控制

2、、儀器儀表、通訊設備、家用電器等各個領域。ATmega8是一種比C51系列更進步的8位單片機。單片微計算機自20世紀70年代問世以來,已對人類社會產生了巨大的影響。目前在工業(yè)控制、智能儀器儀表、辦公室自動化、家用電器等諸多領域,到處都可以看見單片機的蹤影,單片機技術開發(fā)和應用水平已成為一個國家工業(yè)化發(fā)展水平的標志之一。</p><p>  關鍵詞:智能車,單片機,控制系統(tǒng)</p><p>

3、<b>  ABSTRACT</b></p><p>  Intelligent robot can not do or can do some dangerous things and can improve efficiency, can create significant economic effect, is a potential area of research. AVR M

4、icrocontroller ATMEL Corporation in 1997 developed by the enhanced built-in Flash of the RISC (Reduced Instruction Set CPU) high-speed 8-bit RISC microcontroller.AVR microcontroller can be widely used in computer periphe

5、rals, industrial real-time control, instrumentation, communications equipment, household appliances and other fi</p><p>  Keywords: Intelligent vehicle,Microcontroller,Control system</p><p><

6、b>  目 錄</b></p><p><b>  1 緒 論1</b></p><p>  1.1研究的背景及其意義1</p><p>  1.2 智能車的發(fā)展趨勢2</p><p>  2 系統(tǒng)硬件設計5</p><p>  2.1 系統(tǒng)整體方案設計5</p&

7、gt;<p>  2.2 各大模塊的設計6</p><p>  3 系統(tǒng)軟件設計16</p><p>  3.1 WinAVR集成開發(fā)環(huán)境16</p><p>  3.2 SL ISP下載工具16</p><p>  3.3 串口調試軟件16</p><p>  3.4 WinAVR簡介16&

8、lt;/p><p>  3.5 編程思路25</p><p>  4 總結與展望32</p><p><b>  參考文獻34</b></p><p><b>  致 謝35</b></p><p>  附 錄 硬件連接圖36</p><p>&

9、lt;b>  1 緒 論</b></p><p>  1.1研究的背景及其意義</p><p>  隨著全球經(jīng)濟的發(fā)展,道路上車輛急劇增加,但道路的拓寬速度是有限的,道路變得越來越擁擠,與此同時,交通事故數(shù)量也急劇增加。交通事故已成為“世界第一害”,而中國是世界上交通事故死亡人數(shù)最多的國家之一。從二十世紀八十年代末中國交通事故年死亡人數(shù)首次超過五萬人,中國(未包括港澳臺

10、地區(qū))每年交通事故50萬起,因交通事故死亡人數(shù)均超過10萬人,已經(jīng)連續(xù)十余年居世界第一。2009年,中國汽車保有量約占世界汽車保有量的百分之三,但交通事故死亡人數(shù)卻占世界的百分之十六。以父親為例,父親開了十余年車,大大小小的交通事故發(fā)生了數(shù)次,每次都讓親朋好友擔心不已,也讓事故另一方的親朋好友擔心不已。因此如果道路上的車輛都能自動行走,那該有多好呀!</p><p>  智能汽車與一般所說的自動駕駛有所不同,它指

11、的是利用多種傳感器和智能公路技術實現(xiàn)的汽車自動駕駛。智能汽車首先有一套導航信息資料庫,存有全國高速公路、普通公路、城市道路以及各種服務設施(餐飲、旅館、加油站、景點、停車場)的信息資料;其次是GPS定位系統(tǒng),利用這個系統(tǒng)精確定位車輛所在的位置,與道路資料庫中的數(shù)據(jù)相比較,確定以后的行駛方向;道路狀況信息系統(tǒng),由交通管理中心提供實時的前方道路狀況信息,如堵車、事故等,必要時及時改變行駛路線;車輛防碰系統(tǒng),包括探測雷達、信息處理系統(tǒng)、駕駛控

12、制系統(tǒng) ,控制與其他車輛的距離,在探測到障礙物時及時減速或剎車,并把信息傳給指揮中心和其他車輛;緊急報警系統(tǒng),如果出了事故,自動報告指揮中心進行救援;無線通信系統(tǒng),用于汽車與指揮中心的聯(lián)絡;自動駕駛系統(tǒng),用于控制汽車的點火、改變速度和轉向等。</p><p>  智能車輛是一個集環(huán)境感知、規(guī)劃決策、多等級輔助駕駛等功能于一體的綜合系統(tǒng),它集中運用了計算機、現(xiàn)代傳感、信息融合、通訊、人工智能及自動控制等技術,是典型

13、的高新技術綜合體。目前對智能車輛的研究主要致力于提高汽車的安全性、舒適性,以及提供優(yōu)良的人車交互界面。近年來,智能車輛己經(jīng)成為世界車輛工程領域研究的熱點和汽車工業(yè)增長的新動力,很多發(fā)達國家都將其納入到各自重點發(fā)展的智能交通系統(tǒng)當中。</p><p>  通常對車輛的操作實質上可視為對一個多輸入、多輸出、輸入輸出關系復雜多變、不確定多干擾源的復雜非線性系統(tǒng)的控制過程。駕駛員既要接受環(huán)境如道路、擁擠、方向、行人等的信

14、息,還要感受汽車如車速、側向偏移、橫擺角速度等的信息,然后經(jīng)過判斷、分析和決策,并與自己的駕駛經(jīng)驗相比較,確定出應該做的操縱動作,最后由身體、手、腳等來完成操縱車輛的動作。因此在整個駕駛過程中,駕駛員的人為因素占了很大的比重。一旦出現(xiàn)駕駛員長時間駕車、疲勞駕車、判斷失誤的情況,很容易造成交通事故。</p><p>  智能汽車是一種正在研制的新型高科技汽車,這種汽車不需要人去駕駛,人只舒服地坐在車上享受這高科技的

15、成果就行了。因為這種汽車上裝有相當于汽車的“眼睛”、“大腦”和“腳”的電視攝像機、電子計算機和自動操縱系統(tǒng)之類的裝置,這些裝置都裝有非常復雜的電腦程序,所以這種汽車能和人一樣會“思考”、“判斷”、“行走”,可以自動啟動、加速、剎車,可以自動繞過地面障礙物。在復雜多變的情況下,它的“大腦”能隨機應變,自動選擇最佳方案,指揮汽車正常、順利地行駛。</p><p>  智能汽車的“眼睛”是裝在汽車右前方、上下相隔50厘

16、米處的兩臺電視攝像機,攝像機內有一個發(fā)光裝置,可同時發(fā)出一條光束,交匯于一定距離,物體的圖像只有在這個距離才能被攝取而重疊?!把劬Α蹦茏R別車前5~20米之間的臺形平面、高度為10厘米以上的障礙物。如果前方有障礙物,“眼睛” 就會向“大腦”發(fā)出信號,“大腦”根據(jù)信號和當時當?shù)氐膶嶋H情況,判斷是否通過、繞道、減速或緊急制動和停車,并選擇最佳方案,然后以電信號的方式,指令汽車的“腳”進行停車、后退或減速。智能汽車的“腳”就是控制汽車行駛的轉向

17、器、制動器。</p><p>  無人駕駛的智能汽車將是新世紀汽車技術飛躍發(fā)展的重要標志。可喜的是,智能汽車已從設想走向實踐。隨著科技的飛速發(fā)展,相信不久的將來,我們都可以領略到智能汽車的風采。</p><p>  所以,智能汽車實際上是智能汽車和智能公路組成的系統(tǒng),目前主要是智能公路的條件還不具備,而在技術上已經(jīng)可以解決。在智能汽車的目標實現(xiàn)之前,實際上已經(jīng)出現(xiàn)許多輔助駕駛系統(tǒng),已經(jīng)廣泛

18、應用在汽車上,如智能雨刷,可以自動感應雨水及雨量,自動開啟和停止;自動前照燈,在黃昏光線不足時可以自動打開;智能空調,通過檢測人皮膚的溫度來控制空調風量和溫度;智能懸架,也稱主動懸架,自動根據(jù)路面情況來控制懸架行程,減少顛簸;防打瞌睡系統(tǒng),用監(jiān)測駕駛員的眨眼情況,來確定是否很疲勞,必要時停車報警……計算機技術的廣泛應用,為汽車的智能化提供了廣闊的前景[1]。</p><p>  1.2 智能車的發(fā)展趨勢</

19、p><p>  雖然此次畢業(yè)設計研究的只是體積較小的智能小車,但希望此次的畢業(yè)設計能為智能汽車的研究提供一個小的樣本,如果此次的畢業(yè)設計能為汽車的智能化以及交通狀況的改善做出一點微不足道的貢獻,此次畢業(yè)設計就將充滿意義。</p><p>  主動安全絕對是未來智能汽車最為關鍵的技術核心,特別是在自動防撞設計上,主要內容包括車體前方/后方/側邊碰撞預警和緩解、車道偏離示警、倒車影像辨識系統(tǒng)、盲點

20、預警、駕駛疲勞警示和自動煞車控制等。未來智能汽車將包含計算機、移動通訊、自動控制等使車輛更具舒適性、娛樂性、安全性、方便性的多項技術。未來智能汽車的系統(tǒng)將由兩部分組成,一部分是車輛本身的內部網(wǎng)絡系統(tǒng),它由車載網(wǎng)絡計算機控制;另一部分是車輛外部的聯(lián)系網(wǎng)絡系統(tǒng),包括GPS監(jiān)測中心、互聯(lián)網(wǎng)及區(qū)域網(wǎng)服務商、車輛服務中心、單位或家庭電腦等[2]。隨著汽車的智能化,未來汽車的安全性將得到質的提升,必將大大減少交通事故的發(fā)生,如此便不會有那么多的人生

21、悲劇發(fā)生,也會讓每一位司機的家人安心、不會擔心到天亮。</p><p>  中國從上世紀80年代開始著手無人駕駛系統(tǒng)的研制開發(fā),雖與國外相比還有一些距離,但目前也取得了階段性成果。國內清華大學、國防科技大學、上海交通大學、西安交通大學、吉林大學、同濟大學等都有過無人駕駛汽車的研究項目。</p><p>  1992年,國防科技大學研制成功了中國第一輛真正意義上的無人駕駛汽車。由計算機及其配

22、套的檢測傳感器和液壓控制系統(tǒng)組成的汽車計算機自動駕駛系統(tǒng),被安裝在一輛國產的中型面包車上,使該車既保持了原有的人工駕駛性能,又能夠用計算機控制進行自動駕駛行車。2000年6月,國防科技大學研制的第4代無人駕駛汽車試驗成功,最高時速達76km,創(chuàng)下國內最高紀錄。2003年7月,國防科技大學和中國一汽聯(lián)合研發(fā)的紅旗無人駕駛轎車高速公路試驗成功,自主駕駛最高穩(wěn)定時速13Okm,其總體技術性能和指標已經(jīng)達到世界先進水平。</p>

23、<p>  THMR—V(TsingHua Mobile Robot V)清華V型智能車是清華大學計算機系智能技術與系統(tǒng)國家重點實驗室在中國科學院院士張拔主持下研制的新一代智能移動機器人,兼有面向高速公路和一般道路的功能。車體采用道奇7座廂式車改裝,裝備有彩色攝像機和激光測距儀組成的道路與障礙物檢測系統(tǒng);由差分GPS、磁羅盤和光碼盤組成的組合定位導航系統(tǒng)等。兩套計算機系統(tǒng)分別進行視覺住處處理,完成信息融合、路徑規(guī)劃、行為與決策

24、控制等功能。四臺IPC工控機分別完成激光測距信息處理、定位信息處理、通訊管理、駕駛控制等功能。設計車速高速公路為80km/h,一般道路為20 km/h。目前已能夠在校園的非結構化道路環(huán)境下,進行道路跟蹤和避障自主行駛。汽車的智能化可以減輕駕駛員的疲勞,適應復雜的天氣條件,減少交通事故的發(fā)生。</p><p>  此外,西安交通大學搭建了Spingrobot智能車實驗平臺,并于2005年10月成功完成在敦煌“新絲綢

25、之路”活動中的演示。同濟大學2006年研發(fā)了一輛無人駕駛清潔能源電動游覽車,最高時速為50km/h,可應用于人們觀光旅游。吉林大學和中科院沈陽自動化所在無人駕駛智能車方面也研究較早,取得不少成果。</p><p>  從20世紀70年代,美歐等發(fā)達國家開始進行無人駕駛汽車的研究,大致可以分為二個階段:軍事用途、高速公路環(huán)境和城市環(huán)境。在軍事用途方面,早在80年代初期,美國國防部就大規(guī)模資助自主陸地車輛ALV (A

26、utonomous LandVehicle)的研究。</p><p>  進入21世紀,為促進無人駕駛車輛的研發(fā),從2004年起,美國國防部高級研究項目局(DARPA)開始舉辦機器車挑戰(zhàn)大賽(Grand Challenge)。該大賽對促進智能車輛技術交流與創(chuàng)新起到很大激勵作用。</p><p>  在2005年的第二屆比賽中,主辦方只在賽前2小時提供一張光盤,上面提供了比賽路線上2935個

27、“路點”的方位與海拔等詳細資料。整個賽道有急轉彎、隧道、路口還有山路,比賽要求參賽車輛能夠自主完成全部路程。最終斯坦福大學的“斯塔利”,獲得了第1名。具有6個奔騰M處理器的電腦完成“斯坦利”的所有程序的處理。車輛移動時,4個激光傳感器、一個雷達系統(tǒng)、一組立體攝像頭和一個單眼視覺系統(tǒng)感知周圍的環(huán)境。</p><p>  2006年德國舉辦了歐洲陸地機器人競賽(European Land Robot Trial,簡稱

28、(ELROB)),德國的參賽車“途銳”取得了冠軍。該車通過影像處理尋找道路,周圍景物被處理成3D影像。該車由光學定向與測距系統(tǒng)對收集的信息進行導航?jīng)Q策,分析哪里是行人哪里是樹木?!巴句J”自主行駛了90%的賽程,不過在通過關鍵十字路口時還是靠手動駕駛。</p><p>  隨著汽車電子技術的發(fā)展,汽車智能化技術正在逐步得到應用,這種技術使汽車的操縱越來越簡單,動力性和經(jīng)濟性越來越高,行駛安全性越來越好,因此,智能化

29、是未來汽車發(fā)展的趨勢[3]。</p><p><b>  2 系統(tǒng)硬件設計</b></p><p>  2.1 系統(tǒng)整體方案設計</p><p>  本次畢業(yè)設計所用的實物為智能車,將其分為驅動模塊、控制模塊、尋線模塊、電源模塊四大模塊設計。</p><p><b>  圖2-1 系統(tǒng)框圖</b>&

30、lt;/p><p>  控制模塊:本次畢業(yè)設計所用的控制芯片為ATmega8芯片。在AVR家族中,ATmega8是一種非常特殊的單片機,它的芯片內部集成了較大容量的存儲器和豐富強大的硬件接口電路,具備AVR高檔單片機MEGE系列的全部性能和特點。但由于采用了小引腳封裝(為PDIP28和TQFP/MLF32),所以其價格僅與低檔單片機相當,再加上AVR單片機的系統(tǒng)內可編程特性,使得無需購買昂貴的仿真器和編程器也可進行單

31、片機嵌入式系統(tǒng)的設計和開發(fā),同時也為單片機的初學者提供了非常方便和簡捷的學習開發(fā)環(huán)境。ATmega8的這些特點,使其成為一款具有極高性能價格比的單片機,深受廣大單片機用戶的喜愛,在產品應用市場上極具競爭力,被很多家用電器廠商和儀器儀表行業(yè)看中,從而使ATmega8迅速進入大批量的應用領域[4]。</p><p>  驅動模塊:本次畢業(yè)設計的智能車驅動模塊采用的是兩個伺服舵機。交流伺服電機使用方便,轉速分辨率高,精

32、度高,閉環(huán)運行,驅動器輸出編碼器信號,可實現(xiàn)大閉環(huán)。驅動芯片為MAX232,MAX232芯片是美信公司專門為電腦的RS-232標準串口設計的單電源電平轉換芯片,使用+5v單電源供電[5]。</p><p>  尋線模塊:本次畢業(yè)設計將使用紅外傳感器對智能車進行導航。紅外傳感系統(tǒng)是用紅外線為介質的測量系統(tǒng),按照功能可分成五類, 按探測機理可分成為光子探測器和熱探測器. 紅外傳感技術已經(jīng)在現(xiàn)代科技、國防和工農業(yè)等領域

33、獲得了廣泛的應用。紅外技術發(fā)展到現(xiàn)在,已經(jīng)為大家所熟知,這種技術已經(jīng)在現(xiàn)代科技、國防和工農業(yè)等領域獲得了廣泛的應用。紅外傳感系統(tǒng)是用紅外線為介質的測量系統(tǒng),按照功能能夠分成五類:(1)輻射計,用于輻射和光譜測量;(2)搜索和跟蹤系統(tǒng),用于搜索和跟蹤紅外目標,確定其空間位置并對它的運動進行跟蹤;(3)熱成像系統(tǒng),可產生整個目標紅外輻射的分布圖像;(4)紅外測距和通信系統(tǒng);(5)混合系統(tǒng),是指以上各類系統(tǒng)中的兩個或者多個的組合。紅外傳感器根

34、據(jù)探測機理可分成為:光子探測器(基于光電效應)和熱探測器(基于熱效應)[6]。</p><p>  電源模塊:本次畢業(yè)設計的智能車電源模塊采用的是4節(jié)5號干電池[7]。</p><p>  2.2 各大模塊的設計</p><p>  2.2.1 控制模塊的設計</p><p>  此次畢業(yè)設計控制芯片為單片機芯片,單片微型計算機簡稱單片機,是

35、典型的嵌入式微控制器,常用英文字母的縮寫MCU表示單片機,它最早是被用在工業(yè)控制領域。單片機由芯片內僅有CPU的專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性

36、能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產品大發(fā)展,單片機技術得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處

37、理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主</p><p>  此次畢業(yè)設計的智能車控制模塊采用的是ATmega8作為CPU,,ATmega8是一種比51系列更為強大的高性能、低功耗的8位單片機,不需要仿真機和編程機,只需運用ISP電纜就可以對單片機的FLASH反復擦寫10000次以上,因此使用起來特別方便簡單,尤其適合初學者使用,而且配置十分靈活,可擴展性特別強。本文的控制程序是用C語言,編程軟

38、件為WinAVR?!?lt;/p><p>  ATmega8內部特點:高性能、低功耗的 8 位AVR 微處理器,先進的RISC 結構。130 條指令,大多數(shù)指令執(zhí)行時間為單個時鐘周期。32個8 位通用工作寄存器,全靜態(tài)工作,工作于16 MHz 時性能高達16 MIPS。只需兩個時鐘周期的硬件乘法器,非易失性程序和數(shù)據(jù)存儲器,8K 字節(jié)的系統(tǒng)內可編程Flash,擦寫壽命:10,000 次,具有獨立鎖定位的可選Boot

39、代碼區(qū),通過片上Boot 程序實現(xiàn)系統(tǒng)內編程,真正的同時讀寫操作。512 字節(jié)的EEPROM,1K字節(jié)的片內SRAM,可以對鎖定位進行編程以實現(xiàn)用戶程序的加密。   </p><p>  ATmega8外設特點:兩個具有獨立預分頻器8 位定時器/ 計數(shù)器, 其中之一有比較功能,一個具有預分頻器、比較功能和捕捉功能的16 位定時器/ 計數(shù)器,具有獨立振蕩器的實時計數(shù)器RTC。三通道PWM,TQFP與MLF 封裝的8

40、 路ADC,8 路10 位ADC。PDIP封裝的6 路ADC。面向字節(jié)的兩線接口,兩個可編程的串行USART,可工作于主機/ 從機模式的SPI 串行接口。具有獨立片內振蕩器的可編程看門狗定時器,片內模擬比較器。   </p><p>  特殊的處理器特點:上電復位以及可編程的掉電檢測,片內經(jīng)過標定的RC 振蕩器,片內/ 片外中斷源?! ?lt;/p><p>  5種睡眠模式: 空閑模式、ADC

41、 噪聲抑制模式、省電模式、掉電模式及Standby 模式。</p><p>  I/O 和封裝:23個可編程的I/O 口,28引腳PDIP 封裝,32 引腳TQFP 封裝,32 引腳MLF 封裝   </p><p>  工作電壓:2.7 - 5.5V (ATmega8L),4.5 - 5.5V (ATmega8);速度等級:0 - 8 MHz (ATmega8L),0 - 16 MHz

42、(ATmega8);工作模式: 3.6 mA;空閑模式: 1.0 mA;掉電模式: 0.5 μA。</p><p>  此次畢業(yè)設計所用的ATmega8芯片采用的是PDIP封裝,即為雙列直插式封裝,PDIP封裝結構具有以下特點:1. 適合PCB的穿孔安裝; 2. 易于對PCB布線;3. 操作方便。其引腳說明圖如圖2-2所示。</p><p>  圖 2-2 ATmega8的引腳說明圖<

43、;/p><p>  引腳定義:VCC 電源;GND 地;端口B為8位雙向I/O口,其中PB5、PB4、PB3可用于ISP編程;端口C,其中PC6可作為復位輸入引腳,ATmega8為低電平復位;端口D為8位雙向I/O口;XTAL1為反向振蕩放大器的輸入和內部時鐘工作電路的輸入;XTAL2為反向振蕩放大器的輸出;AVCC 是A/D 轉換器PC3、PC2、PC1、PC0的電源端,即使不使用ADC 也應外接到VCC端,如使用

44、ADC應該通過一個低通濾波器與VCC連接,注意PC5、PC4通過VCC 供電,低通濾波器為讓某一頻率以下的信號分量通過,而對該頻率以上的信號分量大大抑制的電容、電感與電阻等器件的組合裝置;AREF為A/D 轉換器的參考電源[9]。</p><p>  圖2-3 ATmega8接線圖</p><p>  2.2.2 驅動模塊設計</p><p>  此次畢業(yè)設計驅動

45、模塊采用伺服電機。</p><p>  伺服電機優(yōu)點: (1)精度:實現(xiàn)了位置,速度和力矩的閉環(huán)控制;克服了步進電機失步的問題; (2)轉速:高速性能好,一般額定轉速能達到2000~3000轉/分鐘; (3)適應性:抗過載能力強,能承受三倍于額定轉矩的負載,對有瞬間負載波動和要求快速起動的場合特別適用; (4)穩(wěn)定:低速運行平穩(wěn),低速運行時不會產生類似于步進電機的步進運行現(xiàn)象。適用于有高速

46、響應要求的場合; (5)及時性:電機加減速的動態(tài)相應時間短,一般在幾十毫秒之內;</p><p> ?。?)舒適性:發(fā)熱和噪音明顯降低。</p><p>  伺服電機工作的原理:舵機是一種位置伺服的驅動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。其工作原理是:控制信號由接收機的通道進入信號調制芯片,獲得直流偏置電壓。它內部有一個基準電路,產生周期為20ms,寬度為1.5ms的

47、基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動[10]。</p><p>  控制伺服電機轉動速度的信號是圖2-4、2-5和2-6所示的脈沖信號。圖2-4所示是高電平持續(xù)1.5ms 低電平持續(xù)20ms,然后不斷重復的控制脈沖序列。該脈沖序列發(fā)給經(jīng)過零點標定后的伺服

48、電機,伺服電機不會旋轉。如果此時電機旋轉,表明電機需要標定。從圖2-4、2-5和2-6可知,控制電機運動轉速的是高電平持續(xù)的時間,當高電平持續(xù)時間為1.3ms 時,電機順時針全速旋轉,當高電平持續(xù)時間1.7ms 時,電機逆時針速旋轉。</p><p>  圖2-4 電機轉速為零的控制信號時序圖</p><p>  圖2-5 1.3 ms的控制脈沖序列使電機順時針全速旋轉</p&g

49、t;<p>  圖2-6 1.7ms的連續(xù)脈沖序列使電機逆時針全速旋轉</p><p>  在進行下面的實驗之前,必須首先照圖2-7所示的電機連接原理圖和實際接線圖進行檢查。如果沒有正確連接,也請參照該圖重新連接。從圖2-7可知,PB0引腳的控制輸出用來控制右邊的伺服電機,而 PB1 則用來控制左邊的伺服電機。</p><p>  顯然這里對微控制器編程發(fā)給伺服電機的高、低電

50、平信號必須具備更精確的時間。因為單片機只有整數(shù),沒有小數(shù),所以要生成伺服電機的控制信號,要求具有比 delay_nms()函數(shù)的時間更精確的函數(shù),這就需要用另一個延時函數(shù) delay_nus(unsigned int n)。這個函數(shù)可以實現(xiàn)更小的延時,它的延時單位是微秒,即千分之一毫秒,參數(shù)n為延時微秒數(shù)。</p><p><b>  while(1)</b></p><

51、p><b>  {</b></p><p>  PB0=1; //PB0 輸出高電平</p><p>  delay_nus(1500); //延時 1.5ms </p><p>  PB0=0; //PB0 輸出低電平</p><p>  delay_nus(

52、20000); //延時 20ms </p><p><b>  }</b></p><p>  如果使用這個代碼段,就會輸出圖2-4所示的脈沖信號。PB0 腳輸出的波形如圖2-4所示。此時,連接到該腳的機器人輪子將靜止不動。如果它在慢慢轉動,就說明你的機器人伺服電機可能沒有經(jīng)過調整。伺服電機的調零其實是調節(jié)電機內部的基準電路,使其滿足要求。</p>

53、<p>  同樣,用下面的程序片斷,編譯、連接下載執(zhí)行代碼,觀察連接到 PB0 腳的機器人輪子將順時針全速旋轉。</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  PB0=1; //PB0 輸出高電平</p>

54、<p>  delay_nus(1300); //延時 1.3ms </p><p>  PB0=0; //PB0 輸出低電平</p><p>  delay_nus(20000); //延時 20ms </p><p><b>  }[11]</b></p><p>  圖2

55、-7伺服電機連線圖</p><p>  此次畢業(yè)設計所用的驅動芯片為MAX232EEPE。MAX232是一種把電腦的串行口RS-232信號電平(-10 ,+10v)轉換為單片機所用到的TTL信號電平(0 ,+5)的芯片。 </p><p>  圖2-8 MAX232引腳圖</p><p>  引腳介紹:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只

56、電容構成。功能是產生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉換通道。由7、8、9、10、11、12、13、14腳構成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉換成RS-232數(shù)據(jù)從T1OUT

57、、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。 </p><p>  主要特點:(1)符合所有的RS-232C技術標準。(2)只需要單一 +5V電源供電 。(3)片載電荷泵具有升壓、電壓極性反轉能力,能夠產生+10V和-10V電壓V+、V-。(4)功耗低,典型供電電

58、流5mA。(5)內部集成2個RS-232C驅動器。(6)內部集成兩個 RS-232C接收器[12]。</p><p>  圖2-9 MAX232的基本接線圖</p><p>  圖2-10 MAX232接線圖</p><p>  2.2.3 尋線模塊的設計</p><p>  此次畢業(yè)設計使用紅外傳感器對智能車進行導航,紅外傳感器的工作原理

59、電路圖如圖2-11所示。工作過程分析如下:</p><p>  圖2-11 紅外傳感器原理圖</p><p>  由該工作原理圖知道當通過程序控制單片機的內部電路給PC2口輸出高電平此時三極管被導通,LED開始發(fā)光,當發(fā)射出來的光被障礙物反射回來的時候被光敏二極管所接受光敏二極管被導通此時輸出低電平表示前面有障礙物,如果發(fā)射出去的光沒有被反射回來,光敏二極管沒有接受到光此時光敏處于截止的狀

60、態(tài)此時輸出的是高電平,表示前面沒有障礙物[13]。</p><p>  首先來了解下傳感器的工作原理,這樣才可以根據(jù)傳感器的特點設計相應的電路,從而達到對智能車的控制實現(xiàn)相應的實驗目的。傳感器的原理圖如下:(見圖2-12)</p><p>  圖2-12 距離檢測的傳感器的原理圖</p><p>  在本次畢業(yè)設計距離檢測中用的傳感器是紅外傳感器,利用了紅外檢測裝置

61、對不同頻率的紅外光的靈敏度的不同即低靈敏度的頻率,為了讓探測器探測到反射回來的紅外光,所以物體離探測器的距離必須很近,高靈敏度的頻率可以探測距離比較遠的障礙物。由上面的原理圖知道在這里選用了5種不同的頻率分別得29370Hz,31230Hz,33050Hz,35700Hz,38460Hz將智能車的前進方向大概劃分為6個區(qū)域,當發(fā)射的紅外光的頻率是29370Hz的時候,由于該頻率的靈敏度低,所以該頻率的紅外光只能探測智能車前進方向的區(qū)域0

62、該區(qū)域靠近探測器,如果探測器探測到了返回來的紅外光說明在區(qū)域0有障礙物,因為不同的頻率只能工作在一定得范圍里,這樣就可以確定障礙物離智能車的大概距離,如果發(fā)射的頻率是29370Hz沒有被探測器探測到說明區(qū)域0沒有障礙物,而發(fā)射的頻率31230Hz,33050Hz,35700Hz,38460Hz都被探測器探測到說明區(qū)域1有障礙物,如果發(fā)射的頻率29370Hz,31230Hz,都沒有被探測器探測到,而如果發(fā)射的頻率33050Hz,35700

63、Hz,38460Hz被探測器探測到,說明區(qū)域2存在障礙</p><p><b>  3 系統(tǒng)軟件設計</b></p><p>  在此次畢業(yè)設計中,將反復用到三款軟件: WinAVR集成開發(fā)環(huán)境、SL ISP下載軟件、串口調試軟件。</p><p>  3.1 WinAVR集成開發(fā)環(huán)境</p><p>  WinAVR(

64、讀作whenever)是一套開源的開發(fā)工具的總稱,用來在Windows平臺開發(fā)Atmel AVR系列RISC微控制器。</p><p>  3.2 SL ISP軟件下載工具</p><p>  該軟件是廣州天河雙龍電子有限公司推出的一款ISP下載軟件,使用該軟件將可執(zhí)行文件下載到機器人單片機上,速度、穩(wěn)定性不錯。該軟件的使用需要計算機有并行口。</p><p>  

65、3.3 串口調試軟件</p><p>  此軟件是用來顯示單片機與計算機的交互信息的。在硬件上,計算機至少要有串口或 USB 接口來與單片機的串口連接。串口通訊因具有簡單,組網(wǎng)方便的特點,在設備通訊中廣泛使用。普通計算機中采用的是RS232通用通訊接口,通過此接口,計算機簡單方便地與外圍設備進行通訊。在單片機控制領域,設備與設備之間的通訊常用串行通訊方式,常采用的硬件通訊網(wǎng)絡為RS485/RS422/RS232等

66、。在設備開發(fā)或設備維護過程中,常常需要對設備通訊過程進行數(shù)據(jù)檢測,用于判斷通訊是否正常。實現(xiàn)這個調試過程,需要計算機通訊軟件對通訊過程進行監(jiān)控,數(shù)據(jù)采集,進行數(shù)據(jù)分析[15]。</p><p>  3.4 WinAVR簡介</p><p>  3.4.1 WinAVR的優(yōu)點</p><p> ?。?)免費且開源。因為其免費,所以可以減少項目資金開銷,同時,在版權控制

67、比較好的國外,WinAVR的使用者是很多的,因此交流、學習的平臺更大。(2)優(yōu)化效率高。(3)利于平臺遷移。引擎GCC是Linux的唯一開發(fā)語言,學習GCC對于遷移到其他嵌入式平臺是十分有利的。(4)配置靈活,可定制性強[16]。</p><p>  3.4.2 WinAVR使用快速入門 </p><p>  下面的范例程序也可以直接參照光盤里的范例,里面有詳細的注釋說明 </p&g

68、t;<p> ?。?)運行PN,下面介紹PN如何編寫、編譯AVR C語言源程序的分解步驟: </p><p><b>  圖3-1 運行</b></p><p> ?。?)新建工程組(Project Group) </p><p>  圖3-2 新建工程組</p><p> ?。?)新建工程(P

69、roject)</p><p><b>  圖3-3 新建工程</b></p><p>  (4)把工程保存為main的工程名。</p><p>  (5)點擊“New”新建按鈕,將建立一個文件名為“new”的文本文件</p><p>  圖3-4 建立文本文件</p><p> ?。?)可以在文

70、本框里輸入或粘貼入C代碼(本范例程序代碼請見光盤),然后點擊“Save”保存</p><p><b>  圖3-5 保存</b></p><p>  (7)把文件保存為“main.c”文件,然后點擊“保存”</p><p>  圖3-6 保存為“main.c”文件</p><p>  (8)在“main”工程上點擊右鍵,

71、彈出菜單,選擇“Add Files”</p><p><b>  圖3-7 彈出菜單</b></p><p> ?。?)把剛才的main.c文件添加到工程中</p><p>  圖3-8 添加main.c</p><p> ?。?0) 現(xiàn)在要先從光盤里提供的范例程序里任意一個程序包里的一個名為“Makefile”拷貝到當

72、前的工程文件包里,為什么要拷貝這個文件到剛才建立的工程包里呢?因為我們得告訴PN選擇的AVR的型號、工作頻率等。在WinAVR上也有一個叫mfile的應用程序去處理這個Makefile 文件。但mfile 的缺陷很多,不好用,并且容易弄錯。推薦直接用PN打開修改這個文件,然后保存。為了方便閱讀與修改,我們將最常用的內容,放到Makefile的最前面,并且作了中文注解。下面是打開已經(jīng)拷貝工程目錄下的Makefile文件 </p>

73、;<p>  圖3-9 打開Makefile文件</p><p> ?。?1)再特意說明下:這個Makefile文件大家可以直接從配套光盤里的范例程序里的任意一個程序包里拷貝一個到當前的目錄下即可,然后打開后要對其進行一些修改。</p><p>  圖3-10 拷貝程序</p><p> ?。?2)打開Makefile,只要對MCU、F_CPU、TAR

74、GET,三項進行修改。注意MCU的命名要按規(guī)范命名,否則到時候PN編譯的時候會提示找不到型號;F_CPU(CPU頻率)設置為8000000Hz,即8MHz;TARGET還是要以main為名,因為之前新建的工程、C代碼源程序都是以main為名的,如果這里的命名和剛才新建的工程、C代碼文件名不一致,都將導致接下去的編譯工作無法進行。</p><p><b>  圖3-11 修改</b></

75、p><p>  (13)修改Makefile后,點擊“Save”保存</p><p>  圖3-12 保存修改程序</p><p> ?。?4)修改完Makefile后一定要先Make Clean一下!才能保證下面的編譯不會出錯! </p><p>  圖3-13 Make Clean</p><p> ?。?

76、5)點擊Make All編譯源程序,以后如果有對源程序進行修改后,只要Make All編譯就可以了;除非修改了Makefile里的參數(shù),那就一定要先Make Clean以保證編譯不受干擾。</p><p>  圖3-14 Make All</p><p>  (16)編譯成功后,會有如下的 Process Exit Code: 0 的信息。如果結果不是0,表明編譯有問題,請檢查當前工程目錄

77、是否有main.c 與 Makefile 兩個文件,或是程序里有錯誤,一一排除才能編譯成功。</p><p><b>  圖3-15 編譯</b></p><p> ?。?7)編譯成功后,原來只有2個文件的目錄,現(xiàn)在變成了如下圖的文件清單,main.hex是要下載到AVR芯片里讓其運行的文件[17,18,19]。</p><p>  圖3-16

78、 編譯成功</p><p><b>  3.5 編程思路</b></p><p>  此次畢業(yè)設計所用編程語言為C語言。如今單片機的編程語言主要為匯編語言和C語言,匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。其

79、優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機語言。</p><p>  此次畢業(yè)設計為智能車設計的行走路線為走“田”字??刂扑枷霝橥ㄟ^單片機微控制器控制智能車左右輪子的正反轉,從而控制智能車向前行走、原地左轉、原地右轉、向后行走。本次畢業(yè)設計的編程思路為編程出智能車向前行走、原地左轉、原地右轉、向后行走的程序,再用數(shù)組建立復雜運動。本次畢業(yè)設計的設計路線為:向前運行6秒→原地右轉→向前運行6秒→原地左轉→向后

80、運行6秒→原地右轉→向后運行6秒→原地左轉→向前運行3秒→原地右轉→向前運行6秒→原地左轉→向前運行3秒→原地右轉→向后運行3秒→原地左轉→向后運行6秒→原地右轉→向后運行3秒→停止。</p><p>  此次畢業(yè)設計的主要控制程序如下:</p><p>  #include<BoeBot.h> </p><p>  #include<uart.h

81、> </p><p>  void Forward(void) </p><p><b>  {</b></p><p><b>  int i; </b></p><p>  for(i=1;i<=130;i++)</p><p><b>  { &l

82、t;/b></p><p><b>  PB1=1;</b></p><p>  delay_nus(1700); </p><p><b>  PB1=0; </b></p><p><b>  PB0=1;</b></p><p>  dela

83、y_nus(1300); </p><p><b>  PB0=0;</b></p><p>  delay_nms(20); </p><p><b>  } </b></p><p><b>  }</b></p><p>  void Left_T

84、urn(void) </p><p><b>  {</b></p><p><b>  int i; </b></p><p>  for(i=1;i<=26;i++)</p><p><b>  { </b></p><p><b>

85、  PB1=1;</b></p><p>  delay_nus(1300); </p><p><b>  PB1=0; </b></p><p><b>  PB0=1;</b></p><p>  delay_nus(1300); </p><p><

86、b>  PB0=0;</b></p><p>  delay_nms(20); </p><p><b>  } </b></p><p><b>  }</b></p><p>  void Right_Turn(void)</p><p><b&g

87、t;  {</b></p><p><b>  int i; </b></p><p>  for(i=1;i<=26;i++)</p><p><b>  { </b></p><p><b>  PB1=1;</b></p><p>

88、;  delay_nus(1700); </p><p><b>  PB1=0; </b></p><p><b>  PB0=1;</b></p><p>  delay_nus(1700); </p><p><b>  PB0=0;</b></p><

89、;p>  delay_nms(20); </p><p><b>  } </b></p><p><b>  }</b></p><p>  void Backward(void)</p><p><b>  {</b></p><p><

90、b>  int i; </b></p><p>  for(i=1;i<=130;i++)</p><p><b>  { </b></p><p><b>  PB1=1;</b></p><p>  delay_nus(1300); </p><p&g

91、t;<b>  PB1=0;</b></p><p><b>  PB0=1;</b></p><p>  delay_nus(1700); </p><p><b>  PB0=0;</b></p><p>  delay_nms(20); </p><p

92、><b>  } </b></p><p><b>  }</b></p><p>  int main(void) </p><p><b>  { </b></p><p>  char Navigation[26]={'F','F'

93、,'R','F','F','L','B','B','R','B','B','L','F','R','F','F','L','F','R','B',

94、9;L','B','B',‘R’,'B','Q'};</p><p>  int address=0; </p><p>  uart_Init(); </p><p>  printf("Program Running!\n");</p><p> 

95、 while(Navigation[address]!='Q') </p><p><b>  { </b></p><p>  switch(Navigation[address]) </p><p><b>  { </b></p><p>  case 'F':

96、Forward();break; </p><p>  case 'L':Left_Turn();break; </p><p>  case 'R':Right_Turn();break; </p><p>  case 'B':Backward();break; </p><p><b

97、>  } </b></p><p>  address++; </p><p><b>  } </b></p><p>  while(1); </p><p><b>  }</b></p><p>  此畢業(yè)設計所用的頭文件有BoeBot.h和uart

98、.h,其中定時程序BoeBot.h的程序如下所示:</p><p>  #pragma ASM</p><p><b>  nop ;</b></p><p>  #pragma ENDASM,*/</p><p>  void delay_nus(unsigned int i) </p><p&

99、gt;<b>  { </b></p><p><b>  i=i/10;</b></p><p>  while(--i);</p><p><b>  } </b></p><p>  void delay_nms(unsigned int n) </p>

100、<p><b>  { </b></p><p><b>  n=n+1;</b></p><p>  while(--n) </p><p>  delay_nus(900); </p><p><b>  } </b></p>

101、<p>  另一頭文件串口中斷驅動程序uart.h的程序如下所示:</p><p>  #include <AT89X52.h></p><p>  #include <stdio.h></p><p>  #define XTAL 11059200</p><p>  #define baudrate

102、9600</p><p>  #define OLEN 8 //串行發(fā)送緩沖區(qū)大小</p><p>  unsigned char ostart; //發(fā)送緩沖區(qū)起始索引</p><p>  unsigned char oend; //發(fā)送緩沖區(qū)結束索引</p><p>  char idata outbuf[OLEN

103、]; //發(fā)送緩沖區(qū)存儲數(shù)組</p><p>  #define ILEN 8 //串行接收緩沖區(qū)大小</p><p>  unsigned char istart; //接收緩沖區(qū)起始索引</p><p>  unsigned char iend; //接收緩沖區(qū)結束索引</p><p>  char idata

104、 inbuf[ILEN]; //接收緩沖存儲數(shù)組</p><p>  bit bdata sendfull; //發(fā)送緩沖區(qū)滿標志</p><p>  bit bdata sendactive; //發(fā)送有效標志</p><p>  /*串行中斷服務程序*/</p><p>  static void com_isr(void) in

105、terrupt 4 using 1 //串口中斷</p><p><b>  { </b></p><p>  //-------------接收數(shù)據(jù)中斷--------------</p><p><b>  char c;</b></p><p>  if(RI) /

106、/接收中斷</p><p>  { </p><p>  c=SBUF; //讀字符</p><p>  RI=0; //清接收中斷請求標志</p><p>  if(istart+ILEN!=iend)</p><p><b>  { </b></p>

107、;<p>  inbuf[iend++&(ILEN-1)]=c; //緩沖區(qū)接收數(shù)據(jù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  //-------------發(fā)送數(shù)據(jù)中斷--------------</p><p>

108、<b>  if(TI)</b></p><p><b>  { </b></p><p>  TI=0; //清發(fā)送中斷標志</p><p>  if(ostart!=oend)</p><p><b>  { </b></p><p>  SBU

109、F=outbuf[ostart++&(OLEN-1)];//向發(fā)送緩沖區(qū)傳送字符</p><p>  sendfull=0; //設置緩沖區(qū)滿標志位</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {

110、</b></p><p>  sendactive=0; //設置發(fā)送無效</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p> 

111、 //PUTBUF: 寫字符到SBUF或發(fā)送緩沖區(qū)</p><p>  void putbuf(char c)</p><p><b>  { </b></p><p>  if(!sendfull) //如果緩沖區(qū)不滿就發(fā)送</p><p><b>  {</b></p><

112、p>  if(!sendactive) </p><p><b>  { </b></p><p>  sendactive=1; //直接發(fā)送一個字符</p><p>  SBUF=c; //寫到SBUF啟動緩沖區(qū)</p><p><b>  }</b></p>

113、<p><b>  else </b></p><p><b>  { </b></p><p>  ES=0; //暫時串行口關閉中斷</p><p>  outbuf[oend++&(OLEN-1)]=c; //向發(fā)送緩沖區(qū)傳送字符</p><p>  if((

114、(oend^ostart)&(OLEN-1))==0) </p><p>  { sendfull=1;} //設置緩沖區(qū)滿標志</p><p>  ES=1; //打開串行口中斷</p><p><b>  }</b></p><p><b>  }</b></p

115、><p><b>  }</b></p><p>  //putchar:中斷控制putchar函數(shù)</p><p>  //替換標準庫函數(shù)putchar程序</p><p>  //printf函數(shù)使用putchar輸出一個字符</p><p>  char putchar (char c)<

116、/p><p><b>  { </b></p><p>  if (c=='\n') //增加新的行</p><p><b>  {</b></p><p>  while(sendfull); //等待發(fā)送緩沖區(qū)空</p><p>  pu

117、tbuf(0x0D); //對新行在LF前發(fā)送CR</p><p><b>  }</b></p><p>  while(sendfull); </p><p>  putbuf(c);</p><p>  return(c);</p><p><b>  }</b&g

118、t;</p><p>  //_getkey:中斷控制_getkey函數(shù)</p><p>  //替換標準庫函數(shù)_getkey程序</p><p>  //getchar和gets函數(shù)使用_getkey</p><p>  char _getkey(void)</p><p><b>  { </b&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論