自動避障小車技術(shù)報告2講解(共40頁)_第1頁
自動避障小車技術(shù)報告2講解(共40頁)_第2頁
自動避障小車技術(shù)報告2講解(共40頁)_第3頁
自動避障小車技術(shù)報告2講解(共40頁)_第4頁
自動避障小車技術(shù)報告2講解(共40頁)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上自動避障小車技術(shù)報告學(xué) 校:樂山師范學(xué)院成 員:鄭素仙 朱平 吳志指導(dǎo)老師:張九華前言設(shè)計背景:在科學(xué)探索和緊急搶險中經(jīng)常會遇到對與一些危險或人類不能直接到達(dá)的地域的探測,這些就需要用機器人來完成。而在機器人在復(fù)雜地形中行進時自動避障是一項必不可少也是最基本的功能。因此,自動避障系統(tǒng)的研發(fā)就應(yīng)運而生。我們的自動避障小車就是基于這一系統(tǒng)開發(fā)而成的。隨著科技的發(fā)展,對于未知空間和人類所不能直接到達(dá)的地域的探索逐步成為熱門,這就使機器人的自動避障有了重大的意義。我們的自動避障小車就是自動避障機器人中的一類。自動避障小車可以作為地域探索機器人和緊急搶險機器人的運動系統(tǒng),讓機器

2、人在行進中自動避過障礙物。目錄一、 設(shè)計目標(biāo):1. 小車從無障礙地區(qū)啟動前進,感應(yīng)前進路線上的障礙物后,能自動避開障礙物。2. 根據(jù)障礙物的位置選擇下一步行進方向,選擇左拐還是右拐,若障礙物在左邊則自動右拐,若障礙物在右邊則左拐,若障礙物在正前方可任意選擇左拐或者是右拐,以達(dá)到避開障礙物的目的。3. 通過利用單片機內(nèi)時鐘源的控制設(shè)定左拐和右拐的時間,從而能持續(xù)前進。4. 為達(dá)到速度的可控性,需設(shè)置兩個獨立按鍵對小車進行控速。二、 方案設(shè)計:根據(jù)設(shè)計要求,確定如下方案:在現(xiàn)有玩具電動車的基礎(chǔ)上,加裝超聲波傳感器,實現(xiàn)對電動車的運行狀況的實時測量,并將測量數(shù)據(jù)傳送至單片機進行處理,然后由單片機根據(jù)

3、所檢測的各種數(shù)據(jù)實現(xiàn)對電動車的智能控制。這種方案能實現(xiàn)對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。2.1直流調(diào)速系統(tǒng)采用脈寬調(diào)速系統(tǒng)脈寬調(diào)速系統(tǒng)的主電路采用脈寬調(diào)制式變換器,簡稱PWM變換器。脈寬調(diào)速也可通過單片機控制繼電器的閉合來實現(xiàn),但是驅(qū)動能力有限。為順利實現(xiàn)電動小汽車的前行與倒車,本設(shè)計采用了可逆PWM變換器。可逆PWM變換器主電路的結(jié)構(gòu)式有H型、T型等類型。我們在設(shè)計中采用了常用的雙極式H型變換器,它是由4個三極電力晶體管和4個續(xù)流二極管組成的橋式電路。如附錄一:2.2檢測系統(tǒng)檢測系統(tǒng)主要實現(xiàn)紅外傳感器,超聲波傳感,光電傳感器對車的運行進行實時測量

4、,即利用這種傳感器對電動車的避障、位置、行車狀態(tài)進行測量。行車開始、結(jié)束及超聲波檢測:在車的開始和結(jié)束階段,都是用紅外式的光電傳感器,當(dāng)按下此光電開頭,小車就開始行駛,在完成任務(wù)后,再按下此開關(guān),小車就停止前進。在前進的過程中不斷的發(fā)送超聲波,并對接到的進行處理計算。如果處理得到的結(jié)果是發(fā)現(xiàn)前面的障礙時,再行進一次距離的處理,當(dāng)距離小是40CM時,讓小車倒退一段時間,再進行避障處理,如果距離大于40CM,就直接進避障處理。三 硬件設(shè)計3.1、SPCE061A單片機最小系統(tǒng)我們用的是凌陽的SPCE061A單片機最小系統(tǒng)其概述如下:SPCE061A 是繼nSP系列產(chǎn)品SPCE500A等之后凌陽科技

5、推出的又一款16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使nSP能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號。因此,與SPCE500A相比,以nSP為核心的SPCE061A微控制器是適用于數(shù)字語音識別應(yīng)用領(lǐng)域產(chǎn)品的一種最經(jīng)濟的選擇。 性能 16位nSP微處理器; 工作電壓(CPU) VDD為2.43.6V (I/O) VDDH為2.45.5V ; CPU時鐘:0.32MHz49.152MHz ; 內(nèi)置2K字SRAM; 內(nèi)置32K FLASH; 可編程音頻處理;

6、 晶體振蕩器; 系統(tǒng)處于備用狀態(tài)下(時鐘處于停止?fàn)顟B(tài)),耗電僅為2A3.6V; 2個16位可編程定時器/計數(shù)器(可自動預(yù)置初始計數(shù)值); 2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道; 32位通用可編程輸入/輸出端口; 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒; 具備觸鍵喚醒的功能; 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù); 鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號; 32768Hz實時時鐘; 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增益控制(AGC)功能; 具備

7、串行設(shè)備接口; 具有低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(LVD)功能; 內(nèi)置在線仿真電路ICE(In- Circuit Emulator)接口; 具有保密能力; 具有WatchDog功能;16位nSP微處理器硬件結(jié)構(gòu)圖3.1.1SPCE061A時鐘電路SPCE061A時鐘電路采用晶體振蕩器。下圖為SPCE061A時鐘電路的接線圖。外接晶振采用32768Hz。3.1.2PLL鎖相環(huán)PLL電路的作用是將系統(tǒng)提供的實時時鐘的基頻(32768Hz)進行倍頻,輸出系統(tǒng)時鐘Fosc3.1.3看門狗WatchdogSPCE061A的清狗周期為0.75S;清看門狗操作寄存器:P_Watchdog_Clear

8、(0x7012H)清狗操作:在每個0.75S的清狗周期里P_Watchdog_Clear寫入0x0001。3.1.4低電壓復(fù)位(LVR)通過某種方式,使單片機內(nèi)存各寄存器的值變?yōu)槌跏嫉牟僮鞣Q為復(fù)位。SPCE061A的復(fù)位方式為低電壓復(fù)位。3.1.5I/O端口OA口:IOA0IOA6:7路普通AD輸入端口,IOA0IOA7:觸鍵喚醒功能 IOB口:外部中斷輸入,串行接口、PWM輸出等復(fù)用端口3.1.6時基與定時器時基信號可提供常用的、現(xiàn)成的頻率信號,完成部分定時器的功能3.1.7SPCE061A的定時器/計數(shù)器遞增計數(shù)方式,自動重載定時器/計數(shù)器初始值,輸出4位可調(diào)脈寬比PWM信號,溢出頻率/2

9、的方波輸出,多種時鐘源輸入。3.1.8ADC、DACSPCE061A的特色是其強大靈活的語音功能;而單片機對語音處理的支持,除了其處理能力外,還有片內(nèi)集成的ADC、DAC;特別是集成有AGC電路的MIC通道。ADC轉(zhuǎn)換過程:3.2、超聲波傳感器1基本特性與參數(shù)指標(biāo) 超聲波傳感器諧振頻率:40KHz; 模組傳感器工作電壓:4.5V9V 模組接口電壓:4.5V5.5V2主要功能三種測距模式選擇跳線J1(短距、中距、可調(diào)距): 短距:20cm100cm左右(根據(jù)被測物表面材料決定),精度1cm; 中距:70cm400cm左右(根據(jù)被測物表面材料決定); 可調(diào):范圍由可調(diào)節(jié)參數(shù)確定,當(dāng)調(diào)節(jié)在合適的值時

10、,最遠(yuǎn)測距700cm左右;3結(jié)構(gòu)示意圖 一般應(yīng)用時,只需要用兩條10PIN排線把J5與SPCE061A的IOB口低八位連接,J4與IOB口高八位連接,同時設(shè)置好J1、J2跳線就完成硬件的連接了。不同測距模式的選擇只需改變測距模式跳線J1的連接方法即可。模組工作的性能與被測物表面材料有很大關(guān)系,如毛料、布料對超聲波的反射率很小,會嚴(yán)重影響測量結(jié)果實物圖:J1為選擇工作模式,J2選擇電源接口4電路原理圖介紹:超聲波諧振頻率調(diào)理電路由單片機產(chǎn)生40KHz的方波,并通過模組接口(J4)送到模組的CD4049,而后面的CD4049則對40KHz頻率信號進行調(diào)理,以使超聲波傳感器產(chǎn)生諧振。超聲波回波接收處

11、理電路超聲波接收處理部分電路前級采用NE5532構(gòu)成10000倍放大器,對接收信號進行放大;后級采用LM311比較器對接收信號進行調(diào)整,比較電壓為LM311的3管腳的輸入,可由J1跳線選擇不同的比較電壓以選擇不同的測距模式。測距程序流程圖超聲波測距的功能函數(shù)流程圖如圖。用戶只需進行六次測距操作,這六次的測量結(jié)果需要經(jīng)過處理后才可得到最終的測距返回值,然后將返回值化成距離。四 軟件設(shè)計4.1軟件設(shè)計各模塊void RunTime2Hz(void);設(shè)置2HZ基頻中斷向量函數(shù)。void OffTime2Hz(void);清2HZ基頻中斷向量函數(shù)。void Clear_WatchDog(void);

12、清看門狗函數(shù)unsigned int SP_GetCh(void);取鍵值函數(shù)void delay2s(int timer)可調(diào)的延遲函數(shù)4.2速度控制速度控制用TIMERA的PWM輸出控制,當(dāng)它前進時設(shè)PWM為12/16,當(dāng)它轉(zhuǎn)彎時設(shè)為8/16。其代碼為:*P_TimerA_Ctrl=0x0333;*P_TimerA_Data=0xff9f; 4.3障礙物檢測用TIMERB的TONT輸出給超聲波提供出射頻率,并給它延遲一段時間,發(fā)射完時,清TIMERB,讓它工作在計時方式,當(dāng)計到10000時!沒有收到回波,則說明前在無障礙。如果有收到回波則說明有障礙。4.4看門狗看門狗只要一定時間給其喂狗,

13、就可以保證程序不會跑飛,跑飛就會自動復(fù)位。其代碼就只有一句:*P_Watchdog_Clear = 0x0001;4.5基頻中斷采用2HZ的基頻中斷,實現(xiàn)實時控制;一次中斷, 中斷時間為0。5S,其代碼如下: P_INT_Ctrl = r1; INT IRQ; /開中斷4.6程序設(shè)計流程圖五:測試數(shù)據(jù)、測試結(jié)果分析及結(jié)論測試方法與儀器:1.測試儀器 測試儀器包括數(shù)字萬用表、信號發(fā)生器、示波器、直流穩(wěn)壓電源等。2.測試方法 數(shù)字萬用表主要用來測試各個IO口的狀態(tài);信號發(fā)生器與示波器用于測試超聲波傳感器信號的接收與傳輸;試驗測試能不能完成固定避障。結(jié)論:經(jīng)過了我們的努力,我們基本上能完上避障的功能

14、!當(dāng)然我們之后還有很長的路要走,在之后我們會自己做一個最小系統(tǒng),此次我們更側(cè)重于軟件方面的設(shè)計。同時我們還要設(shè)計更多的外圍電路,實現(xiàn)更多的功能。其中包括:紅外光電檢測用來檢測旁邊的物體;還有紅外遙控器,用來控制小車的運行與停止;再加一個顯示器,用來顯示路程和時間等等。附錄一: 程序附錄:程序設(shè)計中包括:主程序,測距程序,中斷程序組成;1主程序:#include SPCE061A.h#include ceju.hunsigned char INTflag; /定時標(biāo)識unsigned int sum; /2hz 計數(shù)器 1次為0。5秒void RunTime2Hz(void);void OffT

15、ime2Hz(void);void Clear_WatchDog(void);void delay2s(int timer) /設(shè)置基頻為2HZ的中斷,就是一次定時0。5S sum=timer; RunTime2Hz(); /運行中斷 while(!INTflag) Clear_WatchDog();/清看門狗 INTflag = 0; OffTime2Hz(); /結(jié)束中斷void delay2s(int timer);int main(void)unsigned int Back_data; /裝距離*P_IOB_Dir=0x1f00;/初始化IOB,IOB812同向輸出*P_IOB_At

16、trib=0x1f00;*P_IOB_Data=0x0000;INTflag = 0;Clear_WatchDog(); /清看門狗while(1) *P_TimerA_Ctrl=0x0373; *P_TimerA_Data=0xff9f; /設(shè)前進PWM這14/16Back_data = measure_Times(0);/測距if(Back_data=0) /判斷是否為0,為0則為前進 *P_TimerA_Ctrl=0x0373; *P_TimerA_Data=0xff9f;else if(Back_data=40) /判斷是否小于40CM,小于則進行倒車*P_TimerA_Ctrl=0x

17、006; *P_IOB_Data=0x1000; /倒車delay2s(0);*P_IOB_Data=0x0100; /前進delay2s(3);else if(Back_data=100) /判斷是否小于1M,小于則進行避障 *P_TimerA_Ctrl=0x0333; *P_IOB_Data=0x0400; /左轉(zhuǎn) delay2s(1); *P_IOB_Data=0x0800; /右轉(zhuǎn) delay2s(1); *P_IOB_Data=0x0400; /左轉(zhuǎn) delay2s(1); *P_TimerA_Ctrl=0x006; /停止PWM運行 *P_IOB_Data=0x0000;/停車 w

18、hile(1) ; else Clear_WatchDog(); 2中斷程序:#include SPCE061A.h#include ceju.hvoid IRQ3(void)_attribute_(ISR); /IRQ中斷服務(wù)程序void IRQ3(void)*P_INT_Clear = 0x0100;/EXT1_IRQ_ult();/調(diào)用超聲波測距的外部中斷服務(wù)程序.TEXT.include SPCE061A.inc;.external _sum;.external _INTflag;.public _IRQ5;_IRQ5: /定時3秒的中斷程序push r1,r4 to sp;r1 =0

19、x0008; test r1,P_INT_Ctrl;jnzL_4Hz; / Timer A FIQ entrence r1 = 0x0004; P_INT_Clear = r1; /清中斷 r1 = _sum /取時基信號量 r1 += 1; cmp r1,4; je loop0; _sum=r1 /保存時基信號量 pop r1,r4 from sp; reti; loop0: r1 = 0x0001; _INTflag = r1; /設(shè)置中斷標(biāo)識 r1 = 0 _sum = r1pop r1,r4 from sp; reti; L_4Hz: r1 = 0x0008; P_INT_Clear

20、= r1; /清中斷 pop r1,r4 from sp;reti;.external _sum;.include SPCE061A.inc;.CODE.public _Clear_WatchDog;_Clear_WatchDog: .PROCR1=0x0001; P_Watchdog_Clear=R1; /清看門狗retf;.ENDP.public _RunTime2Hz; /初始化中斷為2HZ定時中斷源_RunTime2Hz: .procr1 = 0x0004; P_INT_Ctrl = r1; INT IRQ; /開中斷 retf .endp;.public _OffTime2Hz;_O

21、ffTime2Hz: .proc r1 = P_INT_Ctrl r1 &= 0xfffb; P_INT_Ctrl = r1; r1 = 0x0000 _sum = r1; retf; .endp;3、測距程序#include SPCE061A.h#define LONG_SEND_TIMER1000/中距測距時的40KHz信號發(fā)射時長#define LONG_SEND_TIMER23000/中距測距的補充測距時的40KHz信號發(fā)射時長#define LONG_WAIT_DELAY600/中距測距的防余波干擾延時時長#define LONG_WAIT_DELAY21500/中距測距的補充測距時

22、的防余波干擾延時時長#define LONG_RES_ADD0x00B0/中距測距的結(jié)果補償值#define LONG_RES_ADD20x0220/中距測距的補充測距時的結(jié)果補償值#define LOW_SEND_TIMER250/短距測距時的40KHz信號發(fā)射時長#define LOW_SEND_TIMER21000/短距測距的補充測距時的40KHz信號發(fā)射時長#define LOW_WAIT_DELAY180/短距測距的防余波干擾延時時長#define LOW_WAIT_DELAY2400/短距測距的補充測距時的防余波干擾延時時長#define LOW_RES_ADD0x0034/短距測

23、距的結(jié)果補償值#define LOW_RES_ADD20x00B0/短距測距的補充測距時的結(jié)果補償值unsigned int Counter_buf;/超聲波測距當(dāng)中,用于保存TimerB計數(shù)的變量,相當(dāng)于時長unsigned int EXT1_IRQ_flag=0;/外部中斷標(biāo)志變量,用于EXT1的IRQ中斷程序和測距程序同步void Delay_ult(unsigned int timers)unsigned int i;for(i=0;i1;/除二uiTemp = (unsigned int)ulTemp;return uiTemp;unsigned int measure2_ult(u

24、nsigned int type);unsigned int measure_ult(unsigned int type) / 超聲波測距模組的測距程序,完成一次測距unsigned int Exit_flag = 1;unsigned int uiTemp;unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;unsigned int uiSystem_Clock;uiSystem_Clock = *P_SystemClock;/將當(dāng)前的系統(tǒng)時鐘設(shè)置暫時保存起來*P_SystemClock = 0x00

25、88;/將系統(tǒng)時鐘設(shè)置為49MHz,分頻比為1,強振模式if(type)/根據(jù)type即測距類型,選擇不同的測距參數(shù)uiSend_Timer = LONG_SEND_TIMER;uiWait_Timer = LONG_WAIT_DELAY;uiRes_Add = LONG_RES_ADD;elseuiSend_Timer = LOW_SEND_TIMER;uiWait_Timer = LOW_WAIT_DELAY;uiRes_Add = LOW_RES_ADD;*P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0;/發(fā)40KHz的信號觸發(fā)超聲波傳感器D

26、elay_ult(uiSend_Timer);/等待發(fā)送*P_TimerB_Ctrl = 0x0006;/關(guān)定時器B*P_TimerB_Data = 0x0000;*P_TimerB_Ctrl = 0x0001;/TrB 工作在192KHz頻率while(*P_TimerB_Data10000)/如計數(shù)值大于10000,表示超時Exit_flag = 0;uiResoult = measure2_ult(type);/再進行一次補充的測距,將會加長40KHz信號發(fā)射的量*P_TimerB_Ctrl = 0x0006;/停止定時器BuiTemp = *P_TimerB_Data;*P_Watch

27、dog_Clear = 0x0001;*P_INT_Ctrl = *P_INT_Ctrl_New&(0x0100);/關(guān)掉外部中斷_asm(IRQ OFF);/關(guān)掉總中斷*P_SystemClock = uiSystem_Clock;/恢復(fù)系統(tǒng)時鐘的設(shè)置return uiResoult;void EXT1_IRQ_ult(void) /超聲波測距模組的測距程序的EXT1中斷服務(wù)程序Counter_buf = *P_TimerB_Data;*P_TimerB_Ctrl = 0x0006;*P_INT_Ctrl = *P_INT_Ctrl_New&(0x0100);/關(guān)掉外部中斷*P_INT_Cl

28、ear = 0xffff;/清除中斷發(fā)生標(biāo)志EXT1_IRQ_flag = 1;/通知測距程序,外部中斷已發(fā)生unsigned int measure2_ult(unsigned int type) /補充進行一次遠(yuǎn)距的測量,以保證能夠獲取測量結(jié)果unsigned int Exit_flag = 1;unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;*P_TimerB_Ctrl = 0x0006;*P_INT_Ctrl = *P_INT_Ctrl_New&(0x0100);/關(guān)掉外部中斷_asm(IR

29、Q OFF);/關(guān)掉總中斷*P_INT_Clear = 0xffff;/清除掉中斷發(fā)生標(biāo)志if(type)/根據(jù)type即測距類型,選擇不同的測距參數(shù)uiSend_Timer = LONG_SEND_TIMER2;uiWait_Timer = LONG_WAIT_DELAY2;uiRes_Add = LONG_RES_ADD2;elseuiSend_Timer = LOW_SEND_TIMER2;uiWait_Timer = LOW_WAIT_DELAY2;uiRes_Add = LOW_RES_ADD2;*P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0;Delay_ult(uiSend_Timer);*P_TimerB_Ctrl = 0x0006;*P_TimerB_Data = 0x0000;*P_Time

溫馨提示

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

最新文檔

評論

0/150

提交評論