機器人項目研究報告_第1頁
機器人項目研究報告_第2頁
機器人項目研究報告_第3頁
機器人項目研究報告_第4頁
機器人項目研究報告_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

機器人工程研究報告有一位同學過生日,我們?nèi)ベI生日蛋糕時就想,能否自己制作一臺機器人,讓機器人來做我們自己設計的蛋糕。機器人做蛋糕的好處在于它還可以完成一些手工難以精確繪制的圖形,比方圓錐曲線或者比擬復雜的幾何圖形組之類。此外,假設把原材料換一下,改一下機器結(jié)構(gòu),就能讓它做煎餅,做冰淇淋。所以說,這個機器人還可以有更廣泛的外延應用。經(jīng)過調(diào)查,我們在網(wǎng)上和資料中沒有發(fā)現(xiàn)任何團體或個人正在制作或已經(jīng)做出類似的產(chǎn)品。我們的根本思路是:由中心電機將蛋糕坯帶入加工的各個工序,氣動系統(tǒng)配合液壓系統(tǒng)將奶油擠至蛋糕上,刮板將奶油刮平,單片機協(xié)調(diào)雙步進電機配合控制奶油嘴進行二維定位,在蛋糕外表噴出美麗的圖案。機器人的結(jié)構(gòu)和框架的主材料——使用鋁角鋼。噴花奶油罐——我們將獸醫(yī)注射器改造,并使其上部推壓板與氣筒固定為一體,這樣當氣筒通氣時,氣筒拉桿收縮,注射器便能擠出奶油。對于抹平奶油罐——我們同樣利用氣筒拉桿的推動,自制活塞將奶油擠出。在蛋糕坯上抹奶油的局部模擬了蛋糕師的抹平工具,奶油擠出后下部轉(zhuǎn)盤配合旋轉(zhuǎn),上板將蛋糕上外表奶油刮平,多余奶油擠至側(cè)邊,同時側(cè)板開了槽,這樣能直接刮出側(cè)外表的花紋。噴花奶油嘴的精確定位——我們采用極坐標計算方式,以圓盤中心為原點建立極坐標系,將圖形中的線轉(zhuǎn)化為兩個步進電機的轉(zhuǎn)角、轉(zhuǎn)速,同時計算單片機給步進電機脈沖的相應頻率,由單片機協(xié)調(diào)雙電機實現(xiàn)奶油嘴按特定路徑的精確定位。單片機使用了AVRATmega128單片機作為內(nèi)核,我們自己設計制做了外部電路。所有的機械結(jié)構(gòu)和軟件程序都是由我們自主設計并制作的。仿生六足探測機器人研究報告一、課題背景:仿生運動模式的多足步行機器人具有優(yōu)越的越障能力,它集仿生學原理、機構(gòu)學理論、自動控制原理與技術(shù)、計算機軟件開發(fā)技術(shù)、傳感器檢測技術(shù)和電機驅(qū)動技術(shù)于一體。不管在何種地面上行走,仿生六足機器人的運動都具有靈活性與變化性,但其精確控制的難度很大,需要有良好的控制策略與精密的軌跡規(guī)劃,這些都是很好的研究題材。二、工程創(chuàng)新點:作為簡單的關節(jié)型伺服機構(gòu),仿生六足機器人能夠?qū)崿F(xiàn)實時避障,合理規(guī)劃行走路線。簡單的關節(jié)型機器人伺服系統(tǒng)不僅具有可批量制造的條件,作為今后機器人群系統(tǒng)的根本組成,也可以作為探索復雜伺服機構(gòu)的研究對象。三、研究內(nèi)容:1.仿生學原理分析:仿生式六足機器人,顧名思義,六足機器人在我們理想架構(gòu)中,我們借鑒了自然界昆蟲的運動原理。足是昆蟲的運動器官。昆蟲有3對足,在前胸、中胸和后胸各有一對,我們相應地稱為前足、中足和后足。每個足由基節(jié)、轉(zhuǎn)節(jié)、腿節(jié)、脛節(jié)、跗節(jié)和前跗節(jié)幾局部組成?;?jié)是足最基部的一節(jié),多粗短。轉(zhuǎn)節(jié)常與腿節(jié)緊密相連而不活動。腿節(jié)是最長最粗的一節(jié)。第四節(jié)叫脛節(jié),一般比擬細長,長著成排的刺。第五節(jié)叫跗節(jié),一般由2-5個亞節(jié)組成﹔為的是便于行走。在最末節(jié)的端部還長著兩個又硬又尖的爪,可以用它們來抓住物體。行走是以三條腿為一組進行的,即一側(cè)的前、后足與另一側(cè)的中足為一組。這樣就形成了一個三角形支架結(jié)構(gòu),當這三條腿放在地面并向后蹬時,另外三條腿即抬起向前準備替換。前足用爪固定物體后拉動蟲體向前,中足用來支持并舉起所屬一側(cè)的身體,后足那么推動蟲體前進,同時使蟲體轉(zhuǎn)向。這種行走方式使昆蟲可以隨時隨地停息下來,因為重心總是落在三角支架之內(nèi)。并不是所有成蟲都用六條腿來行走,有些昆蟲由于前足發(fā)生了特化,有了其他功用或退化,行走就主要靠中、后足來完成了。大家最為熟悉的要算螳螂了,我們常可看到螳螂一對鉗子般的前足高舉在胸前,而由后面四條足支撐地面行走。參考以上的昆蟲足部結(jié)構(gòu),我們想出了較簡單的方式來表達。一支腳共有兩個關節(jié)(假設沒有爪的情況下),一個關節(jié)采左右式移擺;另一個關節(jié)那么是采偏擺式,使腳可提高,當做上下運動的一種,結(jié)構(gòu)設計圖如下。運動學分析:六足步行機器人的步態(tài)是多樣的,其中三角步態(tài)是六足步行機器人實現(xiàn)步行的典型步態(tài)。三角步態(tài)介紹:“六足綱”昆蟲步行時,一般不是六足同時直線前進,而是將三對足分成兩組,以三角形支架結(jié)構(gòu)交替前行。目前,大局部六足機器人采用了仿昆蟲的結(jié)構(gòu),6條腿分布在身體的兩側(cè),身體左側(cè)的前、后足及右側(cè)的中足為一組,右側(cè)的前、后足和左側(cè)的中足為另一組,分別組成兩個三角形支架,依靠大腿前后劃動實現(xiàn)支撐和擺動過程,這就是典型的三角步態(tài)行走法,如下列圖所示。圖中機器人的髖關節(jié)在水平和垂直方向上運動。此時,B、D、F腳為擺動腳,A、C、E腳原地不動,只是支撐身體向前。由于身體重心低,不用協(xié)調(diào)Z向運動,容易穩(wěn)定,所以這種行走方案能得到廣泛運用?!?〕機器人行走步態(tài)分析:工程設計共使用12個舵機用于步態(tài)實現(xiàn)。每條腿上有兩個舵機,分別控制髖關節(jié)和膝關節(jié)的運動,舵機安裝呈正交,構(gòu)成垂直和水平方向的自由度。由于腿只有水平和垂直平面的運動自由度,所以只考慮利用三角步態(tài)實現(xiàn)直線行走。分別給12個舵機編號(1~12),如下圖。直線行走步態(tài)分析由1、2、5、6、9、10號舵機控制的A、C、E腿所處的狀態(tài)總保持一致〔都是正在擺動,或者都在支撐〕;同樣,3、4、7、8、11、12所控制的B、D、F腿的狀態(tài)也保持一致。當處在一個三角形內(nèi)的3條腿在支撐時,另3條腿正在擺動。支撐的3條腿使得身體前進,而擺動的腿對身體沒有力和位移的作用,只是使得小腿向前運動,做好接下去支撐的準備。步態(tài)函數(shù)的占空系數(shù)為0.5,支撐相和擺動相經(jīng)過調(diào)整,到達滿足平坦地形下的行走步態(tài)要求和穩(wěn)定裕量需求。轉(zhuǎn)彎步態(tài)分析工程設計的機器人采用以一中足為中心的原地轉(zhuǎn)彎方式實現(xiàn)轉(zhuǎn)彎,下列圖為右轉(zhuǎn)的示意圖,圖中E腿為支撐中足。右轉(zhuǎn)彎運動的過程如下:1〕首先A、C、E腿抬起,然后A、C腿向前擺動,E腿保持不動,B、D、F腿支撐。2〕A、C、E腿落地支撐,同時B、D、F腿抬起保持不動。3〕A、C腿向后擺動。整個運動過程中B、D、E、F不做前后運動,只是上下運動。結(jié)構(gòu)設計:六足機器人的根本結(jié)構(gòu)的設計主要包括機器人足部關節(jié)自由度轉(zhuǎn)換結(jié)構(gòu)的設計和軀干整體支架的設計?!?〕足部結(jié)構(gòu):仿生六足機器人足部機構(gòu)主要是電機間的鏈接與自由度轉(zhuǎn)換結(jié)構(gòu)。采用Auto公司開發(fā)的3D機械制圖軟件輔助設計的方法,分析電機尺寸,設計固定作用的固定架,傳動作用的U型架。結(jié)構(gòu)通過平面鈑金加工制作,通過緊固件進行根本結(jié)構(gòu)件的連接。根本足部自由度轉(zhuǎn)換結(jié)構(gòu)設計實物圖。〔2〕軀干結(jié)構(gòu):經(jīng)過改良后的機器人軀干結(jié)構(gòu)在結(jié)構(gòu)設計軟件中的設計圖如下軀干結(jié)構(gòu)模擬圖整體結(jié)構(gòu)模擬圖驅(qū)動器與驅(qū)動原理:仿生六足機器人采用電動驅(qū)動的方式進行驅(qū)動驅(qū)動器采用微型直流角位移伺服電動機【舵機】。舵機原理舵機是一種結(jié)構(gòu)簡單的、集成化的直流伺服系統(tǒng),其內(nèi)部結(jié)構(gòu)由直流電機、減速齒輪、電位計和控制電路組成。舵機采用的驅(qū)動信號是脈沖比例調(diào)制信號(PWM),即在通常為20ms的周期內(nèi),輸入以0.5~2.5ms變化的脈沖寬度,對應的轉(zhuǎn)角范圍從O°變化到180°,脈沖寬度與轉(zhuǎn)角呈線性關系[5]??刂菩盘柧€提供一定脈寬的脈沖時,其輸出軸保持在相對應的角度上。假設舵機初始角度狀態(tài)在0°位置,那么電機只能朝一個方向運動,所以初始化的時候,應將所有電機的位置定在90°的位置。六足機器人腿部偶數(shù)舵機轉(zhuǎn)軸為垂直運動,控制機器人腿部抬起和放下;奇數(shù)舵機轉(zhuǎn)軸為水平轉(zhuǎn)動,控制機器人腿部前進和后退。舵機控制方法標準的舵機有3條導線,分別是:電源線、地線、控制線。電源線和地線用于提供舵機內(nèi)部的直流電機和控制線路所需的能源.電壓通常介于4~6V,一般取5V。給舵機供電電源應能提供足夠的功率??刂凭€的輸入是一個寬度可調(diào)的周期性方波脈沖信號,方波脈沖信號的周期為20ms(即頻率為50Hz)。當方波的脈沖寬度改變時,舵機轉(zhuǎn)軸的角度發(fā)生改變,角度變化與脈沖寬度的變化成正比。某型舵機的輸出軸轉(zhuǎn)角與輸入信號的脈沖寬度之間的關系可用下列圖表示。從上述舵機轉(zhuǎn)角的控制方法可看出,舵機的控制信號實質(zhì)是一個可嗣寬度的方波信號(PWM)。該方波信號可由FPGA、模擬電路或單片機來產(chǎn)生。采用FPGA本錢較高,用模擬電路來實現(xiàn)那么電路較復雜,不適合作多路輸出。一般采用單片機作舵機的控制器。〔2〕選型:輝盛SG90舵機參數(shù):扭矩:1.5KG/CM死區(qū):10us轉(zhuǎn)速:0.12秒/60度(4.8V)重量:9克22.7mm工作電壓4.8V-6V控制電路的硬件設計〔1〕電源模塊--驅(qū)動電路和抗干擾技術(shù)雙電源供電:舵機內(nèi)部是直流電機驅(qū)動,在帶載時啟停的瞬間會產(chǎn)生較大的峰值電流,將舵機供電電源與MCU和IC的供電電源分開,雙線供電能保證控制電路不受驅(qū)動電路產(chǎn)生不穩(wěn)定脈沖的干擾。為保證驅(qū)動器電源輸入的穩(wěn)定性,結(jié)合電路抗干擾技術(shù),采用適宜方法保證電路抗脈沖干擾、抗低頻干擾、抗共模干擾的能力,使12個電機的多驅(qū)動系統(tǒng)能夠穩(wěn)定工作。電源采用,鎳氫電池7.4V,1200mA,15CC;控制電路電源輸入由1117低壓差電壓調(diào)節(jié)轉(zhuǎn)換電路提供。驅(qū)動電路電源由LM2596DC-DC直流開關電壓轉(zhuǎn)換電路提供。〔2〕控制核心--單片機接口電路和傳感器檢測控制電路主要由1602顯示調(diào)試屏幕,12路舵機控制輸出,抗干擾等局部組成,結(jié)合PROTEUS仿真技術(shù),分析控制程序。原理圖如下:6.計算機與軟件開發(fā):單片機主控系統(tǒng):AVR單片機ATmega16軟件設計的根本思想軟件的主要功能是使機器人在向前行進的過程中能夠避開障礙物,即對12個舵機進行調(diào)度和控制??蓪④浖δ芊纸鉃椋阂荛_障礙物,首先應探測到障礙物,其次能繞開障礙物,這就要求機器人能完成前進、后退、左右轉(zhuǎn)彎等動作。動作協(xié)調(diào)完美性的實現(xiàn),要求了在任一時刻能夠做出12個舵機的同步動作控制。軟件設計中首先將前進、后退、左右轉(zhuǎn)彎等高層動作分解,具體到完成一個動作各個舵機所要完成的動作和時序。采用模塊化的設計思想,將對所有舵機的調(diào)度做成一個獨立的模塊,所有的高層動作都是通過調(diào)用底層舵機控制的模塊來完成。多個舵機的控制是采用多舵機分時控制的思想來實現(xiàn)的。程序采用C語言模塊化程序設計的根本思路程序模塊如下?!?〕驅(qū)動模塊:12路PWM驅(qū)動信號通過軟件計數(shù)法多路輸出利用MCU片內(nèi)定時器和I/O模塊控制輸出多路占空比可調(diào)的PWM控制信號多舵機分時控制思想由于單片機在某一時刻只能對一個中斷進行響應,所以一個單片機驅(qū)動多個舵機的條件是每個舵機產(chǎn)生的中斷時間間隔必須相互錯開。由于舵機的驅(qū)動周期內(nèi)的2次電平變化的最短時間是高電平的脈寬時間,即0.5~2.5ms,那么在不產(chǎn)生沖突的情況下,假設分時對多個舵機產(chǎn)生驅(qū)動信號,那么最多可實現(xiàn)的驅(qū)動舵機數(shù)量為20/2.5=8。就是說一個單片機最多可以控制8個舵機運行在完整轉(zhuǎn)角空間。采用多舵機分時控制的思想,可實現(xiàn)對12個舵機的協(xié)調(diào)控制。將12個舵機分成兩組,定時器0控制舵機1~6,定時器1控制舵機7~12,每個定時器在一個周期內(nèi)將產(chǎn)生12次定時器中斷。使數(shù)據(jù)發(fā)生錯誤也很難連續(xù)起來,大大提高整體的糾錯能力?!?〕動作模塊:將計算得到的機器人運動數(shù)據(jù)封裝為前進、后退、左轉(zhuǎn)、右轉(zhuǎn)的動作函數(shù)子程序。設計電機控制的速度伺服、角度伺服程序,采用流程控制法調(diào)用動作函數(shù)?!?〕傳感器模塊:針對傳感器檢測的輸入,傳感器檢測使用AVR單片機片內(nèi)引腳中斷資源,并且對不穩(wěn)定信號進行軟件濾波處理,增加控制系統(tǒng)的穩(wěn)定性?!?〕1602液晶顯示調(diào)試模塊:1602液晶顯示模塊顯示程序運行情況,作為程序調(diào)試的重要工具。通過單片機IO口引腳發(fā)送數(shù)據(jù),指令信息,顯示當前舵機實時運行狀態(tài)。(5)全局控制上位機程序:整合多模塊,形成系統(tǒng)化控制結(jié)構(gòu)圖如下。工程總結(jié)完成的設計:1.仿生學原理分析2.機構(gòu)學理論分析3.自動控制系統(tǒng)設計4.計算機軟件開發(fā)5.傳感器檢測控制系統(tǒng)設計6.電機驅(qū)動電路設計到達的要求:1.控制系統(tǒng)對12路驅(qū)動器的穩(wěn)定角度控制,速度控制。2.整體結(jié)構(gòu)與行走步態(tài)穩(wěn)定性到達要求。3.多種靜態(tài)步態(tài)與傳感器檢測控制一體化的實現(xiàn)。4.機器人能夠快速準確探測前方障礙物,針對不同情況探索行進路線。工程成果總結(jié):工程已經(jīng)設計制作出三代機器人樣本實物,經(jīng)過實際行走測試,穩(wěn)定性,速度,蔽障性能等參數(shù)到達甚至超過預先設定的指標。機器人相關參數(shù)與性能指標如下:重量:460g尺寸:160*100*40mm平均行走速度:0.06m/s平均功率:1.2A*5V=6W探測響應時間:約0.5s能夠在平地上進行前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等穩(wě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ù)前進{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ù)后退{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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論