版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> (20 屆)</b></p><p> 智能循跡機器人設(shè)計(軟件部分)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 自動化
2、 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p> 學(xué)士學(xué)位論文原創(chuàng)性聲明</p>
3、<p> 本人聲明,所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立完成的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含法律意義上已屬于他人的任何形式的研究成果,也不包含本人已用于其他學(xué)位申請的論文或成果。對本文的研究作出重要貢獻的個人和集體,均已在文中以明確方式表明。本人完全意識到本聲明的法律后果由本人承擔(dān)。</p><p> 作者簽名: 日期:2014年
4、5月27日</p><p> 學(xué)位論文版權(quán)使用授權(quán)書</p><p> 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)南昌航空大學(xué)科技學(xué)院可以將本論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。</p><p>
5、 作者簽名: 日期:2014年5月27日</p><p> 導(dǎo)師簽名: 日期:2014年5月27日</p><p> 智能循跡機器人設(shè)計(軟件部分)</p><p> 摘要:智能循跡是一種在控制系統(tǒng)的作用下,可以準(zhǔn)確沿既定路線自動行駛的系統(tǒng)。本設(shè)計中,采用STC89C52
6、單片機為主控制芯片,結(jié)合直流減速電機、傳感器、電源電路及其他外圍電路,設(shè)計實現(xiàn)了機器人沿黑跡行走的智能循跡機器人,其中機器人循跡功能由紅外式光電傳感器完成。采用紅外反射式開關(guān)傳感器作為機器人的循跡模塊來識別白色路面中央的黑色引導(dǎo)線,采集信號并將信號轉(zhuǎn)換為能被單片機識別的數(shù)字信號;采用驅(qū)動芯片L298N構(gòu)成雙H橋控制直流電機,其中軟件系統(tǒng)采用C語言編程,本設(shè)計的電路結(jié)構(gòu)簡單,容易實現(xiàn),可靠性高。</p><p>
7、 關(guān)鍵詞:單片機 自動循跡 驅(qū)動電路</p><p><b> 指導(dǎo)老師簽名:</b></p><p> The design of intelligent tracking robot (software) </p><p> Abstract: Intelligent tracking under the cont
8、rol of a role can be accurately automatically traveling along a predetermined route system . In this design , the use of STC89C52 SCM control chip , combined with DC gear motors, sensors , power supply circuits and other
9、 peripheral circuits , designed to achieve a black guide line along the track to walk intelligent tracking robot , where the robot tracking infrared photoelectric transfer function to complete . </p><p> At
10、 the same time reflective infrared transducer switch to identify the black guide line at the central of the white road, which used as the robot tracing module, it can gather the signal and transfer it into digital signa
11、l that can be recognized by single chip. And the driving chip L298N constitute the double H bridge constitute of driving chip L298N can control direct current motor. Among which the software system is using C language. I
12、n a nutshell, the design of the circuit has the advantages</p><p> Keywords: SCM automatic tracking drive circuit</p><p> Instructor Signature:</p><p><b> 目 錄</b>
13、</p><p><b> 一、緒論</b></p><p> 1.1智能機器人的作用和意義1</p><p> 1.2智能機器人的現(xiàn)狀2</p><p> 二、系統(tǒng)設(shè)計方案的分析</p><p><b> 2.1系統(tǒng)設(shè)計4</b></p>&l
14、t;p> 2.2機器人的選擇4</p><p> 2.3尋跡模塊設(shè)計4</p><p> 2.4總體結(jié)構(gòu)框圖設(shè)計4</p><p><b> 三、硬件設(shè)計</b></p><p> 3.1信號檢測模塊6</p><p><b> 3.2電源模塊6</b&
15、gt;</p><p> 3.3傳感器模塊6</p><p><b> 3.4控制模塊8</b></p><p> 3.5電機驅(qū)動模塊9</p><p><b> 四、 軟件設(shè)計</b></p><p> 4.1程序流程圖11</p><
16、p> 4.2程序設(shè)計11</p><p> 4.3 KELL簡介17</p><p><b> 五、安裝與調(diào)試</b></p><p> 5.1智能循跡機器人實物圖22</p><p> 5.2傳感部分的分析及調(diào)試22</p><p> 5.3單片機控制部分的分析調(diào)試2
17、3</p><p><b> 六、結(jié)語</b></p><p><b> 參考文獻27</b></p><p><b> 致 謝29</b></p><p><b> 附錄30</b></p><p><b
18、> 1 緒論</b></p><p> 1.1 智能機器人的作用和意義</p><p> 自第一臺機器人誕生以來,機器人的發(fā)展已經(jīng)遍及機械、電子、冶金、交通、宇航、國防等眾多領(lǐng)域里。這些年來機器人的智能水平不斷提高,并且快速地改變著我們的生活方式。人們在不斷探討、改造、研究的過程中,發(fā)明能替代人勞動的機器一直是人我們的終極目標(biāo)。當(dāng)今機器人的發(fā)展趨勢主要有兩個突出的
19、方面:一個是機器人的應(yīng)用不斷擴大;另一個是機器人的性能不斷完整。如今,機器人技術(shù)的進步將會對科學(xué)的發(fā)展產(chǎn)生巨大影響。</p><p> 隨著科學(xué)技術(shù)的發(fā)展,對于機器人的各種技術(shù)而言圖像處理技術(shù)已近很發(fā)達,而基于圖像的理解技術(shù)還相對落后,機器人視覺需要通過大量的運算也只能識別一些結(jié)構(gòu)化環(huán)境比較簡單的目標(biāo)。視覺傳感器的核心器件是攝像管和CCD,目前的CCD已能做到自動聚焦,但CCD傳感器的價格、體積和使用方式上并不
20、合理,因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中,考慮使用視覺傳感器是比較可行的,因此視覺傳感器種類也越來越多,其中視覺傳感器成為自動行走和駕駛的最主要部件。視覺傳感器的典型應(yīng)用領(lǐng)域為智能導(dǎo)航一種實用有效的方法。</p><p> 機器人要實現(xiàn)自動循跡功能和避障功能就必須要準(zhǔn)確感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機器人一個眼睛。避障控制系統(tǒng)是基于自動循跡小車系統(tǒng),基于它的智能小車實現(xiàn)智能識別路線,判斷并自動避開
21、障礙,選擇正確的行進路線。使用傳感器感知路線和障礙并作出判斷和相應(yīng)的動作。 </p><p> 該智能機器人可以作為機器人的典型代表。智能機器人可以分為三大組成部分:傳感器檢測部分、執(zhí)行部分、CPU。機器人要實現(xiàn)循跡功能,還可以擴展自動避障等功能,感知導(dǎo)引線和障礙物??梢詫崿F(xiàn)機器人智能識別路線,選擇正確的行進路線,并檢測到障礙物后自動躲避。基于以上要求,傳感檢測部分考慮到機器人一般不需要感知清晰的圖像,只要求粗
22、略感知即可,所以可以舍棄比較貴的CCD傳感器而考慮使用價廉物美的紅外反射式傳感器來充當(dāng)。智能機器人的執(zhí)行部分是由兩個直流驅(qū)動電機來充當(dāng)?shù)模饕刂茩C器人的轉(zhuǎn)彎和速度。單片機驅(qū)動直流電機一般有兩種方案:第一,不需要占用單片機資源,直接選擇有PWM功能的單片機,這樣可以實現(xiàn)精確調(diào)速;第二,可以由軟件模擬PWM輸出調(diào)制,需要占用單片機資源,難以精確調(diào)速,但單片機型號的選擇余地較大。考慮到實際情況,本文選擇第二種方案。CPU使用STC89C52
23、單片機,配合軟件編程實現(xiàn)。</p><p> 1.2 智能機器人的現(xiàn)狀</p><p> 現(xiàn)如今智能機器人發(fā)展很快,從智能玩具到其它各行業(yè)都有實質(zhì)成果。其基本可實現(xiàn)循跡、避障、檢測貼片、尋光入庫、避崖等基本功能,這幾節(jié)的電子設(shè)計大賽智能小車又在向聲控系統(tǒng)發(fā)展。比較出名的飛思卡爾智能小車更是走在前列。我此次的設(shè)計主要實現(xiàn)循跡避障這兩個功能。</p><p>
24、智能機器人的發(fā)展現(xiàn)狀智能機器人是第三代機器人,這種機器人帶有多種傳感器能夠?qū)⒍喾N傳感器得到的信息進行融合,能夠有效的適應(yīng)變化的環(huán)境,具有很強的自適應(yīng)能力、學(xué)習(xí)能力自治功能。 目前研制中的智能機器人智能水平并不高,只能說是智能機器人的初級階段。智能機器人研究中當(dāng)前的核心問題有兩方面:一方面是,提高智能機器人的自主性,這是就智能機器人與人的關(guān)系而言,即希望智能機器人進一步獨立于人,具有更為友善的人機界面。從長遠來說,希望操作人員只
25、要給出要完成的任務(wù),而機器能自動形成完成該任務(wù)的步驟,并自動完成它。另一方面是,提高智能機器人的適應(yīng)性,提高智能機器人適應(yīng)環(huán)境變化的能力,這是就智能機器人與環(huán)境的關(guān)系而言,希望加強它們之間的交互關(guān)系。智能機器人涉及到許多關(guān)鍵技術(shù),這些技術(shù)關(guān)系到智能機器人的智能性的高低。這些關(guān)鍵技術(shù)主要有以下幾個方面:多傳感信息耦合技術(shù),多傳感器信息融合就是指綜合來自多個傳感器的感知數(shù)據(jù)以產(chǎn)生更可靠、更準(zhǔn)確或更全面的信息,經(jīng)過融合的多傳感器系統(tǒng)能夠更加完
26、善、精確地反映檢測對象的特性消除信息的不確定性提高信息的可靠性;導(dǎo)航和定位技術(shù),在自主移動機器人導(dǎo)航中,無論是局部實時避障還是全局</p><p> 2 系統(tǒng)設(shè)計方案的分析</p><p><b> 2.1 系統(tǒng)設(shè)計</b></p><p> 智能循跡機器人采用后輪驅(qū)動,左右后輪各用一個直流減速電機驅(qū)動,通過調(diào)制后面兩個輪子的轉(zhuǎn)速從而達
27、到控制轉(zhuǎn)向的目的在機器人前部分別四個紅外反射式傳感器,當(dāng)機器人左邊的傳感器檢測到黑線時,說明機器人向右邊偏移,這時主控芯片控制左輪電機減速,機器人向左邊修正。同理,當(dāng)機器人的右邊傳感器檢測到黑線時,主控芯片控制右輪電機減速,機器人向右邊修正。當(dāng)黑線在機器人的中間,中間的傳感器一直檢測到黑線,這樣機器人就會沿著黑線一直行走。</p><p> 2.2 機器人的選擇</p><p> 在本
28、次智能循跡機器人的選擇過程中,我們選擇了前兩輪驅(qū)動,后萬向輪轉(zhuǎn)向的機器人,即前左右輪分別用兩個轉(zhuǎn)速和力矩基本完全相同的直流減速電機進行驅(qū)動,機器人后部裝一個萬向輪,這樣當(dāng)我們通過I/O口控制兩個直流減速電機的轉(zhuǎn)速和轉(zhuǎn)向時就可以實現(xiàn)機器人的左轉(zhuǎn)、右轉(zhuǎn)和直行,因此我將選擇體積輕容易控制的機器人作為機器人。</p><p> 2.3 尋跡模塊設(shè)計</p><p> 循跡模塊我們可以用光敏電阻
29、組成。光敏電阻的阻值可以跟隨周圍環(huán)境光線的變化而變化當(dāng)光線照射到白線上面時,光線發(fā)射強烈,光線照射到黑線上面時,光線發(fā)射較弱因此當(dāng)光敏電阻在白線和黑線上方時,阻值會發(fā)生明顯的變化將阻值的變化值經(jīng)過比較器就可以輸出高低電平,但是這種方式受環(huán)境影響大,工作不穩(wěn)定,因此,我們將研究幾種方案,選擇性價比和各方面更好的紅外傳感器。</p><p> 2.4 總體結(jié)構(gòu)框圖設(shè)計</p><p> 智
30、能機器人的總體結(jié)構(gòu)框圖設(shè)計如圖2.1所示:</p><p> 圖2.1總體結(jié)構(gòu)框圖</p><p><b> 3 硬件設(shè)計</b></p><p> 3.1 信號檢測模塊</p><p> 為了防止因傳感器太少引起的誤動作,因而在車體前段安裝了4個紅外光對管,有效的減小了誤動作的發(fā)生,減小了小車沖出跑道的幾率。
31、 </p><p><b> 3.2 電源模塊</b></p><p> 用6v電池供電,6v經(jīng)“H橋”驅(qū)動電機,同時經(jīng)過7805輸出穩(wěn)定的5v壓為紅外系統(tǒng)、控制系統(tǒng)供電。利用元器件7805實現(xiàn)輸出穩(wěn)壓5V電壓的功能。其中發(fā)光二級管顯示該部分是否有電位輸出。電路如圖3.1所示:</p><p> 圖3.1降壓模塊電路圖</p>
32、<p><b> 3.3 傳感器模塊</b></p><p> 原理:這次采用了四個如圖3.2所示的傳感模塊,利用到的元器件主要有ST188、LM311。當(dāng)紅外光遇到白色紙時發(fā)生漫反射,反射光被裝在小車上的接收管接收,經(jīng)過比較器LM311(電路如圖3.3所示),使得P1.3輸出低電平;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光,經(jīng)過LM311使得P1.3輸出高
33、電平。其他三個同上述原理。單片機就是否收到反射回來的紅外光為依據(jù)來確定黑線的位置和小車的行走路線電路。</p><p> 圖3.2 傳感器模塊電路</p><p> 圖3.3 比較器LM311的工作原理圖</p><p> 圖中兩芯片的“in+4”腳沒有用做紅外信號的輸入,但直接接vcc,是為了不讓管腳懸空,利于芯片工作的穩(wěn)定。LM311的輸出管腳以被外界拉
34、低,故接上拉電阻,再接到單片機管腳。</p><p><b> 3.4 控制模塊</b></p><p> 原理:在這個模塊中重點通過單片機對L298N的操作來控制兩個電機的運行。具體操作如下表3.1所示:</p><p> 表3.1電機正反轉(zhuǎn)狀態(tài)圖</p><p> 其中速度的調(diào)節(jié):按一個固定的頻率來接通和斷開
35、電源,并根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉(zhuǎn)速。當(dāng)某一車輪的速度不相等時,即可實現(xiàn)車輪的左右偏轉(zhuǎn)。單片機部分控制模塊電路如圖3.4所示: </p><p> 圖3.4 單片機部分控制模塊電路圖</p><p> 3.5 電機驅(qū)動模塊 </p><p> 電機驅(qū)動模塊
36、擬用兩種解決方案,分別如下: 1.采用繼電器對電動機的開或關(guān)進行控制,通過開關(guān)的切換對小車的速度進行調(diào)整。此方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢,易損壞,壽命較短,可靠性不高。2.采用功率三極管作為功率放大器的輸出控制直流電機。線性型驅(qū)動的電路結(jié)構(gòu)和原理簡單,加速能力強,采用由達林頓管組成的H型橋式電路(如圖3.5)。用單片機控制達林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài)下,精確調(diào)整電動機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止
37、模式下,效率非常高,H型橋式電路保證了簡單的實現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開關(guān)速度很快,穩(wěn)定性也極強,是一種廣泛采用的PWM調(diào)速技術(shù)。</p><p> 圖3.5 H型橋式電路</p><p> 實際使用的時候,用分立原件制作H橋是很麻煩的,好在現(xiàn)在市面上有很多封裝好的H橋路集成電路,接上電源,電機和控制信號就可以使用了,在額定的電壓和電流內(nèi)使用非常方便可靠。比如常用的L293D、L
38、298N、TA7257P、SN754410等,現(xiàn)在市面上有很多這些芯片,我選用了L298N驅(qū)動芯片如圖3.6所示:</p><p> 圖3.6 L298N 驅(qū)動芯片</p><p> L298N功能引腳圖如表4.1所示:</p><p> 表4.1 L298N功能引腳圖</p><p><b> 4 軟件設(shè)計</b
39、></p><p><b> 4.1 程序流程圖</b></p><p><b> 系統(tǒng)程序流程圖</b></p><p> 機器人進入循跡模式后,即開始不斷地掃描與探測器連接的單片機I/O口,一旦檢測到某個口有信號變化,程序就進入判斷程序,把相應(yīng)的信號發(fā)送給電動機從而糾正小車的狀態(tài)。</p>&
40、lt;p><b> 4.2 程序設(shè)計</b></p><p> 循跡機器人的前面偶四個傳感器至左向右分別為傳感器1,傳感器2,傳感器3,傳感器4。本機器人主要是通過四個傳感器實現(xiàn)循跡功能,其實物圖如圖4.1所示,以下是對本設(shè)計軟件部分功能的說明。</p><p> 圖4.1 循跡機器人實物圖</p><p><b> 程
41、序的初始化:</b></p><p> void init() </p><p><b> { </b></p><p><b> cgq2=1;</b></p><p><b> cgq3=1;</b></p><p> TM
42、OD=0X01; </p><p> TH0=(65536-100)/256; </p><p> TL0=(65536-100)%256; </p><p><b> EA=1; </b></p><p><b> ET0=1; </b></p><p><b
43、> TR0=1; </b></p><p><b> ENA=1; </b></p><p><b> ENB=1; </b></p><p><b> } ;</b></p><p> 當(dāng)傳感器1和傳感器4的顯示燈為暗(即檢測到為白色);傳感器2和
44、傳感器3的顯示燈為亮(即檢測到為黑色),進入以下走直線函數(shù):</p><p> void straight() </p><p><b> { </b></p><p><b> PWM1=20; </b></p><p><b> PWM2=20; </b></
45、p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b>
46、; }</b></p><p> 當(dāng)傳感器1,傳感器4和傳感器3的顯示燈為暗(即檢測到為白色);傳感器2的顯示燈為亮(即檢測到為黑色),進入以下左轉(zhuǎn)彎函數(shù)(轉(zhuǎn)彎?。?lt;/p><p> void turn_left1() </p><p><b> { </b></p><p><b>
47、 PWM1=5; </b></p><p><b> PWM2=20; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b><
48、;/p><p><b> IN2=0; </b></p><p><b> } </b></p><p> 當(dāng)傳感器1,傳感器4和傳感器2的顯示燈為暗(即檢測到為白色);傳感器3的顯示燈為亮(即檢測到為黑色),進入以下左轉(zhuǎn)彎函數(shù)(轉(zhuǎn)彎?。?lt;/p><p> void turn_right1(
49、) </p><p><b> { </b></p><p><b> PWM1=20; </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b></p><p><
50、;b> IN4=0; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> } </b></p><p> 當(dāng)傳感器3,傳感器4和傳感器2的顯示燈為暗(即檢測到為白色)
51、;傳感器1的顯示燈為亮(即檢測到為黑色),進入以下左轉(zhuǎn)彎函數(shù)(轉(zhuǎn)彎大):</p><p> void turn_left3() //左轉(zhuǎn)彎函數(shù) 3 (轉(zhuǎn)彎最大)</p><p><b> { </b></p><p><b> PWM1=5; </b></p><p><b>
52、PWM2=40; </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><
53、/p><p><b> } </b></p><p> 當(dāng)傳感器1,傳感器3和傳感器2的顯示燈為暗(即檢測到為白色);傳感器4的顯示燈為亮(即檢測到為黑色)進入以下左轉(zhuǎn)彎函數(shù)(轉(zhuǎn)彎大):</p><p> void turn_right3() //右轉(zhuǎn)彎函數(shù) 3 (轉(zhuǎn)彎最大)</p><p><b> {
54、</b></p><p><b> PWM1=40; </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p>
55、<p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> }</b></p><p> 循跡功能的判斷程序: </p><p> void infrared() </p><
56、p><b> { </b></p><p> uchar flag;</p><p> if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==0)) // 直走</p><p> {flag=0;} </p><p> else if((cgq1==1)
57、&(cgq2==0)&(cgq3==0)&(cgq4==1)) </p><p> {if((a%2)==0)</p><p> {flag=1;init();a++;}//左小轉(zhuǎn)</p><p><b> else</b></p><p> {flag=2;init();a++;}
58、//右小轉(zhuǎn)</p><p><b> } </b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==1)&(cgq4==0)) //左小轉(zhuǎn)</p><p> {flag=2;} </p><p> else if((cgq1==0)&
59、(cgq2==1)&(cgq3==0)&(cgq4==0))//右小轉(zhuǎn) </p><p> {flag=1;} </p><p> else if(((cgq1==1)&(cgq3==1)&(cgq4==0))|((cgq1==1)&(cgq2==1)&(cgq4==0))) // 左中轉(zhuǎn)</p><p>&l
60、t;b> {</b></p><p><b> {flag=4;}</b></p><p><b> }</b></p><p> else if(((cgq1==0)&(cgq3==1)&(cgq4==1))|((cgq1==0)&(cgq2==1)&(cgq4=
61、=1))) //右中轉(zhuǎn)</p><p><b> {</b></p><p><b> {flag=5;}</b></p><p><b> }</b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==0)&am
62、p;(cgq4==1)) //左大轉(zhuǎn)</p><p> {flag=7;delay(3);} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==0))//右大轉(zhuǎn) </p><p> {flag=6;delay(3);} </p><p>
63、 else flag=0; </p><p> switch (flag) </p><p><b> { </b></p><p> case 0: straight(); break; //直走</p><p> case 1: turn_left1(); break; //左轉(zhuǎn)1</p>
64、;<p> case 2: turn_right1(); break; // 右轉(zhuǎn)1</p><p> case 3: turn_back(); break; // 返回</p><p> case 4: turn_left2(); break; //左轉(zhuǎn)2</p><p> case 5: turn_right2(); break; /
65、/ 右轉(zhuǎn)2</p><p> case 6: turn_left3(); break; //左轉(zhuǎn)3</p><p> case 7: turn_right3(); break; // 右轉(zhuǎn)3</p><p> default: break; </p><p><b> } </b></p><
66、;p><b> }</b></p><p><b> 主函數(shù):</b></p><p> void main(void) </p><p><b> { </b></p><p><b> init(); </b></p>&
67、lt;p> delay(1); </p><p><b> while(1)</b></p><p><b> { </b></p><p> infrared(); </p><p><b> } </b></p><p><b&
68、gt; }</b></p><p> 4.3 KELL簡介</p><p> Keil C51單片機軟件開發(fā)系統(tǒng)可用于編輯C或匯編源文件。然后分別由C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件與庫文件一起經(jīng)LIB51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,由仿真器使用直接對目標(biāo)板進行調(diào)試,也可以直接寫入程序存貯器如EPROM
69、 中。</p><p> 打開Keil軟件后,出現(xiàn)如圖4.1所示界面。</p><p> 圖4.1 Keil 軟件主界面</p><p> 點擊Project--New Project??梢孕陆ㄒ粋€工程,如圖4.2所示。</p><p> 圖4.2 Keil軟件新建工程界面</p><p> 點擊會出現(xiàn)的對話
70、框中選擇工程存在路徑(如圖4.3所示),單擊“保存”后,出現(xiàn)界面。在此界面上選擇電路板上所用的單片機型號(如圖4.4所示),單擊“確定”。</p><p> 圖4.3 保存路徑界面</p><p> 圖4.4 選擇電路板上所用的單片機型號界面</p><p> 設(shè)置完成后,軟件會提示是否將8051上電初始化程序添加入工程。這個一般選“否”。這樣就建立好了一個空
71、的51工程(如圖4.5所示)。</p><p> 圖4.5 建立空的51工程界面</p><p> 點擊File--New,便建立了一個空的文本框(如圖4.6所示)。</p><p> 圖4.6 建立空文本框界面</p><p> 到現(xiàn)在為止,就可以開始在里面輸入代碼了。保存時注意:如果是用C語言程序,則將文本保存成*.c.將寫完的程
72、序添加到工程里面,如圖4.7所示,在左邊Project Workspace里的Source Group 1上右擊,選擇Add Files to Group ’Source Group 1’。在打開的對話框中,選擇剛存的文件路徑和對應(yīng)的擴展名。此時,程序就添加進了這個工程。</p><p> 圖4.7 添加工程界面</p><p> 下一步,就開始編譯剛輸入進去的代碼。如圖4.8所示,接
73、著,Keil會打出下面的提示:0 Error(s), 0 Warning(s)。</p><p> 圖4.8 程序運行圖</p><p> 建立工程的時候,默認是不生成HEX文件的,得在編譯做如下設(shè)置:在Project Workspace里Target 1上右擊,選擇“Options for Target ‘Target 1”。出現(xiàn)如圖4.9所示對話框,選擇“Output”按圖示,將箭
74、頭所指的多選框勾上,點“確定”?,F(xiàn)在再點擊重新編譯,就會在工程所在文件夾里生成HEX文件[9] [10]。</p><p> 圖4.9 生成HEX文件界面</p><p><b> 5 安裝與調(diào)試</b></p><p> 5.1 智能循跡機器人實物圖</p><p> 智能循跡機器人實物圖如圖5.1所示,該機
75、器人是最終的結(jié)果,可以實現(xiàn)智能循跡功能。</p><p> 圖5.1 智能循跡機器人實物圖</p><p> 5.2 傳感部分的分析及調(diào)試</p><p> 傳感器模塊的檢測,在看似簡單的傳感器部分,其檢測有著很大的學(xué)問。以下便是分析和調(diào)試具體的描述:</p><p> 首先要說明傳感器正常的狀態(tài)是ST188遇到黑線時P1.3接口輸出
76、高電壓,發(fā)光二極管導(dǎo)通,有亮光;ST188遇到白紙時P1.3輸出低電壓,發(fā)光二極管不導(dǎo)通,無亮光。</p><p> 出現(xiàn)問題1-----當(dāng)接通電源時,我發(fā)現(xiàn)無論怎么調(diào)節(jié)滑動變阻器發(fā)光二極管一直處于發(fā)光狀態(tài),則電路出現(xiàn)問題。通過利用萬能表,發(fā)現(xiàn)LM311的7端口和8端口短接,通過分析錯誤原因只會有以下兩種:7端口和8端口之間連接的電阻短路,或者LM311的7端口和8端口短路。利用控制變量法發(fā)現(xiàn)7端口和8端口都與
77、焊板邊沿相接,而在邊沿所有的焊點都相互連接,故7端口和8端口短路。</p><p> 出現(xiàn)問題2-----首先我將ST188元件的C端和E端短接,發(fā)光二極管有亮光變暗,根據(jù)電路知識此時發(fā)光二極管應(yīng)該是完全沒有亮光才是正常的,則問題很可能出現(xiàn)在ST188元件,通過仔細檢查發(fā)現(xiàn)E端口和K端口沒有接地。接地后出現(xiàn)正常情況。</p><p> 5.3 單片機控制部分的分析調(diào)試</p>
78、;<p> 由于此部分線路比較多,我又對其進行了第二次分析調(diào)試。因為此部分線路沒有明顯的現(xiàn)象,所以只能通過萬用表進行調(diào)試。此部分的檢查中發(fā)現(xiàn)了一處錯誤----連接復(fù)位的另一端沒有接地。</p><p> 電路的分析及調(diào)試,在一般看來焊板邊沿的焊點相互孤立的,但在在這次智能循環(huán)機器人的制作當(dāng)中,卻出出現(xiàn)了比較特殊的情況,邊沿的焊點都是相互連接的。在以后焊接的時候,我們還要對焊板進行觀察,注意焊板中
79、特殊的焊點。另外利用理論知識對調(diào)試起到了很好的指導(dǎo)作用。例如,ST188的C、E兩端都短接利用電路知識,我們可以知道此時P1.3端口輸出為低電壓,則發(fā)光二極管不會發(fā)光。通過這個現(xiàn)象我們可以發(fā)現(xiàn)是ST188有問題還是后面的連接的線路有問題,這樣節(jié)約了時間。</p><p> 編寫程序的難點主要是怎樣經(jīng)過“8”節(jié)點,我編寫的思路是:當(dāng)?shù)谝淮谓訒r,四個傳感器的發(fā)光二極管將會出現(xiàn)“亮亮亮滅”或者“亮滅亮滅”的結(jié)果,此時
80、小車進行一次左偏,而后小車傳感器的發(fā)光二極管會出現(xiàn)“亮滅滅亮”的情況,此時小車向右轉(zhuǎn)(變量a++;);當(dāng)機器人再次經(jīng)過這“8”節(jié)點時,四個傳感器的發(fā)光二極管會出現(xiàn)“滅亮亮亮”或者“滅亮滅亮”的情況,此時機器人右轉(zhuǎn),之后機器人又會出現(xiàn)在進行判斷(a除以2取其余數(shù)與0進行判斷)后,機器人左轉(zhuǎn),這樣機器人便通過了兩次節(jié)點,循跡機器人循跡過程圖如下:</p><p> 圖5.2 循跡過程1</p><
81、;p> 圖5.3 循跡過程2</p><p><b> 圖5.4循跡過程3</b></p><p><b> 圖5.5循跡過程4</b></p><p><b> 圖5.6循跡過程5</b></p><p><b> 圖5.7循跡過程6</b&g
82、t;</p><p><b> 6 結(jié)語</b></p><p> 本次設(shè)計系統(tǒng)地介紹了智能循跡機器人電路系統(tǒng)的硬件電路設(shè)計以及軟件設(shè)計。在總體方案設(shè)計中以紅外對管作為本系統(tǒng)的傳感器,STC89C52單片機作為主要的控制元器件。</p><p> 本次畢業(yè)設(shè)計的整個研究與設(shè)計過程包括選題、設(shè)計以及完善等。首先,在選題方面查閱了很多與題目
83、有關(guān)的資料文獻,并且制定設(shè)計方案,進行了設(shè)計的總體規(guī)劃。然后將這些方案運用到設(shè)計環(huán)節(jié)中。其次,在制定的方案基礎(chǔ)上對硬件以及軟件進行設(shè)計,并在開發(fā)板上進行硬件功能調(diào)試。最后,針對設(shè)計的內(nèi)容進一步完善,以求達到最佳設(shè)計效果。此次畢業(yè)設(shè)計過程中,在完成設(shè)計任務(wù)的同時,也讓我系統(tǒng)性地全面地掌握了單片機的相關(guān)技術(shù),本次畢業(yè)設(shè)計使我更加深刻地認識到理論來源于實際的含義。在和同學(xué)以及老師的就相關(guān)問題的互相討論交流中,我認識到自己的很多不足,但在這些不
84、足中我又學(xué)到了很多知識,使我的綜合應(yīng)用能力得到了很大的提高。</p><p><b> 參考文獻</b></p><p> 1 張友德等,單片微型機原理、應(yīng)用與實驗,第四版,上海:復(fù)旦大學(xué)出版社,2003</p><p> 2 吳黎明等,單片機原理及應(yīng)用技術(shù),北京:科學(xué)出版社,2005</p><p> 3 劉軍
85、等,單片機原理與接口技術(shù),江蘇:華東理工大學(xué)出版社,2006</p><p> 4 丁元杰,單片微機原理及應(yīng)用[M],北京:機械工業(yè)出版社,2001</p><p> 5 金偉正,儀表技術(shù)與傳感器[J],武漢:武漢科大學(xué)報,2000, 27(3):17-18.</p><p> 6 王燕等,檢測與轉(zhuǎn)換技術(shù)[J],中原工學(xué)院學(xué)報,2007,11(12):21-2
86、2</p><p> 7 嚴天峰,A/D轉(zhuǎn)換器及其在單片機中的應(yīng)用[J],電子世界,2003,01(9):05-07</p><p> 8 杜洋,A/D轉(zhuǎn)換芯片ADC0832的應(yīng)用[J],電子技術(shù), 2005,10(11):1-7</p><p> 9 程明等,LED顯示原理[J],電訊技術(shù),2004,14(3):32-33</p><p&
87、gt; 10王秋爽,曾兆龍 單片機開發(fā)基礎(chǔ)與經(jīng)典設(shè)計實例北京機械工業(yè)出版社</p><p> 11華成英,童詩白模擬電子技術(shù)基礎(chǔ)第四版高等教育出版社</p><p> 12吳錘紅 MCS-51微機原理與接口技術(shù)廈門大學(xué)出版社</p><p> 13張毅剛 單片機原理及應(yīng)用2003年12月第一版高等教育出版社</p><p>
88、 14 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,2007(3):20-24</p><p><b> 致 謝
89、</b></p><p> 歲月靜好,時光流逝,不經(jīng)意間,在南昌航空大學(xué)科技學(xué)院大學(xué)我已經(jīng)度過了四年時光?;叵朐诳圃簩W(xué)習(xí)和生活的四年時光,我感慨良多。這四年就像是一次愉悅的旅行,在旅途中,我的知識積累、性格和心境都發(fā)生了顯然的正向改變,這對于我的將來有著深遠的影響,它將伴隨我的一生,成為我人生中最寶貴的財富。其中每次成長都離不開老師和親友們的鼓勵與幫助,在大學(xué)生活即將結(jié)束之時,我在這里向他們致以衷心
90、的謝意。</p><p> 首先要感謝我的導(dǎo)師彭潔老師。彭老師學(xué)識淵博、治學(xué)嚴謹、洞察敏銳。本學(xué)位論文實在導(dǎo)師彭潔老師的精心指導(dǎo)下完成的。彭潔老師嚴謹?shù)闹螌W(xué)態(tài)度、敏銳的洞察力、開闊的思維方式深深地影響著我,使我學(xué)會了解決問題和處理問題的方法。從課題的選擇到畢設(shè)的最終完成,彭老師都始終給予我細心地指導(dǎo)和不懈的支持。感謝導(dǎo)師在百忙之中花大量時間來修改我的論文,使我的工作能順利進行。借此論文完成之際,謹向敬愛的恩師致
91、以衷心的感謝!</p><p> 感謝在一起愉快的度過大學(xué)生活的信工系1082022班各位同學(xué),是你們讓我的大學(xué)生活充滿了歡笑、快樂,也讓我成長,祝愿我們都有美好的未來!特別感謝我的室友,他們在學(xué)習(xí)上給了我很大的鼓勵和幫助,他們的陪伴讓我度過了短暫而快樂的大學(xué)生活。</p><p> 畢業(yè)論文是再一次系統(tǒng)學(xué)習(xí)的過程,畢業(yè)論文的完成,同樣也意味著新的社會生活的開始。我將銘記我是一名南昌航
92、空大學(xué)科技學(xué)院的學(xué)子,在今后的工作中把南昌航空大學(xué)科技學(xué)院的優(yōu)良傳統(tǒng)美德發(fā)揚光大。</p><p> 最后,向所有關(guān)心和幫助過我的人致以衷心的感謝,同時感謝各位評委老師在百忙之中抽出寶貴的時間對我們的學(xué)術(shù)指導(dǎo),感謝你們!</p><p><b> 附錄</b></p><p><b> 程序清單:</b></p
93、><p> #include<reg52.h> </p><p> #define uchar unsigned char </p><p> #define uint unsigned int </p><p> uchar PWM1,PWM2,i,j; //右左占空比標(biāo)志</p><p><b
94、> uint a=0;</b></p><p> sbit cgq1=P1^0; //從右往左的傳感器編號</p><p> sbit cgq2=P1^1;</p><p> sbit cgq3=P1^2;</p><p> sbit cgq4=P1^3;</p><
95、p> sbit ENA=P2^7;</p><p> sbit ENB=P2^6;</p><p> sbit IN1=P2^5;</p><p> sbit IN2=P2^4; </p><p> sbit IN3=P2^3;</p><p> s
96、bit IN4=P2^2;</p><p> void delay(uint z) //延時1ms</p><p><b> { </b></p><p><b> uchar i; </b></p><p> while(z--) </p><p><
97、b> {</b></p><p> for(i=0;i<121;i++);</p><p><b> } </b></p><p><b> }</b></p><p> void init() //初始化</p><p><b&
98、gt; { </b></p><p><b> cgq2=1;</b></p><p><b> cgq3=1;</b></p><p> TMOD=0X01; </p><p> TH0=(65536-100)/256; </p><p> TL0=
99、(65536-100)%256; </p><p><b> EA=1; </b></p><p><b> ET0=1; </b></p><p><b> TR0=1; </b></p><p><b> ENA=1; </b></p&g
100、t;<p><b> ENB=1; </b></p><p><b> } </b></p><p> void time0(void)interrupt 1 //空占比設(shè)置</p><p><b> { </b></p><p><b>
101、 i++; </b></p><p><b> j++; </b></p><p> if(i<=PWM1)</p><p><b> ENA=1; </b></p><p><b> else </b></p><p>
102、<b> ENA=0; </b></p><p> if(i==40) </p><p><b> i=0; </b></p><p> if(j<=PWM2)</p><p><b> ENB=1; </b></p><p><b
103、> else</b></p><p><b> ENB=0; </b></p><p><b> if(j==40)</b></p><p><b> j=0; </b></p><p> TH0=(65536-100)/256; </p>
104、;<p> TL0=(65536-100)%256; </p><p><b> }</b></p><p> void straight() //走直線函數(shù) </p><p><b> { </b></p><p><b> PWM1=20; </b>
105、</p><p><b> PWM2=20; </b></p><p><b> IN1=1; </b></p><p><b> IN2=0; </b></p><p><b> IN3=1; </b></p><p>&
106、lt;b> IN4=0; </b></p><p><b> }</b></p><p> void turn_left1() //左轉(zhuǎn)彎函數(shù) 1 (轉(zhuǎn)彎?。?lt;/p><p><b> { </b></p><p><b> PWM1=5; </b>
107、;</p><p><b> PWM2=20; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p>
108、<b> IN2=0; </b></p><p><b> } </b></p><p> void turn_right1() //右轉(zhuǎn)彎函數(shù) 1(轉(zhuǎn)彎小)</p><p><b> { </b></p><p><b> PWM1=20; </b
109、></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p&g
110、t;<b> IN2=0; </b></p><p><b> } </b></p><p> void turn_left2() //左轉(zhuǎn)彎函數(shù) 2(轉(zhuǎn)彎較大)</p><p><b> { </b></p><p><b> PWM1=5; </
111、b></p><p><b> PWM2=30; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p><p
112、><b> IN2=0; </b></p><p><b> } </b></p><p> void turn_right2() //右轉(zhuǎn)彎函數(shù) 2 (轉(zhuǎn)彎較大)</p><p><b> { </b></p><p><b> PWM1=30;
113、 </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p>
114、<p><b> IN2=0; </b></p><p><b> } </b></p><p> void turn_left3() //左轉(zhuǎn)彎函數(shù) 3 (轉(zhuǎn)彎最大)</p><p><b> { </b></p><p><b> PWM1=
115、5; </b></p><p><b> PWM2=40; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></p>
116、;<p><b> IN2=0; </b></p><p><b> } </b></p><p> void turn_right3() //右轉(zhuǎn)彎函數(shù) 3 (轉(zhuǎn)彎最大)</p><p><b> { </b></p><p><b> P
117、WM1=40; </b></p><p><b> PWM2=5; </b></p><p><b> IN3=1; </b></p><p><b> IN4=0; </b></p><p><b> IN1=1; </b></
118、p><p><b> IN2=0; </b></p><p><b> }</b></p><p> void infrared() //循跡 </p><p><b> { </b></p><p> uchar flag;</p>
119、<p> if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==0)) // 直走</p><p> {flag=0;} </p><p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==1)) </p><p> {if((a
120、%2)==0)</p><p> {flag=1;init();a++;}//左小轉(zhuǎn)</p><p><b> else</b></p><p> {flag=2;init();a++;}//右小轉(zhuǎn)</p><p><b> } </b></p><p>
121、 else if((cgq1==0)&(cgq2==0)&(cgq3==1)&(cgq4==0)) //左小轉(zhuǎn)</p><p> {flag=2;} </p><p> else if((cgq1==0)&(cgq2==1)&(cgq3==0)&(cgq4==0))//右小轉(zhuǎn) </p><p> {flag=
122、1;} </p><p> else if(((cgq1==1)&(cgq3==1)&(cgq4==0))|((cgq1==1)&(cgq2==1)&(cgq4==0))) // 左中轉(zhuǎn)</p><p><b> {</b></p><p><b> {flag=4;}</b>&l
123、t;/p><p><b> }</b></p><p> else if(((cgq1==0)&(cgq3==1)&(cgq4==1))|((cgq1==0)&(cgq2==1)&(cgq4==1))) //右中轉(zhuǎn)</p><p><b> {</b></p><p&g
124、t;<b> {flag=5;}</b></p><p><b> }</b></p><p> else if((cgq1==0)&(cgq2==0)&(cgq3==0)&(cgq4==1)) //左大轉(zhuǎn)</p><p> {flag=7;delay(3);} </p>
125、<p> else if((cgq1==1)&(cgq2==0)&(cgq3==0)&(cgq4==0))//右大轉(zhuǎn) </p><p> {flag=6;delay(3);} </p><p> else flag=0; </p><p> switch (flag) </p><p>&
126、lt;b> { </b></p><p> case 0: straight(); break; //直走</p><p> case 1: turn_left1(); break; //左轉(zhuǎn)1</p><p> case 2: turn_right1(); break; // 右轉(zhuǎn)1</p><p>
127、case 3: turn_back(); break; // 返回</p><p> case 4: turn_left2(); break; //左轉(zhuǎn)2</p><p> case 5: turn_right2(); break; // 右轉(zhuǎn)2</p><p> case 6: turn_left3(); break; //左轉(zhuǎn)3</p>
128、<p> case 7: turn_right3(); break; // 右轉(zhuǎn)3</p><p> default: break; </p><p><b> } </b></p><p><b> }</b></p><p> void main(void) </p
129、><p><b> { </b></p><p><b> init(); </b></p><p> delay(1); </p><p><b> while(1)</b></p><p><b> { </b></
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能循跡機器人設(shè)計(軟件部分)
- 智能循跡機器人設(shè)計(軟件部分)【畢業(yè)設(shè)計論文】
- 自動化畢業(yè)論文智能循跡機器人設(shè)計(硬件部分)
- 智能循跡機器人設(shè)計(軟件部分).doc
- 開題報告智能循跡機器人設(shè)計(軟件部分)
- 機械工程及其自動化畢業(yè)論文循跡物料搬運機器人設(shè)計
- 智能循跡機器人(硬件部分)設(shè)計【畢業(yè)論文】
- 循跡物料搬運機器人設(shè)計畢業(yè)論文
- 開題報告智能循跡機器人設(shè)計(硬件部分)
- 自動化畢業(yè)論文基于單片機的智能交通燈設(shè)計(軟件部分)
- 智能循跡機器人設(shè)計開題報告
- 電氣自動化循跡小車畢業(yè)論文
- 智能循跡機器人(硬件部分)論文.doc
- 智能循跡機器人(硬件部分)
- 遙控機器人設(shè)計畢業(yè)論文
- 工業(yè)機器人設(shè)計畢業(yè)論文
- 電子迎賓機器人設(shè)計-畢業(yè)論文
- 畢業(yè)論文-家庭清潔機器人設(shè)計
- 自動化畢業(yè)論文智能小車的設(shè)計
- 畢業(yè)論文_巡跡廣告機器人設(shè)計
評論
0/150
提交評論