WiFi智能小車設(shè)計論文_第1頁
WiFi智能小車設(shè)計論文_第2頁
WiFi智能小車設(shè)計論文_第3頁
WiFi智能小車設(shè)計論文_第4頁
WiFi智能小車設(shè)計論文_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. - - . 可修編. z目錄TOC o 1-3 h u HYPERLINK l _Toc15644 1 設(shè)計理念與背景 PAGEREF _Toc15644 1 HYPERLINK l _Toc12028 1.1 當代智能汽車的開展 PAGEREF _Toc12028 1 HYPERLINK l _Toc28625 1.2設(shè)計的理念與目的 PAGEREF _Toc28625 1 HYPERLINK l _Toc20841 2 設(shè)計方案的論證及選擇PAGEREF _Toc20841 2 HYPERLINK l _Toc18957 2.1 總體設(shè)計系統(tǒng)圖 PAGEREF _Toc18957 2

2、HYPERLINK l _Toc10957 2.2 主控系統(tǒng) PAGEREF _Toc10957 3 HYPERLINK l _Toc32695 2.3 電源模塊 PAGEREF _Toc32695 3 HYPERLINK l _Toc21991 2.4 電機驅(qū)動模塊 PAGEREF _Toc21991 4 HYPERLINK l _Toc25922 2.4.1 電機模塊選擇與論證 PAGEREF _Toc25922 4 HYPERLINK l _Toc3935 2.4.2 電機驅(qū)動模塊選擇與論證 PAGEREF _Toc3935 4 HYPERLINK l _Toc7850 2.5 顯示模塊

3、 PAGEREF _Toc7850 5 HYPERLINK l _Toc17750 2.6 避障模塊 PAGEREF _Toc17750 6 HYPERLINK l _Toc7001 2.7 路由器模塊 PAGEREF _Toc7001 6 HYPERLINK l _Toc9263 2.7.1 wifi芯片原理圖 PAGEREF _Toc9263 8 HYPERLINK l _Toc4811 2.7.2 攝像頭 PAGEREF _Toc4811 8 HYPERLINK l _Toc24986 3 硬件電路的設(shè)計 PAGEREF _Toc249868 HYPERLINK l _Toc624 3.

4、1 總體設(shè)計 PAGEREF _Toc624 8 HYPERLINK l _Toc19235 3.2 驅(qū)動電路 PAGEREF _Toc19235 9 HYPERLINK l _Toc13592 3.2.1 電機驅(qū)動模塊的使用 PAGEREF _Toc13592 9 HYPERLINK l _Toc6652 3.2.2 電機驅(qū)動的原理 PAGEREF _Toc6652 10 HYPERLINK l _Toc30262 3.3 顯示電路 PAGEREF _Toc30262 12 HYPERLINK l _Toc10053 3.4 單片機最小系統(tǒng)的設(shè)計 PAGEREF _Toc10053 12 H

5、YPERLINK l _Toc20374 3.4.1 主控芯片的介紹 PAGEREF _Toc20374 12 HYPERLINK l _Toc15898 3.4.2 單片機最小系統(tǒng) PAGEREF _Toc15898 13 HYPERLINK l _Toc11866 4 程序調(diào)試 PAGEREF _Toc11866 14 HYPERLINK l _Toc5031 4.1 調(diào)試軟件 PAGEREF _Toc5031 14 HYPERLINK l _Toc16573 5 設(shè)計小結(jié) PAGEREF _Toc16573 15 HYPERLINK l _Toc16007 附錄1 電路原理圖 PAGER

6、EF _Toc16007 17 HYPERLINK l _Toc20756 附錄2源程序 PAGEREF _Toc20756 18 HYPERLINK l _Toc8287 附錄3 實物照片 PAGEREF _Toc8287 30- . 可修編. z1 設(shè)計理念與背景1.1 當代智能汽車的開展現(xiàn)在是一個智能化的時代,各種智能化設(shè)備正在逐步替代人為的操作。隨著汽車工業(yè)的迅速開展,關(guān)于智能汽車的研究也就越來越受人關(guān)注。全國電子大賽和省電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究。對于智能汽車的研究,國外都有很大的成就,谷歌的無人駕駛汽車,已經(jīng)能夠在高速公路上平安行駛數(shù)

7、千公里,在高速行駛下都能有這么好的操控能力,無非是智能汽車領(lǐng)域的一座里程碑。對于智能泊車系統(tǒng),現(xiàn)在也已經(jīng)進入了民用領(lǐng)域,很多車型也裝配了該系統(tǒng),有了他,汽車用超聲波傳感器掃描路面兩側(cè),通過比擬停車的空間和車輛的長度,自動尋找適宜的停車位。找到適宜位置后,駕駛者只需控制剎車,車輛自動控制轉(zhuǎn)向操作,即可將車停進停車位,并且液晶屏會有相應(yīng)的顯示。對于這樣現(xiàn)代如此強大的科技手段,無線智能已經(jīng)不再是夢想,是人們想要到達的一種高度了。從20世紀70年代開場,美國、英國、德國等興旺國家開場進展無人駕駛汽車的研究,目前在可行性和實用化方面都取得了突破性的進展。在無人駕駛技術(shù)研究方面位于世界前列的德國漢堡Ibe

8、o公司研制的無人駕駛汽車,2007年4月11日在英國倫敦科學博物館與公眾見面。這輛無人駕駛智能汽車經(jīng)德國群眾汽車公司生產(chǎn)的帕薩特2.0改裝而成,外表看來與普通家庭汽車并無差異,但卻可以在錯綜復雜的城市公路系統(tǒng)中無人駕駛。目前日本、歐美已有企業(yè)取得實用化成果。與國外相比,國在智能車輛方面的研究起步較晚,規(guī)模較小,開展這方面研究工作的單位主要是一些大學和研究所,如國防科技大學、清華大學、大學、理工大學、長安大學、自動化所等。我國從20世紀80年代開場進展無人駕駛汽車的研究,國防科技大學在1992年成功研制出我國第一輛真正意義上的無人駕駛汽車。先后研制出四代無人駕駛汽車。第四代全自主無人駕駛汽車于2

9、000年6月在市繞城高速公路上進展了全自主無人駕駛試驗,試驗最高時速到達75.6Km/h。在2004年10月12日的第六屆高交會上,紅旗無人駕駛汽車就引起了極大的轟動。它在高速公路上最高穩(wěn)定無人駕駛速度為130公里/小時;峰值無人駕駛速度為170公里/小時。并同時具備平安超車和系統(tǒng)小型化兩個主要指標。為如此,他們把它稱為中國汽車界的神舟五號。2005年,首輛城市無人駕駛汽車在交通大學研制成功,該車有望于兩年之率先在世紀公園進展示運營,并在2010年世博會上一展身手。到時游客只需在公園的入口處按下一個按鈕,一輛沒有司機的四座敞篷汽車就會從遠處開過來緩緩停下,然后搭載著乘客前往他們想去的景點。1.

10、2設(shè)計的理念與目的我們將利用自己現(xiàn)有的知識與力量在現(xiàn)代科技的庇護下搭建一個屬于自己的智能小車,可以表達現(xiàn)代年輕一輩的科技頭腦與科技力量。我們初步想法是以89C52 為控制核心,利用超聲波傳感器檢測道路上的障礙并測量小車與障礙之間的距離,小車通過紅外傳感器能夠的自動避障,通過改變PWM信號的占空比可以控制快慢速行駛,以及自動停車,自動尋跡等功能。通過對本小車研究,我們可以初步構(gòu)建智能汽車的模型與理論根底。本設(shè)計主要研究容就是基于89C52設(shè)計一部智能小車,小車能夠?qū)崿F(xiàn)自動循跡,自動避障,超聲波測量距離。智能小車控制系統(tǒng),包括了對驅(qū)動電路,紅外通訊等的探索和研究。本工程文主要從小車設(shè)計方案的選取、

11、硬件設(shè)計、軟件設(shè)計、測試結(jié)果方面進展主要論述。我們在第3局部主講單片機的硬件設(shè)計,包括了單片機最小系統(tǒng)的電路設(shè)計;整個小車的一個供電電源的設(shè)計,需要通過電源給整個系統(tǒng)供給電壓;電機的驅(qū)動模塊,詳細的說明了電機驅(qū)動的原理,視頻信號的采集;我們將在第4局部程序的設(shè)計給出了程序整體的流程圖各個模塊子程序流程圖及編寫思想;最后我們將簡述整機的每個模塊調(diào)試及方法。為了到達最初的設(shè)計目的,使現(xiàn)代智能化的力量無限的放大,讓現(xiàn)代科技的光輝通過我們的雙手照在人們眼睛里。同時也想通過設(shè)計來提高我們自身的能力與知識。2 設(shè)計方案的論證及選擇2.1 總體設(shè)計系統(tǒng)圖本設(shè)計將以單片機為根底,以它為核心再配合電源模塊與驅(qū)動

12、模塊并在此根底上添加液晶顯示,測距避障以實現(xiàn)各個功能。路由器用于接收電腦等終端設(shè)備發(fā)送的指令和將攝像頭采集到的視頻信號傳送到電腦等終端設(shè)備;單片機最小系統(tǒng)是整個小車的控制核心,控制著各個模塊統(tǒng)一協(xié)調(diào)工作;電機驅(qū)動電路用于驅(qū)動電機轉(zhuǎn)動,可以使電機產(chǎn)生正轉(zhuǎn)、反轉(zhuǎn),從而使車體產(chǎn)生前進、后退、轉(zhuǎn)彎等動作;電機的作用就是使整個車體運動;電平轉(zhuǎn)換電路是將路由器輸出的3.3V串口電平轉(zhuǎn)換為單片機能判斷的上下電平;電源電路作用是為整個小車系統(tǒng)共電;舵機制作成云臺,然后裝上攝像頭,使攝像頭可實現(xiàn)上下、水平方向180度旋轉(zhuǎn)調(diào)節(jié);攝像頭用于采集視頻信號;蜂鳴器電路用于報警提示;照明電路為小車在夜間行駛提供照明。詳細

13、系統(tǒng)構(gòu)造圖如下:LCD1602模塊超聲波壁障模塊 STC89C52RC 總系統(tǒng)圖2.2 主控系統(tǒng)由于單片機具有價格低廉,資源豐富、有較為強大的控制功能,故本次設(shè)計采用STC89C52單片機作為整個系統(tǒng)的核心,用其控制行進中的小車以實現(xiàn)其既定的性能指標。STC89C52是一個超低功耗的增強型51單片機,和標準51系列單片機相比擬它的運算速度更快,有超強的抗干擾能力,同時還支持ISP在線編程,片上集成了512字節(jié)的隨機存取數(shù)據(jù)存儲器RAM,并且片含8k字節(jié)空間的可以反復擦寫1000次的Flash只讀存儲器, 32個I/O口,以及3個16位可編程定時計數(shù)器。其指令系統(tǒng)和傳統(tǒng)的8051系列單片機指令系

14、統(tǒng)完全兼容,降低了系統(tǒng)軟件設(shè)計的難度,電路設(shè)計簡單、價格低廉,在后來的實驗中我們發(fā)現(xiàn),STC 89C52準確度和運算速度也都完全符合我們系統(tǒng)的要求。2.3 電源模塊首先作為智能車的核心生命源,我們決定采用傳統(tǒng)的18650型鋰電池,單節(jié)標稱電壓一般為3.7V ,把三節(jié)串聯(lián)起來差不多就足夠了。我們也討論過使用雙電源供電,將9v可充電方塊電池電壓降壓、穩(wěn)壓到5V后給單片機系統(tǒng)和LCD1602及其它芯片供電。另外采用4節(jié)1.2V可充電電池組為直流電機供電,經(jīng)測試在用此種供電方式下,單片機和傳感器工作穩(wěn)定,直流電機工作良好,LCD顯示也很穩(wěn)定,小車也能長時間工作。但是經(jīng)過深思熟慮之后,我們還誰放棄了這個

15、想法。畢竟我們做的不是高精度小車,何必花費過多的精力在這個方面啦?2.4 電機驅(qū)動模塊 電機模塊選擇與論證方案一:使用步進電機作為智能小車系統(tǒng)的驅(qū)動電機,因為步進電機的轉(zhuǎn)動角度可以準確的定位,這樣就可以比擬準確的定位小車的前進距離和位置。但是由于步進電機的輸出力矩偏低,并且會隨著電機轉(zhuǎn)速的升高而下降,在到達較高的轉(zhuǎn)速時其輸出的力矩會急劇下降,因此不適于小車等對速度有著一定要求的系統(tǒng)。經(jīng)過綜合分析比擬決定放棄此方案。 方案二:使用直流減速電機作為智能小車系統(tǒng)的驅(qū)動電機。直流減速電機的轉(zhuǎn)動力矩比擬大,而且體積較小,重量也很輕,使用方便。另外小車電機部還裝有減速齒輪組,所以并不需要去考慮調(diào)速的功能,

16、可以很方便的通過單片機來控制直流減速電機的正傳、反轉(zhuǎn)、停頓操作。 綜合以上考慮選擇方案二的直流減速電機作為整個智能小車的驅(qū)動電機。 電機驅(qū)動模塊選擇與論證方案一:采用繼電器對電動機進展控制,通過切換電動機的開關(guān)來調(diào)整小車的速度。這個方案的優(yōu)點是電路相比照擬簡單,但是它的缺點也比擬多,如:繼電器的響應(yīng)時間偏慢, 壽命較短,容易損壞,可靠性也不是很高。故決定放棄此方案。 方案二:采用專用的電機驅(qū)動芯片L298N來控制直流減速電機, L298N芯片如圖2-4是一個具有高電壓大電流的全橋驅(qū)動芯片,一片L298N芯片可以分別的控制兩個直流減速電機,在646V的電壓下,可以提供2A的額定電流,并且具有過熱

17、自動關(guān)斷和電流反響檢測功能,平安可靠。該芯片是利用TTL電平進展控制的。通過單片機的IO口輸出上下電平來改變芯片控制端的輸入電平,即可以實現(xiàn)對電機進展正轉(zhuǎn)、反轉(zhuǎn)和停頓操作。另外為了保證L298N的正常工作,上面還有8個續(xù)流二極管1N4007。用該芯片作為電機驅(qū)動,驅(qū)動能力大、操作方便、穩(wěn)定性好、性能優(yōu)良。 綜合以上分析與論證我們選擇方案二的驅(qū)動芯片L298N作為整個智能小車系統(tǒng)的電機驅(qū)動電路圖2-4 L298N驅(qū)動芯片2.5 顯示模塊方案一:采用LED數(shù)碼管顯示。數(shù)碼管使用簡單,價格低廉,但一個數(shù)碼管只能顯示一個數(shù)字,要顯示多位數(shù)據(jù)時要使用多個數(shù)碼管,這就增加了硬件電路的復雜度和額外功耗,而且

18、LED數(shù)碼管也無法顯示字符。由于我們方案要顯示小車運行的速度和路程,LED數(shù)碼管沒方法顯示這么多的容,因此考慮其它的方案。 方案二:采用LCD1602液晶如圖2-5顯示。LCD1602液晶具有功耗低,顯示容豐富清晰,顯示信息量大,顯示速度較快,界面友好,使用簡單等特點而得到了廣泛的應(yīng)用。并且外圍電路也比擬簡單,因此我們選擇此方案。 通過以上方案論述我們選擇方案二,顯示小車運行速度和路程的任務(wù)。圖2-7 LCD1602液晶顯示2.6 避障模塊方案一:用漫反射式光電開關(guān)進展避障。光電開關(guān)的工作原理是根據(jù)光線發(fā)射頭發(fā)出的光束,被物體反射,其接收電路據(jù)此做出判斷反響,物體對紅外光由同步回路選通而檢測物

19、體的有無。當有光線反射回來時,輸出低電平。當沒有光線反射回來時,輸出高電平。操作簡單但是測量的距離不遠。 方案二:用超聲波傳感器進展測距避障。超聲波傳感器的原理是:超聲波由壓電瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,然后再被超聲波傳感器接收8。超聲波傳感器在避障的設(shè)計中被廣泛應(yīng)用。為了使用方便,便于操作和調(diào)試,采用集成超聲波測距模塊HC-SR04(如圖2-6)。 綜合考慮本系統(tǒng)只需要檢測障礙物,沒有十分復雜的環(huán)境。為了使用的方便,便于操作和調(diào)試,最終選擇了方案二圖2-6 HC-SR04超聲測距模塊2.7 路由器模塊網(wǎng)上有很多WiFi智能小車都用到了路由器,路由器的種類很多,質(zhì)量參差不齊,適

20、用環(huán)境也根據(jù)條件的不同發(fā)生著變化。但是目前最受DIY愛好者青睞的這是可以一種可以刷進openwrt系統(tǒng)的智能路,該路由器的強大資源配置情況如下:OpenWrt 可以被描述為一個嵌入式的 Linu* 發(fā)行版,主流路由器固件有 dd-wrt,tomato,openwrt三類而不是試圖建立一個單一的、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),從應(yīng)用程序供給商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。對于開發(fā)人員,OpenWrt 是使用框架來構(gòu)建應(yīng)用程序,而無需建立一個完整的固件來支持;對于用戶來說,這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。

21、OpenWrt 選擇了另一條路,它從零開場,一點一點的把各軟件參加進去,使其接近 Linksys 版Firmware的功能,而OpenWrt 的成功之處是它的文件系統(tǒng)是可寫的,開發(fā)者無需在每一次修改后重新編譯,令它更像一個小型的 Linu*電腦系統(tǒng)。OpenWRT是一個高度模塊化、高度自動化的嵌入式Linu*系統(tǒng),擁有強大的網(wǎng)絡(luò)組件和擴展性,常常被用于工控設(shè)備、小型機器人、智能家居、路由器以及VOIP設(shè)備中。同時,它還提供了100多個已編譯好的軟件,而且數(shù)量還在不斷增加,而 OpenWrt SDK 更簡化了開發(fā)軟件的工序。OpenWRT不同于其他許多用于路由器的發(fā)行版,它是一個從零開場編寫的、

22、功能齊全的、容易修改的路由器操作系統(tǒng)。實際上,這意味著您能夠使用您想要的功能而不加進其他的累贅,而支持這些功能工作的linu* kernel又遠比絕大多數(shù)發(fā)行版來得新。如果對 Linu* 系統(tǒng)有一定的認識, 并想學習或接觸嵌入式 Linu* 的話, OpenWRT很適合。但OpenWRT支持各種處理器架構(gòu),無論是對ARM,*86,PowerPC或者MIPS都有很好的支持。其多達3000多種軟件包,囊括從工具鏈(toolchain),到核(linu* kernel),到軟件包(packages),再到根文件系統(tǒng)(rootfs)整個體系,使得用戶只需簡單的一個make命令即可方便快速地定制一個具有

23、特定功能的嵌入式系統(tǒng)來制作固件。除此之外,我們還有制作好的與其兼容的RT5350系列WiFi芯片及其配套路由器底板。所以,在此我們選擇RT5350WiFi芯片和與其兼容的路由器底板。2.7.1 wifi芯片原理圖 攝像頭3 硬件電路的設(shè)計3.1 總體設(shè)計智能小車采用前輪驅(qū)動,前輪左右兩邊各用一個電機驅(qū)動,通過電機驅(qū)動芯片L298N來控制前面兩個輪子的轉(zhuǎn)動與停頓從而到達控制轉(zhuǎn)向的目的,后輪是萬向輪,起支撐轉(zhuǎn)向作用。將4個紅外光電傳感器裝在車體底盤的前端,小車根據(jù)傳感器檢測的情況來循跡前進。 小車速度的檢測通過槽型光電傳感器,將碼盤裝在電機的軸上,碼盤跟隨電機一起轉(zhuǎn)動,將檢測到的數(shù)據(jù)傳回單片機進展

24、處理。 小車的避障用超聲波避障模塊HC-SR04,將其置于車頭,檢測到障礙物時,小車做出相應(yīng)的反響。3.2 驅(qū)動電路電動小車的驅(qū)動不但要求電機驅(qū)動系統(tǒng)具有高轉(zhuǎn)矩重量比、寬調(diào)速圍、高可靠性,而且電機的轉(zhuǎn)矩-轉(zhuǎn)速特性受電源功率的影響,這就要求驅(qū)動具有盡可能寬的高效率區(qū)。我們所使用的電機一般為直流電機,主要用到永磁直流電機、伺服電機及步進電機三種。直流電機的控制很簡單,性能出眾,直流電源也容易實現(xiàn)。我們使用的這種直流電機的驅(qū)動及控制需要電機驅(qū)動芯片進展驅(qū)動。常用的電機驅(qū)動芯片有L297/298,MC33886,ML4428等,本次使用L298驅(qū)動芯片。 電機驅(qū)動模塊的使用我們使用的L298N是ST公

25、司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;額定功率25W。含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或制止器件工作有一個邏輯電源輸入端,使部邏輯電路局部在低電壓下工作;可以外接檢測電阻,將變化量反響給控制電路。使用L298N芯片驅(qū)動電機,該芯片可以驅(qū)動一臺兩相步進電機或四相步進電機,也可以驅(qū)動兩臺直流電機。工程使用的是4個直流電機,工程中使用了一

26、塊L298N電機驅(qū)動來驅(qū)動這四個直流電機的轉(zhuǎn)動。其實引腳圖如下列圖3-2-1所示。其中6和11引腳是它的使能端,一個使能端控制一個電機,只有當它們都是高電平的時候兩個電機才有可能工作,5、7、10、12是298的信號輸入端和單片機的IO口相連,2、3、13、14腳是輸出端,輸入5和7腳控制輸出2和3腳,輸入的10、12腳控制輸出的13、14腳。圖3-2-1 L298N驅(qū)動芯片引腳 電機驅(qū)動的原理驅(qū)動局部我們使用的是L298N驅(qū)動芯片構(gòu)成的一個驅(qū)動電路模塊如圖3-2-2所示。圖3-2-2-1 驅(qū)動電路模塊電機驅(qū)動原理圖如圖3-2-2-2:圖3-2-2-2 電路驅(qū)動原理圖使用直流/步進兩用驅(qū)動器可

27、以驅(qū)動兩臺直流電機。分別為M1和M2。引腳A,B可用于輸入PWM脈寬調(diào)制信號對電機進展調(diào)速控制。如果無須調(diào)速可將兩引腳接5V,使電機工作在最高速狀態(tài),既將短接帽短接實現(xiàn)電機正反轉(zhuǎn)就更容易了,輸入信號端IN1接高電平輸入端IN2接低電平,電機M1正轉(zhuǎn)。如果信號端IN1接低電平, IN2接高電平,電機M1反轉(zhuǎn)。控制另一臺電機是同樣的方式,輸入信號端IN3接高電平,輸入端IN4接低電平,電機M2正轉(zhuǎn)。反之則反轉(zhuǎn),PWM信號端A控制M1調(diào)速,PWM信號端B控制M2調(diào)速。電機驅(qū)動狀態(tài)表電機旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低/高

28、/反轉(zhuǎn)低高/高/停頓低低/高/M2正轉(zhuǎn)/高低/高反轉(zhuǎn)/低高/高停頓低低/高3.3 顯示電路用LCD1602來顯示數(shù)據(jù),LCD液晶具有功耗低、顯示容豐富、清晰,顯示信息量大,顯示速度較快等特點。其中用滑動變阻器RV0來調(diào)節(jié)顯示器的背光亮度。電路原理圖如下列圖3-4。3.4 單片機最小系統(tǒng)的設(shè)計單片機是控制單元的核心。起著控制小車所有運行狀態(tài)的作用。單片機控制模塊使用的是宏晶公司生產(chǎn)的STC89C52,使用該芯片很容易實現(xiàn)對其它模塊的控制。通過對單片機STC89C52寫入程序,可以方便的用軟件來控制,整個過程的控制局部。 主控芯片的介紹89C52是宏晶公司MCS-51系列單片機中根本的產(chǎn)品,它采用

29、ETC公司可靠的CHMOS工藝技術(shù)制造的高性能8位單片機,屬于標準的MCS-51的HCMOS產(chǎn)品。它結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,它基于標準的MCS-51單片機體系構(gòu)造和指令系統(tǒng),屬于80C51增強型單片機版本,集成了時鐘輸出和向上或向下計數(shù)器等更多的功能,適合于類似馬達控制等應(yīng)用場合。89C52置8位中央處理單元、256字節(jié)部數(shù)據(jù)存儲器RAM、8k片程序存儲器ROM32個雙向輸入/輸出(I/O)口、3個16位定時/計數(shù)器和5個兩級中斷構(gòu)造,一個全雙工串行通信口,片時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)

30、CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停頓,同時停頓芯片其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。主要功能特性如下:1、標準MCS-51核和指令系統(tǒng);2 、32個雙向I/O口;3、3個16位可編程定時/計數(shù)器;4、向上或向下定時計數(shù)器;5、6個中斷源;6、全雙工串行通信口。7、幀錯誤偵測;8、自動地址識別;9、空閑和掉電節(jié)省模式;10、片8kROM可擴大64kB外部存儲器;11、256*8bit部RAM可擴大64kB外部存儲器;12、時鐘頻率3.5-12/24/33MHz;13、改良型快速編程脈沖算法;14

31、、5.0V工作電壓;15、布爾處理器;16、4層優(yōu)先級中斷構(gòu)造;17、兼容TTL和CMOS邏輯電平;18、PDIP(40)和PLCC(44)封裝形式。 單片機最小系統(tǒng)STC89C52RC單片機最小系統(tǒng):89C52單片機的I/O口的輸入功能用于傳感器信號的輸入處理。通過單片機對外部傳感器的信號采集處理,從而對外部條件進展判斷以確定小車下一步的運行狀態(tài)。89C52單片機的I/O口信號輸出,主要是給驅(qū)動模塊送控制信號用于控制電機的轉(zhuǎn)動、給舵機送PWM控制信號控制舵機的偏轉(zhuǎn)以及控制開關(guān)蜂鳴器、燈光等。單片機的部定時器的使用是用于產(chǎn)生PWM信號,以及其他需要準確時間的地方。單片機的串口中斷,用于與路由器

32、進展的串口通訊,接收電腦終端發(fā)送的串口指令。單片機的外部中斷用于紅外信號的接收,然后通過解碼程序得到命令,從而控制小車的運動。4 程序調(diào)試4.1 調(diào)試軟件STC-ISP串口助手調(diào)試軟件:KEIL uVision4編譯器:5 設(shè)計小結(jié)歷經(jīng)半個月的培訓和長時間的編程,小車終于調(diào)試成功,雖然看上去功能比擬強大,具備智能小車根本所需要的功能,但并沒有讓自己感到滿足,其中存在很多方面的缺陷,同時也表達出自己能力的缺乏,在自己今后的學習中也有很大的啟發(fā)作用。我們隊幾個人從單片機最小系統(tǒng)到電機驅(qū)動模塊,都得自己畫電路版,焊電路版,查資料,寫程序,記得有幾次我們測試程序失敗,然后不停在程序上找原因,可最后發(fā)現(xiàn)

33、是電路板畫錯了,不得不重新畫過,然后再焊電路板。在這過程中考驗了我們的耐心和智慧,鍛煉了我們的實踐能力,在設(shè)計中提高了我們數(shù)電模電的理論水平,也讓我們感受到實踐的坎坷和樂趣通過本次WIFI智能小車的理論學習、論文編寫和實物的制作,進一步的認識到了自身存在的缺乏。特別是自己在路由器方面知識的欠缺,這使得我在小車在起步制作時路由器局部的處理花費了大量的時間。但通過我在網(wǎng)上不斷的查詢相關(guān)的資料,在網(wǎng)上請教這方面的高手,最終我還是完成了路由器局部的處理。但是我還是不知道其中具體的一些細節(jié)的原理,如我的攝像頭為什么會在后期不能使用,使用不同攝像頭時路由器要進展怎樣的一個處理。還有在整機裝配的時候我沒有注

34、意到一些細節(jié)的地方,這使得我把小車拆裝了屢次。要想把事情做好提高效率,這就需要注意學習生活工作中做事的細節(jié),以及對自己知識的擴大。還要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計完畢了,但是從中學到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。設(shè)計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設(shè)

35、計的過程中發(fā)現(xiàn)了自己的缺乏之處,對以前所學過的知識理解得不夠深刻,掌握得不夠結(jié)實。同時,通過這次的課程設(shè)計,我的各方面能力也得到了大幅度的提高。在知識上:一方面,我系統(tǒng)的總結(jié)了自己的專業(yè)知識,明確了自己今后事業(yè)的開展方向。另一方面,我如饑似渴的自學了單片機及其外圍電路知識,并通過自己獨立對軟件的編寫和實物制作,最終完成了整個WIFI智能小車的設(shè)計。在能力上:我通過不斷查閱資料、與師生交流學習新知識、在網(wǎng)上請教相關(guān)的人士,然后又將自己沉淀后的知識和經(jīng)歷運用到實際電路設(shè)計理念中,豐富其功能與質(zhì)量。在綜合素質(zhì)上,我雖然遇到很多的挑戰(zhàn)和困難,但從未想過放棄,最終憑借自己百折不饒、勇于鉆研的精神解決了這

36、些技術(shù)難點。當然,由于我的知識和能力有限,整個設(shè)計還有很多缺乏之處有待完善和改良,懇請教師指教,這必將是我在踏上工作崗位之前的最大一筆收獲。附錄1 電路原理圖圖表 SEQ 圖表 * ARABIC 1-STC89C52最小系統(tǒng)原理圖圖表 SEQ 圖表 * ARABIC 2-路由器底板原理圖附錄2源程序#include #include #include #include steer.h#include motor.h#include lcd1602.h#include distance.h#include serial.hvoid GoAhead();void GoLeft();void GoR

37、ight();void Stop();void Back();void InitTimer0();void DelayMs(unsigned int ms);void SerialSetMode(unsigned char dat);void main()InitLcd1602();InitTimer0();InitSerial();SetReceFunction(SerialSetMode);LcdShowStr(0,1,Hello);SetMotorSpeed(20,20);while(1);void SerialSetMode(unsigned char dat)static unsig

38、ned chart = 0;unsigned char str20;strt=dat;t+; if(dat=-)/最后一個字符strt=0;t=0;if(!strcmp(up-,str)CarGoAhead();if(!strcmp(down-,str)CarGoBack();if(!strcmp(left-,str)CarGoLeft();if(!strcmp(right-,str)CarGoRight();if(!strcmp(stop-,str)CarStop();LcdShowStr(0,0,str);void DelayMs(unsigned int ms)unsigned int

39、i, j;for(i=0; ims; i+)for(j=0; j110; j+);void InitTimer0()TMOD |= 0*01;TH0 = (65536-1000)/256;TL0 = (65535-1000)%256;/0.1MsTR0 = 1;EA = 1;ET0 = 1;void InterruptTimer0() interrupt 1TH0 = (65536-1000)/256;TL0 = (65535-1000)%256;/0.1MsCarSpeedRun();#ifndef _MOTOR_H_#define _MOTOR_H_#include /*電機控制I/O口*

40、/右sbit EnB = P15;sbit In4 = P14;sbit In3 = P13;/左sbit In2 = P12;sbit In1 = P11;sbit EnA = P10;/*電機速度存放器*圍:0-100 */e*tern unsigned int LeftMotorSpeed;e*tern unsigned int RightMotorSpeed;/*小車運行狀態(tài)*/typedef enumMode_GoAhead,Mode_GoBack,Mode_Stop,Mode_GoLeft,Mode_GoRightRunMode;e*tern RunMode CarRunMode;

41、/*電機運行狀態(tài)宏轉(zhuǎn)換*/#define RightMotorGo EnB=1; In3=1; In4=0;#define RightMotorBack EnB=1; In3=0; In4=1;#define RightMotorStop EnB=1; In3=0; In4=0;#define LeftMotorGo EnA=1; In1=0; In2=1;#define LeftMotorBack EnA=1; In1=1; In2=0;#define LeftMotorStop EnA=1; In1=0; In2=0;/*根底函數(shù)聲明*/e*tern void CarGoAhead();/

42、小車前進e*tern void CarGoBack(); /小車倒車e*tern void CarStop(); /小車制動e*tern void CarGoLeft(); /小車左轉(zhuǎn)e*tern void CarGoRight();/小車右轉(zhuǎn)/*高級函數(shù)聲明*/e*tern void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2);/設(shè)置電機速度e*tern void CarSpeedRun();/小車以一定速度運動,定時器中斷部調(diào)用#endif#include motor.hunsigned int LeftMotorSpe

43、ed = 50;unsigned int RightMotorSpeed = 50;unsigned int Ma*MotorSpeed = 50;RunMode CarRunMode = Mode_Stop;e*tern bit AheadBar;e*tern bit LeftBar;e*tern bit RightBar;void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2)LeftMotorSpeed = Speed1;RightMotorSpeed = Speed2;void CarSpeedRun()static u

44、nsigned chart = 0;t+;if(t = Ma*MotorSpeed)t = 0;if(tLeftMotorSpeed)EnA = 1;elseEnA = 0;if(tRightMotorSpeed)EnB = 1;elseEnB = 0;void CarGoAhead()if(AheadBar = 0)CarRunMode = Mode_GoAhead;RightMotorGo;LeftMotorGo;void CarGoBack()CarRunMode = Mode_GoBack;RightMotorBack;LeftMotorBack;void CarStop()CarRu

45、nMode = Mode_Stop;RightMotorStop;LeftMotorStop;void CarGoLeft()if(LeftBar = 0)CarRunMode = Mode_GoLeft;RightMotorGo;LeftMotorStop;void CarGoRight()if(RightBar = 0)CarRunMode = Mode_GoRight;RightMotorStop;LeftMotorGo;#include serial.hbit McuSendEnd = 0;unsigned char *SerialSendData; /發(fā)送數(shù)據(jù)指針unsigned c

46、har SerialReceData; /接收數(shù)據(jù)void (*ReceDataFunction)(unsigned char); /接收數(shù)據(jù)回調(diào)函數(shù)void InitSerial()TMOD=0*20;TH1=253;TL1=253;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;SetReceFunction(TempReceDataFuntion);void TempReceDataFuntion(unsigned char ReceData)unsigned temp = ReceData;void SetReceFunction(void (*temp)(unsi

47、gned char)ReceDataFunction = temp;void SetSendChar(unsigned char *dat)SerialSendData = dat;void StartSendChar(unsigned char *dat)SetSendChar(dat);SBUF = *SerialSendData;void Serial() interrupt 4if(RI = 1)RI = 0;SerialReceData = SBUF;ReceDataFunction(SerialReceData);if(TI = 1)if(*SerialSendData) != 0

48、)SerialSendData+;SBUF = *SerialSendData;elseMcuSendEnd = 1;TI = 0;#ifndef _SERIAL_H_#define _SERIAL_H_#include e*tern bit McuSendEnd; /單片機數(shù)據(jù)發(fā)送完畢位e*tern unsigned char *SerialSendData; /發(fā)送數(shù)據(jù)指針e*tern unsigned char SerialReceData; /接收數(shù)據(jù)/*初始化串口*參 數(shù):無*返回值:無*使用串口通信時調(diào)用*/void InitSerial();/*開場發(fā)送數(shù)據(jù)*參 數(shù):dat待發(fā)送字符串指針*返回值:無*發(fā)送字符串時調(diào)用*/void StartSendCha

溫馨提示

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

評論

0/150

提交評論