智能小車設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì)(論 文)</p><p>  題 目: 智能小車設(shè)計(jì) </p><p>  院 系: 電子與信息工程學(xué)院 </p><p>  專 業(yè): </p><p>

2、  班 級(jí): </p><p>  學(xué)生姓名: </p><p>  導(dǎo)師姓名: 職稱: </p><p>  起止時(shí)間: 2011年4月18日至2011年6月 5日&

3、lt;/p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p><b>  任務(wù)與要求</b></p><p>  畢 業(yè) 設(shè) 計(jì) (論文) 工 作 計(jì) 劃 </p><p>  畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告</p><p>

4、;  學(xué)院 專業(yè) 2007 級(jí) 0702 班</p><p>  課題名稱: 智能小車設(shè)計(jì) </p><p>  學(xué)生姓名: 學(xué)號(hào): </p><p>  指導(dǎo)教師: </p><p>  報(bào)告日期: 2010

5、年10月28日 </p><p><b>  說(shuō)明:</b></p><p>  本報(bào)告必須由承擔(dān)畢業(yè)論文(設(shè)計(jì))課題任務(wù)的學(xué)生在畢業(yè)論文(設(shè)計(jì)) 正式開(kāi)始的第1周周五之前獨(dú)立撰寫完成,并交指導(dǎo)教師審閱。</p><p>  畢業(yè)設(shè)計(jì) (論文)成績(jī)?cè)u(píng)定表</p><p><b>  目錄</b

6、></p><p><b>  1引言1</b></p><p><b>  2需求分析2</b></p><p>  2.1項(xiàng)目來(lái)源及背景2</p><p>  2.2項(xiàng)目目標(biāo)2</p><p>  2.3應(yīng)用環(huán)境2</p><

7、p>  2.3.1系統(tǒng)硬件環(huán)境2</p><p>  2.3.2系統(tǒng)軟件環(huán)境6</p><p>  2.4功能規(guī)格7</p><p><b>  3系統(tǒng)設(shè)計(jì)8</b></p><p>  3.1系統(tǒng)總體設(shè)計(jì)8</p><p>  3.1.1總體設(shè)計(jì)8</p>

8、;<p>  3.1.2系統(tǒng)的功能模塊8</p><p>  3.1.3小車系統(tǒng)結(jié)構(gòu)圖9</p><p>  3.2詳細(xì)設(shè)計(jì)10</p><p>  3.2.1詳細(xì)設(shè)計(jì)的任務(wù)10</p><p>  3.2.2具體設(shè)計(jì)10</p><p>  3.2.3總體設(shè)計(jì)流程圖13</

9、p><p><b>  4系統(tǒng)實(shí)現(xiàn)14</b></p><p>  4.1核心部分實(shí)現(xiàn)方法14</p><p>  4.1.1紅外蔽障模塊14</p><p>  4.1.25V4相步進(jìn)電機(jī)的驅(qū)動(dòng)模塊[5]14</p><p>  4.1.3速度控制模塊14</p>

10、<p>  4.2部分模塊實(shí)現(xiàn)結(jié)果14</p><p>  4.2.1紅外避障模塊的實(shí)現(xiàn)14</p><p>  4.2.2電機(jī)驅(qū)動(dòng)模塊的實(shí)現(xiàn)14</p><p>  4.2.3蜂鳴器模塊的實(shí)現(xiàn)14</p><p>  4.2.4加減車速控制模塊15</p><p>  4.2.5車速顯

11、示模塊15</p><p>  5小車系統(tǒng)測(cè)試16</p><p><b>  6結(jié)束語(yǔ)17</b></p><p><b>  致 謝18</b></p><p><b>  參考文獻(xiàn)19</b></p><p>  7

12、附件1:系統(tǒng)實(shí)現(xiàn)20</p><p>  7.1核心部分實(shí)現(xiàn)方法20</p><p>  7.1.1紅外蔽障模塊20</p><p>  7.1.25V4相步進(jìn)電機(jī)的驅(qū)動(dòng)模塊[5]23</p><p>  7.1.3速度控制模塊26</p><p><b>  摘要</b><

13、;/p><p>  智能小車屬機(jī)器人的一種,它可按照預(yù)先設(shè)定的模式在一個(gè)環(huán)境里自主運(yùn)行,不需要人為管理,多應(yīng)用于學(xué)術(shù)應(yīng)用、科學(xué)探測(cè)、救災(zāi)搶險(xiǎn)等用途。人們通過(guò)編譯環(huán)境編程實(shí)現(xiàn)行進(jìn)、繞障、停止、檢測(cè)數(shù)據(jù)的存儲(chǔ)、顯示等功能,無(wú)需人工干預(yù)。智能小車設(shè)計(jì)具有實(shí)際意義,與實(shí)際相結(jié)合,現(xiàn)實(shí)意義很強(qiáng)。</p><p>  本系統(tǒng)以Easyarm1138為核心的控制電路,采用模塊化的設(shè)計(jì)方案,運(yùn)用光電發(fā)射接收器

14、、步進(jìn)電機(jī)、傳感模塊、車輪模塊、車速控制模塊、速度顯示模塊等組成不同的模塊,實(shí)現(xiàn)小車在行駛中測(cè)試、躲避障礙物、自我調(diào)整方向、蜂鳴提醒、加減行駛速度、顯示當(dāng)前速度等問(wèn)題。并將測(cè)量數(shù)據(jù)傳送至Arm板進(jìn)行處理,然后由Arm板根據(jù)所檢測(cè)的各種數(shù)據(jù)實(shí)現(xiàn)對(duì)電動(dòng)小車的智能控制。這種方案能使得智能小車滿足控制靈活、可靠,精度高,可滿足系統(tǒng)的各項(xiàng)要求。</p><p>  【關(guān)鍵詞】Easyarm1138、步進(jìn)電機(jī)、光電傳感器、驅(qū)

15、動(dòng)模塊、蜂鳴模塊、車速控制模塊、顯示模塊、躲避障礙物</p><p><b>  Abstract</b></p><p>  The intelligent mobile car is a kind of the robot .It can work by itself as the way designed before without management by

16、 our human beings ,therefore ,it is usually used on the fields of academic ,scientific exploration ,relief rescue and so on .The marching ,avoiding obstacles ,stopping , monitoring data ,display become true by the progra

17、mming. The intelligent mobile car is realistic and associated with actual. This system is used by Easyarm1138 as the core control circuit, and the way of desig</p><p>  【Key words】Easyarm1138, Stepping motor

18、, Photoelectric launch receiver, Driver module, Buzz remind,Speed display module, Speed control module, Evades obstacles</p><p><b>  引言</b></p><p>  智能小車可集環(huán)境感知、動(dòng)態(tài)決策、行為控制等多種功能于一體。隨著傳感

19、技術(shù)、計(jì)算機(jī)技術(shù)、人工智能及其它學(xué)科的迅速發(fā)展,機(jī)器人小車逐漸具有智能其必須具有感知作業(yè)環(huán)境、任務(wù)規(guī)劃以及決策的能力。從系統(tǒng)硬件方面講,機(jī)器人小車必須具有復(fù)雜的傳感器,功能強(qiáng)大的計(jì)算機(jī)以及精確的驅(qū)動(dòng)系統(tǒng)。單片機(jī)作為控制系統(tǒng)的微處理器,早已經(jīng)無(wú)法滿足系統(tǒng)的需求,ARM微處理器資源豐富,在數(shù)據(jù)處理和代碼存儲(chǔ)等方面具有良好的通用性。ARM是32位微處理器,集成了16位的Thumb指令集, ARM可以代替16位的處理器如51系單片機(jī),同時(shí)具有3

20、2位處理器的速度。ARM的嵌入式系統(tǒng)性能優(yōu)良、移植性好,已廣泛應(yīng)用于各個(gè)行業(yè),因此將ARM微處理器應(yīng)用于機(jī)器人小車是一種較優(yōu)的選擇。[1]</p><p>  本系統(tǒng)以Easyarm1138為核心的控制電路,采用模塊化的設(shè)計(jì)方案,運(yùn)用光電發(fā)射接收器、步進(jìn)電機(jī)、傳感模塊、車輪模塊、蜂鳴模塊、速度控制模塊、速度顯示模塊等組成不同的模塊,實(shí)現(xiàn)小車在行駛中測(cè)試、躲避障礙物、自我調(diào)整方向、蜂鳴提醒、加減行駛速度、顯示當(dāng)前行

21、駛速度等問(wèn)題。根據(jù)題目的要求,確定如下方案:在Easyarm1138上,加裝光電、紅外線傳感器、七段數(shù)碼管,利用蜂鳴器,實(shí)現(xiàn)對(duì)電動(dòng)車的速度、運(yùn)行狀況的實(shí)時(shí)測(cè)量及監(jiān)控,并將測(cè)量數(shù)據(jù)傳送至ARM進(jìn)行處理,然后由ARM根據(jù)所檢測(cè)的各種數(shù)據(jù)實(shí)現(xiàn)對(duì)電動(dòng)車的智能控制。這種方案能實(shí)現(xiàn)對(duì)電動(dòng)車的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,控制靈活、可靠,精度高,可滿足對(duì)系統(tǒng)的各項(xiàng)要求。</p><p><b>  需求分析</b>

22、;</p><p><b>  項(xiàng)目來(lái)源及背景</b></p><p>  隨著社會(huì)發(fā)展及人類的公共交通需求,以及人工智能化水平的日益提升,汽車工業(yè)也前所未有的迅速發(fā)展,關(guān)于汽車方面的研究也就越來(lái)越受人關(guān)注。全國(guó)電子競(jìng)賽、省內(nèi)電子競(jìng)賽以及全國(guó)各高校每年舉辦競(jìng)賽也都有智能小車這方面的題目,由此可知,各方各面都很重視該題目的研究,可見(jiàn)其研究意義之大。此次設(shè)計(jì)也是順應(yīng)社會(huì)發(fā)

23、展的大潮以及人們的需求而產(chǎn)生的,此次設(shè)計(jì)的智能電動(dòng)小車能夠?qū)崿F(xiàn)在行駛中自動(dòng)探測(cè)、躲避障礙物、自我車身調(diào)整、蜂鳴提醒、加減運(yùn)行速度、顯示行駛速度等具體功能。</p><p><b>  項(xiàng)目目標(biāo)</b></p><p>  本項(xiàng)目設(shè)定的目標(biāo)如下:</p><p>  小車系統(tǒng)應(yīng)具有良好的運(yùn)行效率,具有較高的前行、左右轉(zhuǎn)向、遇到障礙物的反應(yīng)、蜂鳴警

24、示及躲避的響應(yīng)速度;</p><p>  小車系統(tǒng)應(yīng)具有良好的可擴(kuò)展性,可以為日后升級(jí)系統(tǒng)提供方便;</p><p>  小車系統(tǒng)應(yīng)具有良好的靈活性,使行駛速度、自身調(diào)整角度都可以靈活改變;</p><p>  小車系統(tǒng)提供良好的測(cè)試模式,使設(shè)計(jì)人員可以調(diào)整觀察行駛速度、方便的操作、調(diào)整小車運(yùn)行模式;</p><p>  在做這個(gè)項(xiàng)目的過(guò)程中

25、不斷的積累自己的技術(shù)水平,力求做出實(shí)用靈活的智能小車。</p><p><b>  應(yīng)用環(huán)境</b></p><p><b>  系統(tǒng)硬件環(huán)境</b></p><p>  Easyarm1138</p><p>  內(nèi)核:32位ARM Cortex-M3(ARM v7M架構(gòu));</p>

26、<p>  運(yùn)行頻率:50MHz</p><p>  時(shí)鐘周期:快速可嵌套中斷,6~12個(gè)時(shí)鐘周期;外設(shè)資源:7組GPIO</p><p>  內(nèi)置:看門狗定時(shí)器(WatchDog Timer) 、USB接口的下載仿真器外圍電路設(shè)計(jì):5只LED指示燈、3只KEY、1只交流蜂鳴器、兩排插針引出全部GPIO資源,以及ADC0~ADC7、5V、3.3V、GND等;</p&g

27、t;<p>  Easyarm1138各部位電路圖如下:</p><p>  圖2-1 Easyarm1138的MCU電路圖</p><p>  JTAG是由幾家主要的電子制造商發(fā)起制訂的PCB 和IC 測(cè)試標(biāo)準(zhǔn)。其原理圖如下:</p><p>  圖2-2 JTAG電路圖</p><p>  USB是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范

28、電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。USB接口支持設(shè)備的即插即用和熱插拔功能。其原理圖如下:</p><p>  圖2-3 USB/PWR電路圖</p><p>  LED是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見(jiàn)光的固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。其原理圖如下:</p><p>  圖2-4 LED電路圖</p><p>  

29、步進(jìn)電機(jī)28BYJ-48-5V</p><p><b>  額定電壓:5VDC</b></p><p>  相   數(shù):4相8拍</p><p>  步距角:5.625°/64</p><p><b>  減速比:1/64</b></p><

30、;p>  步進(jìn)角度:5.625 x 1/64</p><p>  牽入轉(zhuǎn)矩:>34.3mN.m(120Hz)</p><p>  自定位轉(zhuǎn)矩:>34.3mN.m</p><p><b>  直徑:28mm</b></p><p>  重     量: 3

31、2g</p><p>  步進(jìn)電機(jī)28BYJ-48-5V工作原理圖如下:</p><p>  圖2-5 步進(jìn)電機(jī)28BYJ-48-5V工作原理圖</p><p>  該步進(jìn)電機(jī)為四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)28BYJ-48-5V電路圖如下:</p><p> 

32、 圖2-6 步進(jìn)電機(jī)28BYJ-48-5V電路圖</p><p><b>  紅外避障驅(qū)動(dòng)</b></p><p>  有障礙:OUT輸出持續(xù)(斷點(diǎn))低電平</p><p>  無(wú)障礙:OUT輸出持續(xù)高電平</p><p>  工作電壓:3.8v-5v</p><p>  最大工作電流(5V時(shí)):

33、14mA</p><p>  三條線:VCC、GND、OUT</p><p>  精密可調(diào)電位器:根據(jù)使用環(huán)境調(diào)節(jié)</p><p>  可調(diào)電位器調(diào)節(jié)范圍:5cm-100cm</p><p>  反射距離:跟具體的反射目標(biāo)來(lái)決定,可根據(jù)情況調(diào)節(jié)</p><p>  紅色的LED:探測(cè)到障礙時(shí)發(fā)光 </p>

34、<p><b>  數(shù)碼管顯示</b></p><p><b>  共陰極數(shù)碼管:</b></p><p>  圖2-7 數(shù)碼管原理圖</p><p><b>  小車輪子</b></p><p><b>  輪寬:26.6mm</b><

35、/p><p>  軸外徑:13.8mm</p><p>  軸孔寬:3.66mm</p><p><b>  軸孔長(zhǎng):5.3mm</b></p><p>  皮胎內(nèi)徑:51.8mm</p><p><b>  皮胎外徑:66mm</b></p><p>&

36、lt;b>  系統(tǒng)軟件環(huán)境</b></p><p>  本系統(tǒng)的軟件環(huán)境如下:</p><p>  操作系統(tǒng):Windows2000或以上版本</p><p>  開(kāi)發(fā)工具包:Stellaris外設(shè)驅(qū)動(dòng)庫(kù)</p><p>  集成開(kāi)發(fā)工具:IAR Embedded Workbench</p><p>

37、<b>  功能規(guī)格</b></p><p>  系統(tǒng)采用C語(yǔ)言、IAR Embedded Workbench軟件及Stellaris外設(shè)驅(qū)動(dòng)庫(kù)進(jìn)行小車的程序書寫,采用Protell99SE進(jìn)行紅外避障以及步進(jìn)電機(jī)驅(qū)動(dòng)的硬件模塊設(shè)計(jì)。[2]</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b> 

38、 系統(tǒng)總體設(shè)計(jì)</b></p><p><b>  總體設(shè)計(jì)</b></p><p> ?。?) 根據(jù)需求分析生成的文檔,對(duì)項(xiàng)目進(jìn)行總體設(shè)計(jì),使用模塊流程圖,組成模塊元素清單,對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)與分析提供詳細(xì)的指導(dǎo)。</p><p>  (2)設(shè)計(jì)模塊結(jié)構(gòu),將按功能需求劃分為最小單元的功能模塊。確定各模塊間的關(guān)系,將其連接起來(lái)進(jìn)行整體分

39、析。</p><p><b>  系統(tǒng)的功能模塊</b></p><p><b>  紅外避障功能模塊</b></p><p>  此子系統(tǒng)主要功能模塊有:收發(fā)信號(hào)模塊、預(yù)調(diào)電位器、LED顯示模塊。</p><p>  收發(fā)信號(hào)模塊的功能:由發(fā)射器發(fā)射信號(hào),若前方有障礙,則接收器能夠接收到信號(hào),最終

40、將信號(hào)輸送至Easyarm1138;反之,若前方無(wú)障礙,則接收器不能接收到信號(hào),因此仍保持小車前一秒的運(yùn)行狀態(tài)。</p><p>  預(yù)調(diào)電位器的功能:可調(diào)紅外感應(yīng)距離,使小車在復(fù)雜多變的地形環(huán)境中可以靈活多變的進(jìn)行應(yīng)用。</p><p>  LED顯示模塊的功能:有障礙時(shí)輸出低電平,無(wú)障礙時(shí)輸出持續(xù)高電平。其顯示作用在于提醒用戶哪一端檢測(cè)到了障礙物。</p><p&g

41、t;  步進(jìn)電機(jī)驅(qū)動(dòng)功能模塊</p><p>  此子系統(tǒng)主要功能模塊有:ULN2003AN、LED顯示模塊</p><p>  ULN2003AN模塊的功能:交替為四相八拍步進(jìn)電機(jī)提供4個(gè)交替的高低電平,通過(guò)對(duì)四相交替的輸入高電平,使得電機(jī)開(kāi)始轉(zhuǎn)動(dòng)。</p><p>  LED顯示模塊的功能:高電平時(shí)其點(diǎn)亮,表明其對(duì)應(yīng)的四相的工作正常。</p>&l

42、t;p><b>  蜂鳴功能模塊</b></p><p>  此子系統(tǒng)主要功能模塊有:蜂鳴工作模塊</p><p>  蜂鳴工作模塊的功能:遇到障礙物時(shí)報(bào)警。為以示區(qū)別,左側(cè)紅外檢測(cè)到障礙時(shí)發(fā)出低沉的聲音,右側(cè)紅外檢測(cè)到障礙物時(shí)發(fā)出尖銳的聲音。</p><p><b>  加減速功能模塊</b></p>

43、<p>  此子系統(tǒng)主要功能模塊有:KEY1鍵、KEY2鍵</p><p>  KEY1鍵的功能:加速,提高速度檔位。</p><p>  KEY2鍵的功能:減速,降低速度檔位。</p><p><b>  速度顯示模塊</b></p><p>  此子系統(tǒng)主要功能模塊有:七段數(shù)碼管</p>&

44、lt;p>  七段數(shù)碼管的功能:根據(jù)KEY1鍵及KEY2鍵的速度調(diào)整情況,實(shí)時(shí)的顯示當(dāng)前小車行駛的速度的檔位情況。</p><p><b>  小車系統(tǒng)結(jié)構(gòu)圖</b></p><p>  小車系統(tǒng)結(jié)構(gòu)總設(shè)計(jì)圖:</p><p>  圖3-1 小車結(jié)構(gòu)圖</p><p><b>  詳細(xì)設(shè)計(jì)</b&g

45、t;</p><p><b>  詳細(xì)設(shè)計(jì)的任務(wù)</b></p><p>  根據(jù)總體設(shè)計(jì)生成的小車系統(tǒng)結(jié)構(gòu)圖,確定具體地實(shí)現(xiàn)智能小車其各種功能的具體方法,既在行駛中自動(dòng)探測(cè)、躲避障礙物、自我車身調(diào)整、蜂鳴提醒、加減運(yùn)行速度、顯示行駛速度為目標(biāo)加以確定核心代碼的實(shí)現(xiàn)方案。詳細(xì)設(shè)計(jì)之后應(yīng)該得出模塊需求的精確描述,進(jìn)行需求模塊的流程圖繪制,使得在設(shè)計(jì)時(shí)思路更加清晰,使代碼

46、編寫階段根據(jù)以上述描述編寫具體代碼。</p><p><b>  具體設(shè)計(jì)</b></p><p>  紅外避障流程圖[4]</p><p>  圖3-2 紅外避障流程圖</p><p>  圖解:當(dāng)小車向前行進(jìn)時(shí),左右兩個(gè)紅外避障檢測(cè)儀實(shí)時(shí)監(jiān)測(cè)左右兩方是否遇到障礙物。</p><p>  ①當(dāng)

47、檢測(cè)儀檢測(cè)到有障礙物時(shí),開(kāi)始判斷障礙物的位置,是在左、右、還是正前方,然后將信息輸入Easyarm1138進(jìn)行后續(xù)步進(jìn)電機(jī)行動(dòng)處理。</p><p>  ②當(dāng)檢測(cè)儀沒(méi)有檢測(cè)到障礙物時(shí),開(kāi)始判斷此時(shí)是否有按鍵中斷,即此時(shí)是否需要進(jìn)行小車行進(jìn)速度的調(diào)整。</p><p><b>  步進(jìn)電機(jī)驅(qū)動(dòng)流程圖</b></p><p>  圖3-3 步進(jìn)電

48、機(jī)驅(qū)動(dòng)流程圖</p><p>  圖解:當(dāng)紅外監(jiān)測(cè)完畢后,小車按照監(jiān)測(cè)結(jié)果選擇行進(jìn)方式。</p><p>  ①當(dāng)左側(cè)紅外檢測(cè)到障礙物時(shí),左輪不動(dòng),右輪超前前進(jìn)10°,若右側(cè)紅外沒(méi)有探測(cè)到障礙物,則左輪順時(shí)針、右輪逆時(shí)針旋轉(zhuǎn)20°,進(jìn)行二次調(diào)整,躲避障礙物之后向前行進(jìn)。</p><p> ?、诋?dāng)左側(cè)紅外檢測(cè)到障礙物時(shí),左輪不動(dòng),右輪超前前進(jìn)10&

49、#176;,若右側(cè)紅外探測(cè)到障礙物,則左輪順時(shí)針、右輪逆時(shí)針旋轉(zhuǎn)90°,躲避障礙物之后向前行進(jìn)。</p><p> ?、郛?dāng)右側(cè)紅外檢測(cè)到障礙物時(shí),右輪不動(dòng),左輪超前前進(jìn)10°,若左側(cè)紅外沒(méi)有探測(cè)到障礙物,則右輪順時(shí)針、左輪逆時(shí)針旋轉(zhuǎn)20°,進(jìn)行二次調(diào)整,躲避障礙物之后向前行進(jìn)。</p><p> ?、墚?dāng)右側(cè)紅外檢測(cè)到障礙物時(shí),右輪不動(dòng),左輪超前前進(jìn)10

50、6;,若左側(cè)紅外探測(cè)到障礙物,則右輪順時(shí)針、左輪逆時(shí)針旋轉(zhuǎn)90°,進(jìn)行二次調(diào)整,躲避障礙物之后向前行進(jìn)。</p><p> ?、莓?dāng)左右紅外均沒(méi)有探測(cè)到障礙物時(shí),小車向前行進(jìn)。</p><p>  加減行駛速度模塊流程圖</p><p>  圖3-4 加減行駛速度流程圖</p><p>  圖解:由中斷后的按鍵選擇進(jìn)行行駛速度的調(diào)整

51、。</p><p> ?、侔聪翶EY1鍵,進(jìn)行加速運(yùn)動(dòng),即減小電機(jī)延遲。</p><p> ?、诎聪翶EY2鍵,進(jìn)行減速運(yùn)動(dòng),即增加電機(jī)延時(shí)。</p><p><b>  速度顯示模塊流程圖</b></p><p>  圖3-5 速度顯示流程圖</p><p>  圖解:由中斷后的按鍵選擇進(jìn)行當(dāng)

52、前速度檔位的顯示。</p><p>  ①每按下KEY1鍵一次,七段數(shù)碼管所顯示的數(shù)字逐個(gè)加1,每按下KEY2鍵一次,反之,七段數(shù)碼管所顯示的數(shù)字逐個(gè)減1。</p><p> ?、诖舜卧O(shè)計(jì),為凸顯行駛速度的突變,共設(shè)1-4的4個(gè)檔位,因此檔位最小為1,最大為4。但程序中已寫好可調(diào)整至9個(gè)檔位的程序,使得此項(xiàng)功能靈活多變。</p><p><b>  總體設(shè)

53、計(jì)流程圖</b></p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  核心部分實(shí)現(xiàn)方法</b></p><p><b>  紅外蔽障模塊</b></p><p>  紅外蔽障模塊包括,初始化紅外蔽障函數(shù)和紅外蔽障模塊中斷服務(wù)子程序。這是小車在行

54、進(jìn)過(guò)程中遇到障礙及時(shí)調(diào)整的核心內(nèi)容。此外紅外蔽障模塊還有配合顯示的LED子模塊和配合發(fā)音的蜂鳴器子模塊。它們都是為方便我們判斷小車當(dāng)前行為狀態(tài)的子模塊。其部分代碼及代碼分析見(jiàn)附件1。</p><p>  5V4相步進(jìn)電機(jī)的驅(qū)動(dòng)模塊[5]</p><p>  5V4相步進(jìn)電機(jī)的驅(qū)動(dòng)是驅(qū)動(dòng)程序中最大的一塊,也是整個(gè)小車最主要的代碼之一。電機(jī)的驅(qū)動(dòng)部分包括六個(gè)函數(shù)。部分函數(shù)代碼及詳解見(jiàn)附件1。&

55、lt;/p><p><b>  速度控制模塊</b></p><p>  為了提高智能小車的復(fù)雜性,使小車更加強(qiáng)大,速度控制則必不可少。速度控制模塊包括速度按鍵控制子模塊和七段數(shù)碼管速度顯示子模塊。其中速度按鍵控制子模塊是該模塊的核心,它包括初始化按鍵函數(shù)和兩個(gè)終端服務(wù)子程序。七段數(shù)碼管速度顯示子模塊起輔助作用主要用于顯示當(dāng)前的檔位信息。速度控制模塊部分代碼及說(shuō)明見(jiàn)附件1

56、。</p><p><b>  部分模塊實(shí)現(xiàn)結(jié)果</b></p><p><b>  紅外避障模塊的實(shí)現(xiàn)</b></p><p>  當(dāng)一側(cè)紅外探測(cè)器探測(cè)到障礙物時(shí),小車進(jìn)行自身調(diào)整看另外一側(cè)是否也探測(cè)到了障礙物,若另一側(cè)也探測(cè)到了,則進(jìn)行左/右的90°旋轉(zhuǎn),若另一側(cè)沒(méi)有探測(cè)到,則小車進(jìn)行左/右的20°

57、的修正,繼續(xù)前行;當(dāng)兩側(cè)紅外都沒(méi)有探測(cè)到障礙物時(shí),小車持續(xù)前行。</p><p><b>  電機(jī)驅(qū)動(dòng)模塊的實(shí)現(xiàn)</b></p><p>  小車根據(jù)紅外探測(cè)傳輸?shù)絘rm板的結(jié)果,再結(jié)合對(duì)電機(jī)四相交替的供給正電的情況,實(shí)時(shí)的來(lái)執(zhí)行向前、向左90°、向右90°、左探測(cè)10°、右探測(cè)10°、左調(diào)整20°、右調(diào)整20

58、6;這7條指令。</p><p><b>  蜂鳴器模塊的實(shí)現(xiàn)</b></p><p>  根據(jù)紅外探測(cè)傳輸?shù)絘rm板的結(jié)果,在arm板內(nèi)進(jìn)行判斷,若左側(cè)紅外先檢測(cè)到障礙物,則發(fā)出低沉的蜂鳴聲;若右側(cè)紅外先檢測(cè)到障礙物,則發(fā)出尖銳的蜂鳴聲。[6]</p><p><b>  加減車速控制模塊</b></p>

59、<p>  通過(guò)中斷的KEY1鍵、KEY2鍵進(jìn)行小車行駛速度的加、減控制,使得小車可以依照人們的意愿進(jìn)行速度的調(diào)整,使得其更加具有靈活性。</p><p><b>  車速顯示模塊</b></p><p>  依照加減車速控制模塊中KEY1鍵、KEY2鍵的按下及抬起狀況,顯示當(dāng)前小車行駛的速度,使得整個(gè)小車的情況為人們所了解,便于掌控。</p>

60、<p><b>  小車系統(tǒng)測(cè)試</b></p><p>  測(cè)試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,設(shè)計(jì)完善的系統(tǒng)不應(yīng)該害怕挑剔的用戶進(jìn)行測(cè)試。因此,為了提高系統(tǒng)的執(zhí)行效率我對(duì)項(xiàng)目進(jìn)行了測(cè)試。 </p><p>  小車系統(tǒng)測(cè)試的規(guī)范是:</p><p> ?。?)及時(shí)發(fā)現(xiàn)問(wèn)題,及時(shí)修改,每完成一個(gè)模塊的設(shè)計(jì)就對(duì)其進(jìn)行測(cè)試;<

61、/p><p> ?。?)設(shè)計(jì)合適的測(cè)試;</p><p> ?。?)根據(jù)測(cè)試結(jié)果生成測(cè)試報(bào)告。</p><p>  小車系統(tǒng)測(cè)試的結(jié)果:</p><p>  測(cè)試正常的模塊:紅外避障模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、蜂鳴器模塊、加減車速模塊、車速顯示模塊</p><p>  測(cè)試出現(xiàn)異常的模塊以及出現(xiàn)的問(wèn)題:</p>

62、<p>  步進(jìn)電機(jī)紅外避障后的自我調(diào)整模塊出現(xiàn)過(guò)問(wèn)題。由于最初設(shè)計(jì)的調(diào)整模塊為不夠完善,在此舉例表述:最初設(shè)計(jì)的當(dāng)左側(cè)紅外先檢測(cè)出障礙物時(shí),左輪不動(dòng),右輪向前調(diào)整10°若右側(cè)紅外沒(méi)能檢測(cè)到障礙物,則右輪不動(dòng),左輪向前行駛20°進(jìn)行向右自我調(diào)整,以防止左輪撞到左墻。但在此設(shè)計(jì)中不妥的是當(dāng)向右自我調(diào)整時(shí),若右輪不動(dòng),左輪向前行駛20°雖為向右自我調(diào)整設(shè)計(jì),但仍十分容易撞到左墻,為防止此類情況發(fā)生,最

63、終,我將程序設(shè)計(jì)為在向右自我調(diào)整時(shí)左輪向前、右輪向后同時(shí)旋轉(zhuǎn)20°,這樣可以避免撞墻的尷尬事件發(fā)生。</p><p>  該問(wèn)題十分需要解決,因?yàn)橹悄苄≤囋O(shè)計(jì)本身就需要及時(shí)躲避障礙物,并且在復(fù)雜的地形環(huán)境下應(yīng)該靈活應(yīng)對(duì)各種情況。</p><p><b>  結(jié)束語(yǔ)</b></p><p>  通過(guò)這次畢業(yè)設(shè)計(jì),我更加熟悉了C語(yǔ)言的邏輯

64、設(shè)計(jì)、硬件之間的緊密聯(lián)系、以及Easyarm1138等方面的技術(shù)應(yīng)用,對(duì)這些技術(shù)的了解從以前的略知一二,到現(xiàn)在的逐步掌握。并將其充分應(yīng)用到了項(xiàng)目中,使項(xiàng)目的專業(yè)化水平及自身學(xué)習(xí)能力都有大幅度的提升,同時(shí)也為日后的就業(yè)奠定了良好的基礎(chǔ)。</p><p>  在項(xiàng)目中我利用Easyarm1138的使用工程模板構(gòu)建了寫入arm板的語(yǔ)言框架、老師所講內(nèi)容、以及光盤中所帶的各種資料,著重學(xué)習(xí)了Easyarm1138的程序書

65、寫邏輯設(shè)計(jì)及方式,通過(guò)請(qǐng)教老師、查閱大量相關(guān)書籍,最終編寫完成了智能小車的程序,將其與硬件設(shè)備相結(jié)合,實(shí)現(xiàn)了可靈活躲避障礙物的智能小車的設(shè)計(jì)。</p><p>  在程序編寫的過(guò)程中也遇到了許多問(wèn)題,其中最大的問(wèn)題就是對(duì)寫入arm中的語(yǔ)言結(jié)構(gòu)沒(méi)有具體的概念,這也是我們花費(fèi)力氣最大的地方,為此查閱了很多書籍。尤其是arm板程序開(kāi)發(fā)方面的,它直接關(guān)系到項(xiàng)目整體布局、實(shí)現(xiàn)等問(wèn)題。此外,對(duì)Easyarm1138開(kāi)發(fā)板的不

66、熟悉也嚴(yán)重影響了項(xiàng)目的進(jìn)度,因此,也花費(fèi)了大量的時(shí)間瀏覽網(wǎng)站,從而寫出通用又滿足功能的智能小車代碼。</p><p>  當(dāng)項(xiàng)目逐個(gè)模塊完成之后,自己有種說(shuō)不出的高興,在這幾個(gè)月的項(xiàng)目開(kāi)發(fā)中我獲得的不僅是項(xiàng)目實(shí)訓(xùn),更重要的是提升了自我學(xué)習(xí)的能力,這種經(jīng)驗(yàn)將使我終身受益。</p><p><b>  致 謝</b></p><p>  經(jīng)過(guò)將

67、近2個(gè)月的努力最終完成了智能小車的多項(xiàng)功能的設(shè)計(jì),并且讓設(shè)計(jì)的智能小車看起來(lái)比較靈活使用。在這里起關(guān)鍵作用的正是我的指導(dǎo)老師王載陽(yáng)老師,他不僅每周都認(rèn)真細(xì)心的為我們答疑解惑,還在我最沒(méi)有概念的時(shí)候?yàn)槲夷托牡漠媹D指導(dǎo)。他用他的豐富的實(shí)踐經(jīng)驗(yàn)帶領(lǐng)我們走向了成功。</p><p>  所以衷心的感謝王載陽(yáng)老師對(duì)我的幫助,同時(shí)也感謝一切幫助過(guò)我的人,謝謝你們。</p><p><b> 

68、 參考文獻(xiàn)</b></p><p>  [1] 杜春雷主編. ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社. 2003[2] 范書瑞. ARM處理器與C語(yǔ)言開(kāi)發(fā)應(yīng)用[M].北京: 北京航空航天大學(xué)出版社. 2008</p><p>  [3] 劉嵐,尹勇,李京蔚. 基于ARM的嵌入式系統(tǒng)開(kāi)發(fā)[M].北京: 電子工業(yè)出版社.2008</p><p>

69、  [4] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(第二版)[M]. 北京: 北京航空航天大學(xué)出版社.2006</p><p>  [5] 侯冬晴. ARM技術(shù)原理與應(yīng)用[M]. 北京: 北京交通大學(xué)出版社.2009</p><p>  [6] 吳明輝. 基于ARM的嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用[M].北京: 人民郵電出版社.2004</p><p>  [7] 趙星寒,劉濤.

70、從51到ARM—32位嵌入式系統(tǒng)入門[M]. 北京: 北京航空航天大學(xué)出版社.2005</p><p><b>  附件1:系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  核心部分實(shí)現(xiàn)方法</b></p><p><b>  紅外蔽障模塊</b></p><p>  紅外蔽障模塊

71、包括,初始化紅外蔽障函數(shù)和紅外蔽障模塊中斷服務(wù)子程序。這是小車在行進(jìn)過(guò)程中遇到障礙及時(shí)調(diào)整的核心內(nèi)容。此外紅外蔽障模塊還有配合顯示的LED子模塊和配合發(fā)音的蜂鳴器子模塊。它們都是為方便我們判斷小車當(dāng)前行為狀態(tài)的子模塊。其部分代碼及代碼分析如下:</p><p>  紅外避障模塊宏定義部分[3]</p><p>  #define IS_PERIPH SYSCTL_PE

72、RIPH_GPIOB // 定義紅外蔽障所在的GPIO模塊</p><p>  #define IS_PORT GPIO_PORTB_BASE // 定義紅外蔽障的端口基地址</p><p>  #define IS_PIN_LEFT GPIO_PIN_0 // 定義紅外蔽障的左傳感器的針腳</p>

73、<p>  #define IS_PIN_RIGHT GPIO_PIN_1 // 定義紅外蔽障的右傳感器的針腳</p><p>  定義配合紅外避障模塊起輔助顯示作用的LED信息</p><p>  #define LED_PERIPH SYSCTL_PERIPH_GPIOG</p><p>  #d

74、efine LED_PORT GPIO_PORTG_BASE</p><p>  #define LED_PIN_LEFT GPIO_PIN_2</p><p>  #define LED_PIN_RIGHT GPIO_PIN_3</p><p>  定義配合紅外避障模塊起輔助發(fā)音作用的蜂鳴器信

75、息,即音調(diào)</p><p>  #define LOW_DEGREE 185 //低音</p><p>  #define HIGH_DEGREE 4000 //高音</p><p>  #define First 10 //定義發(fā)現(xiàn)障礙調(diào)整的第一修正值</p><p>  #define Secend 20 //定義發(fā)現(xiàn)障礙調(diào)整

76、的第二修正值</p><p>  紅外避障的函數(shù)聲明部分</p><p>  void InitIS(void); //初始化紅外蔽障模塊的函數(shù)聲明</p><p>  void GPIO_Port_B_ISR(void); //紅外蔽障模塊終端服務(wù)子程序的函數(shù)聲明</p><p>  void InitBuzzer(voi

77、d); //初始化蜂鳴器</p><p>  void BuzzerSound(unsigned short usFreq); //是蜂鳴器發(fā)音</p><p>  void BuzzerQuiet(void); //中斷蜂鳴器的發(fā)音</p><p>  初始化紅外避障模塊函數(shù)</p><p&

78、gt;  void InitIS(void)</p><p><b>  {</b></p><p>  SysCtlPeriEnable(LED_PERIPH); // 使能LED所在的GPIO端口</p><p>  GPIOPinTypeOut(LED_PORT, LED_PIN_LEFT); // 設(shè)置左

79、LED所在管腳為輸出</p><p>  GPIOPinTypeOut(LED_PORT, LED_PIN_RIGHT); // 設(shè)置右LED所在管腳為輸出</p><p>  SysCtlPeriEnable(IS_PERIPH); // 使能紅外避障傳感器所在的GPIO端口</p><p>  GPIOPinTypeIn(IS_PORT, IS_P

80、IN_LEFT); // 設(shè)置左紅外避障傳感器所在管腳為輸入</p><p>  GPIOPinTypeIn(IS_PORT, IS_PIN_RIGHT); // 設(shè)置紅外避障傳感器所在管腳為輸入 </p><p>  GPIOIntTypeSet(IS_PORT, IS_PIN_LEFT, GPIO_LOW_LEVEL); // 設(shè)置右紅外避障傳感器管腳的

81、中斷類型</p><p>  GPIOIntTypeSet(IS_PORT, IS_PIN_RIGHT, GPIO_LOW_LEVEL); // 設(shè)置右紅外避障傳感器管腳的中斷類型</p><p>  GPIOPinIntEnable(IS_PORT, IS_PIN_LEFT); // 使能左紅外避障傳感器所在管腳的中斷</p><p>

82、;  GPIOPinIntEnable(IS_PORT, IS_PIN_RIGHT); // 使能右紅外避障傳感器所在管腳的中斷</p><p>  IntEnable(INT_GPIOB); // 使能GPIOB端口中斷</p><p>  IntMasterEnable(); //

83、 使能處理器中斷</p><p>  GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0xFF);</p><p>  GPIOPinWrite(LED_PORT, LED_PIN_RIGHT, 0xFF);</p><p><b>  }</b></p><p>  紅外避障模塊的中斷服務(wù)子程

84、序</p><p>  void GPIO_Port_B_ISR(void)</p><p><b>  {</b></p><p>  unsigned long ulStatus; //記錄GPIOB模塊的中斷狀態(tài)</p><p>  ulStatus = GPIOPinIntStatus(IS_PO

85、RT, true); // 讀取中斷狀態(tài)</p><p>  GPIOPinIntClear(IS_PORT, ulStatus); // 清除中斷狀態(tài)</p><p>  if (ulStatus & IS_PIN_LEFT) // 如果左紅外傳感器的中斷狀態(tài)有效</p><p>&

86、lt;b>  { </b></p><p>  GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0x00); //使左LED亮</p><p>  BuzzerSound(LOW_DEGREE); //發(fā)低音</p><p>  SysCtlDelay(10 * (TheSysClock / 3000))

87、; // 延時(shí)約10ms,消除紅外傳感器的抖動(dòng)</p><p>  GoLeft2(First); //向左調(diào)整First度</p><p>  if(GPIOPinRead(IS_PORT, IS_PIN_RIGHT) == 0x00) //若發(fā)現(xiàn)右紅外傳感器也檢測(cè)到障礙物</p><p><b>  {</b&

88、gt;</p><p>  GoRight(90+First); //則說(shuō)明障礙物在正前方,所以向右轉(zhuǎn)90度,其中右轉(zhuǎn)First度是為了消除左調(diào)整帶來(lái)的旋轉(zhuǎn)誤差。</p><p><b>  }else</b></p><p><b>  {</b></p><p>  GoRight(Sece

89、nd); //若右紅外傳感器沒(méi)有發(fā)現(xiàn)障礙物,則說(shuō)明障礙物只在左側(cè),所以右轉(zhuǎn)Secend-First度,其中右轉(zhuǎn)First度是為了消除左調(diào)整帶來(lái)的旋轉(zhuǎn)誤差。</p><p><b>  }</b></p><p>  GPIOPinWrite(LED_PORT, LED_PIN_LEFT, 0xFF); //使左LED滅</p><p>

90、  BuzzerQuiet(); //停止發(fā)音</p><p>  }else if (ulStatus & IS_PIN_RIGHT) </p><p>  由于右紅外避障傳感器的中斷狀態(tài)與左紅外中斷傳感器的避障方法是鏡像的,因此就不在詳細(xì)說(shuō)明了。</p><p>  5V4相步進(jìn)電機(jī)

91、的驅(qū)動(dòng)模塊[5]</p><p>  5V4相步進(jìn)電機(jī)的驅(qū)動(dòng)是驅(qū)動(dòng)程序中最大的一塊,也是整個(gè)小車最主要的代碼之一。電機(jī)的驅(qū)動(dòng)部分包括六個(gè)函數(shù)。部分函數(shù)代碼及詳解如下:</p><p><b>  宏定義段</b></p><p>  #define Motor_PERIPH SYSCTL_PERIPH_GPIOA //定義電機(jī)所在的GPIO

92、模塊</p><p>  #define Motor_GPIO GPIO_PORTA_BASE //電機(jī)所在GPIO模塊的基地址 </p><p>  #define Motor_Fixed 2.4 //電機(jī)轉(zhuǎn)動(dòng)修正量</p><p>  #define MAX_SPEED_DEGREE 4 //定義電機(jī)的最高檔位</p><p

93、>  #define PER_SPEED_DEGREE 5 //定義電機(jī)每檔位延時(shí)遞減量</p><p><b>  全局變量</b></p><p>  int speed = 5; //全局變量,定義當(dāng)前小車步進(jìn)電機(jī)延時(shí),單位0.5ms</p><p><b>  函數(shù)聲明段</b>&l

94、t;/p><p>  void InitMotor(void); //聲明初始化步進(jìn)電機(jī)函數(shù)</p><p>  void MotorForward(void); //聲明步進(jìn)電機(jī)前進(jìn)函數(shù)</p><p>  void GoLeft(int angle); //聲明步進(jìn)電機(jī)左轉(zhuǎn)函數(shù)</p><p>  void GoRight

95、(int angle); //聲明步進(jìn)電機(jī)右轉(zhuǎn)函數(shù)</p><p>  void GoLeft2(int angle); //聲明步進(jìn)電機(jī)左調(diào)整函數(shù)</p><p>  void GoRight2(int angle); //聲明步進(jìn)電機(jī)右調(diào)整函數(shù)</p><p><b>  初始化電機(jī)函數(shù)</b></p><

96、;p>  void InitMotor(void)</p><p><b>  {</b></p><p>  SysCtlPeriEnable(Motor_PERIPH); //使能電機(jī)所在的GPIO模塊</p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_0); //設(shè)置右輪所在的

97、GPIO引腳為輸出引腳</p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_1); </p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_2); </p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_3); </p><p>

98、;  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_4); //設(shè)置左輪所在的GPIO引腳為輸出引腳</p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_5); </p><p>  GPIOPinTypeOut(Motor_GPIO, GPIO_PIN_6); </p><p>  GPIOPin

99、TypeOut(Motor_GPIO, GPIO_PIN_7); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0x00); //設(shè)置右輪的四個(gè)相都為低電平</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0x00); </p><p>  GPIOPinWrite(M

100、otor_GPIO, GPIO_PIN_2, 0x00); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0x00);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00); //設(shè)置左輪的四個(gè)相都為低電平</p><p>  GPIOPinWrite(Moto

101、r_GPIO, GPIO_PIN_5, 0x00); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_6, 0x00); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0x00);</p><p><b>  }</b></p><p

102、><b>  控制電機(jī)前進(jìn)函數(shù)</b></p><p>  void MotorForward(void)</p><p><b>  { </b></p><p>  //至左輪的D相與右輪的A相為高電平</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN

103、_0, 0xFF); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysClock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN

104、_0, 0x00);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_7, 0x00);</p><p>  //至左輪的C相與右輪的B相為高電平 </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0xFF); </p><p>  GPIOPinWr

105、ite(Motor_GPIO, GPIO_PIN_6, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysClock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_1, 0x00);</p><p>  GPIOPinWri

106、te(Motor_GPIO, GPIO_PIN_6, 0x00);</p><p>  //至左輪的B相與右輪的C相為高電平 </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_2, 0xFF);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_5, 0xFF);</p>

107、<p>  SysCtlDelay(speed * (TheSysClock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_2, 0x00);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_5, 0x00);</p>

108、<p>  //至左輪的A相與右輪的D相為高電平 </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0xFF);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysC

109、lock / 6000)); // speed*0.5ms</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_3, 0x00);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00);</p><p><b>  }</b></p&g

110、t;<p><b>  控制電機(jī)左轉(zhuǎn)的函數(shù)</b></p><p>  void GoLeft(int angle) //angle為形參,表示左轉(zhuǎn)的角度</p><p><b>  {</b></p><p>  int count = (int)angle*512/360*Motor_Fixed;

111、 //angle計(jì)算的公式,Motor_Fixed為角度的修正值</p><p>  int i; //記錄循環(huán)的次數(shù)的變量</p><p>  for(i=0;i<count;i++) //for循環(huán)內(nèi)的代碼與控制前進(jìn)代碼中的內(nèi)容相似,不加以詳細(xì)說(shuō)明,只是左輪的相序改為A->B->C->D,與右輪相同,這樣左輪向后轉(zhuǎn),右輪向前轉(zhuǎn),小車即可左轉(zhuǎn)。</p

112、><p><b>  {</b></p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0xFF); </p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0xFF);</p><p>  SysCtlDelay(speed * (TheSys

113、Clock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_0, 0x00);</p><p>  GPIOPinWrite(Motor_GPIO, GPIO_PIN_4, 0x00);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE,

114、GPIO_PIN_1, 0xFF); </p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_5, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysClock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(GPIO_PORT

115、A_BASE, GPIO_PIN_1, 0x00);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_5, 0x00);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0xFF);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE,

116、 GPIO_PIN_6, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysClock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0x00);</p><p>  GPIOPinWrite(GPIO_PORT

117、A_BASE, GPIO_PIN_6, 0x00);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0xFF);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_7, 0xFF);</p><p>  SysCtlDelay(speed * (TheSysCl

118、ock / 6000)); // 延時(shí)約speed*0.5ms</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0x00);</p><p>  GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_7, 0x00);</p><p><b>  }</b>&l

119、t;/p><p><b>  }</b></p><p>  電機(jī)驅(qū)動(dòng)的另外三個(gè)函數(shù)控制右轉(zhuǎn),左調(diào)整和右調(diào)整。其大部分代碼與控制左轉(zhuǎn)函數(shù)相近,所以無(wú)需列出。只是左調(diào)整時(shí)左輪不動(dòng),右調(diào)整時(shí)右輪不動(dòng)。這樣的好處是,在紅外模塊的一個(gè)傳感器發(fā)現(xiàn)障礙時(shí),可以方便的判斷另一個(gè)傳感器與障礙的距離。</p><p><b>  速度控制模塊</b&

120、gt;</p><p>  為了提高智能小車的復(fù)雜性,使小車更加強(qiáng)大,速度控制則必不可少。速度控制模塊包括速度按鍵控制子模塊和七段數(shù)碼管速度顯示子模塊。其中速度按鍵控制子模塊是該模塊的核心,它包括初始化按鍵函數(shù)和兩個(gè)終端服務(wù)子程序。七段數(shù)碼管速度顯示子模塊起輔助作用主要用于顯示當(dāng)前的檔位信息。速度控制模塊部分代碼及說(shuō)明如下:</p><p>  速度控制模塊宏定義、按鍵宏定義部分</

溫馨提示

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

評(píng)論

0/150

提交評(píng)論