紅外遙控六足爬蟲機(jī)器人設(shè)計(jì)_第1頁(yè)
紅外遙控六足爬蟲機(jī)器人設(shè)計(jì)_第2頁(yè)
紅外遙控六足爬蟲機(jī)器人設(shè)計(jì)_第3頁(yè)
紅外遙控六足爬蟲機(jī)器人設(shè)計(jì)_第4頁(yè)
紅外遙控六足爬蟲機(jī)器人設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、六足爬蟲機(jī)器人設(shè)計(jì)設(shè)計(jì)人:李海鷹日期:2004年9月30日目 錄前言2(一)、機(jī)器人的大腦2(二)、機(jī)器人的眼睛耳朵2(三)、機(jī)器人的腿驅(qū)動(dòng)器與驅(qū)動(dòng)輪3(四)、機(jī)器人的手臂機(jī)械傳動(dòng)專制4(五)、機(jī)器人的心臟電池4一、AT89S51單片機(jī)簡(jiǎn)介5(一)、AT89S51主要功能列舉如下:5(二)、AT89S51各引腳功能介紹:5二、控制系統(tǒng)電路圖7三、微型伺服馬達(dá)原理與控制8(一)、微型伺服馬達(dá)內(nèi)部結(jié)構(gòu)8(二)、微行伺服馬達(dá)的工作原理8(三)、伺服馬達(dá)的控制9(四)、選用的伺服馬達(dá)9四、紅外遙控11(一)、 紅外遙控系統(tǒng)11(二)、 遙控發(fā)射器及其編碼11(三)、紅外接收模塊11(四)、紅外解碼程序

2、設(shè)計(jì)11五、控制程序12六、六足爬蟲機(jī)器人結(jié)構(gòu)設(shè)計(jì)圖18前言今年年初,學(xué)校為參加中央電視臺(tái)舉辦的第三屆全國(guó)大學(xué)生機(jī)器人電視大賽,組建了機(jī)器人制作小組。我積極參加,有幸成為了其中的一員。因?yàn)槲覀円郧皼]有參加過類似的比賽,也沒有制作機(jī)器人的經(jīng)驗(yàn)??梢哉f我們什么都是從零開始,邊學(xué)習(xí)邊制作。通過這半年多的制作過程,我從中學(xué)到了很多書本上學(xué)不到的東西,也得到了很好的學(xué)習(xí)與鍛煉的機(jī)會(huì)。最初,我們組建了機(jī)器人制作實(shí)驗(yàn)室。到五金機(jī)電市場(chǎng)購(gòu)買了必要的工具和一些制作材料。然后開始制作實(shí)驗(yàn)機(jī)器人的身體框架。實(shí)驗(yàn)機(jī)器人的框架我們是使用輕型萬(wàn)能角鋼制作的,這種角鋼的兩側(cè)都有間隔均勻的孔槽,可以很方便的用螺栓進(jìn)行連接。用

3、不同長(zhǎng)度的角鋼組合后,就可以得到不同大小的立方體和長(zhǎng)方體及多邊形。機(jī)器人身體的框架就搭建好了。在它的上面將裝上:機(jī)器人的大腦可編程控制器、機(jī)器人的眼睛耳朵傳感器、機(jī)器人的腿驅(qū)動(dòng)輪、機(jī)器人的手臂機(jī)械傳動(dòng)專制、機(jī)器人的心臟電池之所以使用輕型萬(wàn)能角鋼,主要是因?yàn)槭窃谥谱髟囼?yàn)機(jī)型,而輕型萬(wàn)能角鋼安裝拆卸方便和便于修改長(zhǎng)度,調(diào)整設(shè)計(jì)。實(shí)驗(yàn)機(jī)器人定型后,就照其尺寸用不銹鋼方管焊接制作機(jī)器人的身體。再在上面進(jìn)行打孔等工作,后就可以將機(jī)器人的其它部分安裝上去。這樣一個(gè)機(jī)器人就制作好了。下面我介紹一下機(jī)器人的基本組成部分:(一)、機(jī)器人的大腦它可以有很多叫法,可以叫做:可編程控制器、微控制器,微處理器,處理器或

4、者計(jì)算器等,不過這都不要緊,通常微處理器是指一塊芯片,而其它的是一整套控制器,包括微處理器和一些別的元件。任何一個(gè)機(jī)器人大腦就必須要有這塊芯片,不然就稱不上機(jī)器人了。在選擇微控制器的時(shí)候,主要要考慮:處理器的速度,要實(shí)現(xiàn)的功能,ROM和RAM的大小,I/O端口類型和數(shù)量,編程語(yǔ)言以及功耗等。其主要類型有:?jiǎn)纹瑱C(jī)、PLC、工控機(jī)、PC機(jī)等。單有這些硬件是不夠的,機(jī)器人的大腦還無(wú)法運(yùn)行。只有在程序的控制下,它才能按我們的要求去工作??梢哉f程序就是機(jī)器人的靈魂了。而程序是由編程語(yǔ)言所編寫的。編程語(yǔ)言是一個(gè)控制器能夠接受的語(yǔ)言類型,一般有C語(yǔ)言,匯編語(yǔ)言或者basic語(yǔ)言等,這些通常能被高級(jí)一點(diǎn)的控制

5、器直接執(zhí)行,因?yàn)樵诟呒?jí)控制器里面內(nèi)置了編譯器能夠直接把一些高級(jí)語(yǔ)言翻譯成機(jī)器碼。微處理器將執(zhí)行這些機(jī)器碼,并對(duì)機(jī)器人進(jìn)行控制。(二)、機(jī)器人的眼睛耳朵傳感器,是機(jī)器人的感覺器官,是機(jī)器人和現(xiàn)實(shí)世界之間的紐帶,使機(jī)器人能感知周圍的環(huán)境情況。其主要有:光電傳感器、紅外傳感器、力傳感器、超聲波傳感器、位置和姿態(tài)傳感器等等。下面我將就幾種常用傳感器進(jìn)行介紹:1、光電傳感器:光電傳感器的原理是光電效應(yīng)。其主要用途是顏色識(shí)別(機(jī)器人就可以沿著地上的線條行進(jìn)了)和光電編碼等。2、紅外傳感器:紅外傳感器是用來測(cè)量距離和感知周圍情況的。因?yàn)榘l(fā)射出去的紅外信號(hào)在一定距離內(nèi)遇到物體就會(huì)反射回來。通過發(fā)送紅外線信號(hào),

6、并接收反射回來的信號(hào),機(jī)器人就可以感知前方或身體周圍的情況,做出相應(yīng)的調(diào)整(如:倒退或繞行等)。3、力傳感器:力傳感器是用來檢測(cè)碰撞或者接觸信號(hào)的,比如機(jī)械手的應(yīng)用,當(dāng)你放一個(gè)東西到機(jī)械手的時(shí)候,機(jī)械手自動(dòng)抓住它,它就需要力傳感器檢測(cè)東西抓的緊不緊。典型的力傳感器是微動(dòng)開關(guān)和壓敏傳感器。微動(dòng)開關(guān)其實(shí)就是一個(gè)小開關(guān),通過調(diào)節(jié)開關(guān)上的杠桿長(zhǎng)短,能夠調(diào)節(jié)觸動(dòng)開關(guān)的力的大小。用來做碰撞檢測(cè)這是最好不過了。但是這種傳感器必須事先確定好力的閥值,也就是說只能實(shí)現(xiàn)硬件控制(開還控制)。而壓敏傳感器是能根據(jù)受力大小,自動(dòng)調(diào)節(jié)輸出電壓或者電流,從而可以實(shí)現(xiàn)軟件控制(閉環(huán)控制)。4、超聲波傳感器:超聲波傳感器是從

7、蝙蝠那里學(xué)來的,通過把發(fā)射出的信號(hào)與接收到的信號(hào)進(jìn)行對(duì)比,就可以測(cè)定周圍是否有障礙物,及障礙物的距離,也屬于距離探測(cè)傳感器,能提供較遠(yuǎn)的探測(cè)范圍,而且還能提供在一個(gè)范圍內(nèi)的探測(cè)而不是一條線的探測(cè)。5、位置和姿態(tài)傳感器:機(jī)器人在移動(dòng)或者動(dòng)作的時(shí)候必須時(shí)時(shí)刻刻知道自己的姿態(tài)動(dòng)作,否則就會(huì)產(chǎn)生控制中的一個(gè)開環(huán)問題,沒有反饋,無(wú)法獲知運(yùn)動(dòng)是否正確。 位置傳感器和姿態(tài)傳感器就是用來解決這個(gè)問題的。常用的有光電編碼器,由于機(jī)器人的執(zhí)行機(jī)構(gòu)一般是電機(jī)驅(qū)動(dòng),通過計(jì)算電機(jī)轉(zhuǎn)的圈數(shù),可以得出電機(jī)帶動(dòng)部件的大致位置,編碼器就是這樣一種傳感器,它一般和電機(jī)軸或者轉(zhuǎn)動(dòng)部件直接連接,電機(jī)或者轉(zhuǎn)動(dòng)部件轉(zhuǎn)了多少圈或者角度能夠

8、通過編碼器讀出,控制軟件再根據(jù)讀出數(shù)據(jù)進(jìn)行位置估計(jì)計(jì)算。還有一種是陀螺儀,這是利用陀螺原理制作的傳感器,主要可以測(cè)得移動(dòng)機(jī)器人的移動(dòng)加速度,轉(zhuǎn)過的角度等信息。(三)、機(jī)器人的腿驅(qū)動(dòng)器與驅(qū)動(dòng)輪驅(qū)動(dòng)器就是驅(qū)動(dòng)機(jī)器人的動(dòng)的部件。最常用的是電機(jī)了。當(dāng)然還有液壓,氣動(dòng)等別的驅(qū)動(dòng)方式。一個(gè)機(jī)器人最主要的控制量就是控制機(jī)器人的移動(dòng),無(wú)論是自身的移動(dòng)還是手臂等關(guān)節(jié)的移動(dòng),所以機(jī)器人驅(qū)動(dòng)器中最根本和本質(zhì)的問題就是控制電機(jī),控制電機(jī)轉(zhuǎn)的圈數(shù),就可以控制機(jī)器人移動(dòng)的距離和方向,機(jī)械手臂的彎曲的程度或者移動(dòng)的距離等。所以,第一個(gè)要解決的問題就是如何讓電機(jī)能根據(jù)自己的意圖轉(zhuǎn)動(dòng)。一般來說,有專門的控制卡和控制芯片來進(jìn)行控

9、制的。有了這些控制卡和芯片,我們所要做的就是把微控制器和這些連接起來,然后就可以用程序來控制電機(jī)了。第二個(gè)問題是控制電機(jī)的速度,在機(jī)器人上的實(shí)際表現(xiàn)就是機(jī)器人或者手臂的實(shí)際運(yùn)動(dòng)速度了,機(jī)器人走的快慢全靠電機(jī)的轉(zhuǎn)速,這樣,我們就要求控制卡對(duì)電機(jī)有速度控制。電機(jī)目前常用的有兩種,步進(jìn)電機(jī)和直流電機(jī)。下面我將就這兩種電機(jī)進(jìn)行介紹:1、直流電機(jī):這是最最普通的電機(jī)了。直流電機(jī)最大的問題是你沒法精確控制電機(jī)轉(zhuǎn)的圈數(shù),也就前面所說的位置控制。你必須加上一個(gè)編碼盤,來進(jìn)行反饋,來獲得實(shí)際轉(zhuǎn)的圈數(shù)。但是直流電機(jī)的速度控制相對(duì)就比較簡(jiǎn)單,用一種叫PWM(脈寬調(diào)速)的調(diào)速方法可以很輕松的調(diào)節(jié)電機(jī)速度?,F(xiàn)在也有很多

10、控制芯片帶調(diào)速功能的。選購(gòu)時(shí)要考慮的參數(shù)是電機(jī)的輸出力矩,電機(jī)的功率,電機(jī)的最高轉(zhuǎn)速。 2、步進(jìn)電機(jī):看名字就知道了,它是一步一步前進(jìn)的。也就是說,它可以一個(gè)角度一個(gè)角度旋轉(zhuǎn),不象直流電機(jī),你可以很輕松的調(diào)節(jié)步進(jìn)電機(jī)的轉(zhuǎn)角位置,如果你發(fā)一個(gè)轉(zhuǎn)10圈的指令,步進(jìn)電機(jī)就不會(huì)轉(zhuǎn)11圈,但是如果是直流電機(jī),由于慣性作用,它可能轉(zhuǎn)11圈半。步進(jìn)電機(jī)的調(diào)速是通過控制電機(jī)的頻率來獲得的。一般控制信號(hào)頻率越高,電機(jī)轉(zhuǎn)的越快,頻率越低,轉(zhuǎn)的越慢。選購(gòu)時(shí)要考慮的參數(shù)是電機(jī)的輸出力矩,電機(jī)的功率,每個(gè)脈沖電機(jī)的最小轉(zhuǎn)角。 還有就是關(guān)于輸出的動(dòng)力,要說明一下:一般情況下,電機(jī)都沒法直接帶動(dòng)輪子或者手臂,因?yàn)樗俣冗^高力

11、矩不夠大,所以我們需要加上一個(gè)減速箱來增加電機(jī)的輸出力矩,但是代價(jià)是電機(jī)速度的減小,比如一個(gè)1:250的齒輪箱,會(huì)讓你電機(jī)的輸出力矩增大250倍,但是速度只有原來的1/250了。首先計(jì)算出機(jī)器人所需要的速度與力矩大小,然后根據(jù)速度與力矩去選擇電機(jī)與減速器。(四)、機(jī)器人的手臂機(jī)械傳動(dòng)專制機(jī)械傳動(dòng)專制就是,由電機(jī)驅(qū)動(dòng)的一些桿件和機(jī)構(gòu)(如:凸輪機(jī)構(gòu)、螺桿機(jī)構(gòu)等),用以實(shí)現(xiàn)機(jī)械手臂的上升、下降、伸縮、彎曲等動(dòng)作。通常運(yùn)用的機(jī)構(gòu)有四桿機(jī)構(gòu)、凸輪機(jī)構(gòu)、螺桿機(jī)構(gòu)、搖臂等。(五)、機(jī)器人的心臟電池電池為機(jī)器人的控制系統(tǒng)與驅(qū)動(dòng)系統(tǒng)提供能源供應(yīng)。主要有:電瓶及可充電電池、電池。前面介紹了機(jī)器人的一些基本知識(shí),但

12、這是遠(yuǎn)遠(yuǎn)不夠的。機(jī)器人學(xué)科,是在多學(xué)科基礎(chǔ)上發(fā)展起來的綜合性技術(shù)。機(jī)器人技術(shù)涉及機(jī)械、電子、計(jì)算機(jī)、語(yǔ)言學(xué)和人工智能等許多學(xué)科。現(xiàn)在機(jī)器人已經(jīng)應(yīng)用在人類社會(huì)生活的各個(gè)領(lǐng)域,發(fā)揮著越來越重要的影響。我利用暑假的時(shí)間設(shè)計(jì)了一個(gè)六足爬蟲機(jī)器人,用日立(HITACHI)的錄像機(jī)遙控器來對(duì)它進(jìn)行控制?;驹硎牵哼b控器發(fā)出紅外學(xué)號(hào),機(jī)器人通過紅外接收器接收倒紅外信號(hào)后,對(duì)信號(hào)進(jìn)行解碼,并以存儲(chǔ)的代碼進(jìn)行比較,確定指令的含義,后可以實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)及發(fā)聲等功能??刂葡到y(tǒng)我使用的是AT89S51單片機(jī),編程語(yǔ)言使用的是匯編語(yǔ)言,動(dòng)力系統(tǒng)使用的是微型伺服馬達(dá),能源系統(tǒng)使用的是9V電池。下面我將就具體

13、設(shè)計(jì)進(jìn)行介紹。一、AT89S51單片機(jī)簡(jiǎn)介AT89S51 為 ATMEL 所生產(chǎn)的可電氣燒錄清洗的 8051 相容單芯片,其內(nèi)部程序代碼容量為4KB(一)、AT89S51主要功能列舉如下:1、為一般控制應(yīng)用的 8 位單芯片2、晶片內(nèi)部具時(shí)鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)3、內(nèi)部程式存儲(chǔ)器(ROM)為 4KB4、內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)為 128B5、外部程序存儲(chǔ)器可擴(kuò)充至 64KB6、外部數(shù)據(jù)存儲(chǔ)器可擴(kuò)充至 64KB7、32 條雙向輸入輸出線,且每條均可以單獨(dú)做 I/O 的控制8、5 個(gè)中斷向量源9、2 組獨(dú)立的 16 位定時(shí)器10、1 個(gè)全多工串行通信端口11、8751 及 87

14、52 單芯片具有數(shù)據(jù)保密的功能12、單芯片提供位邏輯運(yùn)算指令(二)、AT89S51各引腳功能介紹:VCC:AT89S51 電源正端輸入,接+5V。VSS:電源地端。XTAL1:?jiǎn)涡酒到y(tǒng)時(shí)鐘的反相放大器輸入端。XTAL2:系統(tǒng)時(shí)鐘的反相放大器輸出端,一般在設(shè)計(jì)上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動(dòng)作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機(jī)。RESET:AT89S51的重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶片重置時(shí),只要對(duì)此引腳電平提升至高電平并保持兩個(gè)機(jī)器周期以上的時(shí)間,AT89S51便能完成系統(tǒng)重置的各項(xiàng)動(dòng)作,使得

15、內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動(dòng)作,也就是說當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無(wú)程序存儲(chǔ)器空間。如果是使用 8751 內(nèi)部程序空間時(shí),此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時(shí),可以利用此引腳來輸入21V的燒錄高壓(Vpp)。ALE/PROG:ALE是英文&quo

16、t;Address Latch Enable"的縮寫,表示地址鎖存器啟用信號(hào)。AT89S51可以利用這支引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進(jìn)鎖存器中,因?yàn)锳T89S51是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在程序執(zhí)行時(shí)ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動(dòng)其他周邊晶片的時(shí)基輸入。此外在燒錄8751程序代碼時(shí),此引腳會(huì)被當(dāng)成程序規(guī)劃的特殊功能來使用。PSEN:此為"Program Store Enable"的縮寫,其意為程序儲(chǔ)存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(EA=0),會(huì)送出此信

17、號(hào)以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器可以合并在一起而共用64K的定址范圍。PORT0(P0.0P0.7):端口0是一個(gè)8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。其他三個(gè)I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時(shí)可以推動(dòng)8個(gè)LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器),P0就以多工方式提供地址總線(A0A7)及數(shù)據(jù)總線(D

18、0D7)。設(shè)計(jì)者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0A7,再配合端口2所送出的A8A15合成一完整的16位地址總線,而定址到64K的外部存儲(chǔ)器空間。PORT2(P2.0P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳可以推動(dòng)4個(gè)LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)做一般I/O端口使用外,若是在AT89S51擴(kuò)充外接程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線的高字節(jié)A8A15,這個(gè)時(shí)候P2便不能當(dāng)做I/O來使用了。PORT1(P1.0P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)LS

19、TTL負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當(dāng)做定時(shí)器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。PORT3(P3.0P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)TTL負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0

20、,計(jì)時(shí)計(jì)數(shù)器0輸入。P3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。二、控制系統(tǒng)電路圖控制系統(tǒng)電路圖三、微型伺服馬達(dá)原理與控制(一)、微型伺服馬達(dá)內(nèi)部結(jié)構(gòu)一個(gè)微型伺服馬達(dá)內(nèi)部包括了一個(gè)小型直流馬達(dá);一一組變速齒輪組;個(gè)反饋可調(diào)電位器;及一塊電子控制板。其中,高速轉(zhuǎn)動(dòng)的直流馬達(dá)提供了原始動(dòng)力,帶動(dòng)變速(減速)齒輪組,使之產(chǎn)生高扭力的輸出,齒輪組的變速比愈大,伺服馬達(dá)的輸出扭力也愈大,也就是說越能承受更大的重量,但轉(zhuǎn)動(dòng)的速度也愈低。微型伺服馬達(dá)內(nèi)部結(jié)構(gòu)圖(二)、微行伺服馬達(dá)的工作原理一個(gè)微型伺服馬達(dá)是一個(gè)典型閉環(huán)反饋系統(tǒng),其原理

21、可由下圖表示:微行伺服馬達(dá)工作原理圖減速齒輪組由馬達(dá)驅(qū)動(dòng),其終端(輸出端)帶動(dòng)一個(gè)線性的比例電位器作位置檢測(cè),該電位器把轉(zhuǎn)角坐標(biāo)轉(zhuǎn)換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號(hào)比較,產(chǎn)生糾正脈沖,并驅(qū)動(dòng)馬達(dá)正向或反向地轉(zhuǎn)動(dòng),使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達(dá)到使伺服馬達(dá)精確定位的目的。(三)、伺服馬達(dá)的控制標(biāo)準(zhǔn)的微型伺服馬達(dá)有三條控制線,分別為:電源、地及控制。電源線與地線用于提供內(nèi)部的直流馬達(dá)及控制線路所需的能源,電壓通常介于4V6V之間,該電源應(yīng)盡可能與處理系統(tǒng)的電源隔離(因?yàn)樗欧R達(dá)會(huì)產(chǎn)生噪音)。甚至小伺服馬達(dá)在重負(fù)載時(shí)也會(huì)拉低放大器的電壓,所

22、以整個(gè)系統(tǒng)的電源供應(yīng)的比例必須合理。輸入一個(gè)周期性的正向脈沖信號(hào),這個(gè)周期性脈沖信號(hào)的高電平時(shí)間通常在1ms2ms之間,而低電平時(shí)間應(yīng)在5ms到20ms之間,并不很嚴(yán)格,下表表示出一個(gè)典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達(dá)的輸出臂位置的關(guān)系:(四)、選用的伺服馬達(dá)我選用的伺服馬達(dá)為TowPro的,型號(hào)為SG303。其主要技術(shù)參數(shù)如下:l 轉(zhuǎn)速:0.23秒60度。l 力矩:3.2kg·cm。l 尺寸:40.4mm×19.8mm×36mm。l 重量:37.2g。l 5V電源供電??刂浦芷诿}沖寬度為20ms。送出不同的正脈沖寬度是,就可以得到不同的控制效果。

23、控制正脈沖寬度如下:l 正脈沖寬度為0.3ms時(shí),伺服馬達(dá)反轉(zhuǎn)。l 正脈沖寬度為2.5ms時(shí),伺服馬達(dá)正轉(zhuǎn)。l 正脈沖寬度為1.4ms時(shí),伺服馬達(dá)回到中點(diǎn)。四、紅外遙控家中許多的電器產(chǎn)品都有遙控的功能,例如電視機(jī)、錄像機(jī)、VCD、空調(diào)等家電產(chǎn)品,它們都是以紅外遙控的方式進(jìn)行遙控。(一)、 紅外遙控系統(tǒng)通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專用集成電路芯片來進(jìn)行控制操作,如圖1所示。發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。(二)、 遙控發(fā)射器及其編碼遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類,這里我們以運(yùn)用比較廣泛,

24、解碼比較容易的一類來加以說明,現(xiàn)以日本NEC的uPD6121G組成發(fā)射電路為例說明編碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖2所示。上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用

25、戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多額128種不同組合的編碼,如圖3所示。遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在4563ms之間,圖4為發(fā)射波形圖。(三)、紅外接收模塊左圖為一常用的紅外接收模塊。其內(nèi)部含有高頻的濾波電路,專門用來濾除紅外線合成信號(hào)的載波信號(hào)(38KH),并送出接收到的信號(hào)。當(dāng)紅外線合成信號(hào)進(jìn)入紅外接收模塊,在其輸出端便可以得到原先發(fā)射器發(fā)出的數(shù)字

26、編碼,只要經(jīng)過單片機(jī)解碼程序進(jìn)行解碼,便可以得知按下了哪一個(gè)按鍵,而做出相應(yīng)的控制處理,完成紅外遙控的動(dòng)作。紅外接收模塊(四)、紅外解碼程序設(shè)計(jì)紅外解碼程序主要工作為等待紅外線信號(hào)出現(xiàn),并跳過引導(dǎo)信號(hào),開始收集連續(xù)32位的表面數(shù)據(jù),存入內(nèi)存的連續(xù)空間。位信號(hào)解碼的原則是:以判斷各個(gè)位的波寬信號(hào)來決定高低信號(hào)。位解碼原理如下:l 解碼為0:低電平的寬度0.56ms+高電平的寬度0.56ms。l 解碼為1:低電平的寬度1.68ms+高電平的寬度0.56ms。程序中必須設(shè)計(jì)一精確的0.1ms延時(shí)時(shí)間作為基礎(chǔ)時(shí)間,以計(jì)數(shù)實(shí)際的波形寬度,若讀值為5表示波形寬度為0.5ms,若讀值為16表示波形寬度為1.

27、6ms,以此類推。高電平的寬度1.12ms為固定,因此可以直接判斷低電平的寬度的計(jì)數(shù)值5或時(shí)16,來確定編碼為0或是1。程序中可以減法指令SUBB來完成判斷,指令“SUBB A,R2”中若R2為計(jì)數(shù)值,A寄存器設(shè)為8,就可如下:l 當(dāng)“8R2”有產(chǎn)生借位,借位標(biāo)志C=1,表示編碼為1。l 當(dāng)“8R2”無(wú)產(chǎn)生借位,借位標(biāo)志C=0,表示編碼為0。將借位標(biāo)志C經(jīng)過右移指令“RRC A”轉(zhuǎn)入A寄存器中,再經(jīng)由R0寄存器間接尋址存入內(nèi)存中。詳細(xì)解碼程序請(qǐng)參看“紅外遙控爬蟲機(jī)器人ASM程序”中的“紅外解碼子程序”。五、控制程序; 紅外遙控爬蟲機(jī)器人ASM程序;-HOMEEQU 14 ;伺服馬達(dá)回到中點(diǎn)時(shí)間

28、常數(shù)BACKEQU 3 ;伺服馬達(dá)反轉(zhuǎn)時(shí)間常數(shù)FOR EQU 25 ;伺服馬達(dá)正轉(zhuǎn)時(shí)間常數(shù); -;遙控器按鍵16比較碼CODE_K1 EQU 19H ;機(jī)器人前進(jìn)比較碼CODE_K2 EQU 18H ;機(jī)器人后退比較碼CODE_K3 EQU 0AH ;機(jī)器人左轉(zhuǎn)比較碼CODE_K4 EQU 09H ;機(jī)器人右轉(zhuǎn)比較碼CODE_K5 EQU 0BH ;機(jī)器人回到中點(diǎn)比較碼CODE_K6 EQU 14H ;機(jī)器人行走啟動(dòng)進(jìn)比較碼; -IRCOM EQU 30H ;紅外線信號(hào)解碼數(shù)據(jù)放置變量起始地址COM EQU 32H ;比較第3字節(jié)變量; -IRIN EQU P3.2 ;紅外線IR信號(hào)輸入位引腳

29、定義WLEDEQU P3.7 ;發(fā)光二極管引腳定義SPK EQU P3.4 ;壓電喇叭引腳定義DJZ EQU P1.0 ;中間伺服馬達(dá)引腳定義DJL EQU P1.1 ;左側(cè)伺服馬達(dá)引腳定義DJR EQU P1.2 ;右側(cè)伺服馬達(dá)引腳定義; -ORG 0H ;程序代碼由地址0開始執(zhí)行JMP BEGIN ;進(jìn)入主程序; -BEGIN:CLR DJZ ;關(guān)閉中間伺服馬達(dá) CLR DJL ;關(guān)閉左側(cè)伺服馬達(dá)CLR DJR ;關(guān)閉右側(cè)伺服馬達(dá)CLR SPK ;關(guān)閉壓電喇叭 CALL LED_BL ;發(fā)光二極管閃爍,表示程序開始執(zhí)行 CALL BZ ;壓電喇叭發(fā)出嘀的一聲 CALL GO_HOME ;全

30、部伺服馬達(dá)回到中點(diǎn) CALL LED_BL ;發(fā)光二極管閃爍,表示機(jī)器人準(zhǔn)備完畢 CALL BZ ;壓電喇叭發(fā)出嘀的一聲CALL QD ;運(yùn)行行走啟動(dòng)子程序,擺好行走姿態(tài)SETB IRIN ;紅外線信號(hào)IR輸入位設(shè)為高電平,準(zhǔn)備接收紅外信號(hào)LOOP:MOV R0,#IRCOM ;設(shè)置IR解碼起始地址CALL IR_IN ;進(jìn)行IR解碼CALL OP ;進(jìn)行解碼比較,并控制機(jī)器人動(dòng)作 JMP LOOP ;繼續(xù)循環(huán)執(zhí)行; -DELAY:MOV R6,#50 ;10ms延時(shí)子程序D1: MOV R7,#99 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET; -LED_B

31、L: MOV R1,#4 ;發(fā)光二極管閃爍子程序LE1: CPL WLED ;發(fā)光二極管反向 MOV R5,#10 CALL DELAY ;進(jìn)行100ms延時(shí) DJNZ R1,LE1 RET; -BZ: MOV R6,#0 ;壓電喇叭發(fā)聲子程序B1: SETB SPK ;壓電喇叭得電,開始發(fā)聲 DJNZ R6,B1 MOV R5,#5CALL DELAY ;進(jìn)行50ms延時(shí) CLR SPK ;關(guān)閉壓電喇叭 RET; -DEL: ;0.1ms延時(shí)子程序 MOV R5,#1DELAY1: MOV R6,#2E1: MOV R7,#22E2: DJNZ R7,E2 DJNZ R6,E1 DJNZ R

32、5,DELAY1 RET; -IR_IN: ;紅外解碼子程序I1:JNB IRIN,I2 ;等待紅外IR信號(hào)出現(xiàn)JMP I1I2:MOV R4,#20 ;發(fā)現(xiàn)紅外IR信號(hào),延時(shí)一下I20:CALL DELDJNZ R4,I20JB IRIN,I1 ;確認(rèn)紅外IR信號(hào)出現(xiàn)I21:JB IRIN,I3 ;等待IR變?yōu)楦唠娖紺ALL DELJMP I21I3:MOV R3,#0 ;8位數(shù)清0LL:JNB IRIN,I4 ;等待IR變?yōu)榈碗娖紺ALL DELJMP LLI4:JB IRIN,I5 ;等待IR變?yōu)楦唠娖紺ALL DELJMP I4I5:MOV R2,#0 ;0.1ms 計(jì)數(shù)L1:CALL

33、 DELJB IRIN,N1 ;等待IR變?yōu)楦唠娖組OV A,#8 ;設(shè)置減數(shù)為8CLR C ;清除借位標(biāo)志CSUBB A,R2 ;判斷高低位MOV A,R0 ;取出內(nèi)存中原先數(shù)據(jù)RRC A ;右移指令,將借位標(biāo)志C右移進(jìn)入A寄存器中 MOV R0, A ;將數(shù)據(jù)寫入內(nèi)存中 INC R3 ;處理完成一位,R3+1(R3計(jì)數(shù))CJNE R3,#8, LL ;循環(huán)處理8位MOV R3,#0 ;R3清0INC R0 ;處理完成1個(gè)字節(jié),R0+1(R0計(jì)數(shù))CJNE R0,#34H, LL ;循環(huán)收集到4個(gè)字節(jié)JMP OK ;至完成返回N1:INC R2 ;R2+1(R2計(jì)數(shù))CJNE R2,#30,

34、 L1 ;0.1ms 計(jì)數(shù)過長(zhǎng),時(shí)間到自動(dòng)離開OK:RET ;完成返回; -OP: 執(zhí)行解碼動(dòng)作子程序MOV A,COMCJNE A,#CODE_K5, A1 ;對(duì)解碼進(jìn)行比較,看是否是回到中點(diǎn)指令,否就轉(zhuǎn)至下一項(xiàng)比較CALL LED_BL ;發(fā)光二極管閃爍CALL BZ ;壓電喇叭發(fā)出嘀的一聲CALL GO_HOME ;執(zhí)行回到中點(diǎn)CALL LED_BL ;發(fā)光二極管閃爍CALL BZ ;壓電喇叭發(fā)出嘀的一聲RETA1:MOV A,COMCJNE A,#CODE_K1, A2 ;對(duì)解碼進(jìn)行比較,看是否是前進(jìn)指令,否就轉(zhuǎn)至下一項(xiàng)比較CALL BZ ;壓電喇叭發(fā)出嘀的一聲CALL GO_FOR

35、;執(zhí)行前進(jìn) RETA2:MOV A,COMCJNE A,#CODE_K2, A3 ;對(duì)解碼進(jìn)行比較,看是否是后退指令,否就轉(zhuǎn)至下一項(xiàng)比較CALL BZ ;壓電喇叭發(fā)出嘀的一聲 CALL GO_BACK ;執(zhí)行后退 RETA3: ;LMOV A,COMCJNE A,#CODE_K3, A4 ;對(duì)解碼進(jìn)行比較,看是否是左轉(zhuǎn)指令,否就轉(zhuǎn)至下一項(xiàng)比較CALL BZ ;壓電喇叭發(fā)出嘀的一聲 CALL GO_L ;執(zhí)行左轉(zhuǎn) RETA4: ;R MOV A,COM CJNE A,#CODE_K4, A5 ;對(duì)解碼進(jìn)行比較,看是否是右轉(zhuǎn)指令,否就轉(zhuǎn)至下一項(xiàng)比較CALL BZ ;壓電喇叭發(fā)出嘀的一聲 CALL

36、GO_R ;執(zhí)行右轉(zhuǎn)RETA5:MOV A,COMCJNE A,#CODE_K6, A6 ;對(duì)解碼進(jìn)行比較,看是否是行走啟動(dòng)指令,否就轉(zhuǎn)至下一項(xiàng)CALL LED_BL ;發(fā)光二極管閃爍CALL BZ ;壓電喇叭發(fā)出嘀的一聲 CALL QD ;執(zhí)行行走啟動(dòng)CALL LED_BL ;發(fā)光二極管閃爍CALL BZ ;壓電喇叭發(fā)出嘀的一聲 RETA6: RET ;返回; -HOME1: SETB DJZ ;各伺服電機(jī)回中點(diǎn)控制子程序 SETB DJLSETB DJRMOV R4,#HOMEG1:CALL DELDJNZ R4,G1CLR DJZCLR DJLCLR DJRMOV R4,#(200-HO

37、ME)G2:CALL DELDJNZ R4,G2RET; -GO_HOME: MOV R3,#15 ;機(jī)器人回中點(diǎn)子程序H1: CALL HOME1 DJNZ R3,H1 RET ; -DJZ_FOR: SETB DJZ ;中間電機(jī)正轉(zhuǎn)子程序 MOV R4,#FORFZ1: CALL DEL DJNZ R4,FZ1 CLR DJZ MOV R4,#(200-FOR)FZ2: CALL DEL DJNZ R4,FZ2 RET ; -DJL_FOR: SETB DJL ;左側(cè)電機(jī)正轉(zhuǎn)子程序 MOV R4,#FORFL1: CALL DEL DJNZ R4,FL1 CLR DJL MOV R4,#(200-FOR)FL2: CALL DEL DJNZ R4,FL2 RET ; -DJR_FOR: SETB DJR ;右側(cè)電機(jī)正轉(zhuǎn)子程序 MOV R4,#FORFR1: CALL DEL DJNZ R4,FR1 CLR DJR MOV

溫馨提示

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

評(píng)論

0/150

提交評(píng)論