畢業設計基于SPCE061A單片機的自主移動機器人小車設計_第1頁
畢業設計基于SPCE061A單片機的自主移動機器人小車設計_第2頁
畢業設計基于SPCE061A單片機的自主移動機器人小車設計_第3頁
畢業設計基于SPCE061A單片機的自主移動機器人小車設計_第4頁
畢業設計基于SPCE061A單片機的自主移動機器人小車設計_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、自主移動機器人小車設計自主移動機器人小車設計摘 要智能作為現代社會的新產物,是以后的發展方向,智能就是按照預先設定的模式在一個特定的環境里自動的運作,無需人為管理,便可以完成預期所要達到的或是更高的目標。本設計采用凌陽超聲波測距模塊檢測小車與障礙物的距離并語音提示,以凌陽spce061a單片機為控制芯片控制機器人小車的移動及轉向,來實現小車的自動避障和報警功能。其中小車驅動由l298n驅動電路來完成。 關鍵詞 自主移動 避障 spce061a單片機 l298n 超聲波independent mobile robot car designabstractintelligent as modern

2、 society of new product, is the development direction of the future, intelligence is that according to the predetermined pattern in a specific environment to be automatic operation, no user management, then can be expected to finish what you are trying to achieve the goal. this design use the sunplu

3、s ultrasonic ranging module testing the car and obstacles distance and voice prompt to sunplus spce061a microprocessor control chip for control of the robot car moves and steering, to realize the automatic obstacle avoidance and car alarm function. among them the small car driven by l298n drive circ

4、uit to complete.key words the independent movement,obstacle avoidance,spce061a,l298n ultrasonicii 目 錄中文摘要i英文摘要ii1 緒論11.1機器人小車的意義和作用11.2 機器人小車的現狀12 方案設計32.1 主控系統的比較與選擇32.2 避障單元的比較與選擇32.3 電機驅動模塊的比較與選擇32.4 驅動電機的比較與選擇42.5 電源模塊的比較與選擇52.6 系統總體框圖53 硬件設計63.1 spce061a芯片的特點及其功能63.2 spce061a芯片內核結構73.3 spce061a

5、的語音播報功能73.4 超聲波測距模塊83.4.1 超聲波測距模組的電路原理圖103.4.2 超聲波電源接口113.4.3 測距程序流程圖123.5 l298n電機驅動模塊123.5.1 l298n主要特點143.5.2 電機驅動模塊連接圖144 軟件設計164.1 軟件調試平臺164.2 程序設計流程圖175 制作安裝與調試185.1 硬件制作185.2 系統調試195.2.1 硬件調試195.2.2 軟件調試215.2.3 聯合調試215.2.4 本系統存在的問題215.2.5 本系統可行的改進措施22結束語23致 謝24參考文獻25附 錄26自主移動機器人小車設計1 緒論1.1機器人小車

6、的意義和作用自第一臺工業機器人誕生以來,機器人的發展已經遍及機械、電子、冶金、交通、宇航、國防等領域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認識自然的過程中,制造能替代人勞動的機器一直是人類的夢想。隨著汽車工業的迅速發展,關于汽車的研究也就越來越受人關注。全國電子大賽和省內電子大賽幾乎每次都有機器人小車這方面的題目,全國各高校也都很重視該題目的研究。可見其研究意義很大。本設計就是在這樣的背景下提出的,設計的自主移動小車應該能夠具有語音提示,避障功能,根據題目的要求,確定如下方案:在現有玩具電動車的基礎上,加裝超聲波傳感器及電機驅動模塊,實現對小車

7、的實時測量,并將測量數據傳送至單片機進行處理,然后由單片機根據所檢測的各種數據實現對小車的智能控制。該小車可以作為機器人的典型代表。它可以分為三大組成部分:傳感器檢測部分、執行部分、cpu。機器人要實現自動避障功能,還可以擴展循跡等功能,感知導引線和障礙物。可以實現小車自動識別路線,選擇正確的行進路線,并檢測到障礙物自動躲避。基于上述要求,傳感檢測部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可,所以可以舍棄昂貴的ccd傳感器而考慮使用價廉物美的超聲波傳感器來充當。智能小車的執行部分,是由直流電機來充當的,主要控制小車的行進方向和速度。單片機驅動直流電機一般有兩種方案:第一,勿需占用

8、單片機資源,直接選擇有pwm功能的單片機,這樣可以實現精確調速;第二,可以由軟件模擬pwm輸出調制,需要占用單片機資源,難以精確調速,但單片機型號的選擇余地較大。考慮到實際情況,本文選擇第二種方案。cpu使用spce061a單片機,配合軟件編程實現。1.2 機器人小車的現狀隨著電子技術、計算機技術、智能控制技術的飛速發展,產品的智能化和小型化越來越成為人們關注的熱點。各種智能小車在智能化玩具中占了很大的比例。近年來,傳統玩具的市場逐步縮水,高科技智能化的電子類玩具則逐步成為市場的主流。因此,可遙控的智能化小車的研究是非常有意義的,具有很大潛在市場價值的。智能小車,也被稱之為輪式機器人。我們知道

9、,機器人技術的發展是一個國家高科技水平和工業自動化程度的重要標志和體現。機器人由于具有高度的靈活性、可以幫助人們提高生產率、改進產品質量和改善勞動條件等優點,在世界各地的生產生活領域得到了廣泛的應用。智能小車正是模仿機器人的一種嘗試。它是一種以汽車電子為背景,涵蓋控制,模式識別,電子、電氣、單片機、機械等多學科的科技創新性設計,一般主要由路徑識別、速度采集、角度控制以及車速控制等模塊組成。這種智能小車能夠自動搜尋前進路線,還能爬坡;感知前方的障礙物,并自動尋找前進方向,避開障礙物;加入相關聲光訊號后,更能體現出智能化和人性化的一面。1392 方案設計2.1 主控系統的比較與選擇方案一:采用各類

10、數字電路來組成小車的控制系統,對外圍避障信號,自動尋跡信號,無線遙控信號,語音控制信號進行處理。本方案電路復雜,靈活性不高,效率低,不利于小車智能化的擴展,對各路信號處理比較困難。方案二:采用凌陽spce061a單片機來作為整機的控制單元。超聲波采用凌陽超聲波測距模塊,利用超聲波檢測障礙物距離,送往單片機進行處理。此系統比較靈活,采用軟件方法來解決復雜的硬件電路部分,使系統硬件簡潔化,各類功能易于實現,能很好地滿足題目的要求。比較以上兩種方案的優缺點,方案二簡潔、靈活、可擴展性好,更能達到題目的設計要求,因此采用方案二來實現。2.2 避障單元的比較與選擇方案一:采用紅外線避障,利用單片機來產生

11、40khz信號對紅外線發射管進行調制發射,發射出去的紅外線遇到避障物的時候反射回來,紅外線接收管對反射回來信號進行解調,輸出比較電平。但紅外線容易受到光線的干擾。方案二:采用超聲波避障,超聲波對外界光線和電磁場不敏感,可用于黑暗、有灰塵或煙霧、電磁干擾強、有毒等惡劣環境中; 并且可以進行實時控制。通過比較我采用方案二。2.3 電機驅動模塊的比較與選擇方案一:采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調整.此方案的優點是電路較為簡單,缺點是繼電器的響應時間慢,易損壞,壽命較短,可靠性不高.2方案二:采用電阻網絡或數字電位器調節電動機的分壓,從而達到分壓的目的。但電阻網絡只

12、能實現有級調速,而數字電阻的元器件價格比較昂貴。更主要的問題在于一般的電動機電阻很小,但電流很大,分壓不僅回降低效率,而且實現很困難。方案三:采用功率三極管作為功率放大器的輸出控制直流電機。線性型驅動的電路結構和原理簡單,加速能力強。這種電路由于工作在管子的飽和截止模式下,效率非常高,h型橋式電路保證了簡單的實現轉速和方向的控制,電子管的開關速度很快,穩定性也極強,是一種廣泛采用的調速技術。現市面上有很多此種芯片,我選用了l298n。這種調速方式有調速特性優良、調整平滑、調速范圍廣、過載能力大,能承受頻繁的負載沖擊,還可以實現頻繁的無級快速啟動、制動和反轉等優點。因此決定采用使用功率三極管作為

13、功率放大器的輸出控制直流電機。機器人小車采用前輪驅動,前輪左右兩邊各用一個直流電機驅動,調制前面兩個輪子的正反轉從而達到控制轉向的目的。2.4 驅動電機的比較與選擇方案一:使用直流電機,直流電機具有良好的調速性能,控制起來也比較簡單。直流電機只要通上直流電源就可連續不斷的轉動,調節電壓的大小就可以改變電機的速度。直流電機的驅動電路實際上就是一個功率放大器。常用的驅動方式是pwm方式,即脈沖寬度調制方式。此方法性能較好,電路和控制都比較簡單。方案二:使用步進電機。步進電機具有良好的控制性能。當給步進電機輸入一個電脈沖信號時,步進電機的輸出軸就轉動一個角度,因此可以實現精確的位置控制。與直流電機不

14、同,要使步進電機連續的轉動,需要連續不斷的輸入點脈沖信號,轉速的大小由外加的脈沖頻率決定。去而且其轉動不受電壓波動和負載變化的影響,也不受溫度、氣壓等環境因素的影響,僅與控制脈沖有關。但步進電機的驅動相對較復雜,要由控制器和功率放大器組成。具體差別見下表2-1。表2-1 電機控制方式對比直流電機步進電機調速性能較好較差位置控制精度較差好驅動簡單復雜穩定性較好好,僅與控制脈沖有關由上表可以看出步進電機和直流電機都有各自的優點。步進電機能進行精確的位置控制,但驅動電路麻煩,鑒于本設計中小車的位置控制不要求十分精確,直流電機即可滿足小車要求的精度。且直流電機易于控制,驅動電路十分簡單。2.5 電源模

15、塊的比較與選擇方案一:電腦usb串口供電。能直接為單片機提供穩定的+5v直流電壓。usb串口線又容易得到。但是需要很長的線,而且要有交流電和電腦配合。方案二:用4節五號電池串聯6v直流電源。在不超過單片機工作電壓范圍的情況下,又能驅動直流電機。且這個電源結構簡單,價格便宜,容易得到。綜上所述,本設計選擇方案二。2.6 系統總體框圖經過對方案的設計要求的分析和方案論證,采用凌陽單片機控制平臺,經過超聲波測距模塊檢測距離,控制運動模塊的電機運動方式,近而控制這個小車系統的運動。系統總體設計框圖如圖2-1spce061a復位電路語音報警電機驅動hghhllll298n超聲波測距圖2-1 系統總體設計

16、框圖3 硬件設計3.1 spce061a芯片的特點及其功能3spce061a 是繼nsp系列產品spce500a等之后凌陽科技推出的又一款16位結構的微控制器。與spce500a不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調試等功能,spce061a里只內嵌32k字的閃存(flash)。較高的處理速度使nsp能夠非常容易地、快速地處理復雜的數字信號。因此,與spce500a相比,以nsp為核心的spce061a微控制器是適用于數字語音識別應用領域產品的一種最經濟的選擇。 spce061a特性: 16位nsp微處理器;工作電壓:內核工作電壓vdd為3.03.6(cpu),i/

17、o口工作電壓vddh為vdd5.5v(i/o);cpu時鐘:0.32mhz49.152mhz;內置2k字sram;內置32k閃存rom;可編程音頻處理;晶體振蕩器:32768hz實時時鐘;系統處于備用狀態下(系統時鐘暫停),耗電小于 2a3.6v;2個16位可編程定時器/計數器tmr0,tmr1(可自動預置初始計數值);2個10位dac(數模轉換)輸出通道;32位通用可編程輸入/輸出端口;14個中斷源可來自定時器a/b,時基,2個外部時鐘源輸入,鍵喚醒;具備觸鍵喚醒的功能;使用凌陽音頻編碼sacm_s240方式(2.4k位/秒),能容納210秒的語音數據;鎖相環pll振蕩器提供系統時鐘信號;通

18、道10位電壓模數轉換器(adc)和單通道聲音模數轉換器;聲音ad轉換器輸入通道內置麥克風放大器和自動增益控制(agc)功能; 具備串行設備接口;低電壓復位(lvr)功能和低電壓監測(lvd)功能;內置在線仿真板(ice in- circuit em ulator)接口。3.2 spce061a芯片內核結構(1)16位數據總線和22位數據總線(2)算術邏輯單元aul:16位算術邏輯運算,帶移位操做的算術邏輯運算,16位x16位乘法和內積運算。(3)通用型寄存器r1r4:在unsp cpu(isa1.1)中,集成了一組(4個)16位通用寄存器:r1r4。(4)數據運算或傳送的源及目標寄存器(5)配

19、對組成一個32位的乘法結果寄存器mr(6)配對組成一個32位的內積結果寄存器mr(7)專用型寄存器:堆棧指針寄存器sp,基址指針寄存器bp(r5),程序計數器pc,段寄存器sr。cs:代碼選擇字段 ds:數據選擇字段 c:進位標志位z:零標志位 n:負標志位 s:符號標志位3.3 spce061a的語音播報功能spce061a內置了專用的mic輸入通道和音頻輸出dac,并具有較高的處理速度,因此非常適合對音頻信號的處理,如語音播放、語音錄制等。由于未經處理的音頻資源數據量很大,對于單片機來說,數據的存儲和傳輸都比較困難,這使得音頻壓縮編碼成為音頻處理的重要環節。為方便用戶將spce061a應用

20、于語音產品,凌陽公司提供了多種音頻編解碼算法及其api函數庫,即sacm-lib。該函數庫將a/d、編碼、解碼、存儲及d/a做成相應的模塊,每個模塊都有其應用程序接口api,用戶只需了解每個模塊所實現的功能及其參數的內容即可。sacm s480的壓縮算法的壓縮比較大,音質不是太好,適用于對音質要求不是很高的語音播放場合。sacm s480語音播放也分為“自動”和“手動”了兩種模式。其播放流程與sacm a2000完全相同,僅僅將sacma2000播放程序調用的函數名中的“a2000”全部替換為“s480”即可。sacm a2000壓縮算法壓縮比較小,具有高質量、高碼率的特點,適用于高保真音樂和

21、語音。無論是自動播放還是手動播放,將解碼后的語音數據通過dac播放出來的過程都是在中斷服務程序中完成的。sacm a2000在播放初始化是會打開fiq timera中斷,并將timera溢出頻率設置為16khz。用戶需要在fiq timera中斷服務程序中調用sacm a2000函數完成語音播放。sacm dvr具有錄音盒放音功能。錄音是從語音采樣、壓縮編碼到存儲的過程,sacm dvr的錄音采用了sacm a2000壓縮編碼。放音是從取存儲器語音數據、譯碼到輸出的過程,與sacm a2000相同。sacm dvr編碼實際上使用了sacm a2000壓縮算法,因此錄制的語音資源可以使用sacm

22、 a2000播放出來。sacm dvr也提供了一組庫函數,用來播放錄制的語音資源。spce061a單片機中dac主要用于將數字信號轉換成音頻信號輸出,其音頻信號輸出有兩種控制方式:一種是語音輸出方式;另一種是音調輸出方式。兩者的區別在于其輸出控制機理不同。語音輸出是用于聲音數據采樣相同的速率將聲音數據通過數/模轉換通道還原成聲音。音頻輸出是通過定時溢出所產生的不同頻率來決定聲音音調的高低,dac的模擬量決定聲音信號的幅值。語音輸出方式是數/模轉換器dac把模擬聲波輸入的數字量轉換成模擬量實現波形重放。d/a轉換器位數越多,重放波形的音質越好。語音輸出是,cpu以一固定的頻率向dac送出一系列的

23、數字量值。此數值轉換成一系列的電流模擬量,并經平滑濾波后驅動揚聲器得到聲音信號。這種方式下,聲音數據的采樣率決定了聲音音質的好壞。采樣率越高,恢復的聲音波形越接近原來的波形,音質越好。spce061a單片機采用的d/a轉換的音頻輸出硬件結構有兩種:一種是直接采用數/模轉換器dac實現;另一種是采用單通道脈寬調制pwm驅動方式輸出。在本系統的語音播放中采用第一種方式。直接dac方式用于兩個通道的聲音數字信號轉換成模擬的音頻信號輸出。實際應用時,應按相同的采樣速率,將雙通道輸入的表示聲音的數字量同步且分別地寫入到兩個數據單元dar1和dar2中,并分別送入dac1和dac2中,進行d/a轉換。轉換

24、的電流模擬信號分別從aud1和aud2輸出,輸入的數字量分別寫入pdac1和pdac2單元。3.4 超聲波測距模塊1基本特性與參數指標 超聲波傳感器諧振頻率:40khz 模組傳感器工作電壓:4.5v-9v 模組接口電壓:4.5v-5.5v2主要功能三種測距模式選擇跳線j1(短距、中距、可調距): 短距:20cm-100cm左右(根據被測物表面材料決定),精度1cm; 中距:70cm-400cm左右(根據被測物表面材料決定); 可調:范圍由可調節參數確定,當調節在合適的值時,最遠測距700cm左右;3結構示意圖 圖3-1 超聲波測距模組硬件框圖圖3-2 超聲波實物圖一般應用時,只需要用兩條10p

25、in排線把j5與spce061a的iob口低八位連接,j4與iob口高八位連接,同時設置好j1、j2跳線就完成硬件的連接了。不同測距模式的選擇只需改變測距模式跳線j1的連接方法即可。模組工作的性能與被測物表面材料有很大關系,如毛料、布料對超聲波的反射率很小,會嚴重影響測量結果4超聲波測距原理聲波在其傳播介質中被定義為縱波。當聲波受到尺寸大于其波長的目標物體阻擋時就會發生反射;反射波稱為回聲。假如聲波在介質中傳播的速度是已知的,而且聲波從聲源到達目標然后返回聲源的時間可以測量得到,那么就可以計算出從聲波到目標的距離。這就是本系統的測量原理。這里聲波傳播的介質為空氣,采用不可見的超聲波,超聲波發射

26、器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/23.4.1 超聲波測距模組的電路原理圖圖 3-3 超聲波測距模組的主要電路原理圖整個電路可分為兩大部份,一部份是超聲波發射調理電路,另一部份是超聲波回波接收處理電路。用于驅動超聲波傳感器的40khz的方波由一片ne555搭成的多諧振蕩器生成,受控于控制器的plus_en信號;40khz的方波經cd4049調理后,成為振幅18v的方波,提高

27、發射功率。 發射頭發射出去的超聲波經障礙物反射后,反射到接收頭,而接收到的波形幅度非常小,所以在回波處理電路中,把接收到的波形放大了5000倍,用的是 ne5532搭成的兩級交流放大電路。經放大后的波形送入,lm311比較器;經比較器調理后的波形成為方波,可送給spce061a的ext1外部中斷。 在模塊電路的設計中一定要注意,超聲波發射頭和接收頭之間的干擾;一般壓電式的超聲波換能器都會存在余波的干擾,發射頭和接收頭間要有5cm的距離;而在 發射頭發射超聲波后的3ms內,接收頭會一直接收到發射頭傳過來的非反射波,這是干擾波,在軟件處理的時候一定要注意清除掉此類的干擾。3.4.2 超聲波電源接口

28、圖3-4 超聲波電源接口j3為外部電源接口,最高電壓不要超過12v,j2為電源選擇跳線,vcc_5即為由61板通過10pin的排線引入模組的電源,vcc即為模組的放大器,調理電路的供電電源。當用戶使用61板為其供電時,要把vcc與vcc_5短接;而使用外部電源時,要把vcc與vcc_5短接。超聲波測距模組與61板的接口如圖3-5,3-6所示:圖 3-5 超聲波測距模組接口圖3-6 超聲波與61板進行測距連接實物圖3.4.3 測距程序流程圖超聲波測距的功能函數流程圖如圖3-7。用戶只需進行六次測距操作,這六次的測量結果需要經過處理后才可得到最終的測距返回值,然后將返回值化成距離。3.5 l298

29、n電機驅動模塊4l298n是sgs公司的產品,內部包含4通道邏輯驅動電路。是一種二相和四相電機的專用驅動器,即內含二個h橋的高電壓大電流雙全橋式驅動器,接收標準ttl邏輯電平信號,可驅動46v、2a以下的電機。其實物及引腳圖如圖3-8及3-9所示圖3-7測距程序流程圖圖3-8 l298n實物圖圖 3-9 l298n管腳圖3.5.1 l298n主要特點(1)工作電壓高,最高工作電壓可達46v; (2)輸出電流大,瞬間峰值電流可達3a,持續工作電流為2a;額定功率25w。(3)內含兩個h橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;(4)采用標準邏輯電平信

30、號控制;(5)具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;(6)可以外接檢測電阻,將變化量反饋給控制電路。使用l298n芯片驅動電機,該芯片可以驅動一臺兩相步進電機或四相步進電機,也可以驅動兩臺直流電機。3.5.2 電機驅動模塊連接圖5小車的兩個直流電機和驅動模塊l298n的連接如圖3-10。l298有兩路電源分別為邏輯電源和動力電源,圖3-10中6v為邏輯電源,12v為動力電源。j4接入邏輯電源,j6接入動力電源,j1與j2分別為單片機控制兩個電機的輸入端,j3與j5分別與兩個電極的正負極相連。ena與enb直接接入

31、6v邏輯電源也就是說兩個電機時刻都工作在使能狀態,控制電機的運行狀態只有通過j1與j2兩個接口。輸入信號端in1接高電平輸入端in2接低電平,j3連接的電機正轉。(如果信號端in1接低電平, in2接高電平,j3連接的電機反轉)控制另一臺電機是同樣的方式,輸入信號端in3接高電平,輸入端in4接低電平,j5連接的電機正轉。(反之則反轉),pwm信號端a控制電機1調速,pwm信號端b控制電機2調速。圖3-10電機驅動模塊連接圖通過對驅動模塊的邏輯輸入端輸入不同的電平,其對應的電機轉動狀態表如表3-1表3-1 電機轉動狀態表左電機右電機左電機右電機小車運行狀態in1in2in3in41010正轉正

32、轉前行1001正轉反轉左轉1011正轉停以左電機為中心原地左轉0110反轉正轉右轉1110停正轉以右電機為中心原地右轉0101反轉反轉后退通過編寫相應驅動程序,用單片機的ioa口來控制驅動模塊,進而控制小車的轉動狀態,來完成小車的避障功能。4 軟件設計軟件設計是實現小車智能運轉的關鍵所在,相當于人類大腦思維活動,通過軟件設計可將各個變化信號數據有效的結合處理,產生相應的動作反應。4.1 軟件調試平臺軟件調試采用nsp集成開發環境,nsp集成開發環境集程序的編輯,編譯,鏈接,調試以仿真等功能為一體。具有友好的交互界面,下拉菜單,快捷鍵和快速訪問命令列表等,使編輯,調試工作方便且高效。此外。它的軟

33、件仿真功能可以在不連接仿真板的情況下模擬硬件的各項功能來調試程序。ide的開發界面如圖4-1圖4-1 nsp ide的開發界面對于超聲波測距模塊的數據采集的變化,則可以通過集成開發環境在線觀察,其對應變量的數值在如圖4-2的變量表watch窗口圖4-2變量表watch窗口界面4.2 程序設計流程圖根據本設計的設計思路,機器人小車的主要程序設計包括:主程序,超聲波測距程序,其程序設計流程圖如圖4-3所示圖4-3程序設計流程圖5 制作安裝與調試5.1 硬件制作由于61板制板比較復雜且工藝要求較高,手工制板無法滿足要求則選擇了現成的61精簡開發板,車體源于廢舊的小車玩具進行改裝。此后將61板、車體、

34、驅動電路板按照設計要求組裝,各部分之間用自制杜邦線連接。確認組裝無誤則上電測試。61板的結構圖及說明如圖:圖5-1 61板的結構圖表5-1 61板框圖說明power5v&3v供電電路pll鎖向環外部電路power電源指示燈sleep睡眠指示燈reset復位電路k4復位按鍵probe在線調試器串行5pin接口s5ez-probe和probe切換的撥斷開關j12、j3耳機插孔和兩pin喇叭插針dac一路音頻輸出電路,采用spy0030集成音頻放大器mic麥克風輸入電路osc32768晶振電路vrefa/d轉換外部參考電壓輸入接口r/c芯片其他外圍電阻、電容電路k1k3擴展的按鍵:接ioa0ioa2

35、spce061a61板核心:16位微處理器porta/b32個i/o口凌陽61精簡開發板的實物圖如圖5-2所示。圖5-2 61開發板實物圖5.2 系統調試本系統的調試共分為三大部分:硬件調試,軟件調試和軟硬件調試。由于在系統設計中采用模塊設計法,所以方便對各電路模塊功能進行逐級測試:61板的測試、電機驅動模塊的調試、超聲波測距模塊的調試。最后將各模塊組合后結合軟件進行整體測試。5.2.1 硬件調試(1) 61板測試第一步、連接電源,可以連接3節電池,也可以直接接5v的穩壓源現象:當電源接通時,紅色的發光二極管會點亮。同時會有語音提示:歡迎進入自檢模式,此時因為還沒有連線,所以會聽到:i/o測試

36、失敗的警告,所以就要進行第二步的操作; 第二步、用連線分別將i/oa口的低8位和iob口的低8位相連,ioa口的高8位和iob口的高8位相連,然后按下rest復位鍵現象:當按下復位鍵后,程序從第一調開始運行開始執行,語音提示歡迎進入自檢模式,當聽到語音:i/o測試成功后,進行第三步操作; 第三步、按k1鍵進行睡眠功能測試現象:如果測試成功,會看到綠色的發光二極管亮滅一下,并有語音提示睡眠測試成功,否則提示睡眠測試失敗,然后進行第四步操作; 第四步、按下k2鍵進行a/d轉換的測試現象:語音提示:a/d測試成功,否則提示a/d測試失敗,進入最后一步操作; 第五步、拔掉第一步測試時的連接線,并按下k

37、3鍵測試mic輸入及d/a轉換輸出是否正常現象:可以在mic上輕輕的拍幾下,同時聽是否有聲音輸出,如果有,則說明mic輸入和d/a轉換輸出部分正常。 以上操作,只有當i/o測試成功時,按鍵才會有效經過上述檢驗,各個部分工作都是正常的。(2)超聲波測距模塊調試對于超聲波測距模塊的調試是結合軟件共同實現,將編寫好的超聲波測距程序下載到61板中,同時在線用nsp集成開發環境進行測量結果的觀測。期望實現的功能是,back_data顯示測得的距離,如果測量出錯則back_data為0,則喇叭發出“咚”的聲音,測量正確,則back_data顯示測的距離,同時喇叭語音播報距離,播報的格式為“.點.米”。如表

38、5-2是超聲波調試記錄。表5-2 超聲波調試記錄測試次數12345678910放置距離20cm25cm40cm45cm55cm65cm70cm80cm90cm100cmback_dat值0356553548351065535655920由上表可以看出,超聲波測距模塊工作不正常,10次測量中僅有兩次正確,出現了問題,我首先檢查測距程序,經過反復的修改,程序確定無誤。那就是硬件的問題了,由于超聲波測距模塊是買的成品,我研究其工作原理,并和售后服務聯系,他們給予幫助來檢測超聲波測距模塊的特性,檢測結果是超聲波測距模塊也沒有問題,我認為問題可能是有電源的不穩定以及超聲波測距模塊受環境的干擾比較大引起的

39、。(3)電機控制調試此模塊調試實現的功能是結合軟件共同實現,當連接61開發板的ioa口與電機驅動模塊的邏輯輸入,加上電源可以實現電機左右轉向,前后轉向以及停止等功能,如表5-3為電機測試記錄。表5-3 電機測試記錄ioa8ioa9ioa10ioa11小車行駛狀態1010前行1001左轉1011原地左轉0110右轉1110原地右轉0101后退5.2.2 軟件調試軟件調試采用nsp集成開發環境,將編好的程序進行調試,主要是檢查語法錯誤。由于本系統是分模塊進行程序設計的,所以調試時先分模塊進行調試。如超聲波測距程序,在調試時將它放在一個子程序里單獨測試,看其是否能夠完成預定的功能,如能,測試通過,否

40、則,修改并反復測試。雖然在軟件的調試過程中,綜合利用了設定斷點、單步、跟蹤等調試手段,使得調試工作更易進行。但是也出現了一定的問題,如超聲波程序的調試,超聲波所檢測的距離是錯誤的。 5.2.3 聯合調試各模塊都調試之后,將各個模塊連接起來與硬件結合進行聯合調試。在進行聯合調試時,經過反復的實驗,不斷的來修改參數來完善結果。使程序按照要求設計的要求進行。但由于超聲波的問題,所以聯合調試的結果是小車不能實現避障功能。5.2.4 本系統存在的問題盡管我作了很大的努力,但是由于基礎知識不扎實,缺乏經驗以及時間有限等原因,本系統存在著一些問題,主要有以下幾點:1、沒有速度檢測裝置,故不能有效地控制車速。

41、2、超聲波測距模塊檢測的距離出現錯誤。3、對凌陽單片機了解的不夠,沒有充分利用好單片機的資源。5.2.5 本系統可行的改進措施在條件允許的情況下,本系統可以做以下幾個方面的改進:1、增加速度檢測裝置,提高速度控制精度。2、增加紅外遙控裝置,來提高小車的智能化。3、設計更加可靠的硬件電路。4、超聲波用紅外線來代替。結束語此次設計是在凌陽公司的精簡開發板(61板)上設計的,通過連接控制板和小車電路實現的。遇到的主要的困難和問題就是原本想自己制作電路板,但是時間不允許,且電路元件的封裝有很多元件的封裝都要自己來制作,而且在這樣將消耗大量的精力,故采用了61 開發板。程序編寫是最大的難點,凌陽單片機的

42、編程方法有別于51單片機的編寫,則需要學習,其仿真軟件不能真正仿真,需要將每次修改的程序加載在實物(小車)中進行驗證。由于時間及能力的問題,最終小車設計的避障功能未能實現,超聲波檢測不到數據,我反復檢查超聲波測距模塊,通過修改程序,最后超聲波能夠檢測到數據,但數據是錯誤的。通過此次設計,對凌陽單片機的工作原理有了更切實的認識,對于單片機各個功能如定時器、rom、ram、wdt(看門狗)等的功能更能系統地認識。更重要的是學會了怎樣更好的學習更好的提高自己的能力。 致 謝參考文獻1王衛平.電子產品制造技術m.北京:清華大學出版社,2005.1,pp.2604302羅亞非.凌陽16位單片機應用基礎

43、m.北京:北京航空航天大學出版社,2006.73李學海.16位語音型單篇機spce061a實用教程提高篇m.北京:人民郵電出版社,2007.34胡文金.單片機應用技術實訓教程m.重慶:重慶大學出版社,2005.2,pp.2943155黃智偉.全國大學生電子設計競賽制作實訓m.北京:北京航空航天大學出版社,2007.2,pp.1256周堅.單片機c語言輕松入門m.北京:北京航空航天大學出版社,2006.77及力.protel99se原理圖與pcb設計教程m.北京:電子工業出版社,2007.88劉華東.單片機原理與應用m.北京:電子工業出版社,2006.89韓毅,楊天. 基于hcs12單片機的智能

44、尋跡模型車的設計與實現j.學術期刊,2008,29(18):1535-1955.10 王曉明. 電動機的單片機控制j. 學術期刊,2002,13(15):1322-175511張毅剛,彭喜元.新編mcs-51單片機應用設計m.哈爾濱工業大學出版社,2003. 12何立民.單片機應用系統設計m.北京航天航空大學出版社,2005. 13 宗光華機器人的創意設計與實踐 m 北京航空航天大學出版社,2004附 錄程序附錄1主程序:#include spce061a.h#include ceju.hunsigned char intflag; /定時標識unsigned int sum; /2hz 計數

45、器 1次為0。5秒void runtime2hz(void);void offtime2hz(void);void clear_watchdog(void);void delay2s(int timer) /設置基頻為2hz的中斷,就是一次定時0。5s sum=timer; runtime2hz(); /運行中斷 while(!intflag) clear_watchdog();/清看門狗 intflag = 0; offtime2hz(); /結束中斷void delay2s(int timer);int main(void)unsigned int back_data; /裝距離*p_io

46、a_dir=0x1f00;/初始化ioa,ioa811同向輸出*p_ioa_attrib=0x1f00;*p_ioa_data=0x0000;intflag = 0;clear_watchdog(); /清看門狗while(1) *p_timera_ctrl=0x0373; *p_timera_data=0xff9f; back_data = measure_times(0);/測距if(back_data=0) /判斷是否為0,為0停車 *p_timera_ctrl=0x006; *p_ioa_data=0x0000;else if(back_data=20) /判斷是否小于20cm,小于則

47、進行倒車*p_timera_ctrl=0x006; *p_ioa_data=0x1000; /倒車delay2s(0);*p_timera_ctrl=0x0333; *p_ioa_data=0x0400; /左轉delay2s(1);*p_ioa_data=0x0800; delay2s(1);*p_ioa_data=0x0400; /左轉delay2s(1);*p_timera_ctrl=0x006; *p_ioa_data=0x0100;/前進 while(1) else *p_timera_ctrl=0x006; *p_ioa_data=0x0100;/前進 2中斷程序:#include

48、 spce061a.h#include ceju.hvoid irq3(void)_attribute_(isr); /irq中斷服務程序void irq3(void)*p_int_clear = 0x0100;/ext1_irq_ult();/調用超聲波測距的外部中斷服務程序.text.include spce061a.inc;.external _sum;.external _intflag;.public _irq5;_irq5: /定時3秒的中斷程序push r1,r4 to sp;r1 =0x0008; test r1,p_int_ctrl;jnzl_4hz; / timer a f

49、iq 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; /設置中斷標識 r1 = 0 _sum = r1pop r1,r4 from sp; reti; l_4hz: r1 = 0x0008; p_int_clear = r1; /清中斷 pop r1,r4 from sp;reti;.external _su

50、m;.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;_offtime2hz: .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信號發射時長#define long_send_timer23000 /中距測距的補充測距時的40khz信號發射時長#define long_wait_delay600/中距測距的防余波干擾延時時長#define long_wait_delay21500

溫馨提示

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

評論

0/150

提交評論