避障智能小車_第1頁
避障智能小車_第2頁
避障智能小車_第3頁
避障智能小車_第4頁
避障智能小車_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)論文(設計)畢業(yè)論文(設計) 論文(設計)題目: 避障智能小車 Intelligent obstacle avoidance car 系 別: 專 業(yè): 電氣工程及其自動化 班 級: 姓 名: 學 號: 指導老師: 職 稱: 日 期: 2013 年 5 月 9 日 教務處制 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 摘 要 智能作為現(xiàn)代的新發(fā)明,是以后的發(fā)展方向,它可以按照預先設定的模式在一 個環(huán)境里自動的運作,不需要人為的管理,可應用于科學勘探等等的用途。智能電 動車就是其中的一個體現(xiàn)。而此次智能車設計以 MC9S12XS128 微控制器為核心,結 合超聲波模塊,無線模塊,實現(xiàn)小車的智

2、能避障功能和距離實時顯示功能。其中的 主傳感器為超聲波模塊,它與舵機相連,當遇到障礙物小于預訂距離時,能夠全方 位 180 度進行距離檢測,為小車提供正確的道路方向,從而避開障礙物。無線模塊, LCD1602 液晶模塊,STC89C52 這三者相結合,能夠以直觀的方式實時顯示小車檢測 的距離情況,方便進行相應的記錄,更好地完成探測工作。 關鍵詞:智能車,避障,超聲波,無線 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 I Abstract Intelligence is the developing direction as a modern invention in the future. I

3、t can operate automatically and be used to scientific exploration according to the present mode in such an environment, without the help of the human management. Intelligent electric vehicles is one of the embodiment. And the intelligent car design takes MC9S12XS128 micro controller as the core, com

4、bined with the ultrasonic module and wireless module, to realize the cars intelligent obstacle avoidance function and the distance real-time display function. One of the main sensors is the ultrasonic module, which is connected to the steering gear. When faced with the obstacles less than the booked

5、 distance, the ultrasonic module can check the distance all-around and provide the right direction for the car to avoid obstacles. And the wireless module, LCD1602 LCD module, and STC89C52 module can be all combined together, which they can show the detecting cars distance in a visual way and make r

6、ecords conveniently to complete the detection work better. Keywords: intelligent vehicle, obstacle avoidance, ultrasonic, wireless 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 II 目 錄 第 1 章 緒 論.1 第 2 章 系統(tǒng)硬件設計.2 2.1 系統(tǒng)總體設計方案 .2 2.2 主控系統(tǒng).2 2.3 電源設計.3 2.3.1 電源管理.3 2.3.2 低壓差穩(wěn)壓芯片 LM2940 簡介.3 2.3.3 LM1117(AMS1117)系列穩(wěn)壓芯片簡介.4 2.4

7、LCD1602 液晶顯示模塊.5 2.4.1 LCD1602 簡介.5 2.4.2 LCD1602 引腳.5 2.5 NRF24L01 無線模塊 .7 2.5.1 NRF24L01 簡介 .7 2.5.2 無線模塊的使用.8 2.6 驅(qū)動模塊 .8 2.6.1 L298N 簡介.8 2.6.2 電機驅(qū)動電路及說明.9 2.6.3 L298N 模塊使用方法 .10 2.7 舵機模塊 .10 2.7.1 舵機選擇 .10 2.7.2 舵機控制 .10 2.8 超聲波模塊.11 2.8.1 模塊特點.11 2.8.2 模塊實物圖.12 2.8.3 模塊電平觸發(fā)測距時序.13 2.8.4 基本工作原理

8、.13 2.9 核心板模塊.14 2.9.1 核心板電路設計與 PCB.14 2.10 超聲波模塊的位置安裝 .15 第 3 章 系統(tǒng)軟件設計.16 3.1 系統(tǒng)軟件整體控制流程圖 .16 3.2 無線接收模塊流程圖 .17 3.3 超聲波模塊流程圖 .17 3.4 小車控制算法 .18 第 4 章 系統(tǒng)調(diào)試.20 4.1 開發(fā)調(diào)試工具.20 4.2 軟件開發(fā)平臺 .20 第 5 章 結論.22 致 謝 .23 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 III 參考文獻.24 附錄:程序附錄:程序.25 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 0 第 1 章緒 論 隨著我國科學技術的進步

9、,智能化和自動化技術越來越普及,各種高科技也廣 泛應用于智能小車和機器人玩具制造領域使智能機器人越來越多樣化。智能小車 是一個多種高新技術的集成體,它融合了機械、電子、傳感器、計算機硬件、軟件、 人工智能等許多學科的知識涉及到當今許多前沿領域的技術。而智能電動車正是 智能機器人的一種,具有不可估量的實際意義 智能車作為現(xiàn)代的新發(fā)明,是以后的發(fā)展方向,它可以按照預先設定的模式在 一個環(huán)境里自動的運作,不需要人為的管理,可應用于科學勘探等等的用途。智能 小車作為機器人的典型代表。機器人要實現(xiàn)自動導引功能和避障功能就必須要感知 導引線和避障物,感知導引線相當給機器人一個視覺功能。避障控制系統(tǒng)是基于自

10、 動引導小車系統(tǒng),基于它的智能小車實現(xiàn)自動識別道路,判斷并自動避開障礙物, 選擇正確的行進路線,使用傳感器感知路線和避障并作出判斷和相應的執(zhí)行動作。 此次的設計主要實現(xiàn)避障循路這一個功能。它通過超聲波作為傳感器,憑借超 聲波模塊的發(fā)射接收功能,能很好的判斷計算出前方障礙物離智能車的距離,從而 讓智能車進行偏轉(zhuǎn)尋找出正確的道路,它的測距功能在一些危險地帶探測場地的距 離大小有很好的輔助作用,避免了人工探測的危險。同時在本智能車的基礎上安裝 了無線控制功能,在特定時期方便人為的知道小車遇到的具體情況,并進行相應的 記錄和控制,更好地完成探測工作。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 1 第

11、 2 章 系統(tǒng)硬件設計 2.1 系統(tǒng)總體設計方案 本系統(tǒng)以 MC9S12XS128 單片機作為核心控制芯片,包括電源模塊、超聲波模塊、 驅(qū)動模塊,無線模塊,舵機模塊,LCD 液晶顯示模塊。通過 C 編程完成智能小車的 整體裝置。 中間超聲波模塊 右邊超聲波模塊 左邊超聲波模塊 P M MC9S12XS 128 電源模塊 舵機模塊 驅(qū)動模塊 無線發(fā)送LCD 顯示模塊 STC8 9C52 無線接收 LCD 顯示 模塊 圖 2-1智能小車的總體設計 2.2 主控系統(tǒng) 采用 freescale 公司MC9S12XS128,16bit、112pin 的單片機,其集成了 PIM,TIM,PWM,SPI,S

12、CI,ECT,CAN,AD,PIT,CAN 等模塊,MCU內(nèi)部最高超頻達80MHZ, 運算速度快,使用方便,功能強大。 本智能車此次用到了 XS128 中的普通 IO 口:A,B,E,K;外部中斷端口 H 口; AD 口,TIM 模塊,PWM 模塊等。圖 2-2 為 MC9S12XS128 集成模塊 圖 2-2 MC9S12XS128 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 2 2.3 電源設計 2.3.1 電源管理 電源管理是智能小車設計中的重要環(huán)節(jié),它為系統(tǒng)各個模塊供電。可靠的電源 設計是整個硬件電路穩(wěn)定運行的基礎。本智能小車使用的是可充電式Ni-Cd電池。其 供電電壓為7.2V,容量

13、為1800mA/h,由于智能車系統(tǒng)各個模塊所需電壓不同,因此 需要進行電壓調(diào)節(jié),此次智能車用到的穩(wěn)壓芯片有LM2940-5.0,ASM1117- 5.0,ASM1117-3.3,LM1117-ADJ。智能車系統(tǒng)中電源分配如下: 7.2V MCU 6V5V3.3V7.2V 電機舵機MCU超聲波無線LCD 圖2-3 電源分配 2.3.2 低壓差穩(wěn)壓芯片 LM2940 簡介 LM2940 系列是輸出電壓固定的低壓差三端端穩(wěn)壓器;輸出電壓有5V、8V、10V 多種;最大輸出電流1A;輸出電流1A 時,最小輸入輸出電壓差小于0.8V;最大輸入 電壓26V;工作溫度-40+125;內(nèi)含靜態(tài)電流降低電路、電

14、流限制、過熱保護、 電池反接和反插入保護電路。 圖2-4 LM2940 封裝和實物圖 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 3 VC C _5V 1 2 3 VV GND INOUT U4 LM 2940 0.1uF C 2 0.1uF C 4 100uF C 1 10uF C 3 GND VC C _7.2V 圖 2-5 LM2940-5.0 穩(wěn)壓電路 2.3.3 LM1117(AMS1117)系列穩(wěn)壓芯片簡介 LM1117是一個正向低壓降穩(wěn)壓器,在1A電流下壓降為1.2V。LM1117內(nèi)部集成過 熱保護和限流電路,有限流功能和過熱切斷功能。溫度范圍:-40C 125C。 圖 2-6

15、LM1117 封裝及引腳分布 AMS1117-3.3,AMS1117-5.0,LM1117-ADJ 穩(wěn)壓電路如圖 2-7 至 2-9 所示: V IN 3 O U T 2 GND 1 U 6A M S 1117-3.3 0.1uF C 11 100uF C 9 10uF C 12 0.1uF C 13 G N D V C C _3.3V C C _7.2V 圖 2-7 AMS1117-3.3 穩(wěn)壓電路 V IN 3 O U T 2 GND 1 U 2 A M S 1117-50.1uF C 2 100uF C 1 0.1uF C 4 100uF C 3 V C C _5VV C C _7.2V

16、 G N D 圖 2-8 AMS1117-5.0 穩(wěn)壓電路 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 4 V in 3 ADJ 1 V out 2 U 7 L M 1117-A D J C 16 10uf R 4 121 1 1 3 3 2 2 R 5 1K C 14 100uf C 15 0.1uf G N D 1 C 17 10uf V C C 7.2V6V 圖 2-9 LM1117-ADJ(6V)穩(wěn)壓電路 2.4 LCD1602 液晶顯示模塊 2.4.1 LCD1602 簡介 1602 液晶也叫 1602 字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等 的點陣型液晶模塊,內(nèi)容為 1

17、6X2,即可以顯示兩行,每行 16 個字符液晶模塊。它由 若干個 5X7 或者 5X11 等點陣字符位組成,每個點陣字符位都可以顯示一個字符, 每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。 2.4.2 LCD1602 引腳 1602采用標準的16腳接口,其中: 第1腳:VSS 為電源地 第2腳:VCC 接5V 電源正極 第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對 比度最高(對比度過高時會 產(chǎn)生“鬼影” ,使用時可以通過一個10K 的電位器調(diào)整 對比度) 。 第4腳:RS 為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄 存

18、器。 第5腳:RW 為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 5 第6腳:E(或 EN)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執(zhí)行 指令。 第714腳:D0D7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。 圖 2-10 LCD1602 實物與引腳 讀寫操作時序如圖 2-11 和 2-12 所示: 圖 2-11 讀操作時序 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 6 圖 2-12 寫操作時序 2.5 NRF24L01 無線模塊 2.5.1 NRF24L01 簡介

19、NRF24L01 是一款新型單片射頻收發(fā)器件,工作于 2.4 GHz2.5 GHzISM 頻段。 內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強型 ShockBurst 技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01 功耗低, 在以-6 dBm 的功率發(fā)射時,工作電流也只有 9 mA;接收時,工作電流只有 12.3 mA,多 種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便。 圖 2-13 NRF24L01 模塊 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 7 2.5.2 無線模塊的使用 本次智能車使用兩塊無線模塊,分別是發(fā)送和接受數(shù)據(jù)作用。以

20、MC9S12XS128 連接無線模塊,作為數(shù)據(jù)的發(fā)送,實時發(fā)送超聲波檢測的距離,以 MC89C52 單片機 連接無線模塊作為數(shù)據(jù)的接收,在接收模塊中加入 LCD1602 液晶顯示模塊,能夠很 好的顯示出小車離障礙物之間的距離。下圖為 MC89C52 單片機無線接收模塊電路, 其中以 AMS1117-3.3 為無線模塊提供 3.3V 的電壓,以 MC89C52 單片機的 P1 口作為 無線接收端口,P0 口作為 LCD1602 液晶顯示數(shù)據(jù)傳送端口,外加復位電路,晶振電 路。 GND 20 EA/Vpp 31 X1 19 X2 18 R ST 9 P37(R D) 17 P36(W R ) 16

21、 P32(INT0) 12 P33(INT1) 13 P34(T0) 14 P35(T1) 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 P31(Tx) 11 P30(R x) 10 VC C 40 U1 AT89C 51(b) 1 2 3 4 5 6 7 8 9 J1 10K D0

22、D1 D2 D3 D4 D5 D6 D7 GND VC C R 1 2.7K GND GND EN R S GND R 2 10 VC C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 U2 1602 D0 D1 D2 D3 D4 D5 D6 D7 VC C GND 1 2 3 4 5 6 7 8 J3 W UXIAN VC C _3.3 GND A0 A1 A2 A3 A4 A5 A0A1 A2A3 A4A5 VIN 3 OUT 2 GND 1 U6AM S1117-3.3 0.1uF C 2 100uF C 1 10uF C 3 0.1uF C 4 VC C

23、 _3.3 1 2 J4 HEADER 2 VC C GND Y1 30pF C 5 30pF C 6 GND R 3 10K R 4 1K S1 10uF C 7 VC CGND 圖 2-14 MC89C52 無線接收電路 2.6 驅(qū)動模塊 2.6.1 L298N 簡介 L298N 是ST 公司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯片。該芯片采用15 腳 封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間 峰值 電流可達3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個H 橋的高電壓大電流全橋 式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器線圈等感性負載;采用 標準邏輯

24、電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 8 或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電 壓下工作;可 以外接檢測電阻,將變化量反饋給控制電路。使用L298N 芯片驅(qū)動電機,該芯片可 以驅(qū)動一臺兩相步進電機或四相步進電機,也可以驅(qū)動兩臺直流電機。 圖 2-15 L298 引腳 2.6.2 電機驅(qū)動電路及說明 IN1 5 IN2 7 IN3 10 IN4 12 ENA 6 ENB 11 GND 8 VS S 9 VS 10 OUT1 2 OUT2 3 OUT3 13 OUT4 14 IS ENA 1 IS EN

25、B 15 U1 L298 1 2 3 4 5 6 7 8 J1 HEADER 8 GND VC C _5V GND 1 2 J2 HEADER 2 D9 LED D1 IN4007 D2 IN4007 D3 IN4007 D4 IN4007 D5 IN4007 D6 IN4007 D7 IN4007 D8 IN4007 GND VIN 3 OUT 2 GND 1 U2 AM S 1117-5 0.1uF C 2 100uF C 1 0.1uF C 4 100uF C 3 1K R 1 GND VC C _5V VC C _5VVC C _7.2V VC C _7.2V 1K R 2 D10 L

26、ED D11 LED 1K R 3 D14 LED D12 LED 1 2 J3 HEADER 2 1 2 J4 HEADER 2 1 2 J5 HEADER 2 VC C _7.2 GND 圖 2-16 電機驅(qū)動電路 對于以上電路圖有以下幾點說明: 1. 電路圖中有兩個電源,一路為 L298 工作需要的 5V 電源 VS,一路為驅(qū)動電 機用的電池電源 VSS。 2. 1 腳和15 腳有的電路在中間串接大功率電阻,可以不加。 3. 圖中連接了兩路電機,2腳和3腳驅(qū)動一路電機,13腳和14腳驅(qū)動另一路電機。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 9 4. 八個續(xù)流二極管IN4007是為了消

27、除電機轉(zhuǎn)動時的尖峰電壓保護電機而設計。 5. 6 腳和11 腳為兩路電機通道的使能開關,高電平使能,所以可以直接接高 電平,也可以交由單片機控制。 6. 由于工作時 L298 的功耗較大,需加裝散熱片。 2.6.3 L298N 模塊使用方法 表 2-1 L298N 模塊使用方法 ENAENBIN1IN2IN3IN4 運行狀態(tài) 00 停止 111010 正轉(zhuǎn) 110101 反轉(zhuǎn) 2.7 舵機模塊 2.7.1 舵機選擇 本次設計舵機的選擇: 舵機類型:MG995; 工作扭力:13KG/CM; 舵機類型:模擬舵機; 工作電流:100MA; 使用電壓:3-7.2V; 無負載是操作速度:0.13 秒/6

28、0 度(6V) ; 舵機接線:電源線,信號線,地線。 圖 2-17 MG995 舵機 2.7.2 舵機控制 舵機的控制一般需要一個 20ms 左右的時間脈沖,該脈沖的高電平分為 0.5ms2.5ms 范圍內(nèi)的角度控制脈沖部分。以 180 度角度伺服為例,那么對應的控 制關系如圖 2-18 所示: 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 10 圖 2-18 舵機角度控制 2.8 超聲波模塊 2.8.1 模塊特點 本次設計采用HC-SR04超聲波測距模塊,此模塊可提供2cm-400cm的非接觸式距 離感測功能,測距精度可達高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。 HC-SR04超聲

29、波模塊電氣參數(shù)如表2-2所示: 表2-2 HC-SR04電氣參數(shù) 電氣特性HC-SR04超聲波模塊 工作電壓 DC 5V 工作電流 15mA 工作頻率 40KHZ 最遠射程 4m 最近射程 2cm 測量角度15度 輸入觸發(fā)信號10US的TTL脈沖 輸出回響信號輸出TTL電平信號,與射程成正比 規(guī)格尺寸 40*20*15mm 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 11 2.8.2 模塊實物圖 接線特點:如右圖2-19所示,VCC 供5V電源, GND 為地線,TRIG 觸發(fā)控制信 號輸入,ECHO 回響信號輸出等四個接口端。 圖 2-19 超聲波測距模塊外觀 本測距模塊使用的是壓電式超聲波

30、發(fā)生器探頭,壓電式超聲波發(fā)生器實際上是 利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部結構如圖1-37所示,它有兩個壓 電陶瓷晶片和一個金屬片共振板。當它的兩極外加脈沖信號,其頻率等于壓電陶瓷 晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲 波。反之,如果兩電極間未外加電壓,當金屬片共振板接收到超聲波時,將壓迫壓 電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。 圖2-20 壓電式超聲波發(fā)生器 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 12 2.8.3 模塊電平觸發(fā)測距時序 圖 2-21 US-100 測距時序圖 2.8.4 基本工作原理 (1)采用I

31、O 口TRIG 觸發(fā)測距,給最少10us 的高電平信號。 (2)模塊自動發(fā)送8 個40khz 的方波,自動檢測是否有信號返回; (3)有信號返回,通過IO 口ECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲 波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S)/2; 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 13 2.9 核心板模塊 2.9.1 核心板電路設計與 PCB 圖 2-22 核心板電路 圖 2-23 核心板 PCB 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 14 2.10 超聲波模塊的位置安裝 本小車根據(jù)實際情況需要,在安裝時使用三個超聲波模塊進行距離檢測,它們

32、的安裝位置如圖 1-1 所示。其中居中的超聲波模塊連接舵機,方便超聲波模塊 180 度距離掃描,從而為小車判斷出正確的行駛道路。而左右超聲波模塊的安裝考慮是 為避免小車在行駛過程中左右邊緣離障礙物過近,產(chǎn)生摩擦。因為小車在行進過程 中中間超聲波模塊只有在距離小于 20cm 的時候才會進行 180 掃描,其他時候保持 居中狀態(tài),而超聲波模塊本身的特點是它的測量角度是 15 度,所以左右兩邊就會產(chǎn) 生盲區(qū),而安裝了左右超聲波模塊就可以避免這方面的問題,從而實現(xiàn)左右避障。 圖 2-24 超聲波模塊安裝位置 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 15 第 3 章 系統(tǒng)軟件設計 3.1 系統(tǒng)軟件整

33、體控制流程圖 開始 中間超聲波測距 無線發(fā)送 距離=20cm 停車 舵機從左到右每 15偏轉(zhuǎn) 超聲波測距 舵機擺正 判斷最大距離方向 小車偏轉(zhuǎn)相應角度 左超聲波掃描 右超聲波掃描 XS128 初始化 左或右距離 =2cm 前進 圖3-1 系統(tǒng)軟件流程圖 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 16 3.2 無線接收模塊流程圖 此程序以 STC89C52 為控制芯片,等待無線模塊接收到數(shù)據(jù),再通過 LCD 進行 距離顯示,其中的 LED 作用是判斷 STC89C52 是否接收到數(shù)據(jù)。 開始 C52 初始化 無線是 否接收 到數(shù)據(jù) 等待 LCD1602 顯 示 LED 輪流亮滅 圖3-2 無線

34、接收模塊流程圖 3.3 超聲波模塊流程圖 根據(jù)超聲波模塊的時序圖,超聲波模塊的軟件設計思想是通過 XS128 發(fā)送高電 平,此時超聲波模塊進入發(fā)送模式,XS128 開定時器計時,等待超時波接收到信號, 從而 XS128 接收到高電平,根據(jù)資料:測試距離=(高電平時間*聲速(340M/S)/2, 而本次設計,定時器是以 10us 級進行時間計數(shù),最終的測試距離=(1.7*高電平時 間/10)cm 。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 17 開始 發(fā)送高電平 計時(10us 級) MCU 接 收高電平 1.7*shijian/10(cm ) 等待 MCU 初始化數(shù)據(jù) 圖3-3 超時波流程

35、圖 3.4 小車控制算法 1,智能車設計的難點:小車根據(jù)超聲波模塊返回來的數(shù)據(jù)進行方向判斷,并讓 小車偏轉(zhuǎn)相應的方向。 2,智能車控制算法:以小車中心點作為偏轉(zhuǎn)基準,檢測最大距離所在的角度作 為小車的最佳偏轉(zhuǎn)方向。 3,實現(xiàn)過程:在小車前進過程中,中間超聲波模塊處于居中掃描狀態(tài),當小車 離障礙物的距離小于20cm時,小車停止前進,舵機帶動超聲波模塊以中間為基準, 從左到右每15進行掃描,通過計算把其中距離的最大值所在的角度作為小車的偏 轉(zhuǎn)方向,最后讓小車前進。 4,實際調(diào)試遇到的算法問題: (1)小車偏轉(zhuǎn)角度(15)的定制。前文提到當小車遇到障礙物時,超聲波 模塊從左到右每15進行距離掃描,這

36、是因為在前期調(diào)試中,當小車遇到如圖3-4所 示的這種狀況時,若給小車以大于15的偏轉(zhuǎn)方向進行掃描,可能會讓小車錯過最 佳的偏轉(zhuǎn)角度,而給予小車小于15的偏轉(zhuǎn)方向,雖然這樣會讓小車的偏轉(zhuǎn)角度更 加精準,但這樣做的同時,也就增加了舵機的偏轉(zhuǎn)時間,從而造成小車的檢測時間 過長。而15的定制,在實際調(diào)試中處于,能滿足小車的偏轉(zhuǎn)需要,效果很好。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 18 小車 障礙 圖3-4 (2)相同距離不同角度的解決。如下程序所示,把檢測到的數(shù)據(jù)放到max12, 通過冒泡法對數(shù)據(jù)進行排序,選出最大距離值,而每一個元素值代表著不同的角度, 通過數(shù)據(jù)相與的方法,以zuo15 作為

37、起點開始判斷?,F(xiàn)在以zuo15和zuo30為例,當 這兩個角度的距離都是最大值時,if(max11=zuo15),則讓車子進行15偏轉(zhuǎn), 而若想讓小車進行30偏轉(zhuǎn)的話,只能是zuo30為最大值if(zuo30=max11) max1=zuo30; max2=zuo45; max3=zuo60; max4=zuo75; max5=zuo90; max6=you15; max7=you30; max8=you45; max9=you60; max10=you75; max11=you90; for(i=1;i12;i+) / 冒泡法排序,找出最大值作為角 度的偏轉(zhuǎn)判別 for(j=0;jmaxj+

38、1) int maxjuli; maxjuli=maxj ; maxj=maxj+1; maxj+1=maxjuli; 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 19 第 4 章 系統(tǒng)調(diào)試 4.1 開發(fā)調(diào)試工具 系統(tǒng)的開發(fā)調(diào)試用到了Metroworks 公司的Code Warrior5.0 開發(fā)軟件,另外, 為了調(diào)試方便,使用了LCD1602液晶模塊進行調(diào)試。 4.2 軟件開發(fā)平臺 智能車開發(fā)環(huán)境采用了飛思卡爾XS128 系列單片機開發(fā)軟件CodeWarrior5.0版 本。5.0版本的PE模式來完成對單片機個模塊的初始化,使用起來非常方便,避免了 之前需要很多代碼來初始化的繁瑣過程,X12

39、單片機該軟件具有支持多種語言、開發(fā) 環(huán)境界面統(tǒng)一、交叉平臺開發(fā)以及支持插件工具等特點。CodeWarrior界面完成編譯 后,通過BDM工具,在CodeWarrior環(huán)境下向MC9S12XS模塊下載程序。BDM工具使用簡 單,十分方便。 開發(fā)環(huán)境如圖4-1所示 圖 4-1 CodeWarrior5.0 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 20 BDM 調(diào)試介紹 Motorola 微處理器的調(diào)試模塊針對不應用同場合分別提供了3 種調(diào)試支持 模式:實時跟蹤、BDM 調(diào)試和實時調(diào)試。實時跟蹤是要求能夠跟蹤應用程序的動態(tài) 執(zhí)行路徑,這是實時系統(tǒng)的基本要求;在BDM 調(diào)試方式下,處理器被停機,

40、大量的 命令可以被發(fā)送到處理器中訪問內(nèi)存和寄存器,外部仿真系統(tǒng)使用一個三腳、串行 的雙工通道與處理器通信;實時調(diào)試則可以不需要CPU 停止運行,調(diào)試中斷允許實 時系統(tǒng)執(zhí)行一個惟一的服務例程,快速保存主要的寄存器和變量等上下文內(nèi)容,并 使系統(tǒng)立即返回到正常操作,外部的開發(fā)系統(tǒng)能訪問被保存的數(shù)據(jù)是因為硬件支持 處理器和BDM 初始化命令的一致性操作。其中 BDM 調(diào)試模式為設計人員提供了一種 低層次的調(diào)試手段,讓用戶能夠中斷CPU 的運行,單步調(diào)試程序,讀取CPU 的各個 寄存器的內(nèi)容,這些僅僅是通過向CPU 發(fā)送幾個簡單的命令就可以實現(xiàn),顯然,這 樣使調(diào)試軟件的設計很簡單,通常自己就可以編寫。硬

41、件調(diào)試卡的設計也非常簡單, 關鍵是要滿足好通信時序關系和電平轉(zhuǎn)換要求。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 21 第 5 章 結論 整個系統(tǒng)的設計以 MC9S12XS128 為核心,利用了超聲波傳感器,將軟件和硬件 相結合。本系統(tǒng)能實現(xiàn)如下功能: (1)小車自動行駛,當小車探測到前進前方的障礙物時,可以自動調(diào)整,躲避 障礙物,從無障礙區(qū)通過。 (2)實時傳送小車離障礙物之間的距離。 從運行情況來看小車的避障功能比較好,但無線調(diào)試過程中,液晶顯示的距離 過長時,數(shù)據(jù)跳動比較明顯,這個現(xiàn)象可能是由于超聲波模塊的不穩(wěn)定或程序考慮 的不完善所致,我相信如果實驗條件和時間的允許下我肯定能解決這一

42、問題。 通過本次設計我掌握了很多以前不熟練的東西,認識了很多以前不熟悉的東西, 使我認識到理論知識與實踐結合的重要性,也認識到很多的不足。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 22 致 謝 大學四年的時光即將結束,回想這四年發(fā)生的點點滴滴,仿佛如昨天的事情, 這其中帶給了自己太多的感觸與深深的不舍。在大學期間,我學到了很多東西,自 己收獲了不僅僅是知識,更多的是友情,我要感謝一直陪伴著我的那些同學們,是 你們帶給我快樂與充實的大學生活,同時我還有感謝教過我的所有老師,你們淵博 的知識嚴謹與孜孜不倦的教學態(tài)度,給予我很多的感觸,是你們教會了我豐富的知 識與做人的道理。 大三期間,可謂是自

43、己大學生活的轉(zhuǎn)折點,參加的智能車競賽,在實驗室的 日子令人難忘。在調(diào)車過程中,與十一個伙伴在試驗室里不斷地奮斗,攻克難點, 一起鼓勵,一起進步,我們之間的友誼我會銘記一輩子。在這期間,王波老師的精 心指導與鼓勵,讓我深深地感激,老師,有您的陪伴是我們不斷進步的最佳動力。 此次畢業(yè)設計期間,要感謝指導老師王波老師對我的關心與指導,她豐富的 知識與縝密的思維給予了我很大的幫助,使得此次畢業(yè)設計能順利地完成。 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 23 參考文獻 1 譚浩強.C 程序設計.北京:清華大學出版社,1991. 2 郭天翔.新概念 51 單片機 C 語言教程入門、提高、開發(fā)、拓展全攻

44、略.北京: 電子工業(yè)出版社,2009. 3 王威.HCS12 微控制器原理及應用. 北京:北京航空航天大學出版社.2007. 4 卓晴,黃開勝,邵貝貝.學做智能車挑戰(zhàn)“飛思卡爾”杯.北京:北京航空航天 大學出版社.2007. 5 紹貝貝. 單片機嵌入式應用的在線開發(fā)方法.北京:清華大學出版社.2004. 6 張偉. Protel DXP 高級應用.北京:人民郵電出版社.,2004. 7 畢滿清.模擬電子技術基礎.北京:電子工業(yè)出版社.2008. 8 王永軍,李景華.數(shù)字邏輯與數(shù)字系統(tǒng).北京:電子工業(yè)出版社.2006 9 王曉明電動機的單片機控制.北京:北京航空航天大學出版社.2002. 廣東海

45、洋大學寸金學院 2013 屆畢業(yè)論文 24 附錄:程序附錄:程序 MCU_IO.c #include /* common defines and macros */ #include derivative.h /* derivative-specific definitions */ /* / *PLL 初始化* / * void PLL_init(void) CLKSEL=0X00;/disengage PLL to system PLLCTL_PLLON=1;/turn on PLL SYNR =0 xc0 | 0 x05; REFDV=0 x80 | 0 x01; POSTDIV=0 x

46、00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=96MHz; _asm(nop); /BUS CLOCK=48M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; /*PWM 初始化* /* void PWM_init(void) PWME=0 x00; /禁止 PWMCTL_CON01=1; /01,23,45,67 級聯(lián),其中 01 是舵機 ,奇數(shù)是控制字 PWMCLK=0 x0f; /01,

47、23 選擇 clockSA 或 CLOCKSB PWMPRCLK=0 x11; /CLOCKA=CLOCKB=48/21=24M PWMSCLA=0 x18; /CLOCK SA=ClockA/(2*PWMSCLA 1)=500Khz PWMPOL=0 xff; /全部先高后低 PWMCAE=0 x00; /左對齊 /舵機 PWMPER01=10000; /(50hz)20ms=1000*1/500000 *RWMPERx PWMDTY01=700; /舵機不動的占空比 750 1.5ms 250 0.5ms 500 1ms 1000 2ms 1250 2.5ms PWMCNT01=0; /計

48、數(shù)器清零 實際 700 居中 1250 最左 250 最右 PWME=0 xff; /使能 /*I/O 口初始化* /* void IO_init(void) DDRK=0Xfd; /1101 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 25 / DDRB=0 xff; DDRA=0 xff; /A0A7 電機驅(qū)動輸出 DDRE=0 xf0; /B0B1 電機使能 DDR1AD0=0 xff; ATD0DIEN=0 xff; DDRM=0XFF; /* PPSP=0X00; / 默認選擇了上拉裝置,下降選擇 PERP=0 xff; /拉裝置使能 DDRP=0 x00;/IO 方向輸入 PIEP

49、=0 x00; /PIEP0 使能 PTIH = 0X00; PPSH=0XFF; PERH=0XFF; DDRH=0X00; PIEH=0X00; */ DDRH=0X5f; / 0101 1111 /*PIT 初始化* void PIT0_Init(void) PITCFLMT_PITE=0; /禁止 PIT PITCE_PCE0=1; /允許時鐘通道 0 PITMUX_PMUX0=0; /通道 0 PITMTLD0=0; /設置 10us 定時 PITLD0=480-1; PITINTE_PINTE0=1; /開溢出中斷 PITCFLMT_PITE=1; /開 PIT 中斷 void d

50、elay_ms(uint z) /16M 晶振 t 毫秒 uint x,y; for(x=z;x0;x-) for(y=2670;y0;y-); void delay_us(uint z) /16M 晶振 t 微妙 uint x,y; for(x=z;x0;x-) for(y=1;y0;y-); MCU_IO.h void PLL_init(void); void PWM_init(void); void IO_init(void); void delay_ms(uint z); void delay_us(uint z); void PIT0_Init(void); zxqk.c 廣東海洋大

51、學寸金學院 2013 屆畢業(yè)論文 26 #include /* common defines and macros */ #include derivative.h /* derivative-specific definitions */ #define IN1 PORTA_PA0 #define IN2 PORTA_PA1 #define IN3 PORTA_PA2 #define IN4 PORTA_PA3 #define IN5 PORTA_PA4 #define IN6 PORTA_PA5 #define IN7 PORTA_PA6 #define IN8 PORTA_PA7 #de

52、fine ENA_1 PORTE_PE4 #define ENB_1 PORTE_PE5 #define ENA_2 PORTE_PE6 #define ENB_2 PORTE_PE7 void zhixian(void) ENA_1=1; ENB_1=1; ENA_2=1; ENB_2=1; IN1=1; IN4=1; IN5=1; IN8=1; void zuozhuang(void) ENA_1=1; ENB_1=1; ENA_2=1; ENB_2=1; IN1=1; IN4=1; IN6=1; IN7=1; void youzhuang(void) ENA_1=1; ENB_1=1;

53、ENA_2=1; ENB_2=1; IN2=1; IN3=1; IN5=1; IN8=1; void houtui(void) 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 27 ENA_1=1; ENB_1=1; ENA_2=1; ENB_2=1; IN2=1; IN3=1; IN6=1; IN7=1; void tingzhe(void) ENA_1=0; ENB_1=0; ENA_2=0; ENB_2=0; zxqk.h void zhixian(void); void zuozhuang(void); void youzhuang(void); void houtui(void); vo

54、id tingzhe(void); bianliang.h #define uint unsigned int #define uchar unsigned char extern uchar ASCII118; extern uchar ASCII216; extern byte TxBuf3; 1602.c #include /* common defines and macros */ #include derivative.h /* derivative-specific definitions */ #includeMCU_IO.h #includebianliang.h #defi

55、ne lcden PORTK_PK4 #define lcdrs PORTK_PK5 #define P0 PT1AD0 uint k; uint h; void write_com(uchar com) lcdrs=0; P0=com; delay_ms(10); lcden=1; delay_ms(10); lcden=0; void write_data(uchar date) 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 28 P0=date; lcdrs=1; delay_ms(10); lcden=1; delay_ms(10); lcden=0; void LCD_init(voi

56、d) lcden=0; write_com(0 x38); write_com(0 x0c); write_com(0 x06); write_com(0 x01); write_com(0 x80); for(h=0;h5;h+) write_data(ASCII210+h); delay_ms(10); write_com(0 x80+0 x40); for(k=0;k5;k+) write_data(ASCII110+k); delay_ms(10); write_com(0 x80+0 x40+14); write_data(ASCII116); write_com(0 x80+0 x

57、40+15); write_data(ASCII117); 1602.h void write_com(uchar com); void write_data(uchar date); void LCD_init(void); 24L01.c #include #include derivative.h #includebianliang.h #define CE PORTB_PB0 #define CSN PORTB_PB1 #define SCK PORTB_PB2 #define MOSI PORTB_PB3 #define MISO PORTB_PB4 #define IRQ PORT

58、B_PB5 #define LED PORTK_PK7 廣東海洋大學寸金學院 2013 屆畢業(yè)論文 29 #define TX_ADR_WIDTH 5 / 5 uints TX address width #define RX_ADR_WIDTH 5 / 5 uints RX address width #define TX_PLOAD_WIDTH 5 / 20 uints TX payload #define RX_PLOAD_WIDTH 5 / 20 uints TX payload byte const TX_ADDRESSTX_ADR_WIDTH= 1,2,3,4,5; /本地地址 b

59、yte const RX_ADDRESSRX_ADR_WIDTH= 1,2,3,4,5; /接收地址 /*發(fā)送緩沖區(qū) * #define READ_REG 0 x00 / 讀寄存器指令 #define WRITE_REG 0 x20 / 寫寄存器指令 #define RD_RX_PLOAD 0 x61 / 讀取接收數(shù)據(jù)指令 #define WR_TX_PLOAD 0 xA0 / 寫待發(fā)數(shù)據(jù)指令 #define FLUSH_TX 0 xE1 / 沖洗發(fā)送 FIFO 指令 #define FLUSH_RX 0 xE2 / 沖洗接收 FIFO 指令 #define REUSE_TX_PL 0 xE3

60、 / 定義重復裝載數(shù)據(jù)指令 #define CONFIG 0 x00 / 配置收發(fā)狀態(tài),CRC 校驗模式以及收發(fā)狀態(tài)響應方式 #define EN_AA 0 x01 / 自動應答功能設置 #define EN_RXADDR 0 x02 / 可用信道設置 #define SETUP_AW 0 x03 / 收發(fā)地址寬度設置 #define SETUP_RETR 0 x04 / 自動重發(fā)功能設置 #define RF_CH 0 x05 / 工作頻率設置 #define RF_SETUP 0 x06 / 發(fā)射速率、功耗功能設置 #define STATUS 0 x07 / 狀態(tài)寄存器 #define

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論