




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、智能wifi小車目錄1 設(shè)計(jì)理念與背景11.1 當(dāng)代智能汽車的發(fā)展11.2 設(shè)計(jì)的理念與目的12 設(shè)計(jì)方案的論證及選擇22.1 總體設(shè)計(jì)系統(tǒng)圖22.2 主控系統(tǒng)32.3 電源模塊32.4 電機(jī)驅(qū)動模塊42.4.1 電機(jī)模塊選擇與論證42.4.2 電機(jī)驅(qū)動模塊選擇與論證42.5 顯示模塊52.6 避障模塊62.7 路由器模塊62.7.1 wifi芯片原理圖82.7.2 攝像頭83 硬件電路的設(shè)計(jì)83.1 總體設(shè)計(jì)83.2 驅(qū)動電路93.2.1 電機(jī)驅(qū)動模塊的使用93.2.2 電機(jī)驅(qū)動的原理103.3 顯示電路123.4 單片機(jī)最小系統(tǒng)的設(shè)計(jì)123.4.1 主控芯片的介紹123.4.2 單片機(jī)最小
2、系統(tǒng)134 程序調(diào)試144.1 調(diào)試軟件145 設(shè)計(jì)小結(jié)15附錄1 電路原理圖17附錄2 源程序18附錄3 實(shí)物照片3011 設(shè)計(jì)理念與背景1.1 當(dāng)代智能汽車的發(fā)展現(xiàn)在是一個智能化的時代,各種智能化設(shè)備正在逐步替代人為的操作。隨著汽車工業(yè)的迅速發(fā)展,關(guān)于智能汽車的研究也就越來越受人關(guān)注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究。對于智能汽車的研究,國內(nèi)外都有很大的成就,谷歌的無人駕駛汽車,已經(jīng)能夠在高速公路上安全行駛數(shù)千公里,在高速行駛下都能有這么好的操控能力,無非是智能汽車領(lǐng)域的一座里程碑。對于智能泊車系統(tǒng),現(xiàn)在也已經(jīng)進(jìn)入了民用領(lǐng)域,很多
3、車型也裝配了該系統(tǒng),有了他,汽車用超聲波傳感器掃描路面兩側(cè),通過比較停車的空間和車輛的長度,自動尋找合適的停車位。找到合適位置后,駕駛者只需控制剎車,車輛自動控制轉(zhuǎn)向操作,即可將車停進(jìn)停車位,并且液晶屏?xí)邢鄳?yīng)的顯示。對于這樣現(xiàn)代如此強(qiáng)大的科技手段,無線智能已經(jīng)不再是幻想,是人們想要達(dá)到的一種高度了。從20世紀(jì)70年代開始,美國、英國、德國等發(fā)達(dá)國家開始進(jìn)行無人駕駛汽車的研究,目前在可行性和實(shí)用化方面都取得了突破性的進(jìn)展。在無人駕駛技術(shù)研究方面位于世界前列的德國漢堡Ibeo公司研制的無人駕駛汽車,2007年4月11日在英國倫敦科學(xué)博物館與公眾見面。這輛無人駕駛智能汽車經(jīng)德國大眾汽車公司生產(chǎn)的帕
4、薩特2.0改裝而成,外表看來與普通家庭汽車并無差別,但卻可以在錯綜復(fù)雜的城市公路系統(tǒng)中無人駕駛。目前日本、歐美已有企業(yè)取得實(shí)用化成果。與國外相比,國內(nèi)在智能車輛方面的研究起步較晚,規(guī)模較小,開展這方面研究工作的單位主要是一些大學(xué)和研究所,如國防科技大學(xué)、清華大學(xué)、吉林大學(xué)、北京理工大學(xué)、長安大學(xué)、沈陽自動化所等。我國從20世紀(jì)80年代開始進(jìn)行無人駕駛汽車的研究,國防科技大學(xué)在1992年成功研制出我國第一輛真正意義上的無人駕駛汽車。先后研制出四代無人駕駛汽車。第四代全自主無人駕駛汽車于2000年6月在長沙市繞城高速公路上進(jìn)行了全自主無人駕駛試驗(yàn),試驗(yàn)最高時速達(dá)到75.6Km/h。在2004年10
5、月12日的第六屆高交會上,紅旗無人駕駛汽車就引起了極大的轟動。它在高速公路上最高穩(wěn)定無人駕駛速度為130公里/小時;峰值無人駕駛速度為170公里/小時。并同時具備安全超車和系統(tǒng)小型化兩個主要指標(biāo)。為如此,他們把它稱為“中國汽車界的神舟五號”。2005年,首輛城市無人駕駛汽車在上海交通大學(xué)研制成功,該車有望于兩年之內(nèi)率先在上海世紀(jì)公園進(jìn)行示范運(yùn)營,并在2010年世博會上一展身手。到時游 客只需在公園的入口處按下一個按鈕,一輛沒有司機(jī)的四座敞篷汽車就會從遠(yuǎn)處開過來緩緩?fù)O?,然后搭載著乘客前往他們想去的景點(diǎn)。1.2 設(shè)計(jì)的理念與目的我們將利用自己現(xiàn)有的知識與力量在現(xiàn)代科技的庇護(hù)下搭建一個屬
6、于自己的智能小車,可以體現(xiàn)現(xiàn)代年輕一輩的科技頭腦與科技力量。我們初步想法是以89C52 為控制核心,利用超聲波傳感器檢測道路上的障礙并測量小車與障礙之間的距離,小車通過紅外傳感器能夠的自動避障,通過改變PWM信號的占空比可以控制快慢速行駛,以及自動停車,自動尋跡等功能。通過對本小車研究,我們可以初步構(gòu)建智能汽車的模型與理論基礎(chǔ)。本設(shè)計(jì)主要研究內(nèi)容就是基于89C52設(shè)計(jì)一部智能小車,小車能夠?qū)崿F(xiàn)自動循跡,自動避障,超聲波測量距離。智能小車控制系統(tǒng),包括了對驅(qū)動電路,紅外通訊等的探索和研究。本項(xiàng)目文主要從小車設(shè)計(jì)方案的選取、硬件設(shè)計(jì)、軟件設(shè)計(jì)、測試結(jié)果方面進(jìn)行主要論述。我們在第3部分主講單片機(jī)的硬
7、件設(shè)計(jì),包括了單片機(jī)最小系統(tǒng)的電路設(shè)計(jì);整個小車的一個供電電源的設(shè)計(jì),需要通過電源給整個系統(tǒng)供給電壓;電機(jī)的驅(qū)動模塊,詳細(xì)的說明了電機(jī)驅(qū)動的原理,視頻信號的采集;我們將在第4部分程序的設(shè)計(jì)給出了程序整體的流程圖各個模塊子程序流程圖及編寫思想;最后我們將簡述整機(jī)的每個模塊調(diào)試及方法。為了達(dá)到最初的設(shè)計(jì)目的,使現(xiàn)代智能化的力量無限的放大,讓現(xiàn)代科技的光芒通過我們的雙手照在人們眼睛里。同時也想通過設(shè)計(jì)來提高我們自身的能力與知識。2 設(shè)計(jì)方案的論證及選擇2.1 總體設(shè)計(jì)系統(tǒng)圖本設(shè)計(jì)將以單片機(jī)為基礎(chǔ),以它為核心再配合電源模塊與驅(qū)動模塊并在此基礎(chǔ)上添加液晶顯示,測距避障以實(shí)現(xiàn)各個功能。路由器用于接收電腦等
8、終端設(shè)備發(fā)送的指令和將攝像頭采集到的視頻信號傳送到電腦等終端設(shè)備;單片機(jī)最小系統(tǒng)是整個小車的控制核心,控制著各個模塊統(tǒng)一協(xié)調(diào)工作;電機(jī)驅(qū)動電路用于驅(qū)動電機(jī)轉(zhuǎn)動,可以使電機(jī)產(chǎn)生正轉(zhuǎn)、反轉(zhuǎn),從而使車體產(chǎn)生前進(jìn)、后退、轉(zhuǎn)彎等動作;電機(jī)的作用就是使整個車體運(yùn)動;電平轉(zhuǎn)換電路是將路由器輸出的3.3V串口電平轉(zhuǎn)換為單片機(jī)能判斷的高低電平;電源電路作用是為整個小車系統(tǒng)共電;舵機(jī)制作成云臺,然后裝上攝像頭,使攝像頭可實(shí)現(xiàn)上下、水平方向180度旋轉(zhuǎn)調(diào)節(jié);攝像頭用于采集視頻信號;蜂鳴器電路用于報警提示;照明電路為小車在夜間行駛提供照明。詳細(xì)系統(tǒng)結(jié)構(gòu)圖如下:LCD1602模塊超聲波壁障模塊 STC89C52RC 總
9、系統(tǒng)圖2.2 主控系統(tǒng)由于單片機(jī)具有價格低廉,資源豐富、有較為強(qiáng)大的控制功能,故本次設(shè)計(jì)采用STC89C52單片機(jī)作為整個系統(tǒng)的核心,用其控制行進(jìn)中的小車以實(shí)現(xiàn)其既定的性能指標(biāo)。STC89C52是一個超低功耗的增強(qiáng)型51單片機(jī),和標(biāo)準(zhǔn)51系列單片機(jī)相比較它的運(yùn)算速度更快,有超強(qiáng)的抗干擾能力,同時還支持ISP在線編程,片上集成了512字節(jié)的隨機(jī)存取數(shù)據(jù)存儲器(RAM),并且片內(nèi)含8k字節(jié)空間的可以反復(fù)擦寫1000次的Flash只讀存儲器, 32個I/O口,以及3個16位可編程定時計(jì)數(shù)器。其指令系統(tǒng)和傳統(tǒng)的8051系列單片機(jī)指令系統(tǒng)完全兼容,降低了系統(tǒng)軟件設(shè)計(jì)的難度,電路設(shè)計(jì)簡單、價格低廉,在后來
10、的實(shí)驗(yàn)中我們發(fā)現(xiàn),STC 89C52精確度和運(yùn)算速度也都完全符合我們系統(tǒng)的要求。2.3 電源模塊首先作為智能車的核心生命源,我們決定采用傳統(tǒng)的18650型鋰電池,單節(jié)標(biāo)稱電壓一般為3.7V ,把三節(jié)串聯(lián)起來差不多就足夠了。我們也討論過使用雙電源供電,將9v可充電方塊電池電壓降壓、穩(wěn)壓到5V后給單片機(jī)系統(tǒng)和LCD1602及其它芯片供電。另外采用4節(jié)1.2V可充電電池組為直流電機(jī)供電,經(jīng)測試在用此種供電方式下,單片機(jī)和傳感器工作穩(wěn)定,直流電機(jī)工作良好,LCD顯示也很穩(wěn)定,小車也能長時間工作。但是經(jīng)過深思熟慮之后,我們還誰放棄了這個想法。畢竟我們做的不是高精度小車,何必花費(fèi)過多的精力在這個方面啦?2
11、.4 電機(jī)驅(qū)動模塊2.4.1 電機(jī)模塊選擇與論證 方案一:使用步進(jìn)電機(jī)作為智能小車系統(tǒng)的驅(qū)動電機(jī),因?yàn)椴竭M(jìn)電機(jī)的轉(zhuǎn)動角度可以精確的定位,這樣就可以比較精確的定位小車的前進(jìn)距離和位置。但是由于步進(jìn)電機(jī)的輸出力矩偏低,并且會隨著電機(jī)轉(zhuǎn)速的升高而下降,在達(dá)到較高的轉(zhuǎn)速時其輸出的力矩會急劇下降,因此不適于小車等對速度有著一定要求的系統(tǒng)。經(jīng)過綜合分析比較決定放棄此方案。 方案二:使用直流減速電機(jī)作為智能小車系統(tǒng)的驅(qū)動電機(jī)。直流減速電機(jī)的轉(zhuǎn)動力矩比較大,而且體積較小,重量也很輕,使用方便。另外小車電機(jī)內(nèi)部還裝有減速齒輪組,所以并不需要去考慮調(diào)速的功能,可以很方便的通過單片機(jī)來控制直流減速電機(jī)的正傳、反轉(zhuǎn)、
12、停止操作。 綜合以上考慮選擇方案二的直流減速電機(jī)作為整個智能小車的驅(qū)動電機(jī)。2.4.2 電機(jī)驅(qū)動模塊選擇與論證 方案一:采用繼電器對電動機(jī)進(jìn)行控制,通過切換電動機(jī)的開關(guān)來調(diào)整小車的速度。這個方案的優(yōu)點(diǎn)是電路相對比較簡單,但是它的缺點(diǎn)也比較多,如:繼電器的響應(yīng)時間偏慢, 壽命較短,容易損壞,可靠性也不是很高。故決定放棄此方案。 方案二:采用專用的電機(jī)驅(qū)動芯片L298N來控制直流減速電機(jī), L298N芯片(如圖2-4)是一個具有高電壓大電流的全橋驅(qū)動芯片,一片L298N芯片可以分別的控制兩個直流減速電機(jī),在646V的電壓下,可以提供2A的額定電流,并且具有過熱自動關(guān)斷和電流反饋檢測功能,安全可靠。
13、該芯片是利用TTL電平進(jìn)行控制的。通過單片機(jī)的IO口輸出高低電平來改變芯片控制端的輸入電平,即可以實(shí)現(xiàn)對電機(jī)進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)和停止操作。另外為了保證L298N的正常工作,上面還有8個續(xù)流二極管1N4007。用該芯片作為電機(jī)驅(qū)動,驅(qū)動能力大、操作方便、穩(wěn)定性好、性能優(yōu)良。 綜合以上分析與論證我們選擇方案二的驅(qū)動芯片L298N作為整個智能小車系統(tǒng)的電機(jī)驅(qū)動電路圖2-4 L298N驅(qū)動芯片2.5 顯示模塊方案一:采用LED數(shù)碼管顯示。數(shù)碼管使用簡單,價格低廉,但一個數(shù)碼管只能顯示一個數(shù)字,要顯示多位數(shù)據(jù)時要使用多個數(shù)碼管,這就增加了硬件電路的復(fù)雜度和額外功耗,而且LED數(shù)碼管也無法顯示字符。由于我們計(jì)
14、劃要顯示小車運(yùn)行的速度和路程,LED數(shù)碼管沒辦法顯示這么多的內(nèi)容,因此考慮其它的方案。 方案二:采用LCD1602液晶(如圖2-5)顯示。LCD1602液晶具有功耗低,顯示內(nèi)容豐富清晰,顯示信息量大,顯示速度較快,界面友好,使用簡單等特點(diǎn)而得到了廣泛的應(yīng)用。并且外圍電路也比較簡單,因此我們選擇此方案。 通過以上方案論述我們選擇方案二,顯示小車運(yùn)行速度和路程的任務(wù)。圖2-7 LCD1602液晶顯示2.6 避障模塊方案一:用漫反射式光電開關(guān)進(jìn)行避障。光電開關(guān)的工作原理是根據(jù)光線發(fā)射頭發(fā)出的光束,被物體反射,其接收電路據(jù)此做出判斷反應(yīng),物體對紅外光由同步回路選通而檢測物體的有無。當(dāng)有光線反射回來時,
15、輸出低電平。當(dāng)沒有光線反射回來時,輸出高電平。操作簡單但是測量的距離不遠(yuǎn)。 方案二:用超聲波傳感器進(jìn)行測距避障。超聲波傳感器的原理是:超聲波由壓電陶瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,然后再被超聲波傳感器接收8。超聲波傳感器在避障的設(shè)計(jì)中被廣泛應(yīng)用。為了使用方便,便于操作和調(diào)試,采用集成超聲波測距模塊HC-SR04(如圖2-6)。 綜合考慮本系統(tǒng)只需要檢測障礙物,沒有十分復(fù)雜的環(huán)境。為了使用的方便,便于操作和調(diào)試,最終選擇了方案二圖2-6 HC-SR04超聲測距模塊2.7 路由器模塊網(wǎng)上有很多WiFi智能小車都用到了路由器,路由器的種類很多,質(zhì)量參差不齊,適用環(huán)境也根據(jù)條件的不同發(fā)生著
16、變化。但是目前最受DIY愛好者青睞的這是可以一種可以刷進(jìn)openwrt系統(tǒng)的智能路,該路由器的強(qiáng)大資源配置情況如下:OpenWrt 可以被描述為一個嵌入式的 Linux 發(fā)行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。對于開發(fā)人員,OpenWrt 是使用框架來構(gòu)建應(yīng)用程序,而無需建立一個完整的固件來支持;對于用戶來說,這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。OpenWrt 選擇了另
17、一條路,它從零開始,一點(diǎn)一點(diǎn)的把各軟件加入進(jìn)去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之處是它的文件系統(tǒng)是可寫的,開發(fā)者無需在每一次修改后重新編譯,令它更像一個小型的 Linux 電腦系統(tǒng)。OpenWRT是一個高度模塊化、高度自動化的嵌入式Linux系統(tǒng),擁有強(qiáng)大的網(wǎng)絡(luò)組件和擴(kuò)展性,常常被用于工控設(shè)備、電話、小型機(jī)器人、智能家居、路由器以及VOIP設(shè)備中。 同時,它還提供了100多個已編譯好的軟件,而且數(shù)量還在不斷增加,而 OpenWrt SDK 更簡化了開發(fā)軟件的工序。OpenWRT不同于其他許多用于路由器的發(fā)行版,它是一個從零開始
18、編寫的、功能齊全的、容易修改的路由器操作系統(tǒng)。實(shí)際上,這意味著您能夠使用您想要的功能而不加進(jìn)其他的累贅,而支持這些功能工作的linux kernel又遠(yuǎn)比絕大多數(shù)發(fā)行版來得新。如果對 Linux 系統(tǒng)有一定的認(rèn)識, 并想學(xué)習(xí)或接觸嵌入式 Linux 的話, OpenWRT很適合。 但OpenWRT支持各種處理器架構(gòu),無論是對ARM,X86,PowerPC或者M(jìn)IPS都有很好的支持。 其多達(dá)3000多種軟件包,囊括從工具鏈(toolchain),到內(nèi)核(linux kernel),到軟件包(packages),再到根文件系統(tǒng)(rootfs)整個體系,使得用戶只需簡單的一個make命令即可方便快速
19、地定制一個具有特定功能的嵌入式系統(tǒng)來制作固件。除此之外,我們還有制作好的與其兼容的RT5350系列WiFi芯片及其配套路由器底板。所以,在此我們選擇RT5350WiFi芯片和與其兼容的路由器底板。2.7.1 wifi芯片原理圖2.7.2 攝像頭3 硬件電路的設(shè)計(jì)3.1 總體設(shè)計(jì)智能小車采用前輪驅(qū)動,前輪左右兩邊各用一個電機(jī)驅(qū)動,通過電機(jī)驅(qū)動芯片L298N來控制前面兩個輪子的轉(zhuǎn)動與停止從而達(dá)到控制轉(zhuǎn)向的目的,后輪是萬向輪,起支撐轉(zhuǎn)向作用。將4個紅外光電傳感器裝在車體底盤的前端,小車根據(jù)傳感器檢測的情況來循跡前進(jìn)。 小車速度的檢測通過槽型光電傳感器,將碼盤裝在電機(jī)的軸上,碼盤跟隨電機(jī)一起轉(zhuǎn)動,將檢
20、測到的數(shù)據(jù)傳回單片機(jī)進(jìn)行處理。 小車的避障用超聲波避障模塊HC-SR04,將其置于車頭,檢測到障礙物時,小車做出相應(yīng)的反應(yīng)。3.2 驅(qū)動電路電動小車的驅(qū)動不但要求電機(jī)驅(qū)動系統(tǒng)具有高轉(zhuǎn)矩重量比、寬調(diào)速范圍、高可靠性,而且電機(jī)的轉(zhuǎn)矩-轉(zhuǎn)速特性受電源功率的影響,這就要求驅(qū)動具有盡可能寬的高效率區(qū)。我們所使用的電機(jī)一般為直流電機(jī),主要用到永磁直流電機(jī)、伺服電機(jī)及步進(jìn)電機(jī)三種。直流電機(jī)的控制很簡單,性能出眾,直流電源也容易實(shí)現(xiàn)。我們使用的這種直流電機(jī)的驅(qū)動及控制需要電機(jī)驅(qū)動芯片進(jìn)行驅(qū)動。常用的電機(jī)驅(qū)動芯片有L297/298,MC33886,ML4428等,本次使用L298驅(qū)動芯片。3.2.1 電機(jī)驅(qū)動模
21、塊的使用我們使用的L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動芯片。該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機(jī)和步進(jìn)電動機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動電機(jī),該芯片可以驅(qū)動一臺兩相步進(jìn)電機(jī)或四相步進(jìn)電機(jī),也可以驅(qū)動兩臺直流電機(jī)。
22、項(xiàng)目使用的是4個直流電機(jī),項(xiàng)目中使用了一塊L298N電機(jī)驅(qū)動來驅(qū)動這四個直流電機(jī)的轉(zhuǎn)動。其實(shí)引腳圖如下圖3-2-1所示。其中6和11引腳是它的使能端,一個使能端控制一個電機(jī),只有當(dāng)它們都是高電平的時候兩個電機(jī)才有可能工作,5、7、10、12是298的信號輸入端和單片機(jī)的IO口相連,2、3、13、14腳是輸出端,輸入5和7腳控制輸出2和3腳,輸入的10、12腳控制輸出的13、14腳。圖3-2-1 L298N驅(qū)動芯片引腳3.2.2 電機(jī)驅(qū)動的原理驅(qū)動部分我們使用的是L298N驅(qū)動芯片構(gòu)成的一個驅(qū)動電路模塊如圖3-2-2所示。圖3-2-2-1 驅(qū)動電路模塊電機(jī)驅(qū)動原理圖如圖3-2-2-2:圖3-2-
23、2-2 電路驅(qū)動原理圖使用直流/步進(jìn)兩用驅(qū)動器可以驅(qū)動兩臺直流電機(jī)。分別為M1和M2。引腳A,B可用于輸入PWM脈寬調(diào)制信號對電機(jī)進(jìn)行調(diào)速控制。(如果無須調(diào)速可將兩引腳接5V,使電機(jī)工作在最高速狀態(tài),既將短接帽短接)實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)就更容易了,輸入信號端IN1接高電平輸入端IN2接低電平,電機(jī)M1正轉(zhuǎn)。(如果信號端IN1接低電平, IN2接高電平,電機(jī)M1反轉(zhuǎn)。)控制另一臺電機(jī)是同樣的方式,輸入信號端IN3接高電平,輸入端IN4接低電平,電機(jī)M2正轉(zhuǎn)。(反之則反轉(zhuǎn)),PWM信號端A控制M1調(diào)速,PWM信號端B控制M2調(diào)速。電機(jī)驅(qū)動狀態(tài)表電機(jī)旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4
24、輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低/高/反轉(zhuǎn)低高/高/停止低低/高/M2正轉(zhuǎn)/高低/高反轉(zhuǎn)/低高/高停止低低/高3.3 顯示電路用LCD1602來顯示數(shù)據(jù),LCD液晶具有功耗低、顯示內(nèi)容豐富、清晰,顯示信息量大,顯示速度較快等特點(diǎn)。其中用滑動變阻器RV0來調(diào)節(jié)顯示器的背光亮度。電路原理圖如下圖3-4。3.4 單片機(jī)最小系統(tǒng)的設(shè)計(jì)單片機(jī)是控制單元的核心。起著控制小車所有運(yùn)行狀態(tài)的作用。單片機(jī)控制模塊使用的是宏晶公司生產(chǎn)的STC89C52,使用該芯片很容易實(shí)現(xiàn)對其它模塊的控制。通過對單片機(jī)STC89C52寫入程序,可以方便的用軟件來控制,整個過程的控制部分。3.4.1 主控芯
25、片的介紹89C52是宏晶公司MCS-51系列單片機(jī)中基本的產(chǎn)品,它采用ETC公司可靠的CHMOS工藝技術(shù)制造的高性能8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-51的HCMOS產(chǎn)品。它結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,它基于標(biāo)準(zhǔn)的MCS-51單片機(jī)體系結(jié)構(gòu)和指令系統(tǒng),屬于80C51增強(qiáng)型單片機(jī)版本,集成了時鐘輸出和向上或向下計(jì)數(shù)器等更多的功能,適合于類似馬達(dá)控制等應(yīng)用場合。89C52內(nèi)置8位中央處理單元、256字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、8k片內(nèi)程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計(jì)數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。此外,
26、89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。主要功能特性如下:1、標(biāo)準(zhǔn)MCS-51內(nèi)核和指令系統(tǒng);2 、32個雙向I/O口;3、3個16位可編程定時/計(jì)數(shù)器;4、向上或向下定時計(jì)數(shù)器;5、6個中斷源;6、全雙工串行通信口。7、幀錯誤偵測;8、自動地址識別;9、空閑和掉電節(jié)省模式;10、片內(nèi)8kROM(可擴(kuò)充64kB外部存儲器);11、256x8bit內(nèi)部RAM(可擴(kuò)充64
27、kB外部存儲器);12、時鐘頻率3.5-12/24/33MHz;13、改進(jìn)型快速編程脈沖算法;14、5.0V工作電壓;15、布爾處理器;16、4層優(yōu)先級中斷結(jié)構(gòu);17、兼容TTL和CMOS邏輯電平;18、PDIP(40)和PLCC(44)封裝形式。3.4.2 單片機(jī)最小系統(tǒng)STC89C52RC單片機(jī)最小系統(tǒng): 89C52單片機(jī)的I/O口的輸入功能用于傳感器信號的輸入處理。通過單片機(jī)對外部傳感器的信號采集處理,從而對外部條件進(jìn)行判斷以確定小車下一步的運(yùn)行狀態(tài)。 89C52單片機(jī)的I/O口信號輸出,主要是給驅(qū)動模塊送控制信號用于控制電機(jī)的轉(zhuǎn)動、給舵機(jī)送PWM控制信號控制舵機(jī)的偏轉(zhuǎn)以及控制開關(guān)蜂鳴器
28、、燈光等。單片機(jī)的內(nèi)部定時器的使用是用于產(chǎn)生PWM信號,以及其他需要精確時間的地方。單片機(jī)的串口中斷,用于與路由器進(jìn)行的串口通訊,接收電腦終端發(fā)送的串口指令。單片機(jī)的外部中斷用于紅外信號的接收,然后通過解碼程序得到命令,從而控制小車的運(yùn)動。4 程序調(diào)試4.1 調(diào)試軟件STC-ISP串口助手調(diào)試軟件:KEIL uVision4編譯器:5 設(shè)計(jì)小結(jié)歷經(jīng)半個月的培訓(xùn)和長時間的編程,小車終于調(diào)試成功,雖然看上去功能比較強(qiáng)大,具備智能小車基本所需要的功能,但并沒有讓自己感到滿足,其中存在很多方面的缺陷,同時也體現(xiàn)出自己能力的不足,在自己今后的學(xué)習(xí)中也有很大的啟發(fā)作用。我們隊(duì)幾個人從單片機(jī)最小系統(tǒng)到電機(jī)驅(qū)
29、動模塊,都得自己畫電路版,焊電路版,查資料,寫程序,記得有幾次我們測試程序失敗,然后不停在程序上找原因,可最后發(fā)現(xiàn)是電路板畫錯了,不得不重新畫過,然后再焊電路板。在這過程中考驗(yàn)了我們的耐心和智慧,鍛煉了我們的實(shí)踐能力,在設(shè)計(jì)中提高了我們數(shù)電模電的理論水平,也讓我們感受到實(shí)踐的坎坷和樂趣通過本次WIFI智能小車的理論學(xué)習(xí)、論文編寫和實(shí)物的制作,進(jìn)一步的認(rèn)識到了自身存在的不足。特別是自己在路由器方面知識的欠缺,這使得我在小車在起步制作時路由器部分的處理花費(fèi)了大量的時間。但通過我在網(wǎng)上不斷的查詢相關(guān)的資料,在網(wǎng)上請教這方面的高手,最終我還是完成了路由器部分的處理。但是我還是不知道其中具體的一些細(xì)節(jié)的
30、原理,如我的攝像頭為什么會在后期不能使用,使用不同攝像頭時路由器要進(jìn)行怎樣的一個處理。還有在整機(jī)裝配的時候我沒有注意到一些細(xì)節(jié)的地方,這使得我把小車拆裝了多次。要想把事情做好提高效率,這就需要注意學(xué)習(xí)生活工作中做事的細(xì)節(jié),以及對自己知識的擴(kuò)充。還要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過程中遇到問題是很正常德,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。 發(fā)現(xiàn)、提出、分析、解決問題和
31、實(shí)踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計(jì)過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。同時,通過這次的課程設(shè)計(jì),我的各方面能力也得到了大幅度的提高。在知識上:一方面,我系統(tǒng)的總結(jié)了自己的專業(yè)知識,明確了自己今后事業(yè)的發(fā)展方向。另一方面,我如饑似渴的自學(xué)了單片機(jī)及其外圍電路知識,并通過自己獨(dú)立對軟件的編寫和實(shí)物制作,最終完成了整個WIFI智能小車的設(shè)計(jì)。在能力上:我通過不斷查閱資料、與師生交流學(xué)習(xí)新知識、在網(wǎng)上請教相關(guān)的人士,然后又將自己沉淀后的
32、知識和經(jīng)驗(yàn)運(yùn)用到實(shí)際電路設(shè)計(jì)理念中,豐富其功能與質(zhì)量。在綜合素質(zhì)上,我雖然遇到很多的挑戰(zhàn)和困難,但從未想過放棄,最終憑借自己百折不饒、勇于鉆研的精神解決了這些技術(shù)難點(diǎn)。當(dāng)然,由于我的知識和能力有限,整個設(shè)計(jì)還有很多不足之處有待完善和改進(jìn),懇請老師指教,這必將是我在踏上工作崗位之前的最大一筆收獲。附錄1 電路原理圖圖表 1-STC89C52最小系統(tǒng)原理圖圖表 2-路由器底板原理圖附錄2 源程序#include <reg52.h>#include <stdio.h>#include <string.h>#include "steer.h"#i
33、nclude "motor.h"#include "lcd1602.h"#include "distance.h"#include "serial.h"void GoAhead();void GoLeft();void GoRight();void Stop();void Back();void InitTimer0();void DelayMs(unsigned int ms);void SerialSetMode(unsigned char dat);void main()InitLcd1602();InitT
34、imer0();InitSerial();SetReceFunction(SerialSetMode);LcdShowStr(0,1,"Hello");SetMotorSpeed(20,20);while(1);void SerialSetMode(unsigned char dat)static unsigned char cnt = 0;unsigned char str20;strcnt=dat;cnt+; if(dat='-')/最后一個字符strcnt='0'cnt=0;if(!strcmp("up-",str)
35、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 i, j;for(i=0; i<ms; i+)for(j=0; j<110;
36、j+);void InitTimer0()TMOD |= 0x01;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 <reg52.h>/*電機(jī)控制I/O口*/右sbit EnB = P15;sbit
37、In4 = P14;sbit In3 = P13;/左sbit In2 = P12;sbit In1 = P11;sbit EnA = P10;/*電機(jī)速度寄存器*范圍:0-100 */extern unsigned int LeftMotorSpeed;extern unsigned int RightMotorSpeed;/*小車運(yùn)行狀態(tài)*/typedef enumMode_GoAhead,Mode_GoBack,Mode_Stop,Mode_GoLeft,Mode_GoRightRunMode;extern RunMode CarRunMode;/*電機(jī)運(yùn)行狀態(tài)宏轉(zhuǎn)換*/#define
38、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;/*基礎(chǔ)函數(shù)聲明*/extern void CarGoAhead();/小車前進(jìn)extern void CarGo
39、Back(); /小車倒車extern void CarStop(); /小車制動extern void CarGoLeft(); /小車左轉(zhuǎn)extern void CarGoRight();/小車右轉(zhuǎn)/*高級函數(shù)聲明*/extern void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2);/設(shè)置電機(jī)速度extern void CarSpeedRun();/小車以一定速度運(yùn)動,定時器中斷內(nèi)部調(diào)用#endif#include "motor.h"unsigned int LeftMotorSpeed = 50;
40、unsigned int RightMotorSpeed = 50;unsigned int MaxMotorSpeed = 50;RunMode CarRunMode = Mode_Stop;extern bit AheadBar;extern bit LeftBar;extern bit RightBar;void SetMotorSpeed(unsigned char Speed1,unsigned char Speed2)LeftMotorSpeed = Speed1;RightMotorSpeed = Speed2;void CarSpeedRun()static unsigned
41、char cnt = 0;cnt+;if(cnt = MaxMotorSpeed)cnt = 0;if(cnt<LeftMotorSpeed)EnA = 1;elseEnA = 0;if(cnt<RightMotorSpeed)EnB = 1;elseEnB = 0;void CarGoAhead()if(AheadBar = 0)CarRunMode = Mode_GoAhead;RightMotorGo;LeftMotorGo;void CarGoBack()CarRunMode = Mode_GoBack;RightMotorBack;LeftMotorBack;void C
42、arStop()CarRunMode = 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.h"bit McuSendEnd = 0;unsigned char *SerialSe
43、ndData; /發(fā)送數(shù)據(jù)指針unsigned char SerialReceData; /接收數(shù)據(jù)void (*ReceDataFunction)(unsigned char); /接收數(shù)據(jù)回調(diào)函數(shù)void InitSerial()TMOD=0x20;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 SetRece
44、Function(void (*temp)(unsigned 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 =
45、1)if(*SerialSendData) != '0')SerialSendData+;SBUF = *SerialSendData;elseMcuSendEnd = 1;TI = 0;#ifndef _SERIAL_H_#define _SERIAL_H_#include <reg52.h>extern bit McuSendEnd; /單片機(jī)數(shù)據(jù)發(fā)送完畢位extern unsigned char *SerialSendData; /發(fā)送數(shù)據(jù)指針extern unsigned char SerialReceData; /接收數(shù)據(jù)/*初始化串口*參 數(shù):無*返回值:無*使用串口通信時調(diào)用*/void InitSerial();/*開始發(fā)送數(shù)據(jù)*參 數(shù):dat待發(fā)送字符串指針*返回值:無*發(fā)送字符串時調(diào)用*/void StartSendChar(unsigned char *dat);/*設(shè)置接收數(shù)據(jù)回調(diào)函數(shù)*參 數(shù):一個無返回值 參數(shù)為unsigned char的函數(shù)指針*返回值:無*需要處理接收串口數(shù)據(jù)時調(diào)用*(未完善,慎用)*/void SetReceFunction(void (*
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 核心素養(yǎng)視角下的學(xué)習(xí)環(huán)境優(yōu)化研究論文
- 茶葉包裝間管理制度
- 隨車吊車輛管理制度
- 設(shè)備安裝工藝標(biāo)準(zhǔn)樣本
- 裂解爐管道焊接及熱處理施工技術(shù)措施
- 財(cái)務(wù)會計(jì)輔導(dǎo)材料及試題練習(xí)
- 表住宅工程室內(nèi)空間尺寸質(zhì)量分戶驗(yàn)收記錄表
- 黑龍江省齊齊哈爾市克東縣第三中學(xué)2024-2025學(xué)年七年級下學(xué)期5月期中英語試題(含筆試答案無聽力答案、原文及音頻)
- 幼兒教育神秘星空教學(xué)設(shè)計(jì)教案
- 2025年Android性能優(yōu)化面試題集錦威力加強(qiáng)版-android程序優(yōu)化 面試
- 年產(chǎn)1000噸聚丙烯酸鈉車間工藝設(shè)計(jì)
- 老年患者他汀的應(yīng)用課件
- 精品解析浙江省溫州市蒼南縣2021年小學(xué)科學(xué)六年級畢業(yè)考試試卷
- GB∕T 24508-2020 木塑地板-行業(yè)標(biāo)準(zhǔn)
- GB∕T 40278-2021 紙和紙板 加速老化(光照條件下)
- 可控震源日常維護(hù)及安全操作規(guī)程
- 校園環(huán)境衛(wèi)生管理制度
- 建設(shè)工程項(xiàng)目監(jiān)理人員變更申請表
- 房產(chǎn)證英文翻譯件模板
- 板形與板形控制基礎(chǔ)知識
- 熱血傳奇架設(shè)及參數(shù)設(shè)置修改
評論
0/150
提交評論