機(jī)器人項(xiàng)目研究報(bào)告_第1頁
機(jī)器人項(xiàng)目研究報(bào)告_第2頁
機(jī)器人項(xiàng)目研究報(bào)告_第3頁
機(jī)器人項(xiàng)目研究報(bào)告_第4頁
機(jī)器人項(xiàng)目研究報(bào)告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

機(jī)器人工程研究報(bào)告有一位同學(xué)過生日,我們?nèi)ベI生日蛋糕時就想,能否自己制作一臺機(jī)器人,讓機(jī)器人來做我們自己設(shè)計(jì)的蛋糕。機(jī)器人做蛋糕的好處在于它還可以完成一些手工難以精確繪制的圖形,比方圓錐曲線或者比擬復(fù)雜的幾何圖形組之類。此外,假設(shè)把原材料換一下,改一下機(jī)器結(jié)構(gòu),就能讓它做煎餅,做冰淇淋。所以說,這個機(jī)器人還可以有更廣泛的外延應(yīng)用。經(jīng)過調(diào)查,我們在網(wǎng)上和資料中沒有發(fā)現(xiàn)任何團(tuán)體或個人正在制作或已經(jīng)做出類似的產(chǎn)品。我們的根本思路是:由中心電機(jī)將蛋糕坯帶入加工的各個工序,氣動系統(tǒng)配合液壓系統(tǒng)將奶油擠至蛋糕上,刮板將奶油刮平,單片機(jī)協(xié)調(diào)雙步進(jìn)電機(jī)配合控制奶油嘴進(jìn)行二維定位,在蛋糕外表噴出美麗的圖案。機(jī)器人的結(jié)構(gòu)和框架的主材料——使用鋁角鋼。噴花奶油罐——我們將獸醫(yī)注射器改造,并使其上部推壓板與氣筒固定為一體,這樣當(dāng)氣筒通氣時,氣筒拉桿收縮,注射器便能擠出奶油。對于抹平奶油罐——我們同樣利用氣筒拉桿的推動,自制活塞將奶油擠出。在蛋糕坯上抹奶油的局部模擬了蛋糕師的抹平工具,奶油擠出后下部轉(zhuǎn)盤配合旋轉(zhuǎn),上板將蛋糕上外表奶油刮平,多余奶油擠至側(cè)邊,同時側(cè)板開了槽,這樣能直接刮出側(cè)外表的花紋。噴花奶油嘴的精確定位——我們采用極坐標(biāo)計(jì)算方式,以圓盤中心為原點(diǎn)建立極坐標(biāo)系,將圖形中的線轉(zhuǎn)化為兩個步進(jìn)電機(jī)的轉(zhuǎn)角、轉(zhuǎn)速,同時計(jì)算單片機(jī)給步進(jìn)電機(jī)脈沖的相應(yīng)頻率,由單片機(jī)協(xié)調(diào)雙電機(jī)實(shí)現(xiàn)奶油嘴按特定路徑的精確定位。單片機(jī)使用了AVRATmega128單片機(jī)作為內(nèi)核,我們自己設(shè)計(jì)制做了外部電路。所有的機(jī)械結(jié)構(gòu)和軟件程序都是由我們自主設(shè)計(jì)并制作的。仿生六足探測機(jī)器人研究報(bào)告一、課題背景:仿生運(yùn)動模式的多足步行機(jī)器人具有優(yōu)越的越障能力,它集仿生學(xué)原理、機(jī)構(gòu)學(xué)理論、自動控制原理與技術(shù)、計(jì)算機(jī)軟件開發(fā)技術(shù)、傳感器檢測技術(shù)和電機(jī)驅(qū)動技術(shù)于一體。不管在何種地面上行走,仿生六足機(jī)器人的運(yùn)動都具有靈活性與變化性,但其精確控制的難度很大,需要有良好的控制策略與精密的軌跡規(guī)劃,這些都是很好的研究題材。二、工程創(chuàng)新點(diǎn):作為簡單的關(guān)節(jié)型伺服機(jī)構(gòu),仿生六足機(jī)器人能夠?qū)崿F(xiàn)實(shí)時避障,合理規(guī)劃行走路線。簡單的關(guān)節(jié)型機(jī)器人伺服系統(tǒng)不僅具有可批量制造的條件,作為今后機(jī)器人群系統(tǒng)的根本組成,也可以作為探索復(fù)雜伺服機(jī)構(gòu)的研究對象。三、研究內(nèi)容:1.仿生學(xué)原理分析:仿生式六足機(jī)器人,顧名思義,六足機(jī)器人在我們理想架構(gòu)中,我們借鑒了自然界昆蟲的運(yùn)動原理。足是昆蟲的運(yùn)動器官。昆蟲有3對足,在前胸、中胸和后胸各有一對,我們相應(yīng)地稱為前足、中足和后足。每個足由基節(jié)、轉(zhuǎn)節(jié)、腿節(jié)、脛節(jié)、跗節(jié)和前跗節(jié)幾局部組成?;?jié)是足最基部的一節(jié),多粗短。轉(zhuǎn)節(jié)常與腿節(jié)緊密相連而不活動。腿節(jié)是最長最粗的一節(jié)。第四節(jié)叫脛節(jié),一般比擬細(xì)長,長著成排的刺。第五節(jié)叫跗節(jié),一般由2-5個亞節(jié)組成﹔為的是便于行走。在最末節(jié)的端部還長著兩個又硬又尖的爪,可以用它們來抓住物體。行走是以三條腿為一組進(jìn)行的,即一側(cè)的前、后足與另一側(cè)的中足為一組。這樣就形成了一個三角形支架結(jié)構(gòu),當(dāng)這三條腿放在地面并向后蹬時,另外三條腿即抬起向前準(zhǔn)備替換。前足用爪固定物體后拉動蟲體向前,中足用來支持并舉起所屬一側(cè)的身體,后足那么推動蟲體前進(jìn),同時使蟲體轉(zhuǎn)向。這種行走方式使昆蟲可以隨時隨地停息下來,因?yàn)橹匦目偸锹湓谌侵Ъ苤畠?nèi)。并不是所有成蟲都用六條腿來行走,有些昆蟲由于前足發(fā)生了特化,有了其他功用或退化,行走就主要靠中、后足來完成了。大家最為熟悉的要算螳螂了,我們??煽吹襟胍粚︺Q子般的前足高舉在胸前,而由后面四條足支撐地面行走。參考以上的昆蟲足部結(jié)構(gòu),我們想出了較簡單的方式來表達(dá)。一支腳共有兩個關(guān)節(jié)(假設(shè)沒有爪的情況下),一個關(guān)節(jié)采左右式移擺;另一個關(guān)節(jié)那么是采偏擺式,使腳可提高,當(dāng)做上下運(yùn)動的一種,結(jié)構(gòu)設(shè)計(jì)圖如下。運(yùn)動學(xué)分析:六足步行機(jī)器人的步態(tài)是多樣的,其中三角步態(tài)是六足步行機(jī)器人實(shí)現(xiàn)步行的典型步態(tài)。三角步態(tài)介紹:“六足綱”昆蟲步行時,一般不是六足同時直線前進(jìn),而是將三對足分成兩組,以三角形支架結(jié)構(gòu)交替前行。目前,大局部六足機(jī)器人采用了仿昆蟲的結(jié)構(gòu),6條腿分布在身體的兩側(cè),身體左側(cè)的前、后足及右側(cè)的中足為一組,右側(cè)的前、后足和左側(cè)的中足為另一組,分別組成兩個三角形支架,依靠大腿前后劃動實(shí)現(xiàn)支撐和擺動過程,這就是典型的三角步態(tài)行走法,如下列圖所示。圖中機(jī)器人的髖關(guān)節(jié)在水平和垂直方向上運(yùn)動。此時,B、D、F腳為擺動腳,A、C、E腳原地不動,只是支撐身體向前。由于身體重心低,不用協(xié)調(diào)Z向運(yùn)動,容易穩(wěn)定,所以這種行走方案能得到廣泛運(yùn)用。〔2〕機(jī)器人行走步態(tài)分析:工程設(shè)計(jì)共使用12個舵機(jī)用于步態(tài)實(shí)現(xiàn)。每條腿上有兩個舵機(jī),分別控制髖關(guān)節(jié)和膝關(guān)節(jié)的運(yùn)動,舵機(jī)安裝呈正交,構(gòu)成垂直和水平方向的自由度。由于腿只有水平和垂直平面的運(yùn)動自由度,所以只考慮利用三角步態(tài)實(shí)現(xiàn)直線行走。分別給12個舵機(jī)編號(1~12),如下圖。直線行走步態(tài)分析由1、2、5、6、9、10號舵機(jī)控制的A、C、E腿所處的狀態(tài)總保持一致〔都是正在擺動,或者都在支撐〕;同樣,3、4、7、8、11、12所控制的B、D、F腿的狀態(tài)也保持一致。當(dāng)處在一個三角形內(nèi)的3條腿在支撐時,另3條腿正在擺動。支撐的3條腿使得身體前進(jìn),而擺動的腿對身體沒有力和位移的作用,只是使得小腿向前運(yùn)動,做好接下去支撐的準(zhǔn)備。步態(tài)函數(shù)的占空系數(shù)為0.5,支撐相和擺動相經(jīng)過調(diào)整,到達(dá)滿足平坦地形下的行走步態(tài)要求和穩(wěn)定裕量需求。轉(zhuǎn)彎步態(tài)分析工程設(shè)計(jì)的機(jī)器人采用以一中足為中心的原地轉(zhuǎn)彎方式實(shí)現(xiàn)轉(zhuǎn)彎,下列圖為右轉(zhuǎn)的示意圖,圖中E腿為支撐中足。右轉(zhuǎn)彎運(yùn)動的過程如下:1〕首先A、C、E腿抬起,然后A、C腿向前擺動,E腿保持不動,B、D、F腿支撐。2〕A、C、E腿落地支撐,同時B、D、F腿抬起保持不動。3〕A、C腿向后擺動。整個運(yùn)動過程中B、D、E、F不做前后運(yùn)動,只是上下運(yùn)動。結(jié)構(gòu)設(shè)計(jì):六足機(jī)器人的根本結(jié)構(gòu)的設(shè)計(jì)主要包括機(jī)器人足部關(guān)節(jié)自由度轉(zhuǎn)換結(jié)構(gòu)的設(shè)計(jì)和軀干整體支架的設(shè)計(jì)?!?〕足部結(jié)構(gòu):仿生六足機(jī)器人足部機(jī)構(gòu)主要是電機(jī)間的鏈接與自由度轉(zhuǎn)換結(jié)構(gòu)。采用Auto公司開發(fā)的3D機(jī)械制圖軟件輔助設(shè)計(jì)的方法,分析電機(jī)尺寸,設(shè)計(jì)固定作用的固定架,傳動作用的U型架。結(jié)構(gòu)通過平面鈑金加工制作,通過緊固件進(jìn)行根本結(jié)構(gòu)件的連接。根本足部自由度轉(zhuǎn)換結(jié)構(gòu)設(shè)計(jì)實(shí)物圖?!?〕軀干結(jié)構(gòu):經(jīng)過改良后的機(jī)器人軀干結(jié)構(gòu)在結(jié)構(gòu)設(shè)計(jì)軟件中的設(shè)計(jì)圖如下軀干結(jié)構(gòu)模擬圖整體結(jié)構(gòu)模擬圖驅(qū)動器與驅(qū)動原理:仿生六足機(jī)器人采用電動驅(qū)動的方式進(jìn)行驅(qū)動驅(qū)動器采用微型直流角位移伺服電動機(jī)【舵機(jī)】。舵機(jī)原理舵機(jī)是一種結(jié)構(gòu)簡單的、集成化的直流伺服系統(tǒng),其內(nèi)部結(jié)構(gòu)由直流電機(jī)、減速齒輪、電位計(jì)和控制電路組成。舵機(jī)采用的驅(qū)動信號是脈沖比例調(diào)制信號(PWM),即在通常為20ms的周期內(nèi),輸入以0.5~2.5ms變化的脈沖寬度,對應(yīng)的轉(zhuǎn)角范圍從O°變化到180°,脈沖寬度與轉(zhuǎn)角呈線性關(guān)系[5]??刂菩盘柧€提供一定脈寬的脈沖時,其輸出軸保持在相對應(yīng)的角度上。假設(shè)舵機(jī)初始角度狀態(tài)在0°位置,那么電機(jī)只能朝一個方向運(yùn)動,所以初始化的時候,應(yīng)將所有電機(jī)的位置定在90°的位置。六足機(jī)器人腿部偶數(shù)舵機(jī)轉(zhuǎn)軸為垂直運(yùn)動,控制機(jī)器人腿部抬起和放下;奇數(shù)舵機(jī)轉(zhuǎn)軸為水平轉(zhuǎn)動,控制機(jī)器人腿部前進(jìn)和后退。舵機(jī)控制方法標(biāo)準(zhǔn)的舵機(jī)有3條導(dǎo)線,分別是:電源線、地線、控制線。電源線和地線用于提供舵機(jī)內(nèi)部的直流電機(jī)和控制線路所需的能源.電壓通常介于4~6V,一般取5V。給舵機(jī)供電電源應(yīng)能提供足夠的功率??刂凭€的輸入是一個寬度可調(diào)的周期性方波脈沖信號,方波脈沖信號的周期為20ms(即頻率為50Hz)。當(dāng)方波的脈沖寬度改變時,舵機(jī)轉(zhuǎn)軸的角度發(fā)生改變,角度變化與脈沖寬度的變化成正比。某型舵機(jī)的輸出軸轉(zhuǎn)角與輸入信號的脈沖寬度之間的關(guān)系可用下列圖表示。從上述舵機(jī)轉(zhuǎn)角的控制方法可看出,舵機(jī)的控制信號實(shí)質(zhì)是一個可嗣寬度的方波信號(PWM)。該方波信號可由FPGA、模擬電路或單片機(jī)來產(chǎn)生。采用FPGA本錢較高,用模擬電路來實(shí)現(xiàn)那么電路較復(fù)雜,不適合作多路輸出。一般采用單片機(jī)作舵機(jī)的控制器?!?〕選型:輝盛SG90舵機(jī)參數(shù):扭矩:1.5KG/CM死區(qū):10us轉(zhuǎn)速:0.12秒/60度(4.8V)重量:9克22.7mm工作電壓4.8V-6V控制電路的硬件設(shè)計(jì)〔1〕電源模塊--驅(qū)動電路和抗干擾技術(shù)雙電源供電:舵機(jī)內(nèi)部是直流電機(jī)驅(qū)動,在帶載時啟停的瞬間會產(chǎn)生較大的峰值電流,將舵機(jī)供電電源與MCU和IC的供電電源分開,雙線供電能保證控制電路不受驅(qū)動電路產(chǎn)生不穩(wěn)定脈沖的干擾。為保證驅(qū)動器電源輸入的穩(wěn)定性,結(jié)合電路抗干擾技術(shù),采用適宜方法保證電路抗脈沖干擾、抗低頻干擾、抗共模干擾的能力,使12個電機(jī)的多驅(qū)動系統(tǒng)能夠穩(wěn)定工作。電源采用,鎳氫電池7.4V,1200mA,15CC;控制電路電源輸入由1117低壓差電壓調(diào)節(jié)轉(zhuǎn)換電路提供。驅(qū)動電路電源由LM2596DC-DC直流開關(guān)電壓轉(zhuǎn)換電路提供。〔2〕控制核心--單片機(jī)接口電路和傳感器檢測控制電路主要由1602顯示調(diào)試屏幕,12路舵機(jī)控制輸出,抗干擾等局部組成,結(jié)合PROTEUS仿真技術(shù),分析控制程序。原理圖如下:6.計(jì)算機(jī)與軟件開發(fā):單片機(jī)主控系統(tǒng):AVR單片機(jī)ATmega16軟件設(shè)計(jì)的根本思想軟件的主要功能是使機(jī)器人在向前行進(jìn)的過程中能夠避開障礙物,即對12個舵機(jī)進(jìn)行調(diào)度和控制??蓪④浖δ芊纸鉃椋阂荛_障礙物,首先應(yīng)探測到障礙物,其次能繞開障礙物,這就要求機(jī)器人能完成前進(jìn)、后退、左右轉(zhuǎn)彎等動作。動作協(xié)調(diào)完美性的實(shí)現(xiàn),要求了在任一時刻能夠做出12個舵機(jī)的同步動作控制。軟件設(shè)計(jì)中首先將前進(jìn)、后退、左右轉(zhuǎn)彎等高層動作分解,具體到完成一個動作各個舵機(jī)所要完成的動作和時序。采用模塊化的設(shè)計(jì)思想,將對所有舵機(jī)的調(diào)度做成一個獨(dú)立的模塊,所有的高層動作都是通過調(diào)用底層舵機(jī)控制的模塊來完成。多個舵機(jī)的控制是采用多舵機(jī)分時控制的思想來實(shí)現(xiàn)的。程序采用C語言模塊化程序設(shè)計(jì)的根本思路程序模塊如下。〔1〕驅(qū)動模塊:12路PWM驅(qū)動信號通過軟件計(jì)數(shù)法多路輸出利用MCU片內(nèi)定時器和I/O模塊控制輸出多路占空比可調(diào)的PWM控制信號多舵機(jī)分時控制思想由于單片機(jī)在某一時刻只能對一個中斷進(jìn)行響應(yīng),所以一個單片機(jī)驅(qū)動多個舵機(jī)的條件是每個舵機(jī)產(chǎn)生的中斷時間間隔必須相互錯開。由于舵機(jī)的驅(qū)動周期內(nèi)的2次電平變化的最短時間是高電平的脈寬時間,即0.5~2.5ms,那么在不產(chǎn)生沖突的情況下,假設(shè)分時對多個舵機(jī)產(chǎn)生驅(qū)動信號,那么最多可實(shí)現(xiàn)的驅(qū)動舵機(jī)數(shù)量為20/2.5=8。就是說一個單片機(jī)最多可以控制8個舵機(jī)運(yùn)行在完整轉(zhuǎn)角空間。采用多舵機(jī)分時控制的思想,可實(shí)現(xiàn)對12個舵機(jī)的協(xié)調(diào)控制。將12個舵機(jī)分成兩組,定時器0控制舵機(jī)1~6,定時器1控制舵機(jī)7~12,每個定時器在一個周期內(nèi)將產(chǎn)生12次定時器中斷。使數(shù)據(jù)發(fā)生錯誤也很難連續(xù)起來,大大提高整體的糾錯能力。〔2〕動作模塊:將計(jì)算得到的機(jī)器人運(yùn)動數(shù)據(jù)封裝為前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)的動作函數(shù)子程序。設(shè)計(jì)電機(jī)控制的速度伺服、角度伺服程序,采用流程控制法調(diào)用動作函數(shù)?!?〕傳感器模塊:針對傳感器檢測的輸入,傳感器檢測使用AVR單片機(jī)片內(nèi)引腳中斷資源,并且對不穩(wěn)定信號進(jìn)行軟件濾波處理,增加控制系統(tǒng)的穩(wěn)定性?!?〕1602液晶顯示調(diào)試模塊:1602液晶顯示模塊顯示程序運(yùn)行情況,作為程序調(diào)試的重要工具。通過單片機(jī)IO口引腳發(fā)送數(shù)據(jù),指令信息,顯示當(dāng)前舵機(jī)實(shí)時運(yùn)行狀態(tài)。(5)全局控制上位機(jī)程序:整合多模塊,形成系統(tǒng)化控制結(jié)構(gòu)圖如下。工程總結(jié)完成的設(shè)計(jì):1.仿生學(xué)原理分析2.機(jī)構(gòu)學(xué)理論分析3.自動控制系統(tǒng)設(shè)計(jì)4.計(jì)算機(jī)軟件開發(fā)5.傳感器檢測控制系統(tǒng)設(shè)計(jì)6.電機(jī)驅(qū)動電路設(shè)計(jì)到達(dá)的要求:1.控制系統(tǒng)對12路驅(qū)動器的穩(wěn)定角度控制,速度控制。2.整體結(jié)構(gòu)與行走步態(tài)穩(wěn)定性到達(dá)要求。3.多種靜態(tài)步態(tài)與傳感器檢測控制一體化的實(shí)現(xiàn)。4.機(jī)器人能夠快速準(zhǔn)確探測前方障礙物,針對不同情況探索行進(jìn)路線。工程成果總結(jié):工程已經(jīng)設(shè)計(jì)制作出三代機(jī)器人樣本實(shí)物,經(jīng)過實(shí)際行走測試,穩(wěn)定性,速度,蔽障性能等參數(shù)到達(dá)甚至超過預(yù)先設(shè)定的指標(biāo)。機(jī)器人相關(guān)參數(shù)與性能指標(biāo)如下:重量:460g尺寸:160*100*40mm平均行走速度:0.06m/s平均功率:1.2A*5V=6W探測響應(yīng)時間:約0.5s能夠在平地上進(jìn)行前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等穩(wěn)定步行能夠準(zhǔn)確探測前方障礙物,根據(jù)不同情況執(zhí)行適宜的步態(tài),探索行走路徑五.附錄程序://===========主程序main.c================//#include<avr/io.h>#include<util/delay.h>#include<1602LCD.h>#include<avr/interrupt.h>#defineucharunsignedchar#defineuintunsignedintucharf[12];ucharm[12][7];ucharsign,rooptime,roopnum;uchardirec;ucharcanmove=1;ucharrun=0;charparameter[12]={9,-9,-15,3,9,-3,-13,6,8,9,-14,-10};voidsys_init(void){DDRA=0xe0;DDRB=0xff;DDRC=0xff;DDRD=0x0f;PORTA=0x1f;PORTB=0x00;PORTC=0x00;PORTD=0xf0;TCCR2=0x0a;OCR2=10;TIMSK|=0x80;Lcd_init();_delay_ms(1000);}voidresidual(void){uchari,j;for(i=0;i<12;i++)f[i]+=parameter[i];for(i=0;i<12;i++)for(j=0;j<7;j++)m[i][j]+=parameter[i];}voidgait1(void)//動作函數(shù)前進(jìn){uchari;roopnum=4;rooptime=6;sign=0;i=0;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=1;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=2;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=3;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=4;m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=5;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=6;m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=7;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=8;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=9;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=10;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=11;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;for(i=0;i<12;i++)f[i]=m[i][3];residual();}voidgait2(void)//動作函數(shù)后退{(lán)uchari;roopnum=4;rooptime=6;sign=0;i=0;m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=1;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=2;m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=3;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=4;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=5;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=6;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=7;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=8;m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=9;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=10;m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=11;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;for(i=0;i<12;i++)f[i]=m[i][3];residual();}voidgait3(void)//動作函數(shù)左轉(zhuǎn){uchari;roopnum=4;rooptime=6;sign=0;i=0;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=1;m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=2;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=3;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=4;m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=5;m[i][0]=150;m[i][1]=155;m[i][2]=150;m[i][3]=145;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=6;m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=7;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=8;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=9;m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=10;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=11;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;for(i=0;i<12;i++)f[i]=m[i][3];residual();}voidgait4(void)//動作函數(shù)右轉(zhuǎn){uchari;roopnum=4;rooptime=6;sign=0;i=0;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=1;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=2;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=3;m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=4;m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=5;m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=6;m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=7;m[i][0]=150;m[i][1]=155;m[i][2]=150;m[i][3]=145;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=8;m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=9;m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=10;m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;i=11;m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;for(i=0;i<12;i++)f[i]=m[i][3];residual();}ISR(TIMER2_COMP_vect)//定時器2比擬匹配中斷{staticuinttime=0,rtime;uchari;time++;if(time==2000){ PORTB=0xff; PORTD=0xff; time=1; }if(time==1000&&canmove){if(rtime<rooptime)rtime++;else{rtime=0;sign++;if(sign==roopnum)sign=0; }for(i=0;i<12;i++) { if(sign==0) f[i]=((rooptime-rtime)*m[i][roopnum-1]+rtime*m[i][0])/rooptime; else f[i]=((rooptime-rtime)*m[i][sign-1]+rtime*m[i][sign])/rooptime; } }if(time<400&&time>0){if(f[0]==time+100)PORTB&=0xfe;if(f[1]==time+100)PORTB&=0xfd;if(f[2]==time+100)PORTB&=0xfb; if(f[3]==time+100)PORTB&=0xf7; if(f[4]==time+100)PORTB&=0xef; if(f[5]==time+100)PORTB&=0xdf; if(f[6]==time+100)PORTB&=0xbf; if(f[7]==time+100)PORTB&=0x7f; if(f[8]==time+100)PORTD&=0xfe; if(f[9]==time+100)PORTD&=0xfd; if(f[10]==time+100)PORTD&=0xfb; if(f[11]==time+100)PORTD&=0xf7; }if(time==400){PORTB&=0x00;PORTD&=0xf0;}}uchargetkey(void){ucharkey;if((PINA&0x1f)!=0x1f){ _delay_us(50); if((PINA&0x1f)!=0x1f) { key=(PINA&0x1f); while((PINA&0x1f)!=0x1f); returnkey; } }return0;}intmain(void){ucharflag,flag1;flag=0;uintrun=0;sys_init();_delay_ms(1000);sei();//開總中斷gait1();for(;;){flag1=(PIND&0xc0);if(flag!=flag1&&run>5000){if(flag1==0xc0){flag=flag1;cli();_delay_ms(10);gait1();sei();}if(flag1==0x00){flag=flag1;cli();_delay_ms(10);gait2();sei();}if(flag1==0x40){flag=flag1;cli();_delay_ms(10);gait4();sei();}if(flag1==0x80){flag=flag1;cli();_delay_ms(10);gait3();sei();}run=0;}run++;};}//===========1602.h================//#ifndefUSE_1602LCD_H_#defineUSE_1602LCD_H_#include<avr/io.h>#include<util/delay.h>#defineucharunsignedchar#defineuintunsignedint#defineCom_PortPORTA//指令口#definePrint_PortPORTC//數(shù)據(jù)口#defineRS_setCom_Port|=(1<<7)#defineRS_clrCom_Port&=~(1<<7)#defineRW_setCom_Port|=(1<<6)#defineRW_clrCom_Port&=~(1<<6)#defineE_setCom_Port|=(1<<5)#defineE_

溫馨提示

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

最新文檔

評論

0/150

提交評論