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

正文內(nèi)容

六腳爬蟲機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)和控制系統(tǒng)搭建(文件)

 

【正文】 D5RXPA3PD6USART3TXPB10PC10(PD8)RXPB11PC11(PD9) 串行通信GPIO口及復(fù)用GPIO口注:表中的AFIO列為復(fù)用I/O口配置完USART后,便是如何使用了,這包括數(shù)據(jù)發(fā)送和接收。 0xFF)。 USART_FLAG_TXE))。 while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){} //等待接收完畢 out = (USART_ReceiveData(USART1))。 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET) {} } } 當(dāng)連續(xù)發(fā)送的字符很多時(shí),可以選用該函數(shù)以字符串形式發(fā)送。 i++) buf[i] = RByte()。由于主板的問題,本項(xiàng)目中并未使用UU3來實(shí)現(xiàn)其它串口通信,而是將所有的串口通信均由U1來實(shí)現(xiàn),這也是權(quán)宜之計(jì),即采用分時(shí)復(fù)用的原理。如果要實(shí)現(xiàn)搶占,則將它們配置成中斷模式即可,并配置好優(yōu)先級(jí)。外部中斷/事件控制器(EXTI)由19個(gè)產(chǎn)生事件/中斷請(qǐng)求的邊沿檢測(cè)器組成。當(dāng)外部中斷線上出現(xiàn)設(shè)定的邊沿信號(hào)時(shí),將產(chǎn)生一個(gè)中斷請(qǐng)求等待處理。 中斷線與GPIO口對(duì)應(yīng)關(guān)系(2)對(duì)EXTI線配置,以EXTI0為例,配置函數(shù)如下:void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure。 ④ = EXTI0_IRQn。 ⑧NVIC_Init(amp。⑥為配置占先式優(yōu)先級(jí)(主優(yōu)先級(jí)):高占先式優(yōu)先級(jí)的中斷會(huì)打斷當(dāng)前的主程序/中斷程序運(yùn)行,即所謂的中斷嵌套。但如果同時(shí)這兩個(gè)中斷同時(shí)到達(dá),則先執(zhí)行中斷優(yōu)先級(jí)高的,執(zhí)行完后,再執(zhí)行低優(yōu)先級(jí)中斷;如果兩個(gè)中斷的所有優(yōu)先級(jí)均一樣,則哪個(gè)中斷先到達(dá),就先執(zhí)行哪個(gè)中斷。如有需要,配置其它中斷。 ② = EXTI_Mode_Interrupt。EXTI_InitStructure)。 //LED閃爍函數(shù), EXTI_ClearITPendingBit(EXTI_Line0)。雖然沒有進(jìn)行任何重映射,但程序中必須加入AFIO使能這一行,PC13的中斷程序才能執(zhí)行。當(dāng)計(jì)數(shù)到 0 時(shí),SysTick 計(jì)數(shù)器便自動(dòng)重裝初值并繼續(xù)計(jì)數(shù),同時(shí)內(nèi)部的 COUNTFLAG 標(biāo)志會(huì)置位,觸發(fā)中斷 (如果中斷使能情況下)。= 0xfffffffb。 } ④①根據(jù)STK控制寄存器知,將0~2位設(shè)置成3,16位設(shè)置為1,則意味著:開啟Systick功能、開啟Systick中斷、使用HCLK/8作為Systick時(shí)鐘、上次讀取本寄存器后,Systick已經(jīng)數(shù)到了0;②根據(jù)①選用的時(shí)鐘書寫,調(diào)用時(shí)應(yīng)寫作delay_init(72);③、④可根據(jù)需要書寫。 //clear the counter SysTickCTRL = 0x01 。amp。 //close the counter SysTickVAL = 0X00。通用定時(shí)器是一個(gè)可編程預(yù)分頻器驅(qū)動(dòng)的16位自動(dòng)裝載計(jì)數(shù)器,適用于多種場(chǎng)合。 ① = 71。TIM_TimeBaseStructure)。 機(jī)器人行走步態(tài)程序編寫機(jī)器人步態(tài)有很多種,但最基本的步態(tài)包括:三腳步態(tài),四腳步態(tài)和波動(dòng)步態(tài)。 ②initposi[18]={900,755,785,655,810,820,680,714,920,645,750,715,785,750,755,890,825,815}。下面三個(gè)數(shù)組則是機(jī)器人處于不同狀態(tài)時(shí)的舵機(jī)位置初始值,此時(shí)每個(gè)腳第一關(guān)節(jié)均與身體垂直。關(guān)節(jié)號(hào)(數(shù)組號(hào))初始抬腿前擺下落后擺0(0)900+0150+0+1501(1)755+150+0150+02(2)785+150向內(nèi)+0150+03(6)655+0150+0+1504(4)810+150+0150+05(5)820+150+0150+06(6)680+0150+0+1507(7)715+150+0150+08(8)920+150+0150+031(9)645+0+150+015030(10)750150+0+150+029(11)715150向內(nèi)+0+150+028(12)785+0+150+015027(13)750150+0+150+026(14)755150+0+150+025(15)890+0+150+015024(16)825150+0+150+023(17)815150+0+150+0 機(jī)器人行走舵機(jī)值,第一列每三個(gè)一組,分別對(duì)應(yīng)腳6,括號(hào)中為使編程方便,提示的channelno數(shù)組號(hào)數(shù)。i18。 forwardposi[i] = initposi1[i]Stride。 lowerposi[i] = initposi1[i]。 case 1: case 2: case 4: case 5: case 7: case 8: raiseposi[i] = initposi1[i]+Stride*2。 break。 backwardposi[i] = initposi1[i]。在此基礎(chǔ)上,便可開始步態(tài)編程了。如此往復(fù),機(jī)器人便能向前運(yùn)動(dòng)了。 tri246no[9] = {4,5,10,11,16,17,3,9,15}。itime。 //獲取數(shù)組序號(hào) l=channelno[k]。j9。 } delay_ms(Delayms)。 l=channelno[k]。j9。 }注:6腳與5類似,略去。四腳步態(tài)與三腳步態(tài)類似,由于有四只腳同時(shí)著地,則顯得更穩(wěn)定。 quar26no[6] = {4,5,16,17,3,15}。itime。 //獲取數(shù)組序號(hào) l=channelno[k]。j6。 } delay_ms(Delayms)。 l=channelno[k]。j6。 注:6;4與5的一致,只要將數(shù)組換掉即可 }由于四腳步態(tài)的穩(wěn)定性,后續(xù)的其它涉及到行走的程序,均調(diào)用的是四腳步態(tài)的前進(jìn)后退。首先定義六個(gè)數(shù)組,與前述功能一致:int single1no[3] = {0,1,2}。int single5no[3] = {12,13,14}。 for(i=0。j++) //1腳上抬 { k=single1no[j]。 //1腳前進(jìn) k=single1no[0]。 for(j=1。 SendPacket(s, l, initposi1[k])。 SendPacket(s*4, l, backwardposi[k])。順序?yàn)椋鹤竽_:抬腿——前擺——下落——后擺右腳:抬腿——后擺——下落——前擺其余動(dòng)作時(shí)間等均與四腳步態(tài)相同。 Initservo1()。j4。 } delay_ms(Delayms1)。 l=channelno[k]。j4。 } delay_ms(Delayms1)。 l=channelno[k]。關(guān)節(jié)號(hào)(數(shù)組號(hào))初值抬腿前擺下落后擺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í),便要一步步書寫了。itime。 SendPacket(s, 26, initposi2[14]20)。 SendPacket(s, 27, initposi2[13]+25)。 SendPacket(s*2, 2, initposi2[2]50)。為使機(jī)器人更加智能化,功能更強(qiáng)大, 一個(gè)簡(jiǎn)單的方法就是在其上加上各種傳感器,探知外界,再通過主控制器,來完成相應(yīng)動(dòng)作。它是通過內(nèi)部安裝的雙軸磁場(chǎng)傳感器測(cè)量周圍的磁場(chǎng)強(qiáng)度來探知當(dāng)前位置的朝向。相傳黃帝發(fā)明了指南車,當(dāng)然絕不是用了指南針傳感器,這里可以利用該傳感器來編寫一個(gè)按設(shè)定方向行走的程序控制機(jī)器人運(yùn)動(dòng)。 min = direction5。 else if(tempdirectmaxamp。 } else if(direction5) { max = direction+5。tempdirectmin170) rotateleft(1)。 else quarforward(1)。amp。 min = direction5。amp。 if(tempdirectminamp。tempdirectmax+170) rotateright(1)。amp。 tempdirect=pass()。并隨著方向的連續(xù)變化數(shù)值發(fā)生連續(xù)變化。需提出的是,傳感器的基本功能程序在本文中就不介紹了,主要介紹傳感器的基本情況與應(yīng)用,當(dāng)然會(huì)提及到一點(diǎn)如何將單一的傳感器程序集成到總的控制程序中來。 SendPacket(s*2, 26, initposi2[14]45)。 delay_ms(Delayms)。 //5收縮 SendPacket(s, 1, initposi2[1]40)。 SendPacket(s, 2, initposi2[2]+100)。以右移為例,其部分程序?yàn)椋簐oid crabright(int time){ int i=0。 }注:6與4程序與上述一致,略去}其中Stride1為舵機(jī)變動(dòng)幅度,其值為45,低于直行,避免幅度過大,行走不穩(wěn)。j6。 l=channelno[k]。 } delay_ms(Delayms1)。j6。 l=channelno[k]。itime。順序?yàn)椋鹤竽_:抬腿——后擺——下落——前擺右腳:抬腿——前擺——下落——后擺從上面的動(dòng)作順序可見,舵機(jī)左右運(yùn)動(dòng)方向恰好相反,反應(yīng)在數(shù)值變化符號(hào)上則是正好一致,所以程序中無需用到forward[18]等數(shù)組。機(jī)器人不光要回直行,如果遇到障礙物,還要學(xué)會(huì)轉(zhuǎn)彎避讓,或者采用類似螃蟹一樣的橫爬方式也可。 //1腳后退至初位 k=single1no[0]。j++) //1腳下降至初位 { k=single1no[j]。 SendPacket(s, l, forwardposi[k])。 //獲取端口號(hào) SendPacket(s, l, raiseposi[k])。i++) { for(j=1。然后編寫程序,同樣以前進(jìn)程序?yàn)槔?。int single3no[3] = {6,7,8}。其行走步驟為:一、1腳上抬;二、1腳前進(jìn);三、1腳落地;四、1腳后退;五、按6腳的順序依次完成與1腳相同的動(dòng)作。 l=channelno[k]。 } delay_ms(Delayms)。j4。 l=channelno[k]。 } delay_ms(Delayms)。j4。 程序則為:void quarforward(int time){ int i,j,k,l=0。當(dāng)34腳落地時(shí),15腳正好抬起,同樣需要通過改變步態(tài)速度來實(shí)現(xiàn)。為使機(jī)器人行走時(shí)滿足運(yùn)動(dòng)周期要求,則需要設(shè)定不同速度,經(jīng)調(diào)試,當(dāng)s=7
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1