版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 智能循跡機器人(硬件部分)設計</p><p> 所在學院 </p><p> 專業(yè)班級 自動化
2、 </p><p> 學生姓名 學號 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 </p><p> 學士學位論文原創(chuàng)性聲明</p>
3、<p> 本人聲明,所呈交的論文是本人在導師的指導下獨立完成的研究成果。除了文中特別加以標注引用的內容外,本論文不包含法律意義上已屬于他人的任何形式的研究成果,也不包含本人已用于其他學位申請的論文或成果。對本文的研究作出重要貢獻的個人和集體,均已在文中以明確方式表明。本人完全意識到本聲明的法律后果由本人承擔。</p><p> 作者簽名: 日期:</
4、p><p> 學位論文版權使用授權書</p><p> 本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權南昌航空大學科技學院可以將本論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。</p><p> 作者簽名:
5、 日期:</p><p> 導師簽名: 日期:</p><p> 智能循跡機器人設計(硬件部分)</p><p> 摘要:本文論述了基于單片機的智能循跡機器人的設計過程。智能循跡是基于自動引導機器人系統(tǒng),用以實現機器人自動識別路線、器件及運用自動控制原理等相關技術,來實現按照預先
6、設定的模式下,不受到人為的管理及外界條件的干涉時,能夠自動實現循跡導航的高新科技產物。該技術已經應用于無人駕駛機動車,無人工廠,服務機器人甚至外太空等多種領域。</p><p> 本次設計采用STC89C52單片機作為機器人的控制核心;采用紅外反射式開關傳感器作為機器人的循跡模塊來識別白色路面中央的黑色引導線,利用紅外對管檢測障礙物,采集信號并將信號轉換為能被單片機識別的數字信號;采用驅動芯片L298N構成雙H
7、橋控制直流電機,其中控制軟件采用C程序編寫,本設計的電路結構簡單,容易實現,可靠性高。</p><p> 關鍵詞:單片機;傳感器;自動循跡;驅動電路</p><p><b> 指導老師簽字:</b></p><p> The design of intelligent tracking robot (hardware) &l
8、t;/p><p> Abstract:This paper discusses the design process of intelligent tracking robot based on single chip microcomputer. Intelligent tracking is automatic guided robot system based on automatic identificat
9、ion, is used to realize the robot route, choose the right path, and avoid obstacles. Intelligent tracking robot is a SCM, to realize according to the pre-set mode principle and other related technology devices and applic
10、ation of sensor, motor control, not subject to management and the external condit</p><p> This design uses STC89C52 microcontroller as the control core robot; infrared reflection sensor switch as the tracki
11、ng module robot to identify the white road central black guide line, to detect obstacles by using the infrared, signal acquisition and signal is converted into digital signal chip can be identified; the drive chip L298N
12、constitute the double H bridge control of DC motor, the control software using C programming, the design of the circuit structure is simple, easy to implement, high</p><p> Keywords:single chip microcompute
13、r; sensor; automatic tracing; driving circuit</p><p> Instructor Signature:</p><p><b> 目 錄</b></p><p><b> 1、緒論1</b></p><p> 1.1智能機器人的作用和研究
14、意義1</p><p> 1.2 智能機器人的研究現狀2</p><p> 2、設計方案與論證4</p><p> 2.1整體設計思路4</p><p><b> 2.2循跡系統(tǒng)4</b></p><p><b> 2.3避障系統(tǒng)5</b></p&
15、gt;<p><b> 2.4主控系統(tǒng)5</b></p><p><b> 2.5驅動系統(tǒng)5</b></p><p><b> 2.6電機選擇5</b></p><p> 3、系統(tǒng)的硬件設計6</p><p><b> 3.1主控電路
16、6</b></p><p> 3.2信號檢測模塊8</p><p> 3.3電機驅動模塊9</p><p> 3.4機器人控制邏輯12</p><p> 4、系統(tǒng)的軟件設計14</p><p> 4.1主程序流程圖14</p><p> 4.2循跡程序設計15
17、</p><p> 5、安裝與調試20</p><p> 5.1機器人的安裝20</p><p> 5.2機器人的調試20</p><p><b> 6、結束語22</b></p><p><b> 致 謝23</b></p><p&g
18、t;<b> 參考文獻24</b></p><p><b> 附錄A25</b></p><p> 附錄B部分實驗圖32</p><p><b> 智能循跡機器人設計</b></p><p><b> 1、緒論</b></p>
19、<p> 1.1智能機器人的作用和研究意義</p><p> 移動機器人是機器人領域的一個分支,他的研究始于60年代末期,斯坦福研究院(SRI)的Nits Nilssen和Charles Rosen 等人,在1966年至1972年間研制出了名為Shake的自主移動機器人。</p><p> 進入20世紀80年代以后,人們的研究方向逐漸轉移到了面向實際應用的室內移動機器人的
20、研究,并逐步形成了自主式移動機器人AMR(Indoor Autonomous Mobile Robot)概念。美國國防高級研究計劃局專門立項,制定了地面天人作戰(zhàn)平臺的戰(zhàn)略計劃。從此在全世界掀開了全面研究室外移動機器人的序幕,如DARPA的“戰(zhàn)略計算機”計劃中的自主地面車輛(ALV)計劃(1983—1990),能源部制定的為期十年的機器人和智能系統(tǒng)計劃(RIPS)(1986—1995),以及后來的太空機器人計劃,日本通產省組織的極限環(huán)境下
21、作業(yè)的機器人計劃,歐洲尤里卡中的機器人計劃等。初期的研究,主要從學術角度研究室外機器人的體系結構和信息處理,并建立試驗系統(tǒng)進行驗證。雖然由于80年代對機器人的智能行為期望過高,導致室外機器人的研究未達到預期的效果,但卻帶動了相應技術的發(fā)展,為探討人類研制智能機器人的途徑積累了經驗。同時,也推動了其他國家對移動機器人的研究與開發(fā)。智能小車作為移動機器人的典型代表,目前國內外的許多大學都在積極投入人力、財力進行開發(fā)。主要表現在大學生的各種大
22、型的創(chuàng)新比賽,比如:亞洲廣播電視聯盟亞</p><p> 1.2 智能機器人的研究現狀</p><p> 現代智能機器人發(fā)展很快,從智能玩具到其它各行業(yè)都有實質成果。其基本可實現循跡、避障、檢測貼片、尋光入庫、避崖等基本功能,這幾屆的電子設計大賽智能小車又在向聲控系統(tǒng)發(fā)展。比較出名的飛思卡爾智能小車更是走在前列。本次設計主要實現循跡避障這兩個功能。</p><p&g
23、t; 智能機器人的發(fā)展現狀智能機器人是第三代機器人,這種機器人帶有多種傳感器能夠將多種傳感器得到的信息進行融合,能夠有效的適應變化的環(huán)境,具有很強的自適應能力、學習能力自治功能。目前研制中的智能機器人智能水平并不高,只能說是智能機器人的初級階段。智能機器人研究中當前的核心問題有兩方面:一方面是,提高智能機器人的自主性,這是就智能機器人與人的關系而言,即希望智能機器人進一步獨立于人,具有更為友善的人機界面。從長遠來說,希望操作人員只要給
24、出要完成的任務,而機器人能自動形成完成該任務的步驟,并自動完成它。另一方面是,提高智能機器人的適應性,提高智能機器人適應環(huán)境變化的能力,這是就智能機器人與環(huán)境的關系而言,希望加強它們之間的交互關系。智能機器人涉及到許多關鍵技術,這些技術關系到智能機器人的智能性的高低。這些關鍵技術主要有以下幾個方面:多傳感信息耦合技術,多傳感器信息融合就是指綜合來自多個傳感器的感知數據以產生更可靠、更準確或更全面的信息,經過融合的多傳感器系統(tǒng)能夠更加完善
25、、精確地反映檢測對象的特性消除信息的不確定性提高信息的可靠性;導航和定位技術,在自主移動機器人導航中,無論是局部實時避障還是全局</p><p> 智能小車作為移動式機器人的一個重要分支,隨著機器人研究的深入受到越來越多人的關注。它是計算機控制與電子技術的融合,單片機自動控制、電機調速等于一體,可以說是計算機、傳感器、信息、通訊、導航、人工智能及自動控制等技術的一個綜合體,為電子設備智能化提供了很好的實例。
26、 現今社會智能機器人發(fā)展很快,從智能玩具到其它各行業(yè)都有實質成果。其基本可實現循跡、避障、檢測貼片、尋光入庫、避崖等基本功能,本次設計主要實現了循跡功能。根據設計要求制作基于STC89C52單片機智能機器人的過程,在智能機器人的自動循跡、避障、檢測、控制、顯示等方面提出一些見解。</p><p><b> 2、設計方案與論證</b></p><p><
27、b> 2.1整體設計思路</b></p><p> 本設計通過紅外光電二極管和光電晶體管組成的傳感器循跡模塊判斷黑線路徑,然后由STC89C52通過IO口控制L298N驅動模塊改變兩個直流電機的工作狀態(tài),最后實現機器人循跡,機器人采用前輪驅動,從動輪采用萬向輪,左右前輪各用一個直流減速電機驅動,通過調制前面兩個輪子的轉速從而達到控制轉向的目的,在機器人最前端裝有左中右4個紅外反射式傳感器,當
28、機器人左邊的傳感器檢測到黑線時,說明機器人向右邊偏移,這時主控芯片控制左輪電機減速,機器人向左邊偏正。同理,當機器人的右邊傳感器檢測到黑線時,主控芯片控制右輪電機減速,機器人向右邊偏正,當黑線在機器人的中間,中間的傳感器一直檢測到黑線,這樣機器人就會沿著黑線一直行走。</p><p> 圖2.1.1 智能循跡小車控制系統(tǒng)結構框圖</p><p><b> 2.2循跡系統(tǒng)&l
29、t;/b></p><p> 機器人小車在貼有黑膠帶的地上行駛,不斷向地面發(fā)射紅外光,根據接收到的反射光的強弱來判斷道路,用四只紅外對管,兩只置于軌道中間,兩只置于軌道外側,當機器人脫離軌道時,即當置于中間的兩只只光電開關脫離軌道時,等待外面任一只檢測到黑線后,做出相應的轉向調整,直到中間的光電開關重新檢測到黑線(即回到軌道)再恢復正向行駛</p><p><b> 2
30、.3避障系統(tǒng)</b></p><p> 采用紅外對管置于機器人小車正前方,可以檢測到障礙物是否存在,以做出相應的判斷。</p><p><b> 2.4主控系統(tǒng)</b></p><p> 我們采用單片機作為整個智能機器人的核心,來對機器人進行自動控制。單片機有著簡單、方便、快捷、價格低廉、較為強大的控制功能以及可位尋址操作功能
31、等優(yōu)點,符合整體設計方案。</p><p><b> 2.5驅動系統(tǒng)</b></p><p> 采用功率三極管作為電機驅動芯片。電機驅動芯片驅動能力強、操作方便,穩(wěn)定性好,性能優(yōu)良。功率三極管的使能端可以外接電平控制,也可以利用單片機進行軟件控制,滿足各種復雜電路的需要。另外,驅動功率較大,能夠根據輸入電壓的大小輸出不同的電壓和功率,解決了負載能力不夠的問題。&l
32、t;/p><p> 采用L298N作為功率放大器的輸出控制直流電機。線性型驅動的電路結構和原理簡單,加速能力強,采用由達林頓管組成的 H型橋式電路用單片機控制達林頓管使之工作在占空比可調的開關狀態(tài)下,精確調整電動機轉速。這種電路效率非常高,H型橋式電路保證了簡單的實現轉速和方向的控制,電子管的開關速度很快,穩(wěn)定性也極強,是一種廣泛采用的 PWM調速技術。這種調速方式有調速特性優(yōu)良、調整平滑、調速范圍廣、過載能力大,
33、能承受頻繁的負載沖擊,還可以實現頻繁的無級快速啟動、制動和反轉等優(yōu)點。</p><p><b> 2.6電機選擇 </b></p><p> 我們采用兩個直流電動機,直流電動機控制簡單,只需加上適合的電壓和幾根控制線,就能正常運轉起來,符合機器人簡單整潔的整體設計思路。</p><p><b> 3、系統(tǒng)的硬件設計</b&
34、gt;</p><p><b> 3.1主控電路</b></p><p> 選擇STC89C52單片機作為本課題的主控芯片。STC89C52是一種低功耗、高性能CMOS8位微控制器,是帶8K字節(jié)閃爍可編程可檫除只讀存儲器。STC89C52提供給為眾多嵌入式控制應用解決方案??臻e模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下
35、,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。STC89C52單片機和AT89S52單片機對比擁有諸多優(yōu)勢,具體見下表。</p><p> 表1 STC89C52單片機和AT89S52單片機的對比</p><p> 圖3.1.1 STC89C52單片機</p><p> 圖3.1.2 PCB圖</p>
36、<p><b> 表2 原件清單</b></p><p> 圖3.1.3 主控電路</p><p><b> 3.2信號檢測模塊</b></p><p> 機器人循跡原理是機器人在畫有黑線的白紙 “路面”上行駛,由于黑線和白紙對光線的反射強弱不同,根據接收到的反射光的強弱來判斷正確的道路——黑線。該模塊
37、中利用了簡單且比較普遍的檢測方法——紅外探測法。 紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質的特點。原理就是利用黑白線對紅外線不同的反射能力通過光敏二極管或光敏三極管,接收反射回的不同光強信號,把不同光強轉換為電流信號,最后通過電阻,轉換為單片機可識別的高低電平。</p><p> 如果機器人向前行駛時向左偏離了黑線,那么右邊傳感器會產生一個高電平,單片機接收這個信號,然后向右轉回到
38、黑線。兩傳感器輸出信號為低電平時,機器人前進。如果機器人向右偏離黑線,左邊傳感器產生一個高電平,單片機接收這個信號,然后向左轉向。這樣,機器人就一直沿著黑線行走。若兩個光電傳感器同時輸出的信號為高電平,即單片機判斷的都為高電平時,機器人向前直走。</p><p> 圖3.2.1 信號檢測模塊</p><p> 圖3.2.2 循跡模塊原理圖</p><p><
39、;b> 3.3電機驅動模塊</b></p><p> 本設計采用L298N電機專用驅動芯片帶動兩個直流電動機。</p><p> 直流電機由定子和轉子兩大部分組成。直流電機運行時靜止不動的部分稱為定子,運行時轉動的部分稱為轉子。</p><p> 其中比較常用的驅動芯片是L298N,L298N是一個內部有兩個H橋的高電壓大電流全橋式驅動芯片
40、,內部包含4通道邏輯驅動電路??梢则寗觾蓚€直流電機,輸出電壓最高可達50V。直接通過電源來調節(jié)輸出電壓,直接通過單片機的IO端口提供信號,使得電路簡單,使用更方便,L298N芯片輸出電流可達2.5 A,可驅動電感負載。</p><p> 圖3.3.1 L298N內部H橋驅動電路</p><p> 使用標準邏輯電平信號控制,直接連接單片機管腳,具有兩個使能控制端,使能端在不受輸入信號影
41、響的情況下不允許器件工作。L298N有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作。通過單片機給予L298N電路PWM信號來控制機器人的速度,起停。</p><p> 圖3.3.2 L298N引腳結構</p><p> 圖3.3.3 L298N電機驅動模塊PCB圖</p><p> 表3 L298N引腳編號與功能</p><p
42、> 圖3.3.3 電機驅動原理圖</p><p> 3.4機器人控制邏輯</p><p> 在這個模塊中通過單片機對L298N的操作來控制兩個電機的運行。具體操作如下表:</p><p><b> 表4 小車邏輯控制</b></p><p> 其中速度的調節(jié):按一個固定的頻率來接通和斷開電源,并根據需要
43、改變一個周期內“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉速。當某一車輪的速度不相等時,即可實現車輪的左右偏轉,來完成對黑線的循跡。</p><p><b> 4、系統(tǒng)的軟件設計</b></p><p><b> 4.1主程序流程圖</b></p><p>
44、; 根據機器人所要實現的循跡功能所列出的主程序流程圖:</p><p> 圖4.1.1 主程序流程圖</p><p><b> 4.2循跡程序設計</b></p><p> 循跡機器人的前面有四個傳感器至左向右分別為傳感器1,傳感器2,傳感器3,傳感器4。本機器人主要是通過四個傳感器實現循跡功能,其實物圖如圖4.2所示,以下是對本設計軟
45、件部分功能的說明。</p><p> 圖4.2.1 循跡機器人實物圖</p><p><b> 循跡程序:</b></p><p> void init() </p><p><b> { </b></p><p><b> cgq2=1;</b
46、></p><p><b> cgq3=1;</b></p><p> TMOD=0X01; </p><p> TH0=(65536-100)/256; </p><p> TL0=(65536-100)%256; </p><p><b> EA=1; </b&
47、gt;</p><p><b> ET0=1; </b></p><p><b> TR0=1; </b></p><p><b> ENA=1; </b></p><p><b> ENB=1; </b></p><p>
48、<b> } ;</b></p><p> 當傳感器1和傳感器4的顯示燈為暗(即檢測到為白色);傳感器2和傳感器3的顯示燈為亮(即檢測到為黑色),進入以下走直線函數:</p><p> void straight() </p><p><b> { </b></p><p><b>
49、; PWM1=20; </b></p><p><b> PWM2=20; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> IN3=1; </b>
50、</p><p><b> IN4=0; </b></p><p><b> }</b></p><p> 當傳感器1,傳感器4和傳感器3的顯示燈為暗(即檢測到為白色);傳感器2的顯示燈為亮(即檢測到為黑色),進入以下左轉彎函數(轉彎小):</p><p> void turn_left1(
51、) </p><p><b> { </b></p><p><b> PWM1=5; </b></p><p><b> PWM2=20; </b></p><p><b> IN3=1; </b></p><p>&l
52、t;b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p> 當傳感器1,傳感器4和傳感器2的顯示燈為暗(即檢測到為白
53、色);傳感器3的顯示燈為亮(即檢測到為黑色),進入以下左轉彎函數(轉彎?。?lt;/p><p> void turn_right1() </p><p><b> { </b></p><p><b> PWM1=20; </b></p><p><b> PWM2=5; </
54、b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p&g
55、t;<b> } </b></p><p> 當傳感器3,傳感器4和傳感器2的顯示燈為暗(即檢測到為白色);傳感器1的顯示燈為亮(即檢測到為黑色),進入以下左轉彎函數(轉彎大):</p><p> void turn_left3() //左轉彎函數 3 (轉彎最大)</p><p><b> { </b><
56、/p><p><b> PWM1=5; </b></p><p><b> PWM2=40; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><
57、b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p> 當傳感器1,傳感器3和傳感器2的顯示燈為暗(即檢測到為白色);傳感器4的顯示燈為亮(即檢測到為黑色)進入以下左轉彎函數(轉彎大):</p>&l
58、t;p> void turn_right3() //右轉彎函數 3 (轉彎最大)</p><p><b> { </b></p><p><b> PWM1=40; </b></p><p><b> PWM2=5; </b></p><p><b>
59、 IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> }</b></p>
60、<p> 循跡功能的判斷程序: </p><p> void infrared() </p><p><b> { </b></p><p> uchar flag;</p><p> if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==0))
61、// 直走</p><p> {flag=0;} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==1)) </p><p> {if((a%2)==0)</p><p> {flag=1;init();a++;}//左小轉</p>
62、<p><b> else</b></p><p> {flag=2;init();a++;}//右小轉</p><p><b> } </b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==1)&(cgq4==0)) //左小轉&
63、lt;/p><p> {flag=2;} </p><p> else if((cgq1==0)&(cgq2==1)&(cgq3==0)&(cgq4==0))//右小轉 </p><p> {flag=1;} </p><p> else if(((cgq1==1)&(cgq3==1)&(cgq4
64、==0))|((cgq1==1)&(cgq2==1)&(cgq4==0))) // 左中轉</p><p><b> {</b></p><p><b> {flag=4;}</b></p><p><b> }</b></p><p> else
65、if(((cgq1==0)&(cgq3==1)&(cgq4==1))|((cgq1==0)&(cgq2==1)&(cgq4==1))) //右中轉</p><p><b> {</b></p><p><b> {flag=5;}</b></p><p><b> }<
66、;/b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==1)) //左大轉</p><p> {flag=7;delay(3);} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==
67、0))//右大轉 </p><p> {flag=6;delay(3);} </p><p> else flag=0; </p><p> switch (flag) </p><p><b> { </b></p><p> case 0: straight(); br
68、eak; //直走</p><p> case 1: turn_left1(); break; //左轉1</p><p> case 2: turn_right1(); break; // 右轉1</p><p> case 3: turn_back(); break; // 返回</p><p> case 4: tur
69、n_left2(); break; //左轉2</p><p> case 5: turn_right2(); break; // 右轉2</p><p> case 6: turn_left3(); break; //左轉3</p><p> case 7: turn_right3(); break; // 右轉3</p><p>
70、; default: break; </p><p><b> } </b></p><p><b> }</b></p><p><b> 5、安裝與調試</b></p><p><b> 5.1機器人的安裝</b></p>&l
71、t;p> 機器人的軟硬件都已經設計好,剩下的就是將智能循跡機器人的組裝以及調試,將紅外光電傳感器固定在底盤前沿貼近地面。正常行駛時,發(fā)射管發(fā)射紅外光照射地面光線,經白紙反射后,被接收管接收輸出高電平信號。電動車經過黑線時發(fā)射端發(fā)射的光線被黑線吸收,接收端接收不到反射光線,傳感器輸出低電平信號后,送STC89C52單片機處理,判斷執(zhí)行預先編制的程序來控制機器人的行駛狀態(tài)。 將模塊置于前方,用于避障,以實現機器人的避障功能
72、。</p><p><b> 5.2機器人的調試</b></p><p> 首先使用萬用表測試原件的的參數,看是否存在著一些誤差,從而避免原件搭建錯誤和虛焊等發(fā)生。調整紅外對管的靈敏度,通過改變延時程序來改變速度,來調整機器人不靈敏和轉彎速度過快等問題。</p><p> 傳感部分的分析及調試:</p><p>
73、 首先要說明傳感器正常的狀態(tài)是ST188遇到黑線時P1.3接口輸出高電壓,發(fā)光二極管導通,有亮光;ST188遇到白紙時P1.3輸出低電壓,發(fā)光二極管不導通,無亮光。</p><p> 出現問題-----當接通電源時,發(fā)現無論怎么調節(jié)滑動變阻器發(fā)光二極管發(fā)光二極管一直處于發(fā)光狀態(tài),則電路出現問題。通過利用萬能表,發(fā)現LM311的7端口和8端口短接,通過分析錯誤原因只會有以下兩種:7端口和8端口之間連接的電阻短路,
74、或者LM311的7端口和8端口短路。利用控制變量法發(fā)現7端口和8端口都與焊板邊沿相接,而在邊沿所有的焊點都相互連接,故7端口和8端口短路。</p><p> 單片機控制部分的分析調試:</p><p> 由于此部分線路比較多,對其進行了第二次分析調試。因為此部分線路沒有明顯的現象,所以只能通過萬用表進行調試。此部分的檢查中發(fā)現了一處錯誤----連接復位的另一端沒有接地。</p&g
75、t;<p> 電路的分析及調試,在一般看來焊板邊沿的焊點相互孤立的,但在這次智能循跡機器人的制作當中,卻出出現了比較特殊的情況,邊沿的焊點都是相互連接的。在以后焊接的時候,我們還要對焊板進行觀察,注意焊板中特殊的焊點。另外利用理論知識對調試起到了很好的指導作用。例如,ST188的C、E兩端都短接利用電路知識,我們可以知道此時P1.3端口輸出為低電壓,則發(fā)光二極管不會發(fā)光。通過這個現象我們可以發(fā)現是ST188有問題還是后面
76、的連接的線路有問題,這樣節(jié)約了時間。編寫程序的難點主要是怎樣經過“8”節(jié)點,具體思路是:當第一次接時,四個傳感器的發(fā)光二極管將會出現“亮亮亮滅”或者“亮滅亮滅”的結果,此時機器人進行一次左偏,而后機器人傳感器的發(fā)光二極管會出現“亮滅滅亮”的情況,此時機器人向右轉(變量a++;);當機器人再次經過這“8”節(jié)點時,四個傳感器的發(fā)光二極管會出現“滅亮亮亮”或者“滅亮滅亮”的情況,此時機器人右轉,之后機器人又會出現在進行判斷(a除以2取其余數與
77、0進行判斷)后,機器人左轉,這樣機器人便通過了兩次節(jié)點。</p><p><b> 6、結束語</b></p><p> 本課題研究的內容主要是智能循跡機器人的循跡系統(tǒng)。以簡單組裝機器人為基礎,系統(tǒng)的設計以單片機為核心,將軟件和硬件相結合。使用了紅外傳感器來探測周圍環(huán)境,同時對周圍的環(huán)境信息進行分析計算,以實現以下功能:</p><p>
78、 (1) 機器人可以實現按照設定的軌道在無惡劣環(huán)境影響時,機器人將沿著黑色線所預定的路線前進或者轉彎。若有偏差,能夠自動修正,返回到預設軌道。</p><p> (2) 當機器人檢測到前進方向的障礙物時,可以自動報警調整,躲避障礙物,從無障礙區(qū)通過。機器人通過障礙區(qū)后,能夠自動循跡。</p><p> (3) 機器人保留了擴展功能。循跡機器人在完成設計預想的前提下,主要考慮了結構設計的
79、簡單化,降低了制作成本,使之更具有普及性。</p><p> 通過本次設計我了解到了理論和實踐的不同,提高了自己的動手能力,也學會了處理各種問題的方法,雖然設計還存在種種的瑕疵以及小問題,設計的并不是很完美,但我掌握了很多以前不熟悉的知識,使我在人生上又更進了一步。</p><p><b> 致 謝</b></p><p> 在本次設計的
80、整個過程中,得到了指導老師和同學的大力幫助,借此機會向他們表示誠摯的感謝。</p><p> 感謝我的導師彭潔老師。彭老師學識淵博、治學嚴謹、洞察敏銳。本學位論文實在導師彭潔老師的精心指導下完成的。彭潔老師嚴謹的治學態(tài)度、敏銳的洞察力、開闊的思維方式深深地影響著我,使我學會了解決問題和處理問題的方法。從課題的選擇到畢設的最終完成,彭老師都始終給予我細心地指導和不懈的支持。感謝導師在百忙之中花大量時間來修改我的論
81、文,使我的工作能順利進行。借此論文完成之際,謹向敬愛的恩師致以衷心的感謝!</p><p> 由于知識水平有限,錯誤在所難免,懇請各位老師批評指正。</p><p><b> 謝謝!</b></p><p><b> 參考文獻</b></p><p> 1 張友德等,單片微型機原理、應用與實
82、驗,第四版,上海:復旦大學出版社,2003</p><p> 2 吳黎明等,單片機原理及應用技術,北京:科學出版社,2005</p><p> 3 劉軍等,單片機原理與接口技術,江蘇:華東理工大學出版社,2006</p><p> 4 丁元杰,單片微機原理及應用[M],北京:機械工業(yè)出版社,2001</p><p> 5 江太輝等,D
83、S18B20數字式溫度傳感器的特性與應用[J],電子技術,2003,12(6):14-16</p><p> 6 蔣鴻宇等,由DS18B20構成的多點溫度測量系統(tǒng)[J],單片機與嵌入式系統(tǒng)應用,2007,01,(11):9-11</p><p> 7 金偉正,儀表技術與傳感器[J],武漢:武漢科大學報,2000, 27(3):17-18.</p><p> 8
84、 王燕等,檢測與轉換技術[J],中原工學院學報,2007,11(12):21-22</p><p> 9 嚴天峰,A/D轉換器及其在單片機中的應用[J],電子世界,2003,01(9):05-07</p><p> 10 杜洋,A/D轉換芯片ADC0832的應用[J],電子技術, 2005,10(11):1-7</p><p> 11 程明等,LED顯示原理[
85、J],電訊技術,2004,14(3):32-33</p><p> 12 WANG J L,SUN Y,LIU Z J,etal. Route planning based on Floyd algorithm for intelligence transportation system[J].IEEE International Conference on Integration Technology<
86、/p><p> 2007(3):20-24</p><p><b> 附錄A</b></p><p><b> 程序清單:</b></p><p> #include<reg52.h> </p><p> #define uchar unsigned cha
87、r </p><p> #define uint unsigned int </p><p> uchar PWM1,PWM2,i,j; //右左占空比標志</p><p><b> uint a=0;</b></p><p> sbit cgq1=P1^0; //從右往左的傳感器編號<
88、/p><p> sbit cgq2=P1^1;</p><p> sbit cgq3=P1^2;</p><p> sbit cgq4=P1^3;</p><p> sbit ENA=P2^7;</p><p> sbit ENB=P2^6;</p><p> sbit IN1=P2^5
89、;</p><p> sbit IN2=P2^4; </p><p> sbit IN3=P2^3;</p><p> sbit IN4=P2^2;</p><p> void delay(uint z) //延時1ms</p><p><b>
90、{ </b></p><p><b> uchar i; </b></p><p> while(z--) </p><p><b> {</b></p><p> for(i=0;i<121;i++);</p><p><b> } &
91、lt;/b></p><p><b> }</b></p><p> void init() //初始化</p><p><b> { </b></p><p><b> cgq2=1;</b></p><p><b> c
92、gq3=1;</b></p><p> TMOD=0X01; </p><p> TH0=(65536-100)/256; </p><p> TL0=(65536-100)%256; </p><p><b> EA=1; </b></p><p><b> ET
93、0=1; </b></p><p><b> TR0=1; </b></p><p><b> ENA=1; </b></p><p><b> ENB=1; </b></p><p><b> } </b></p>&l
94、t;p> void time0(void)interrupt 1 //空占比設置</p><p><b> { </b></p><p><b> i++; </b></p><p><b> j++; </b></p><p> if(i<=PW
95、M1)</p><p><b> ENA=1; </b></p><p><b> else </b></p><p><b> ENA=0; </b></p><p> if(i==40) </p><p><b> i=0; &
96、lt;/b></p><p> if(j<=PWM2)</p><p><b> ENB=1; </b></p><p><b> else</b></p><p><b> ENB=0; </b></p><p><b>
97、 if(j==40)</b></p><p><b> j=0; </b></p><p> TH0=(65536-100)/256; </p><p> TL0=(65536-100)%256; </p><p><b> }</b></p><p>
98、 void straight() //走直線函數 </p><p><b> { </b></p><p><b> PWM1=20; </b></p><p><b> PWM2=20; </b></p><p><b> IN1=1; </b>
99、;</p><p><b> IN2=0; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> }</b></p><p> void t
100、urn_left1() //左轉彎函數 1 (轉彎?。?lt;/p><p><b> { </b></p><p><b> PWM1=5; </b></p><p><b> PWM2=20; </b></p><p><b> IN3=1; </b&g
101、t;</p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p> voi
102、d turn_right1() //右轉彎函數 1(轉彎小)</p><p><b> { </b></p><p><b> PWM1=20; </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b
103、></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p> vo
104、id turn_left2() //左轉彎函數 2(轉彎較大)</p><p><b> { </b></p><p><b> PWM1=5; </b></p><p><b> PWM2=30; </b></p><p><b> IN3=1; <
105、/b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p>
106、 void turn_right2() //右轉彎函數 2 (轉彎較大)</p><p><b> { </b></p><p><b> PWM1=30; </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1;
107、 </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p&
108、gt; void turn_left3() //左轉彎函數 3 (轉彎最大)</p><p><b> { </b></p><p><b> PWM1=5; </b></p><p><b> PWM2=40; </b></p><p><b> IN3
109、=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p>&l
110、t;p> void turn_right3() //右轉彎函數 3 (轉彎最大)</p><p><b> { </b></p><p><b> PWM1=40; </b></p><p><b> PWM2=5; </b></p><p><b>
111、 IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> }</b></p>
112、<p> void infrared() //循跡 </p><p><b> { </b></p><p> uchar flag;</p><p> if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==0)) // 直走</p><p> {f
113、lag=0;} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==1)) </p><p> {if((a%2)==0)</p><p> {flag=1;init();a++;}//左小轉</p><p><b> else</b
114、></p><p> {flag=2;init();a++;}//右小轉</p><p><b> } </b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==1)&(cgq4==0)) //左小轉</p><p> {flag=2;
115、} </p><p> else if((cgq1==0)&(cgq2==1)&(cgq3==0)&(cgq4==0))//右小轉 </p><p> {flag=1;} </p><p> else if(((cgq1==1)&(cgq3==1)&(cgq4==0))|((cgq1==1)&(cgq2==1)
116、&(cgq4==0))) // 左中轉</p><p><b> {</b></p><p><b> {flag=4;}</b></p><p><b> }</b></p><p> else if(((cgq1==0)&(cgq3==1)&am
117、p;(cgq4==1))|((cgq1==0)&(cgq2==1)&(cgq4==1))) //右中轉</p><p><b> {</b></p><p><b> {flag=5;}</b></p><p><b> }</b></p><p>
118、else if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==1)) //左大轉</p><p> {flag=7;delay(3);} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==0))//右大轉 </p><p>
119、 {flag=6;delay(3);} </p><p> else flag=0; </p><p> switch (flag) </p><p><b> { </b></p><p> case 0: straight(); break; //直走</p><p&g
120、t; case 1: turn_left1(); break; //左轉1</p><p> case 2: turn_right1(); break; // 右轉1</p><p> case 3: turn_back(); break; // 返回</p><p> case 4: turn_left2(); break; //左轉2</p
121、><p> case 5: turn_right2(); break; // 右轉2</p><p> case 6: turn_left3(); break; //左轉3</p><p> case 7: turn_right3(); break; // 右轉3</p><p> default: break; </p>
122、<p><b> } </b></p><p><b> }</b></p><p> void main(void) </p><p><b> { </b></p><p><b> init(); </b></p>
123、<p> delay(1); </p><p><b> while(1)</b></p><p><b> { </b></p><p> infrared(); </p><p><b> } </b></p><p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動化畢業(yè)論文智能循跡機器人設計(軟件部分)
- 智能循跡機器人(硬件部分)設計【畢業(yè)論文】
- 開題報告智能循跡機器人設計(硬件部分)
- 機械工程及其自動化畢業(yè)論文循跡物料搬運機器人設計
- 智能循跡機器人設計(軟件部分)【畢業(yè)設計論文】
- 智能循跡機器人(硬件部分)
- 智能循跡機器人設計(軟件部分)
- 智能循跡機器人(硬件部分)論文.doc
- 循跡物料搬運機器人設計畢業(yè)論文
- 智能循跡機器人設計(軟件部分).doc
- 開題報告智能循跡機器人設計(軟件部分)
- 智能循跡機器人設計開題報告
- 電氣自動化循跡小車畢業(yè)論文
- 遙控機器人設計畢業(yè)論文
- 工業(yè)機器人設計畢業(yè)論文
- 自動化畢業(yè)論文基于單片機的智能交通燈設計(硬件部分)
- 電子迎賓機器人設計-畢業(yè)論文
- 畢業(yè)論文-家庭清潔機器人設計
- 自動化畢業(yè)論文智能小車的設計
- 畢業(yè)論文_巡跡廣告機器人設計
評論
0/150
提交評論