行走機器人功能分析與調(diào)試畢業(yè)設(shè)計_第1頁
行走機器人功能分析與調(diào)試畢業(yè)設(shè)計_第2頁
行走機器人功能分析與調(diào)試畢業(yè)設(shè)計_第3頁
行走機器人功能分析與調(diào)試畢業(yè)設(shè)計_第4頁
行走機器人功能分析與調(diào)試畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、河北能源職業(yè)技術(shù)學(xué)院行走機器人功能分析與調(diào)試摘要:雖然機器人的研究、制作和使用已經(jīng)有幾十年的歷史,但是雙足直立行走的機器人世界上很少。主要因為穩(wěn)定性控制及雙足行走控制非常復(fù)雜,但為了研究出與人更加接近的機器人,這是必須克服的難關(guān)。主要是解決直立行走機器人腿部平衡的問題,包括硬件設(shè)計和軟件的設(shè)計,側(cè)重于對硬件的設(shè)計,即著重介紹直立行走機器人腿部平衡系統(tǒng)的相關(guān)知識、設(shè)計目的、設(shè)計思路、方案的確定、原理設(shè)計及分析、硬件調(diào)試。行走機器人是最典型的機電一體化數(shù)字化裝備,是集機械、電子、控制、計算機、傳感器、人工智能等多學(xué)科先進技術(shù)于一體的智能機器人。它代表了機器人的尖端技術(shù),是當(dāng)代科技的研究熱點之一。目

2、前,國內(nèi)雙足機器人研究與世界先進水平相比還有較大差距,特別是在教學(xué)機器人方面的研究更是寥寥無幾。為改善這種局面,提高我國高校師生的綜合技能,本論文在研制教學(xué)雙足機器人方面進行了有益的嘗試和大膽的實踐,設(shè)計并制作出了一款適用于高校教學(xué)開發(fā)使用的小型雙足行走機器人。 本文詳細(xì)闡述了雙足機器人機構(gòu)設(shè)計和控制系統(tǒng)的研發(fā)過程,包括控制系統(tǒng)的硬件電路設(shè)計和制作,機器人雙足的外形設(shè)計與加工,以及雙足行走機器人的驅(qū)動和控制技術(shù)。結(jié)合對人類行走步態(tài)的研究,規(guī)劃了雙足機器人行走的姿態(tài)及軌跡,推導(dǎo)了雙足機器人穩(wěn)定步行的條件,并據(jù)此進行了實物實驗,實現(xiàn)了穩(wěn)定的低速靜態(tài)步行。 本論文重點討論了靜態(tài)步行的算法設(shè)計和仿真,

3、詳細(xì)分析了基于零力矩點的雙足機器人動態(tài)步行運動規(guī)劃方法,根據(jù)運動學(xué)約束條件計算出各個關(guān)節(jié)的運動軌跡。使用matlab軟件,以zmp點的軌跡作為約束條件,進行了前向離線規(guī)劃試驗和zmp誤差補償試驗,實驗證明本文所采用的步態(tài)規(guī)劃方法可以滿足機器人連續(xù)穩(wěn)定行走的要求。教學(xué)雙足機器人運動平穩(wěn),系統(tǒng)控制精度高,具有良好的教學(xué)功能和廣闊的應(yīng)用開發(fā)前景。 本文針對教學(xué)雙足行走機器人方面進行了深入的研究,對他人今后進行教學(xué)雙足機器人的研究提供了一套系統(tǒng)的研究方法,對同行具有借鑒和引導(dǎo)作用。目錄序11、自動機器人平臺總述21.1自動機器人平臺的總體構(gòu)成31.2自動機器人平臺按鍵部分41.3機器人平臺的充電42、

4、自動機器人平臺系統(tǒng)結(jié)構(gòu)42.1自動機器人平臺機械部分42.1.1機器人平臺機械部分組成42.1.2機器人平臺運動詳解52.2自動機器人平臺控制系統(tǒng)62.2.1概述63、自動機器人平臺的裝配和調(diào)試133.1機器人裝配過程133.1.1主動輪電機裝配133.1.2電機安裝至鋁合金架板133.1.3從動輪及傳感器安裝133.1.4電路板的安裝133.2機器人平臺的調(diào)試144、可行性的上部機器手臂設(shè)計方案145、驅(qū)動軟件的編寫及調(diào)試176、取得的成果38序2012年2月,在寒假期間,比賽用機器人平臺運抵學(xué)校,學(xué)校驗收后交付使用,3月份開學(xué)初,我和于長波組織學(xué)生開始籌備學(xué)習(xí)機器人平臺的使用,研究了平臺的

5、硬件電路和軟件程序的編寫,因今年機器人比賽的題目沒定下來,只能等待。2012年5月16日接到全國職業(yè)院校技能大賽規(guī)程,離正式比賽僅有20天。需要添購?fù)ㄓ嵞K等部分設(shè)備,否則不準(zhǔn)參賽,之后立即申報購買部分設(shè)備,包括通訊模塊,交通燈,工件,電源等,同時組織學(xué)生學(xué)習(xí)研究通訊模塊用法,并對參賽規(guī)程進行分析,規(guī)劃比賽場地,制定可行性設(shè)計方案,三易其稿并著手采購機器人上部機構(gòu)零件。期間攻堅克難無數(shù),同學(xué)們非常辛苦。在規(guī)劃場地時,比賽場地尺寸:大小為8米*6米。其中外圍檔板高10cm,材質(zhì)為木工板,上面貼有30mm寬的白色引導(dǎo)條。我們采用普通透明膠帶加普通打印紙來代替比賽用的白色一道條,實驗室場地場地不夠大

6、,僅有6米*5米多。怎么辦,若對每個方格都按比例縮小,那么小車將無法完成正常轉(zhuǎn)向,我們分析比賽規(guī)則后,規(guī)劃出小車的理想行駛軌跡,把部分不重要的方格由原來的0.5米*0.5米壓縮到0.5米*0.2米,這樣原來的的正方形格畸變成長方形,整個比賽場地嚴(yán)重變形,經(jīng)過大家的多次精密計算,最終解決了比賽模擬場地面積不夠的問題,同時白色導(dǎo)條也以最小的經(jīng)濟成本得以解決。之后我們分析了機器人上部機構(gòu)傳動形式,分析各種電機的運動特點,排除了使用伺服電機,直流減速電機等驅(qū)動形式。查找各種電機的型號,價位并上網(wǎng)采購步進電機及其配套的驅(qū)動器,之后又分析鏈條,齒輪,導(dǎo)條的傳動的特點,確定采用導(dǎo)條為支撐和傳動骨架,并上網(wǎng)查

7、找配件型號同時進行采購。咨詢多位老教師(盧恩貴,李瑞春,魏國江等),排除了諧波齒輪,滾珠絲杠等多種傳動方法最后敲定了機器人手部形式,如何能有效的夾取工件,由于目前技術(shù)原因,機器人很多技術(shù)都不成熟,沒有太多的有效資料可供參考,我們邊想邊做,花費很多時間,進展很慢。另外采購角鋁,電鉆,方鐵管等配件,期間費了很大周折。1、自動機器人平臺總述自動機器人平臺是專門為高職類機器人大賽提供的一個統(tǒng)一的機器人底盤。使用者可以根據(jù)大賽任務(wù)的要求,在此平臺上進一步設(shè)計制作各種抓取、投放機構(gòu),利用機器人平臺提供的主控制板實現(xiàn)整體機器人的控制。1.1自動機器人平臺的總體構(gòu)成機器人平臺包括主動車輪、從動車輪、鋁合金框架

8、、直流電機、電池、電路板以及安裝在底部的16路傳感器組成。1.2自動機器人平臺按鍵部分自動機器人平臺上共有三個按鍵,12v電源開關(guān)、24v電源開關(guān)以及啟動按鈕。在開機時,注意先打開12v電源開關(guān),再打開24v電源開關(guān),最后按下啟動按鈕,機器人開始運行;關(guān)機時,先關(guān)閉24v電源開關(guān),再關(guān)閉12v電源開關(guān)。1.3機器人平臺的充電機器人平臺的電源為三節(jié)鉛酸電池。電池充滿電壓可以達到13v,額定工作電壓12v。其中一節(jié)電池專門給主控制板和傳感器信號處理板供電,另2節(jié)電池串聯(lián)成24v,給電機驅(qū)動板供電,用于驅(qū)動機器人上的各種電機,為了提高整體的抗干擾性能,12v和24v的電池不要共地。電池可重復(fù)充電10

9、00次以上。充電時需先取出電池。我們可按下面步驟進行:1.關(guān)閉機器人平臺的電源;2.拔掉連接線,將電池依次取出,充電。3重新裝上充好的電池。每個平臺配備了一個充電器,可以給一個電池充電,充電時,充電器上面的指示燈呈藍色,充電完畢呈紅色。2、自動機器人平臺系統(tǒng)結(jié)構(gòu)2.1自動機器人平臺機械部分2.1.1機器人平臺機械部分組成機器人平臺的機械部分是指機器人執(zhí)行具體功能時所要用到的機械部件,共有以下幾個部分:1.主動輪機器人平臺的主動輪有兩只,金屬鋁芯,外包三根o型圈,能夠完成向前直走,向后轉(zhuǎn)彎,左轉(zhuǎn),右轉(zhuǎn)等這些平地上的技術(shù)動作。2.從動輪機器人平臺有1只從動輪,和兩只主動輪形成三角支撐著機器人的身體

10、。從動輪隨著主動輪的方向改變自己的方向。眾所周知,三點支撐結(jié)構(gòu)是最穩(wěn)定的結(jié)構(gòu),從動輪和兩個主動輪形成了一個穩(wěn)定的支撐結(jié)構(gòu)。3.直流電機機器人平臺上有兩個2臺額定電壓24vdc、150轉(zhuǎn)/分、70w功率直流減速電機。4鋁合金框架機器人平臺的框架使用了鋁合金型材制成,可以很方便地利用配備的專用螺母將設(shè)計的上部機構(gòu)安裝在平臺上。5鋁板機器人平臺上鋪設(shè)了5塊4mm厚的鋁板,可以根據(jù)自己的需要在這些鋁板上打孔,用于固定安裝上部機構(gòu),若需要這些鋁板,可以自行卸下,以減輕整體重量。2.1.2機器人平臺運動詳解1機器人的動作機器人一共有三種動作:1)前進兩個電機等速正轉(zhuǎn)時,機器人前進。2)后退兩個電機等速反轉(zhuǎn)

11、時,機器人后退。3)轉(zhuǎn)彎兩個電機按一定比例不等速正轉(zhuǎn)時,機器人轉(zhuǎn)彎。2機器人運動原理機器人運動時,通過直流電機的軸轉(zhuǎn)動來驅(qū)動兩個主動輪的運動,利用兩個主動輪來控制底盤的各種運動(前進,后退或者轉(zhuǎn)彎)。底盤前端的從動輪前端有一個傳感器,用于探測地面白條的位置。探測后把相關(guān)數(shù)據(jù)傳給控制裝置(單片機),控制裝置分析計算后把相應(yīng)運動指令轉(zhuǎn)化為pwm脈寬調(diào)速信號來控制電機的轉(zhuǎn)速,從而使機器人能夠沿著白條運行。2.2自動機器人平臺控制系統(tǒng)2.2.1概述自動機器人平臺控制系統(tǒng)包括16路巡線傳感器、傳感器信號處理板、主控制板、電機驅(qū)動板和其他待開發(fā)擴展部件組成。組成框圖如圖2.1所示。圖2-1機器人平臺控制系

12、統(tǒng)組成框圖圖2-1中,虛線框中的部分是機器人平臺已經(jīng)配備的部分,其他部分需要在設(shè)計中根據(jù)所設(shè)計的上部機構(gòu)的動作情況自行開發(fā),并用主控制板統(tǒng)一控制。2.2.2主控制板1.概述主控制板是機器人的大腦,承擔(dān)著信息接收、處理、外部設(shè)備控制的重要任務(wù),主控制板中處理器選用了stc12c5a60s2芯片為主控芯片,控制板支持兩大類輸入,既16通道專用巡線傳感器輸入,和8通道傳感器輸入;輸出也是支持2大類,即可調(diào)速行走電機控制輸出和不可調(diào)速行走電機控制輸出;具有一個可擴展接口。stc12c5a60s2單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1t)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指

13、令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成max810專用復(fù)位電路,2路pwm,8路高速10位a/d轉(zhuǎn)換(250k/s),抗干擾能力強,適合應(yīng)用在強干擾場合。具體功能和參數(shù)可以參考stc12c5a60s2數(shù)據(jù)手冊。主控制板使用的是40個引腳的單片機,共有35個i/o接口,其中,p0、p2和p4.6口用于輸入,共17個端口,p1和p3部分接口用于輸出,共12個端口。主控制板實物如圖2-2所示。圖中,12v電源輸入插座連接12v電源,12v電源輸出插座連接傳感器信號處理板的12v電源插座(注意板子上的電源正極標(biāo)志,不要插反),巡線傳感器輸入接口用于連接傳感器信號處理板,啟動按鈕輸入插

14、座連接面板上啟動按鈕,左右車輪電機接口連接驅(qū)動板上的電機信號控制插座,程序下載接口用于程序的在線下載,8通道傳感器輸入接口可以用于連接8個npn型傳感器,非調(diào)速電機輸出接口用于上部機構(gòu)各種電機的控制。圖2-2主控制板外形圖圖中,為了減少對單片機端口的占用,使用了2片74hc245總線驅(qū)動電路構(gòu)成對單片機p2的復(fù)用,用單片機p4.4口的信號加以控制。當(dāng)p4.4為低電平時,p2口接收到的是16路傳感的低8位信號qq0-qq7,當(dāng)p4.4為高電平時,p2口接收到的是16路傳感器的高8位信號q8-qq15。28通道傳感器輸入接口8通道傳感器輸入接口用于連接光電、接近或者超聲傳感器等,可以在整體設(shè)機器人

15、時,充分利用各種傳感器探測外部信息,其中4通道輸入接口電路圖如圖2-3所示。圖2-3 通道傳感器輸入接口圖中,展示了4路傳感器輸入接口,輸入信號使用了單片機的p0.0-p0.3口,插座j8-j11分別接4個不同傳感器,傳感器直接使用市場現(xiàn)有的成熟產(chǎn)品,主要有:圖2-4所示的紅外傳感器,在機器人中,主要用來探測四周是否存在障礙或者是否到達預(yù)定物體附近,圖2-4 紅外傳感器 圖2-5接近開關(guān)其最大探測距離根據(jù)所用型號的不同,有30cm、1m、2m多種;圖2-5所示為接近開關(guān),主要用在機器人上探測一些運動部件是否到位,探測距離一般在5mm以下。傳感器上有3根引線,分別接j8-j11的3個引腳。需要注

16、意的是:使用的傳感器必須是npn型,工作電壓在6v-36v之間。圖2-3所示的的電路均為低電平有效,即傳感器探測到目標(biāo)時,反相器輸出端即單片機的p0-p3腳為低電平信號,否則為高電平。3pwm和電機方向控制電路圖2-6 pwm和電機方向控制電路pwm和電機方向控制電路如圖2-6所示,stc12c5a60s2本身具有2路pwm輸出,即p1.3和p1.4為pwm輸出端口,分別控制左(p1.4控制)右(p1.3控制)電機的轉(zhuǎn)速,圖2-6中,p15和p12分別是左(p1.5控制)右(p1.2控制)電機的方向控制信號,需要注意的是,p1.5和p1.2是低電平有效,即p1.5和p1.2是低電平時,電機驅(qū)動

17、板上的繼電器常開觸點閉合,電機反轉(zhuǎn)。5非調(diào)速電機輸出接口本電路板上設(shè)置了8個非調(diào)速電機輸出接口,可以用來控制4個正反轉(zhuǎn)直流電機或者8個單向運轉(zhuǎn)直流電機,電路圖如圖2-7所示。圖2-7中,p16、p17,p32-p37為8個控制信號,使用了單片機的p1.6、p1.7和p3.2-p3.7口,同樣需要注意,這些信號均是低電平有效。圖2-7 非調(diào)速電機輸出接口6擴展接口主控制板中,p1.0和p4.5兩個接口沒有使用,用插座對外引出,參賽隊可以根據(jù)自己機器人的設(shè)計情況加以使用。7下載接口本電路板上有一個db9串口接口,可以用來實現(xiàn)程序的在線下載。在線下載的主要步驟為:1)首先關(guān)閉本電路板的12v電源,取

18、出串口連接線。一頭接本電路板的db9下載口,另一頭接pc機箱后的9針串口。如果你的電腦后面沒有空余9針串口,可以使用usb轉(zhuǎn)串口轉(zhuǎn)接頭。2)打開stc-isp在線下載軟件,進行程序的下載,具體操作方法見stc12c5a60s2數(shù)據(jù)手冊;下載完畢,從電路板上取下串口下載線。2.2.3巡線傳感器自動機器人平臺底部安裝了16路巡線傳感器,可以可靠地探測到地面白條以及白條的十字交叉點。光源發(fā)射部分采用了16個高亮led發(fā)射管,用16個光敏電阻接受地面反射回來的光線,輸出插座連接傳感器信號處理板的巡線傳感器輸入接口。2.2.4傳感器信號處理板1概述傳感器信號處理板僅自動機器人平臺使用,電路板實物如圖2-

19、8所示。圖中,巡線傳感器輸入接口連接安裝在機器人平臺底部的16路巡線傳感器;信號輸出接口連接單片機控制板,插座jp接12v電源,注意板子上的電源正極標(biāo)志,不要插反。圖2-8 傳感器信號處理板16路巡線傳感器將采集到的地面白條信息送入本電路板,對于采集的信息先進行放大處理,放大后的信號跟標(biāo)準(zhǔn)電壓比較,保留白條反射的有效信號,過濾掉地面背景反射信號,有效信號再通過穩(wěn)壓、反向、放大處理后送入單片機控制板,同時用發(fā)光二極管的亮暗指示當(dāng)前某路傳感器是否在地面白條上。2信號放大電路本電路板使用了16路信號放大電路,第一路傳感器信號放大電路如圖2-9所示。(其余15路電路均相同)圖2-9 信號放大電路2-9

20、中,q0為單路傳感器輸入信號,數(shù)值很小,若巡線傳感器在地面白條上,大約在0.9v左右;若巡線傳感器不在地面白條上,數(shù)值大約在0.3v左右,此信號輸入到由運放lm324組成的同相放大電路,調(diào)節(jié)電位器rw1可以改變整個放大電路的放大倍數(shù)(實際電路中,rl使用了阻值1k的排阻),即調(diào)節(jié)了放大電路輸出的qq0。若q0為地面白條反射的有效信號,通過調(diào)節(jié)rw1,使qq0的電壓輸出為9.5v-10v左右,若q0為地面背景反射的信號,根據(jù)地面背景的顏色以及光滑程度,qq0大致在4-6v左右,越低越好。3、自動機器人平臺的裝配和調(diào)試3.1機器人裝配過程機器人底盤安裝即把主動輪,電機,從動輪,傳感器依次安裝至底盤

21、鋁合金框架上以及完成線路板之間的連接。3.1.1主動輪電機裝配安裝步驟:從左至右,依次結(jié)合螺栓,主動輪,連接鋼板,以及電機,并且旋緊,把三個輪套套在主動輪上。3.1.2電機安裝至鋁合金架板直流電機直接對準(zhǔn)相應(yīng)鋼板部位,螺絲旋緊即可。3.1.3從動輪及傳感器安裝從動輪和傳感器直接對準(zhǔn)相應(yīng)部位,螺絲旋緊即可。3.1.4電路板的安裝1將三個電池固定在平臺上。2將傳感器信號處理板、電機驅(qū)動板、主控制板從下至上疊加在一起,固定了平臺上。3連接信號線:用20芯排線連接16路巡線傳感器的輸出和傳感器信號處理板的傳感器輸入接口;用20芯排線連接傳感器信號處理板的信號輸出接口與主控制板的16路傳感器輸入接口;面

22、板上的啟動按鈕連接主控制板的啟動按鈕插座;用10芯排線連接主控制板的左右車輪電機接口與電機驅(qū)動板的控制信號接口;左右車輪電機連接電機驅(qū)動板的左右電機輸出插座。4連接電源線:12v電源線連接主控制板的12v電源輸入插座;主控制板的12v電源輸出插座連接傳感器信號處理板的12v電源輸入插座;24v電源連接電機驅(qū)動板的24v電源插座。連接電源時,務(wù)必確認(rèn)主板上電源插座的正負(fù)極,切勿插反。3.2機器人平臺的調(diào)試在機器人平臺全部安裝完畢,初步檢查無誤后,下一步就進行必要的調(diào)試,主要的調(diào)試步驟如下:1進行傳感器信號處理板的調(diào)試。2將程序下載到單片機中。3將機器人平臺放到場地上。4先后打開12v電源和24v

23、電源,按下啟動按鈕,觀察機器人平臺運行情況。4、可行性的上部機器手臂設(shè)計方案第一代旋轉(zhuǎn)機構(gòu)主要采用舵機控制云臺見下圖:但是第一代機器人上部機構(gòu)設(shè)計完成后,發(fā)現(xiàn)設(shè)計過于復(fù)雜,所用的傳感器在不接擴展板的情況下,用一片單片機遠遠不能對其進行精密控制,導(dǎo)致第一代機器人設(shè)計失敗。鑒于此情況我們參賽小組又連日趕制第二代上部機構(gòu),第二代機器人的上部機構(gòu)去掉了旋轉(zhuǎn)云臺,采用二維設(shè)計,這種設(shè)計的靈活度雖沒有第一代上部機構(gòu)靈活度高,但便于控制,如圖:連日來趕制的第二代機器人上部機構(gòu)終于完工,但小組成員并沒有高興起來,因為二代機器人上部機構(gòu)由于y軸步進電機的功率過小,導(dǎo)致不能正常的驅(qū)動機器手進行上下移動,此時小組成

24、員以陷入困境。辛辛苦苦做出來的二代機器手卻因為y軸步進電機功率過小而不能使機器手動作,鑒于此情況我們當(dāng)中的一位成員突然想到電梯的結(jié)構(gòu),大多數(shù)電梯都有配重裝置,我們馬上開工,對二代上部機構(gòu)進行改進,做出了第三代機器人上部機構(gòu),如下圖:此處說明:y軸步進電機不能采用功率非常大的電機,因為y軸步進電機的動作是最頻繁的,功率過大后很有可能導(dǎo)致蓄電池的電能在沒有完成任務(wù)之前就沒電啦。5、驅(qū)動軟件的編寫及調(diào)試 ;-*河北能源職業(yè)技術(shù)學(xué)院機器人小組調(diào)試程序*-;-*以下為偽指令定義程序*-num equ 7fh ;count equ 7eh ;需要循跡的路線條數(shù)hlwp bit p1.0 ;start bi

25、t p1.1 ;rdir bit p1.2 ; ;右電機rpwm bit p1.3 ;lpwm bit p1.4 ;ldir bit p1.5 ; ;左電機ccon equ 0d8h;pca 控制寄存器cl equ 0e9h; /pca 計數(shù)器低位ch equ 0f9h; /pca 計數(shù)器高位cmod equ 0d9h; /pca 工作模式寄存器ccap0l equ 0eah; /pca 模塊 0 的捕捉/比較寄存器低 8 危ccap0h equ 0fah; /pca 模塊 0 的捕捉/比較寄存器高 8 位ccap1l equ 0ebh; /pca 模塊 1 的捕捉/比較寄存器低 8 位。cc

26、ap1h equ 0fbh; /pca 模塊 1 的捕捉/比較寄存器高 8 位。fosc_0 equ 79h;fosc_0為pwm0占空比設(shè)置形參 ,右電機fosc_1 equ 7ah;fosc_1為pwm1占空比設(shè)置形參,左電機ccapm0 equ 0dah; /pca 模塊0 pwm 寄存器ccapm1 equ 0dbh; /pca 模塊1 pwm 寄存器pca_pwm0 equ 0f2h; /pca 模塊0 pwm 寄存器pca_pwm1 equ 0f3h; /pca 模塊1 pwm 寄存器?forward equ 1 ;backward equ 0 ;p1m1 equ 91h ;p1m

27、0 equ 92h ;p2m1 equ 95h ;p2m0 equ 96h ;p4sw equ 0bbh ;- 以下為傳感器低高8位-;-hlwp=0時讀取低八位,wl_wp=1時讀取高八位-wp_0_8 equ p2.0 ;wp_1_9 equ p2.1 ;wp_2_10 equ p2.2 ;wp_3_11 equ p2.3 ;wp_4_12 equ p2.4 ;wp_5_13 equ p2.5 ;wp_6_14 equ p2.6 ;wp_7_15 equ p2.7 ;-s2con equ 9ah ;ie2 equ 0afh ;s2buf equ 9bh ;auxr equ 8eh ;aux

28、r1 equ 0a2h ;brt equ 9ch ;iap_contr equ 0c7h ;reload_count equ 0fdh;串行口波特率設(shè)置為9600;-*以下為主程序*-org 0000hljmp mainorg 0043hljmp main_1org 0100h;* main: mov c,start ; 檢測小車啟動鍵是否按下 jc main ; mov sp,#0c0h ; mov s2con,#50h ;串口2方式1 mov brt,#reload_count ; 設(shè)定波特率為9600 mov auxr,#11h ; mov ie2,#01h ; setb ea mov

29、auxr1,#10h ; mov 41h,#00h ;以下是等待裁判的出發(fā)命令, mov 51h,#00h ;以下是等待裁判的出發(fā)命令, mov 61h,#00h ;以下是等待裁判的出發(fā)命令, mov 71h,#00h ;以下是等待裁判的出發(fā)命令,main_wait1: mov a,41h cjne a,#03h,main_wait1;main_wait2: mov a,51h cjne a,#04h,main_wait2;main_wait3: mov a,61h cjne a,#05h,main_wait3;main_wait4: mov a,71h cjne a,#09h,main_wa

30、it4; mov auxr1,#00h mov auxr,#00h mov ie2,#00h clr ea lcall s_t;. lcall qian1 lcall turn_90l lcall qian1 lcall qian1 ;發(fā)關(guān)鍵點1信息 lcall qian1 lcall qian1 ;發(fā)關(guān)鍵點2信息 lcall qian1 lcall turn_90r lcall qian1 lcall turn_90l lcall qian1 lcall qian1 ;到貨架位置了,掃描工件代碼 lcall qian1 lcall qian1 lcall qian1 lcall qian1

31、lcall qian1 lcall qian1 lcall turn_90r lcall qian1 lcall qian1 lcall qian1 ;發(fā)關(guān)鍵點3信息 lcall qian1main_jiaotong:lcall qian1 djnz 74h,main_jiaotong lcall turn_90r lcall qian1 lcall qian1 lcall qian1 lcall qian1 lcall qian1 lcall qian1 lcall qian1 lcall qian1 ;發(fā)關(guān)鍵點4信息 lcall qian1 lcall qian1 lcall qian1

32、lcall qian1 lcall qian1 sjmp $qian1: nopqian1_1:lcall jiu_pian lcall caiyan_16 mov a,count cjne a,#1h,qian1_1 ret;*;-以下為s_t初始化程序-s_t: mov p1m1,#00h; mov p1m0,#18h; mov p2m1,#0ffh; mov p2m0,#00h; mov p4sw,#50h; /p4.4和p4.6口設(shè)置,都為i/o輸出口 lcall pwm0_1; /pwm的初始化設(shè)置 ret;- 以下為motor程序-motor:mov cmod,#80h mov c

33、con,#00h mov cl,#00h mov ch,#00h setb 0a8h.6 ;開pca中斷 setb ea ;開總中斷 setb 0d8h.6 ;將pca計數(shù)器打開,非常重要 ; setb rdir;forward 左電機正轉(zhuǎn)向后走 ,以一個輪的為前,雙輪為后 mov ccap0h,fosc_1 mov ccap0l,fosc_1 mov ccapm0,#42h;/8位pwm輸出,無中斷 mov pca_pwm0,#00h ;有脈沖輸出,值為03h時無脈沖輸出 ; clr ldir;backward 右電機反轉(zhuǎn)向前走,以一個輪的為前,雙輪為后 mov ccap1h,fosc_0

34、mov ccap1l,fosc_0 mov ccapm1,#42h; /8位pwm輸出,無中斷 mov pca_pwm1,#00h ret;- 以下為pwm0占空比設(shè)置- pwm0: mov ccap0h,#150 mov ccap0l,#150 mov ccapm0,#42h;/8位pwm輸出,無中斷 mov pca_pwm0,#00h ;有脈沖輸出,值為03h時無脈沖輸出 ret;- 以下為pwm1占空比設(shè)置-pwm1: mov ccap1h,#250 mov ccap1l,#250 mov ccapm1,#42h; /8位pwm輸出,無中斷 mov pca_pwm1,#00h ret;-

35、 以下為pca時鐘源 控制寄存器 計數(shù)初值 設(shè)置- pwm0_1: mov ccon,#00h mov ch,#00h mov cl,#00h mov cmod,#00h ret;- 以下為delay_ms程序-delay_ms: ; 調(diào)用延時程序前要賦值給r6 dl0: mov r7,#250 dl1: nop nop djnz r7,dl1 djnz r6,dl0 ret;- 以下為stop_l程序-stop_l: mov ccap0h,#0 mov ccap0l,#0 mov ccapm0,#42h mov pca_pwm0,#0 ret;- 以下為stop_r程序-stop_r: mo

36、v ccap1h,#0 mov ccap1l,#0 mov ccapm1,#42h mov pca_pwm1,#0 ret;- 以下為turn_90r程序-turn_90r:turn_0r: mov fosc_0,#165 ;左電機速度 mov fosc_1,#165 ;右電機速度 clr rdir setb ldir lcall motor mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall d

37、elay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall dela

38、y_ms clr p1.0 ;選擇低8位巡線發(fā)光管 mov a,p2 anl a,#0e0h cjne a,#0,turn_1r sjmp turn_0rturn_1r: mov r6,#10 ;檢測第二遍 lcall delay_ms clr p1.0 ; 選擇低8位巡線發(fā)光管 mov a,p2 anl a,#0e0h cjne a,#0,turn_2r sjmp turn_0rturn_2r: ret;-;- 以下為turn_90l程序-turn_90l:turn_0l: mov fosc_0,#165 ;左電機速度 mov fosc_1,#165 ;右電機速度 setb rdir clr

39、 ldir lcall motor mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms mov r6,#250 lcall delay_ms setb p1.0 ;

40、選擇高8位巡線發(fā)光管 mov a,p2 anl a,#07h cjne a,#0,turn_1l sjmp turn_0lturn_1l: mov r6,#10 lcall delay_ms setb p1.0 ; 選擇高8位巡線發(fā)光管 mov a,p2 anl a,#07h cjne a,#0,turn_2l sjmp turn_0lturn_2l: mov fosc_0,#160 ;左邊電機 mov fosc_1,#160;右邊電機 setb rdir setb ldir lcall motor mov r6,#100 ;延時1000ms lcall delay_ms lcall dela

41、y_ms lcall delay_ms lcall delay_ms lcall delay_ms lcall delay_ms ret;-需要數(shù)的線路條數(shù)-caiyan_16:mov count,#00h mov num,#00h clr p1.0 ;選擇低8位巡線發(fā)光管 mov a,p2 mov r7,#8 clr ccaiy_l0: rrc a jnc caiy_l1 inc numcaiy_l1: djnz r7,caiy_l0 setb p1.0 ;選擇高8位巡線發(fā)光管 mov a,p2 mov r7,#8 clr ccaiy_l3: rrc a jnc caiy_l4 inc nu

42、mcaiy_l4: djnz r7,caiy_l3 mov a,num cjne a,#9,caiy_l5 inc count ljmp caiy_l_end caiy_l5: cjne a,#10,caiy_l6 inc count ljmp caiy_l_end caiy_l6: cjne a,#11,caiy_l7 inc count ljmp caiy_l_end caiy_l7: cjne a,#12,caiy_l8 inc count ljmp caiy_l_end caiy_l8: cjne a,#13,caiy_l9 inc count ljmp caiy_l_end caiy

43、_l9: cjne a,#14,caiy_la inc count ljmp caiy_l_end caiy_la: cjne a,#15,caiy_lb inc count ljmp caiy_l_end caiy_lb: cjne a,#16,caiy_l_end inc count caiy_l_end: ret;-以下為糾偏走直線程序-jiu_pian:clr p1.0 ;檢測低八位mov a,p2anl a,#20hjz loop_high_1mov fosc_0,#215mov fosc_1,#140 ;右邊電機setb rdirsetb ldirlcall motorlcall

44、delay_mslcall delay_mslcall delay_msloop_high_1:setb p1.0 ;檢測高八位mov a,p2anl a,#04hjz loop_low_2mov fosc_0,#140mov fosc_1,#215 ;zuosetb rdirsetb ldirlcall motorlcall delay_mslcall delay_mslcall delay_msloop_low_2:clr p1.0 ;檢測低八位mov a,p2anl a,#10hjz loop_high_2mov fosc_0,#215mov fosc_1,#140setb rdirsetb ldirlcall motorlcall delay_mslcall delay_mslcall delay_msloop_high_2:setb p1.0 ;檢測高八位mov a,p2anl a,#08hjz loop_low_3mov fosc_0,#140mov fosc_1,#215setb rdirsetb ldirlcall motorlcall delay_mslcall delay_mslcall delay_msloop_low_3:clr p1

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論