版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 設計題目: 教育機器人避障 </p><p> 院 系: 自動化測試與控制系 </p><p> 班 級: </p><p> 設 計 者: &l
2、t;/p><p> 學 號: </p><p> 指導教師: </p><p> 設計時間: 2012.09 </p><p><b> 課程設計任務書</b></p><p> *注:此任務書由課程設計指導教師填
3、寫</p><p><b> 課程設計開題報告</b></p><p> 題 目:教育機器人避障</p><p> 院 (系) 自動化測試與控制系 </p><p> 專 業(yè) </p><p> 學 生 </p>
4、<p> 學 號 </p><p> 班 號 </p><p> 指導教師 </p><p> 開題報告日期 2012.08.28 </p><p><b> 2005年9月</b></p><
5、p> 課題研究目的及意義:</p><p> 隨著近些年來智能小車的流行,很多人都通過自己動手模仿制作一款智能小車來培養(yǎng)自己對單片機研究的興趣。伴隨而來的就是帶有不同功能不同硬件組裝而成的智能小車的誕生。通過對本課題---避障小車的研究開發(fā),我們可以了解單片機開發(fā)過程,掌握單片機的各部分組成及功能。同時有利于程序編寫能力的提高。通過設計程序流程圖,建立編寫程序的基本思想。最后我們也可以提高個人遇到問題、
6、分析問題、解決問題的能力。</p><p> 本次課程設計欲在動手實踐過程中提高自己編寫程序的能力,進一步鞏固上學期對單片機課本內(nèi)容的理論學習,從課本走向日常生活。由于單片機具有顯著的優(yōu)點,它已成為科技領域的有力工具,人類生活的得力助手。它的應用遍及各個領域,主要表現(xiàn)在以下幾個方面: 單片機在智能儀表中的應用:單片機廣泛地用于各種儀器儀表,使儀器儀表智能化。單片機在機電一體化中的應用:微機控制的車床、鉆床等。單
7、片機在實時控制中的應用:在工業(yè)測控、航空航天、尖端武器、機器人等各種實時控制系統(tǒng)中,都可以用單片機作為控制器。單片機在分布式多機系統(tǒng)中的應用:在比較復雜的系統(tǒng)中,常采用分布式多機系統(tǒng)。多機系統(tǒng)一般由若干臺功能各異的單片機組成,各自完成特定的任務,它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機在人類生活中的應用:洗衣機、電冰箱、電子玩具、收錄機等家用電器。目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大
8、容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。</p><p> 通過本次課程設計,大家會帶著更多的熱情關注單片機產(chǎn)品的發(fā)展過程,甚至投入到產(chǎn)品的開發(fā)中來。</p><p><b> 研究內(nèi)容:</b></p><p> 功能:能夠?qū)ξ矬w運動方向受到的阻礙作出各種躲避障礙的動作。 </p><p> 超聲波
9、模塊原理:超聲模塊通過發(fā)射器向四面八方發(fā)射出去,發(fā)射出的超聲波在空氣中沿直線傳播,遇到障礙物后發(fā)生反射反應。超聲波接收器收到被障礙物反射回的超聲波以后,經(jīng)由內(nèi)部計算得到障礙物的距離信號。 </p><p> 圖(1) 避障小車</p><p> 圖(2) 超聲波模塊</p><p> 1.教育機器人簡介:</p><p><b
10、> 教育機器人組成:</b></p><p> 機器人的核心芯片為Atmel公司生產(chǎn)的8位AT89S52單片機,是一種高性能CMOS、低功耗的8位單片機,片內(nèi)含8k Bytes Flash,運用ISP(in-system programmable)的可反復擦寫1000次;只讀程序存儲器器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及其引腳結(jié)構(gòu)。在實際工程應
11、用中,功能強大的AT89S52已成為許多提供高性價比嵌入式控制應用系統(tǒng)的解決方案。</p><p> 教育機器人由一塊教學底板和車體部分組成,機器人的動作由伺服電機控制。伺服電機與單片機接口的連接,通過P1_0引腳的控制輸出用來控制右的伺服電機,而P1_1則用來控制左邊的伺服電機。</p><p> 如圖所示為電機連接原理圖和實際接線圖</p><p> 圖(
12、3)電機連接原理圖和實際接線圖</p><p> 機器人伺服電機控制原理 :</p><p> 控制電機運動轉(zhuǎn)速的是高電平持續(xù)的時間,當高電平持續(xù)時間為1.3ms時,電機順時針全速旋轉(zhuǎn),當高電平持續(xù)時間1.7ms時,電機逆時針速旋轉(zhuǎn)。 </p><p> 圖(4)標定后,電機靜止的脈沖序列</p><p> 圖(5) 電機順時針轉(zhuǎn)動的
13、脈沖序列</p><p> 圖(6)電機逆時針轉(zhuǎn)動的脈沖序列</p><p> 機器人伺服電機如何調(diào)零: </p><p> 零速度點(1.5ms脈寬序列),一個順時針最大速度點(1.7ms脈寬序列),和一個逆時針的最大速度點(1.3ms脈寬序列),其中越靠近零速度點,速度越小,遠離零點越大速度越大。 </p><p> 通過發(fā)送一個
14、校準信號到伺服電機,連續(xù)旋轉(zhuǎn)伺服電機的零位信號為1.5ms。如果電機還沒有進行零點標定,如圖所示,用螺絲刀輕輕調(diào)節(jié)馬達上的電位器,直到馬達停止轉(zhuǎn)動。</p><p><b> 圖(7)調(diào)零</b></p><p> 2.程序設計流程圖:</p><p> 三.關鍵問題及解決辦法:</p><p><b>
15、 關鍵問題:</b></p><p> 1.通過單片機驅(qū)動小車前進、后退、加速、減速、正轉(zhuǎn)、反轉(zhuǎn)等的基本程序模塊;</p><p> 2.分析怎樣控制輪子的旋轉(zhuǎn)可以實現(xiàn)基本功能;</p><p> 3.了解超聲波模塊的測距原理;</p><p> 4.編寫超聲波測距子程序;</p><p> 5
16、.調(diào)試,根據(jù)小車運行情況適當改寫程序;</p><p><b> 解決辦法:</b></p><p> 1.仔細閱讀課程設計指導書,了解單片機如何控制伺服電機運轉(zhuǎn);</p><p> 2.具體分析小車模型,找到與小車運動方式相對應的電機的旋轉(zhuǎn)方式;</p><p> 3.查找小車所用超聲波模塊型號,去網(wǎng)上搜索單片
17、機控制此超聲波的驅(qū)動程序,也可參考指導書相應程序;</p><p> 4.認真觀察小車運行狀態(tài),將錯誤的運行現(xiàn)象當做正確的運行現(xiàn)象去分析,因為現(xiàn)象并沒有“對錯”,找到小車這樣運行的可能原因,然后修改調(diào)試。</p><p><b> 課題完成情況:</b></p><p> 經(jīng)過十天的努力,本次課程設計如期的完成了規(guī)定的任務:</p&
18、gt;<p> 1)2012.8.27——2012.8.28:通過閱讀課程設計指導書,去網(wǎng)站查找單片機方面的資料,基本了解了小車避障的原理,本次課設采用的是超聲波模塊進行距離測量,因為超聲波模塊可以提供無接觸的測量,從3cm到1.8m距離測量,可以用來辨別障礙物,同時可以非常容易的連接到微控制器上。通過此模塊,可以獲得在聲納范圍內(nèi)的確切的障礙物的距離,機器人就可以像蝙蝠一樣通過聲納來感知周圍的環(huán)境,同時根據(jù)障礙物的距離精
19、確地控制電機運行,從而讓機器人可以輕松地避開障礙物;</p><p> 2)2012.8.29——2012.8.30:通過前兩天對基本知識的了解,繪制程序流程圖,并編寫簡單的小車運行程序,包括小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、加速、減速的程序;</p><p> 3)2012.8.31——2012.9.3:研究算法,設計避障小車總體程序;</p><p> 4)20
20、12.9.4——2012.9.5:調(diào)試小車;</p><p> 5)2012.9.6——2012.9.7:撰寫避障小車說明書,并驗收。</p><p> 附錄:小車避障程序:</p><p> /***************************************************************</p><p>
21、; 程序名:小車避障程序</p><p> 硬件支持:AT89S52</p><p> 接口說明:P1_0控制右側(cè)伺服電機,P1_1控制左側(cè)伺服電機,P1_5接sin</p><p> **************************************************************/</p><p> #
22、include<reg51.h>//通用89C51頭文件</p><p> sbit sin=P1^5;</p><p> sbit p1=P1^0;</p><p> sbit p2=P1^1; //按位定義SFR中的存儲器名</p><p&g
23、t; unsigned int dis=0;</p><p> unsigned int Ltime,Htime,Time; //定義全局變量</p><p> /**************************************************************</p><p> 函數(shù)名:納秒級CP
24、U延時函數(shù)</p><p> 調(diào)用:delay(1)</p><p> 參數(shù):1~65535</p><p><b> 返回值:無</b></p><p> 結(jié)果:占用CPU方式延時與參數(shù)相等的納秒時間</p><p> *********************************
25、*****************************/</p><p> void delay(unsigned int i)</p><p><b> {</b></p><p><b> i=i/10;</b></p><p> while(--i);</p><
26、;p><b> } </b></p><p> /**************************************************************</p><p> 函數(shù)名:CPU延時函數(shù) </p><p> 調(diào)用:delay1(1)</p><p> 參數(shù):1~65535
27、</p><p><b> 返回值:無</b></p><p> 結(jié)果:占用CPU方式延時與參數(shù)相等的時間</p><p> **************************************************************/</p><p> void delay1(unsigned
28、int i)</p><p><b> {</b></p><p> while(--i);</p><p><b> }</b></p><p> /**************************************************************</p&g
29、t;<p> 函數(shù)名:超聲波測距程序</p><p> 調(diào)用:getx(1)</p><p><b> 參數(shù):1~255</b></p><p><b> 返回值:無</b></p><p> 結(jié)果:測量與障礙物之間的距離</p><p> ****
30、*********************************************************/</p><p> void getx(unsigned char a)</p><p><b> {</b></p><p><b> TH0=0;</b></p><p>&
31、lt;b> TL0=0;</b></p><p><b> if(a)</b></p><p><b> {</b></p><p><b> sin=0;</b></p><p><b> sin=1;</b></p&g
32、t;<p> delay1(1);</p><p><b> sin=0;</b></p><p><b> }</b></p><p> while(sin);</p><p> while(!sin);</p><p><b> TR0
33、=1;</b></p><p> while(sin);</p><p><b> TR0=0;</b></p><p> Ltime=TL0;</p><p> Htime=TH0;</p><p> Time=Htime*256+Ltime;</p><
34、;p> dis=Time/(2*29);</p><p><b> } </b></p><p> /**************************************************************</p><p> 函數(shù)名:小車左轉(zhuǎn)程序</p><p><b>
35、; 調(diào)用:left()</b></p><p><b> 參數(shù):無</b></p><p><b> 返回值:無</b></p><p><b> 結(jié)果:小車左轉(zhuǎn)</b></p><p> *********************************
36、*****************************/ </p><p> void left()</p><p> { unsigned char y;</p><p> for(y=0;y<18;y++)</p><p><b>
37、; {</b></p><p><b> p1 =1;</b></p><p> delay(1300);</p><p><b> p1 =0;</b></p><p> delay(20000);</p><p><b> p2 =1;&
38、lt;/b></p><p> delay(1300);</p><p><b> p2 =0;</b></p><p> delay(20000);</p><p><b> }</b></p><p><b> }</b></
39、p><p> /**************************************************************</p><p> 函數(shù)名:小車右轉(zhuǎn)程序</p><p> 調(diào)用:right()</p><p><b> 參數(shù):無</b></p><p><b&
40、gt; 返回值:無</b></p><p><b> 結(jié)果:小車右轉(zhuǎn)</b></p><p> **************************************************************/</p><p> void right()</p><p> {unsign
41、ed char y;</p><p> for(y=0;y<18;y++)</p><p><b> {</b></p><p><b> p1 =1;</b></p><p> delay(1700);</p><p><b> p1 =0;<
42、;/b></p><p> delay(20000);</p><p><b> p2 =1;</b></p><p> delay(1700);</p><p><b> p2 =0;</b></p><p> delay(20000);</p>
43、<p><b> }</b></p><p><b> }</b></p><p> /**************************************************************</p><p> 函數(shù)名:小車前進程序</p><p> 調(diào)用
44、:forward()</p><p><b> 參數(shù):無</b></p><p><b> 返回值:無</b></p><p><b> 結(jié)果:小車前進</b></p><p> *********************************************
45、*****************/</p><p> void forward()</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0;i<5;i++)</p><p><b>
46、 {p1 =1;</b></p><p> delay(1300);</p><p><b> p1 =0;</b></p><p> delay(20000);</p><p><b> p2 =1;</b></p><p> delay(1700);
47、</p><p><b> p2 =0;</b></p><p> delay(20000);}</p><p><b> }</b></p><p> /****************************************************************<
48、;/p><p><b> 函數(shù)名:主函數(shù)</b></p><p><b> 調(diào)用:main()</b></p><p><b> 參數(shù):無</b></p><p><b> 返回值:無</b></p><p><b>
49、 結(jié)果:</b></p><p> ****************************************************************/</p><p> void main()</p><p><b> {</b></p><p> TMOD=0x01;</p&
50、gt;<p><b> EA=1;</b></p><p> ET0=1;TR0=1; //定時器T0初始化,T/C方式寄存器TMOD選擇工作方式為16位T/C,開啟T/C0,允許中斷</p><p> forward();</p><p><b>
51、; while(1)</b></p><p><b> { </b></p><p><b> getx(1); </b></p><p> if(dis>10)</p><p><b> {</b></p><p> fo
52、rward();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> left();</b></p><p><b>
53、 getx(1);</b></p><p> if(dis>10)</p><p><b> {</b></p><p> forward();</p><p><b> }</b></p><p><b> else</b>
54、</p><p><b> {</b></p><p><b> right();</b></p><p><b> right();</b></p><p><b> getx(1);</b></p><p> if(d
55、is>10)</p><p><b> {</b></p><p> forward();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b><
56、;/p><p><b> right();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&
57、lt;/p><p><b> }</b></p><p><b> 問題與解決方案:</b></p><p><b> 問題:</b></p><p><b> 編程思路;</b></p><p> 小車“一頓一頓”前進問題;
58、</p><p> 程序燒不進單片機內(nèi);</p><p> 小車可能撞到障礙物然后才會拐彎;</p><p><b> 解決方案:</b></p><p> 設計任務拿到手中無從下手,我到圖書館中查找了一些書籍,大略將杜洋的《愛上單片機》一書翻閱了一遍,他提倡了一種“虛擬積木”的方法,積木里包含單片機C語言編程常
59、用的函數(shù)模塊與語句,編寫一般程序只要復制、黏貼,應用程序即可搞定。</p><p><b> 第一步:畫流程圖;</b></p><p> 第二步:將流程圖中的區(qū)塊變成具體的程序語句;</p><p> 第三步:按照流程圖編寫主函數(shù);</p><p> 編程的盡頭有三件東西:應用程序,驅(qū)動程序與算法。通過對這本書
60、的閱讀,我對本次課程設計有了基本的思路與著手點。</p><p> 首先將這種現(xiàn)象當做一種正確現(xiàn)象去分析,我們通過再次分析所編寫的程序,發(fā)現(xiàn)小車只執(zhí)行一遍forward()函數(shù)就繼續(xù)前進了,于是我們在forward()程序中加進了一個for循環(huán),但事實證明用處并不大,小車仍然有“一頓一頓”的現(xiàn)象,只不過相隔兩次之間運行的距離稍遠一些。靜下來繼續(xù)分析,我們會發(fā)現(xiàn),小車之所以會產(chǎn)生這種現(xiàn)象使由于小車在運行完forw
61、ard()程序之后,在進行測距程序運行過程中所用時間過長,修改思路有兩種:一是重新編寫測距程序模塊,這也是我們最初只想到的方法,后來在老師的指導下,通過改變延時程序的時間,最終實現(xiàn)了理想結(jié)果。</p><p> 先取下超聲波測距模塊,帶程序燒進去后再重新安上即可;</p><p> 小車的速度稍有些快,我們可以通過改變小車的速度來實現(xiàn),我想也可通過用PWM引腳進行控制,通過改變占空比,
62、從而控制小車速度,但由于時間關系,并未嘗試。</p><p><b> 心得體會:</b></p><p> 通過本次課程設計,培養(yǎng)了我對單片機研究的濃厚興趣。之前一直停留于書本上的理論知識,稍顯枯燥乏味,但當將其運用于實際生活中時,單片機顯得很好玩。而且通過自己的動手實踐,將理論與實踐相結(jié)合,才將之前一些死記硬背的知識點真正的記住了。</p>&l
63、t;p> 課程設計只是一個開始,課程設計期間我在網(wǎng)絡上找到了好多個關于單片機設計實物方面的網(wǎng)站,上面有大家自己手工制作的小創(chuàng)意,以后有機會可以不時地去研究一下,對自己也是大有裨益。</p><p> 通過與同學的討論研究,此次課程設計才得以順利完成,感謝同學們的幫助,也感謝老師的指點,愿未來道路上我們共同進步。</p><p><b> 參考文獻:</b>
64、</p><p> 杜洋 愛上單片機.2版 北京·人民郵電出版社 2011年10月</p><p> 胡瑞強 李成偉 周慶東 于彤彥 單片機原理及應用課程設計指導書 哈爾濱·測控技術與儀器實驗中心 2012年7月</p><p> 張毅剛 單片機原理及應用 北京·高等教育出版社2012.01月</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計說明書——紅外線避障小車
- 避障小車課程設計
- 紅外避障小車課程設計報告
- 紅外避障小車課程設計報告
- 智能小車課程設計說明書
- 避障小車設計書 哈工大 單片機課程設計
- 綜合電子課程設計----智能循跡避障小車
- ??!apr17 桂林電子 自動避障減震小車的設計說明書
- 小車避障設計說明書-天津理工大學機械專業(yè)設計
- 單片機課程設計——超聲波避障小車
- 單片機課程設計--超聲波避障小車
- 課程設計----基于單片機的自動避障小車
- 智能避障小車設計
- 智能避障小車設計
- 智能小車控制系統(tǒng)課程設計說明書
- plc小車運行方向控制課程設計說明書end
- 超聲波避障小車的設計書
- 課程設計說明書
- 課程設計說明書
- 基于at89s51超聲波避障智能小車課程設計
評論
0/150
提交評論