




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、BEIJINGINSTITUTEOFTECHNOLOGY智能機器人課程設(shè)計總結(jié)報告姓名:組員:指導(dǎo)老師:時間:一、課程設(shè)計設(shè)計目的了解機器人技術(shù)的基本知識以及有關(guān)電工電子學(xué)、單片機、機械設(shè)計、傳感器等相關(guān)技術(shù)。初步掌握機器人的運動學(xué)原理、基于智能機器人的控制理論,并應(yīng)用于實踐。通過學(xué)習(xí),具體掌握智能機器人的控制技術(shù),并使機器人能獨立執(zhí)行一定的任務(wù)?;疽螅阂笤O(shè)計一個能走迷宮(迷宮為立體迷宮)的機器人。要求設(shè)計機器人的行走機構(gòu),控制系統(tǒng)、傳感器類型的選擇及排列布局。要有走迷宮的策略(軟件流程圖)。對于走迷宮小車控制系統(tǒng)設(shè)計主要有幾個方面:控制電路設(shè)計,傳感器選擇以及安放位置設(shè)計,程序設(shè)計二、
2、總體方案2.1 機器人的尋路算法選擇將迷宮看成一個m*n的網(wǎng)絡(luò),機器人通過傳感器反饋的信息感知迷宮的形狀,并將各個節(jié)點的與周圍節(jié)點的聯(lián)通性信息存儲于存儲器中,再根據(jù)已經(jīng)構(gòu)建好的地圖搜索離開迷宮的路徑。這里可選擇回溯算法。對每個網(wǎng)格從左到右,每個網(wǎng)格具有4個方向,分別定義。并規(guī)定機器人行進過程中不停探測前方是否有障礙物,同時探測時按左側(cè)規(guī)則,進入新網(wǎng)格后優(yōu)先探測當(dāng)前方向的左側(cè)方向。探測過程中記錄每個網(wǎng)格的四個方向上的狀態(tài):通路、不通或未知,探測得到不同狀態(tài)后記記錄,同時記錄當(dāng)前網(wǎng)格的四個方向是否已被探測過。若某網(wǎng)格四個方向全部探測過則利用標(biāo)志位表示該網(wǎng)格已訪問。為了尋找到從起點到終點的最佳路徑,
3、記錄當(dāng)前網(wǎng)格在四個方向上的鄰接網(wǎng)格序號,由此最后可在機器人已探測過的網(wǎng)格中利用Dijkstra算法找到最佳路徑。并為計算方便,記錄網(wǎng)格所在迷宮中行號、列號。并機器人探索過程中設(shè)置一個回溯網(wǎng)格棧記錄機器人經(jīng)過的迷宮網(wǎng)格序號及方向,此方向是從一個迷宮網(wǎng)格到下一個迷宮網(wǎng)格經(jīng)過的方向。設(shè)置一個方向隊列記錄機器人在某網(wǎng)格內(nèi)探測方向的順序。設(shè)置一個回溯路徑數(shù)組記錄需要回溯時從回溯起點到回溯終點的迷宮網(wǎng)格序號及方向??紤]到迷宮比較簡單,且主要為縱橫方向的直線,可采用讓小車在路口始終左轉(zhuǎn)或者始終右轉(zhuǎn)的方法走迷宮,也就是讓小車沿迷宮的邊沿走。這樣最終也能走出迷宮。本次課程設(shè)計采用此方法。即控制策略為機器人左側(cè)有
4、缺口時,向左進入缺口,當(dāng)機器人前方有障礙是,向右旋轉(zhuǎn)180°,其余情況保持前進。2.2 傳感器的選擇由于需要檢測機器人左側(cè)和前方是否有通路,采用紅外傳感器對機器人行進方向和左側(cè)進行感知。紅外避障傳感器是依據(jù)紅外線的反射來工作的。當(dāng)遇到障礙物時,發(fā)出的紅外線被反射面反射回來,被傳感器接收到,信號輸出引腳就會給出低電平提示信號。本機器人系統(tǒng)的紅外避障信號采用直接檢測的方式進行,直接讀取引腳電平。傳感器感應(yīng)障礙物的距離閾值可以通過調(diào)節(jié)傳感器上的變阻器來改變。行進過程中,機器人可能會偏綠迷宮的橫軸或縱軸的方向。碰觸傳感器利用外力的作用傳遞給單片機信息,當(dāng)碰觸傳感器碰到迷宮墻壁后,傳感器檢測到
5、信號就可以判斷小車碰壁。經(jīng)過電路處理后,信號輸出接口輸出數(shù)字信號送給控制器,從而讓控制器進行決策調(diào)整小車姿態(tài)。本機器人系統(tǒng)共使用了2個碰觸傳感器,分別安裝在小車的左前方和右前方,使得機器人在偏離航向撞擊迷宮側(cè)面后可以立即對航向進行修正。四個傳感器一共占用四個外部中斷。碰撞開關(guān)STM32EL機驅(qū)動,模塊紅外避障傳感器直流電機3.3總體結(jié)構(gòu)設(shè)計STM32F103RBT6三、具體實現(xiàn)最小系統(tǒng)已經(jīng)設(shè)計好,本次課程設(shè)計采用的控制芯片為(1) 芯片選擇X154pdFT了GbD-|IW|】feif丁丈擰心ua41,JLEJZALieD-L2Q>-31VBAT/VDDPCAAJJI'vAs_KI
6、+OSC;:昶】E,8CJ2PMD5C1NPKTBWjTWl?D11?COCI3QOTOKR5T?BXtX3AFi對J:忙PCCADC13PB6EC1KLTBHCHIPtLOtliSBATXI._iUEjlIK:ADCl:PC:adC1-PBjTTOOTRACEWVtlAvpi*bJU2UK0?丸二1LT一:、L524r1VP-P2T4EKHM1UjaL-uaKllPAC兀EWAECH二上三IJ5T3LK)lPA.:ADClTlSC_e32FClQ心5TX4DC2TFC0pa:57TDIPAr:J2_RXADC:JTIM陰初礙PAHJTCXarCLXVDQVDDva期13JIMSSfJIOmA
7、DC4WJCAK工JnPAfAm=AADC5PAHCAxrJxvADMmfPAt5Pn>1HOADC*T15r5MCH1PAi9UIJRTBf.CHjADCTiL2_CH2觸J5_戊血:匚右忙WADC和PABTBflCH1MCCPC-ADCIYKDFBcADCBT1M5_CH3kbPB:AKP1INI3CWK7PCSpS1tPE23D0Tl<H?r2_k?gTix<i_fHSM歹臺iA2iPfi:C-En_WX!Lri_TT匚wsTnujcmwHWllACJAWAViTRhCP3jApE.AKTB-ELC51?;ML;TIZIX:SSffiAlTBllH-Zf:IKVDO71
8、D:36沖二Jbjoa13LJdOSC歹U注1_"注震3?wnaSDUL<JIC:廠EMTB可二.兀FAM人9SU'ZLgiaTg:巧I.它是32位的Cortex-M3內(nèi)盒的控制芯片,主頻達到72MHz,擁有128kB閃存,20kBSRAM,鎖相環(huán),內(nèi)置8MHzand32kHz時鐘電路,具有PWM模塊,方便電機轉(zhuǎn)速的控制。3.2控制電路設(shè)計電機驅(qū)動:電機驅(qū)動電路原理圖如圖所示,采用BTS7960芯片驅(qū)動電機,以控制機器人的兩個驅(qū)動輪,利用PWM控制方法,通過改變PWM波的占空比,達到調(diào)節(jié)電機轉(zhuǎn)速的目的,實現(xiàn)機器人的前進,后退,轉(zhuǎn)向,剎車等功能。每個電機都由一個H橋電路驅(qū)
9、動,由兩個輸入信號共同小車運動方式可以通控制。兩個電機共由4路PWM波進行控制,結(jié)合上述的電機驅(qū)動原理,過如下方式實現(xiàn):四個控制信號均為低電平時,電機停轉(zhuǎn),小車停止;電機的左右輪電機同向等速運行時,可以實現(xiàn)前行或后退的動作;小車的左右轉(zhuǎn)向通過兩輪差速來實現(xiàn)。在本機器人的設(shè)計中,需要實現(xiàn)的90°角度轉(zhuǎn)彎,是通過電機定速運動和延時的配合完成的,通過不斷調(diào)試確定出最佳的旋轉(zhuǎn)時間。GhD上tiMlCIS 16DIP*2電源模塊Vifl Vow-XCI4VS1USD(2)電源模塊:采用電池供電,可行的供電方案原理圖如下(3)引腳(外部中斷)分配:PA0,PA4,PA5,PA15為中斷輸入引腳。
10、PAO引腳對應(yīng)的外部中斷由機器人前向紅外傳感器觸發(fā),PA4,PA5分別連接機器人前進方向的左側(cè)和右側(cè)的碰撞開關(guān),PA4,PA5的上升沿信號代表機器人與迷宮的左,右側(cè)發(fā)生碰撞,觸發(fā)相應(yīng)地終端服務(wù)程序,調(diào)整航向。PA15接收左側(cè)紅外傳感器產(chǎn)生的觸發(fā)信號,當(dāng)機器人左側(cè)出現(xiàn)缺口時,觸發(fā)中斷服務(wù)程序,機器人向左轉(zhuǎn)向進入缺口3.3程序設(shè)計部分(1)機器人的移動:機器人靠兩個驅(qū)動輪,一個從動輪進行移動,每個驅(qū)動輪由一個電機,定電機的轉(zhuǎn)向,占空比決定了電機的轉(zhuǎn)速。首先應(yīng)配置芯片的PWM模塊,具體過程如下:#include"pwm.h"floatmo1,mo2,mo3,mo4;voidPWM
11、_Init(u16arr,u16psc)RCC->APB1ENR|=1<<1;GPIOA->CRL&=0X00FFFFFF;GPIOA->CRL|=0XBB000000;GPIOA->ODR|=1<<6|1<<7;GPIOB->CRL&=0XFFFFFF00;GPIOB->CRL|=0X000000BB;GPIOB->ODR|=1<<0|1<<1;TIM3->ARR=arr;TIM3->PSC=psc;TIM3->CCER|=1<<1|1<&
12、lt;5|1<<9|1<<13;TIM3->CCMR1|=7<<12|7<<4;TIM3->CCMR1|=1<<11|1<<3;TIM3->CCMR2|=7<<12|7<<4;TIM3->CCMR2|=1<<11|1<<3;TIM3->CCER|=1<<12|1<<8|1<<4|1<<0;TIM3->CR1=0x0080;ARPEe1?uTIM3->CR1|=1<<4;TIM
13、3->EGR|=1<<0;TIM3->CR1|=0x01;本段代碼使能TIM3時鐘,啟用PA6,PA7,PB0,PB1引腳的復(fù)用功能下計數(shù)),使得芯片能在這四個引腳上輸出所需的由于前進,后退,轉(zhuǎn)向,都是重復(fù)性的動作,直接對這些操作進行宏定義,能減輕程序編寫的負擔(dān):#defineMoto_PwmMax899/#defineLEFT_MOTOR_FTIM3->CCR1#defineLEFT_MOTOR_BTIM3->CCR2#defineRIGHT_MOTOR_BTIM3->CCR3#defineRIGHT_MOTOR_FTIM3->CCR4行控制。
14、驅(qū)動芯片輸出電平的高低決兩個驅(qū)動芯片進相應(yīng)設(shè)置(向PWM 波。直接調(diào)用,并對計數(shù)器進行需要的時候注:TIM3產(chǎn)生PWM波相應(yīng)寄存器的宏定義如下#definego_forwardLEFT_MOTOR_F=3500;LEFT_MOTOR_B=0;RIGHT_MOTOR_F=3500;RIGHT_MOTOR_B=0;#definego_backLEFT_MOTOR_F=0;LEFT_MOTOR_=B3500;RIGHT_MOTOR_=F0;RIGHT_MOTOR_=B3500;#defineturn_leftLEFT_MOTOR_F=0;LEFT_MOTOR_B=0;RIGHT_MOTOR_F=40
15、00;RIGHT_MOTOR_B=0;#defineturn_left_90LEFT_MOTOR_F=0;LEFT_MOTOR_B=0;RIGHT_MOTOR_F=4000;RIGHT_MOTOR_B=0;delay_ms(800);delay_ms(800);delay_ms(600);RIGHT_MOTOR_F=0;#defineturn_rightLEFT_MOTOR_F=4000;LEFT_MOTOR_B=0;RIGHT_MOTOR_F=0;RIGHT_MOTOR_B=0;delay_ms(200);#defineturn_back_righLEFT_MOTOR_F=4000;LEFT
16、_MOTOR_B=0;RIGHT_MOTOR_F=0;RIGHT_MOTOR_B=4000;delay_ms(800);delay_ms(800);delay_ms(400);LEFT_MOTOR_F=0;RIGHT_MOTOR_B=0;#defineturn_back_leftLEFT_MOTOR_F=0;LEFT_MOTOR_B=4000;RIGHT_MOTOR_F=4000;RIGHT_MOTOR_B=0;delay_ms(800);delay_ms(800);delay_ms(400);LEFT_MOTOR_B=0;RIGHT_MOTOR_F=0;#definestopLEFT_MOT
17、OR_F=0;LEFT_MOTOR_B=0;RIGHT_MOTOR_F=0;RIGHT_MOTOR_B=0;/幾個機器人基本動作的宏定義響應(yīng)值越大,由于采用向下計數(shù)的方式,CCF中的值代表相應(yīng)引腳高電平持續(xù)時間長度,PW站空比越大,驅(qū)動電機轉(zhuǎn)速越快。(2) 機器人對外界的感知及相應(yīng)中斷服務(wù)程序的編寫:#include"exti.h"voidEXTIX_Init(void)RCC->APB2ENR|=1<<2;JTAG_Set(JTAG_SWD_DISABLE);GPIOA->CRL&=0XFF00FFF0;GPIOA->CRL|=0X0
18、0880008;GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=0X80000000;GPIOA->ODR|=(1<<0);Ex_NVIC_Config(GPIO_A,0,FTIR);Ex_NVIC_Config(GPIO_A,4,RTIR);Ex_NVIC_Config(GPIO_A,5,RTIR);Ex_NVIC_Config(GPIO_A,15,RTIR);MY_NVIC_Init(2,1,EXTI0_IRQChannel,4);MY_NVIC_Init(3,1,EXTI4_IRQChannel,4);MY_NVIC_Init(
19、4,1,EXTI9_5_IRQChannel,4);MY_NVIC_Init(1,1,EXTI15_10_IRQChannel,4);GPIOA的配置,使能相關(guān)時鐘,并將PA0,PA4,PA5,PA1設(shè)為輸入引腳,并設(shè)置好中斷優(yōu)先級。voidEXTI0_IRQHandler(void)delay_ms(100);if(KEY0=0)LED1=0;LED2=0;go_back;delay_ms(800);turn_back_right;LED1=1;LED2=1;EXTI->PR=1<<0;前向紅外傳感器觸發(fā)的中斷服務(wù)程序,當(dāng)PA0出現(xiàn)下降沿時,代表機器人前方已經(jīng)出現(xiàn)了障礙物,
20、此時執(zhí)行向右掉頭的動作。voidEXTI4_IRQHandler(void)delay_ms(100);if(KEY4=1)LED1=0;flag=1;go_back;delay_ms(400);turn_left;delay_ms(400);LED1=1;EXTI->PR=1<<4;右側(cè)碰撞開關(guān)觸發(fā)外部中斷,消抖后判斷是否確實發(fā)生碰撞,如果是,則機器人應(yīng)向左校正航向。voidEXTI9_5_IRQHandler(void)delay_ms(100);if(KEY5=1)LED2=0;flag=2;go_back;delay_ms(400);turn_right;delay_
21、ms(400);LED2=1;EXTI->PR=1<<5;則機器人應(yīng)向右左側(cè)碰撞開關(guān)觸發(fā)外部中斷,消抖后判斷是否確實發(fā)生碰撞,如果是校正航向。voidEXTI15_10_IRQHandler(void)delay_ms(100);if(KEY15=1)turn_left_90;while(KEY0=1)go_forward;delay_ms(100);go_back;delay_ms(600);turn_left_90;while(KEY15=1)if(KEY5=1)go_back;delay_ms(400);turn_right;delay_ms(400);if(KEY4=
22、1)go_back;delay_ms(400);turn_left;delay_ms(400);elsego_forward;delay_ms(100);delay_ms(1000);EXTI->PR=1<<15;/PA15出現(xiàn)下降沿,代表機器人前進方向的左側(cè)出現(xiàn)了缺口,應(yīng)當(dāng)執(zhí)行向左轉(zhuǎn)向的操作。注:中斷程序中部分變量的宏定義如下#defineKEY0PAin(0)#defineKEY4PAin(4)#defineKEY5PAin(5)#defineKEY15PAin(15)PWM(3) 主程序設(shè)計:首先進行初始化,調(diào)用實現(xiàn)寫好的函數(shù)使能相關(guān)時鐘,配置相關(guān)引腳的功能,使得模塊能
23、正常工作,對NVIC進行設(shè)置,使得四個由傳感器觸發(fā)外部中斷能共正常工作。外部進行初始化后,在沒有碰撞開關(guān),機器人前方?jīng)]有障礙,左側(cè)沒有缺口的情況下,中斷都不觸發(fā),機器人應(yīng)該保持向前行走的狀態(tài),程序如下:#include"test.h"intflag=0;u8mode='0'floatdistance=0;intmain(void)Stm32_Clock_Init(9);delay_init(72);uart_init(72,9600);PWM_Init(10000,0);EXTIX_Init();led_int();while(1)go_forward;(4
24、)程序流程圖說明勺公有淖毒葡。右轉(zhuǎn)一寧ISJK著0臚,在宿于二/丹雨'誑一*,專到有決口I-.*T5/屏地就履罐十芳片=真五闌工>石M有於口美中雷,SR90*開前日在蒯司孟亡衿;。”-)*肝附件:程序/主程序#include"test.h"#defineKEY0PAin(0)#defineKEY4PAin(4)#defineKEY5PAin(5)#defineKEY15PAin(15)#defineLED2PCout(11)/PA8板子上的紅燈,上面的主頻 72M延時初始化/ 初 始 化 串 口 1(PA9,PA10) 、 串 口 2(PA2,PA3) 、#d
25、efineLED1PCout(12)/PD2intmain(void)Stm32_Clock_Init(9);/delay_init(72);/uart_init(72,9600);3(PB10,PB11)PWM_Init(10000,0);EXTIX_Init();led_int();while(1)go_forward;/中斷程序#include"exti.h"/外部中斷初始化程序/初始化PA0,PA4,PA5,PA15為中斷輸入.voidEXTIX_Init(void)RCC->APB2ENR|=1<<2;/使能PORTA寸鐘JTAG_Set(JTA
26、G_SWD_DISABLE);關(guān)閉JTAG和SWDGPIOA->CRL&=0XFF00FFF0;/PA0,4,5設(shè)置成輸入GPIOA->CRL|=0X00880008;GPIOA->CRH&=0X0FFFFFFF;/PA15設(shè)置成輸入GPIOA->CRH|=0X80000000;GPIOA->ODR|=(1<<0);/PA0,4上拉Ex_NVIC_Config(GPIO_A,0,FTIR);/下降沿觸發(fā),反轉(zhuǎn)Ex_NVIC_Config(GPIO_A,4,RTIR);/上升沿觸發(fā),左轉(zhuǎn)Ex_NVIC_Config(GPIO_A,5,RTIR);/上升沿觸發(fā),右轉(zhuǎn)組4Ex_NVIC_Config(GPIO_A,15,RTIR);/上升沿觸發(fā),缺口MY_NVIC_Init(2,1,EXTI0_IRQChannel,4);/搶占2,子優(yōu)先級1,MY_NVIC_Init(3,1,EXTI4_IRQChannel,4);MY_NVIC_Init(4,1,EXTI9_5_IRQChannel,4);MY_NVIC_Init(1,1,EXTI15
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市交通規(guī)劃合同審查咨詢重點基礎(chǔ)知識點
- 戰(zhàn)略目標(biāo)的逐步落實計劃
- 通風(fēng)維保服務(wù)合同協(xié)議
- 游艇合作協(xié)議書
- 軟件共同研發(fā)合同協(xié)議
- 轉(zhuǎn)讓房子租賃合同協(xié)議
- 曝光調(diào)解協(xié)議書
- 《緩解皮膚過敏癥狀的天然偏方》課件
- 小產(chǎn)權(quán)房買賣交易合同
- 轉(zhuǎn)讓非遺項目合同協(xié)議
- 2025年二級風(fēng)力發(fā)電運維值班員職業(yè)技能鑒定考試題庫(濃縮500題)
- 江蘇省南京市、鹽城市2025屆高三年級5月第二次模擬考試化學(xué)試題及答案(南京鹽城二模)
- 2025新能源汽車技術(shù)的應(yīng)急管理策略試題及答案
- 建筑勞務(wù)分包合同中的稅務(wù)問題3篇
- 2025年中國熔融鹽儲能行業(yè)市場占有率及投資前景預(yù)測分析報告
- 2024-2025人教版一年級下冊數(shù)學(xué)期末考試卷附答案 (三套)
- 消防作戰(zhàn)訓(xùn)練安全常識及災(zāi)情處置考試題庫
- 教育培訓(xùn)機構(gòu)加盟經(jīng)營合同書
- 2025年人教版小學(xué)二年級下冊奧林匹克數(shù)學(xué)競賽測試卷(附參考答案)
- 中央2025年國家民委直屬事業(yè)單位招聘48人筆試歷年參考題庫附帶答案詳解
- 2025年北京市豐臺區(qū)九年級初三一模英語試卷(含答案)
評論
0/150
提交評論