freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

六腳爬蟲機(jī)器人的機(jī)械結(jié)構(gòu)以及控制程序設(shè)計(jì)-資料下載頁

2025-06-23 00:42本頁面
  

【正文】 //1腳后退至初位 k=single1no[0]。 l=channelno[k]。 SendPacket(s*4, l, backwardposi[k])。 注:其它腳的程序略去,與1腳一致}相對于上面兩個(gè)程序,單腳步態(tài)的程序作了一定簡化,因?yàn)閿?shù)組中只有三個(gè)值,有時(shí)便不需要用到for循環(huán)。機(jī)器人不光要回直行,如果遇到障礙物,還要學(xué)會轉(zhuǎn)彎避讓,或者采用類似螃蟹一樣的橫爬方式也可。右轉(zhuǎn),與四腳步態(tài)相同,只是每一對腳起步時(shí),左腳起腳前邁,而右腳起腳后擺。順序?yàn)椋鹤竽_:抬腿——前擺——下落——后擺右腳:抬腿——后擺——下落——前擺其余動作時(shí)間等均與四腳步態(tài)相同。左轉(zhuǎn),與右轉(zhuǎn)相反。順序?yàn)椋鹤竽_:抬腿——后擺——下落——前擺右腳:抬腿——前擺——下落——后擺從上面的動作順序可見,舵機(jī)左右運(yùn)動方向恰好相反,反應(yīng)在數(shù)值變化符號上則是正好一致,所以程序中無需用到forward[18]等數(shù)組。以右轉(zhuǎn)為例,具體程序?yàn)椋簐oid rotateright(int time){ int i,j,k,l=0。 Initservo1()。 for(i=0。itime。i++) { for(j=0。j4。j++) //5腳上抬 { k=quar15no[j]。 l=channelno[k]。 SendPacket(s, l, raiseposi[k])。 } delay_ms(Delayms1)。 for(j=4。j6。j++) //1腳前進(jìn)、5腳后退 { k=quar15no[j]。 l=channelno[k]。 SendPacket(s, l, initposi1[k]Stride1)。 } delay_ms(Delayms1)。 for(j=0。j4。j++) //5腳下降至初位 { k=quar15no[j]。 l=channelno[k]。 SendPacket(s, l, initposi1[k])。 } delay_ms(Delayms1)。 for(j=4。j6。j++) //1腳后退、5腳前進(jìn) { k=quar15no[j]。 l=channelno[k]。 SendPacket(s*3, l, initposi1[k]+Stride1)。 }注:6與4程序與上述一致,略去}其中Stride1為舵機(jī)變動幅度,其值為45,低于直行,避免幅度過大,行走不穩(wěn)。而橫爬程序就不那么容易了,它的值需要重新設(shè)定。關(guān)節(jié)號(數(shù)組號)初值抬腿前擺下落后擺0(0)900+00+001(1)655+100140+15+1252(2)685+100向內(nèi)15175+1903(6)655+00+004(4)710+100140+15+1255(5)720+10015175+1906(6)680+00+007(7)614+100140+15+1258(8)820+10015175+19031(9)645+0+0+0030(10)850100+125+1514029(11)815100向內(nèi)+1901751528(12)785+0+0+0027(13)850100+125+1514026(14)855100+1901751525(15)890+0+0+0024(16)925100+125+1514023(17)915100+19017515 右移舵機(jī)數(shù)值從上表中可以看出,數(shù)據(jù)不再具備規(guī)律性,那么在書寫程序時(shí),便要一步步書寫了。對于左移,其數(shù)據(jù)恰與右移相反,只需將第四列與第六列的數(shù)據(jù)對換,便分別取相反數(shù)即可。以右移為例,其部分程序?yàn)椋簐oid crabright(int time){ int i=0。 for(i=0。itime。i++) { //5 抬腿 SendPacket(s, 1, initposi2[1]+100)。 SendPacket(s, 2, initposi2[2]+100)。 SendPacket(s, 27, initposi2[13]100)。 SendPacket(s, 26, initposi2[14]20)。 delay_ms(Delayms)。 //5收縮 SendPacket(s, 1, initposi2[1]40)。 SendPacket(s, 2, initposi2[2]+45)。 SendPacket(s, 27, initposi2[13]+25)。 SendPacket(s, 26, initposi2[14]+50)。 delay_ms(Delayms)。 //5外推 SendPacket(s*2, 1, initposi2[1]25)。 SendPacket(s*2, 2, initposi2[2]50)。 SendPacket(s*2, 27, initposi2[13]+40)。 SendPacket(s*2, 26, initposi2[14]45)。注:6與4腳程序略去}從程序中不難發(fā)現(xiàn),實(shí)際程序編寫值與表中所列值是有區(qū)別的,這是因?yàn)?,在調(diào)試過程中可以知道,如果按表中的值來運(yùn)行的話,在很多舵機(jī)還未到達(dá)設(shè)定點(diǎn)時(shí),便要完成下一個(gè)動作,單純通過改動延遲時(shí)間,會使得機(jī)器人行走時(shí)不那么順暢,產(chǎn)生動作停頓,影響觀賞性。為使機(jī)器人更加智能化,功能更強(qiáng)大, 一個(gè)簡單的方法就是在其上加上各種傳感器,探知外界,再通過主控制器,來完成相應(yīng)動作。按照調(diào)試順序,下面將對用到的傳感器進(jìn)行一一介紹。需提出的是,傳感器的基本功能程序在本文中就不介紹了,主要介紹傳感器的基本情況與應(yīng)用,當(dāng)然會提及到一點(diǎn)如何將單一的傳感器程序集成到總的控制程序中來。 指南針傳感器Hitachi HM55B(29123)是Parallax推出的一款可以測量方向的指南針傳感器。它是通過內(nèi)部安裝的雙軸磁場傳感器測量周圍的磁場強(qiáng)度來探知當(dāng)前位置的朝向。通過函數(shù)pass(),即可測出方向值,其變化范圍為0~360。并隨著方向的連續(xù)變化數(shù)值發(fā)生連續(xù)變化。在調(diào)試時(shí),由于STM32與51單片機(jī)在接受數(shù)據(jù)存在不一致,故根據(jù)示數(shù)變化規(guī)律對51程序進(jìn)行了一定調(diào)整。相傳黃帝發(fā)明了指南車,當(dāng)然絕不是用了指南針傳感器,這里可以利用該傳感器來編寫一個(gè)按設(shè)定方向行走的程序控制機(jī)器人運(yùn)動。程序如下:void passlead(int direction) // 按設(shè)定方向運(yùn)動{ int tempdirect,max,min。 tempdirect=pass()。 if(direction=355) //左分別為10度誤差 { max = direction+5360。 min = direction5。 if (tempdirectminamp。amp。tempdirect=min170) //向左增大 向右減小 rotateleft(1)。 else if(tempdirectmaxamp。amp。tempdirectmax+170) rotateright(1)。 else quarforward(1)。 } else if(direction5) { max = direction+5。 min = direction+3605。 if(tempdirectminamp。amp。tempdirectmin170) rotateleft(1)。 else if(tempdirectmaxamp。amp。tempdirect=max+170) rotateright(1)。 else quarforward(1)。 } else if(direction=170) {max = direction+5。 min = direction5。 if (tempdirectminamp。amp。tempdirectmax) quarforward(1)。 else if(tempdirectmaxamp。amp。tempdirectmax+170) rotateright(1)。 else rotateleft(1)。 } else { max = direction+5。 min = direction5。 if (tempdirectminamp。amp。tempdirectmax) quarforward(1)。 else if(tempdirectminamp。amp。tempdirectmin170) rotateleft(1)。 else rotateright(1)。 } }由于指南針測試的不穩(wěn)定性,在同一個(gè)方向所測值也會有較大變化,同時(shí)機(jī)器人的動作不能分割,轉(zhuǎn)動一步角度是固定的,還有一點(diǎn),傳感器所測值在0和360間會發(fā)生突變,這些為編程帶來了麻煩。為此,如程序中所示的,為傳感器提供了10176。的變化范圍。這樣,當(dāng)測試值與不在設(shè)定值范圍內(nèi)時(shí),便要判斷當(dāng)前機(jī)器人朝向是在真值左邊還是右邊,然后以最短路徑完成方向調(diào)整。 紅外、光敏傳感器紅外傳感器分左右兩邊,且每邊都包括一個(gè)發(fā)送和接受器件。當(dāng)傳感器前方有物體阻擋時(shí),且障礙物在探測范圍內(nèi),傳感器便會返回一個(gè)低電平。通過左右兩邊的分別探測,便可控制機(jī)器人左右轉(zhuǎn)、后退等了??刂瞥绦?yàn)椋篿nt irsensor(void){ int irDetectLeft,irDetectRight。 while(1) { IRLaunch(39。R39。)。 //右邊發(fā)射 irDetectRight = GPIO_ReadInputDataBit(GPIOA,RIGHT_IR)。//右邊接收 IRLaunch(39。L39。)。 //左邊發(fā)射 irDetectLeft = GPIO_ReadInputDataBit(GPIOA,LEFT_IR)。 //左邊接收 if((irDetectLeft==0)amp。amp。(irDetectRight==0)) //后退 { quarbackward(1)。 rotateright(1)。 } else if((irDetectLeft==0)amp。amp。(irDetectRight==1)) //右轉(zhuǎn) rotateright(1)。 else if((irDetectLeft==1)amp。amp。(irDetectRight==0)) //左轉(zhuǎn) rotateleft(1)。 else //前進(jìn) quarforward(1)。 } }程序功能即:機(jī)器人每走一步,檢測一次;當(dāng)兩邊都檢測到障礙物時(shí),機(jī)器人后退,然后右轉(zhuǎn);當(dāng)僅左邊檢測到障礙物時(shí),機(jī)器人右轉(zhuǎn);當(dāng)僅右邊檢測到障礙物時(shí),機(jī)器人左轉(zhuǎn);當(dāng)未檢測到障礙物時(shí),機(jī)器人繼續(xù)前進(jìn)。Flexiforce(28017)傳感器是由Parallax公司生產(chǎn)的測量兩個(gè)表面間力的傳感器。它的原理是:當(dāng)接觸到的物體對傳感器壓力發(fā)生變化時(shí),傳感器的電容也會發(fā)生變化,通過內(nèi)部電路測量充放電時(shí)間,再經(jīng)過一系列變換,即可測出加載傳感器表面的力。每個(gè)柔性力傳感器除了兩個(gè)電源口外,只需配備一個(gè)I/O口。但一個(gè)腳分配一個(gè)I/O口,六個(gè)腳則共需要六個(gè)I/O口。所以在程序書寫時(shí),原先的柔性力傳感器程序需要加入一個(gè)SWITCH函數(shù),從而通過一個(gè)函數(shù)調(diào)用,測量六個(gè)值。首先配置I/O口;然后將原來的單一的柔性力程序改成flexiforce(leg),即在函數(shù)中添加SWITCH函數(shù),從而獲取每個(gè)腳底柔性力傳感器的輸出值。最后是將測量程序融入到行走程序中,即自由步態(tài)。自由步態(tài)的特點(diǎn)是,以基本的四腳步態(tài)形式行走,但行走過程中可以過起伏路面,而這就用到了柔性力傳感器。以前進(jìn)為例,行走步驟為:一、15腳上抬(215,四腳步態(tài)為150);二、15腳前進(jìn);三、15腳試探落地;四、15腳后退;五、234腳按15腳順序邁動。從上面可以發(fā)現(xiàn),除了第三步有變化外,其它的原理是一樣的,為此,僅介紹第三步的程序,用一個(gè)函數(shù)調(diào)用,如下:void SendPacket15(int speed) //5腳試探著地{ int i。 int posi1,posi2,posi3,posi4。 int inittime1 = fl
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1