




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
職業技能訓練報告訓練課題:基于安卓手機藍牙控制的智能小車設計專業:自動化班級:1321501姓名:汪方操學號:201320150161指導教師:涂老師、周老師2016年10月1日第一章概述第一節國內外研究現狀一、國外研究現狀1984年,世界上第一幢智能建筑在美國康涅迪格州落成,這棟意義非凡的建筑只是對一座舊式大樓的一定程度的改造而完成的。它只是采用計算機系統對大樓的空調、電梯、照明等設備進行監控,并提供語音通信、電子郵件、情報資料等方面的信息服務。2000年,新加坡有近30個社區的約5000戶家庭采用了這種家庭智能化系統,而美國的安裝住戶高達4萬戶。2003年,網絡化家居的建設帶來了高達4500億美元的市場價值,這其中有3700億美元是智能家電硬件產品的價值,剩余的部分則是軟件和技術支持服務的費用。現在,國外的智能家居系統技術己日趨成熟,預計今年,50%以上的新房將具有一定的“智能型家居”功能。于此同時,由于技術的日益標準化,這些新型智能家居系統將比比爾.蓋茨耗資6000萬美元的高端別墅便宜得多。在智能家居系統研發方面,美國及一些歐洲國家一直處于領先地位。近年來,以美國微軟公司及摩托羅拉公司等為首的一批國外知名企業,先后擠身于智能家居的研發中。例如:微軟公司開發的“夢幻之家”、摩托羅拉公司開發的“居所之門”、IBM公司開發的“家庭主任”等均已日趨成穩得技術強占家居市場。此外,日韓新等國的龍頭企業紛紛致力于家居智能化的開發,對家居市場更是躍躍欲試。目前市場上出現得智能家居控制系統主要有:(1)X-10系統(美國),該系統是利用電力線作為網絡平臺,采用集中控制方式實現。這套系統的功能較為強大,與其它家居控制系統如ABB、C_BUS等比起來更容易接收,使用也相對簡單。因為實現同樣的功能,X-10家居控制系統是利用220v電力線將發射器發出的X-10信號傳送給接收器從而實現智能化的控制,因此采用這套系統不需要額外的布線,這也是這套系統的最大的一個優勢,因為其它系統基本上都需要布低壓線,在墻上或地面開槽、鉆孔,施工難度大、費用高、工期長。但由于缺乏在國內市場推廣的條件且價格昂貴,該系統在國內應用極少。(2)EIB系統(德國),該系統采用預埋總線及中央控制方式實現控制功能。但由于其工程要求復雜嚴苛,并且價格較高,因此一直無法打開國內市場[3]。(3)8X系統(新加坡),該系統采用預處理總線跟集中控制方式來實現功能。它的優點在于利用的產品對系統進行擴展,系統較為成熟,比較適合中國國情。但是由于系統架構、靈活性及產品價格等方面還難以達到要求,所以目前在國內還較少應用。二、國內研究現狀20世紀90年代后期,我國的智能小區日益興起。眾所周知,我國的智能化住宅建設最早起于上海、廣州和深圳等沿海城市,并逐漸向內陸發展。在97香港回歸之際,在建設部“97跨世紀住宅小區案競賽活動”中,上海中皇廣場被建設部科技委員會列為全國首家“智能住宅示范工程”,揭開了全國智能小區發展的序幕。1999年,建設部勘察設計司、建設部住宅產業化辦公室聯合組織實施全國住宅小區智能化技術示范工程,標志著我國住宅小區智能化進入了一個新階段。隨著信息化走進了千家萬戶,由國家經貿委牽頭成立了家庭信息網絡技術委員會,而信息網絡技術體系研究及產品開發已經被列為了國家技術創新的重點專項計劃。據建設部要求,截止今年,我國將有70%以上的家庭擁有Internet入網設備,大中城市中50%的住宅要實現智能化。我國的智能家居相對于國外起步較晚,尚未形成一定的國家標準。目前,主要采用國外的一些技術產品,但也有一些企業推出了自己的產品,主要有:(1)e家庭(海爾),該系列產品以海爾電腦作為控制中心,各種網絡家電作為終端設備,海爾移動電話作為移動數字控制中心。海爾在技術上同微軟合作,利用微軟的WindowsMe技術和海爾的網絡家電,使“e家庭”已具雛形,已推出了網絡洗衣機、網絡冰箱、網絡空調、網絡微波爐等一系列網絡家電。(2)e-home數字家園(清華同方),該智能家居控制系統是專門針對中國家庭設計的,遵循國際技術標準,采用嵌入式軟、硬件技術,提供網絡、網絡節點及末端設備。產品以功能模塊開發為主,基于國外成熟的智能家居標準之上。其智能家居控制系統主要有以下三個部分:A系列:遵循EIB協議的家庭控制產品,適用于中高檔住宅區。B系列:遵循X-10協議的家庭控制產品,適用于中檔住宅區。易家三代:配電箱集中安裝式家庭控制產品。國內各大軟、硬件機構正在積極的研制、開發更為符合市場的智能化家居設備,以解決當前智能化產品實用性差、使用復雜及產品價格昂貴等缺點,而技術創新性也逐步向國際先進水平靠攏,這樣的未來值得期待[4]。第二節發展趨勢智能家居的發展分為三個階段:首先是家庭電子化(HomeElectronics)階段,這個時期主要是面向單個的電器,家庭電器之間并沒有形成網絡,亦沒有大的聯系。其次是住宅自動化(HomeAutomation)階段,這個時期是面向功能的階段,一部分的家庭電器之間形成了簡單的網絡,主要是為了實現某個特定單一的功能,例如單一的自動抄表功能。最后是家居智能化(歐洲稱為SmartHome,美國稱為WiseHouse)階段,這個時期是面向系統設計的階段,系統通過家庭分布總線把住宅內各種與信息相關的通信設備、家用電器、報警裝置并到網絡節點中進行集中的監控、管理,保持家電與環境的協調,提供生活、工作、學習以及娛樂的各種優質服務,營造一種溫馨舒適的家庭氛圍。智能家居控制系統提供高效、舒適的家居環境,確保住戶的生命財產安全;集中或遠程調節家居環境的溫度、濕度以及風的速度等,同時檢查空氣成分,提高空氣質量;調節音響,電視等娛樂設施,愉悅心情;合理利用太陽能活周遭環境的變化,盡可能的節約能耗,達到合理利用資源;提供現代化的通信、信息服務。第三節本章小結Internet和移動通信的迅速發展,使人們對各種數據和移動服務的需求快速增長。藍牙技術作為一個全球開放性無線標準,通過把各種語言和數據設備用無線鏈路連接起來,使人們能夠隨時隨地實現個人區域內語言和數據的交換與傳輸,隨著技術的發展和完善,藍牙必將對人們的生活和工作產生重大的影響。第二章設計方案第一節設計方案分析一、設計要求本次設計要求實現一個手機可以遠程通過藍牙控制小車的前進、后退、左轉、右轉和停止。要求學生對單片機和安卓手機開發有一定程度的理解,熟悉單片機定時器/計數器以及中斷的使用,會基本的C語言和java,熟練掌握keil51軟件的使用與程序下載以及安卓手機軟件開發環境。二、設計構思通過查找資料進行方案論證和選擇,可以確定出該系統的整體構成。本設計是以AT89C52單片機為核心,以設置手機界面來設置前進、后退、左轉、右轉、停止等功能。單片機控制電機驅動來控制電機的正反轉以實現小車的前進、后退、左轉、右轉、停止。HC-06為藍牙接收模塊,通過與手機端的藍牙進行連接配對,從而接收從手機端發送過來的動作指令。接收到的指令再傳遞給單片機,單片機通過分析傳遞過來的指令不同,而跳轉到不同的子程序來控制電機驅動,從而實現小車的前進、后退、左轉、右轉、停止等不同的動作。電源提供給單片機5V直流電,L293D作為專用驅動芯片驅動電機。三、系統框圖通過查找資料進行方案論證和選擇,可以確定出該系統的整體構成,本系統的系統框圖如圖2.1所示。藍牙模塊AT89C52藍牙模塊AT89C52單片機電源電機驅動直流電機時鐘電機驅動直流電機時鐘晶振晶振復位復位圖2.1系統框圖四、單片機的選擇單片機芯片選型時,總的原則是:(1)芯片含有功能或數量略大于設計需求,設計需求盡可能用芯片完成,少用外圍器件。(2)技術性:要從單片機的技術指標角度,對單片機芯片進行選擇,以保證單片機應用系統在一定的技術指標下可靠運行;(3)實用性:要從單片機的供貨渠道、信譽程序等角度,對單片機的生產廠家進行選擇以保證單片機應用系統在能長期、可靠運行;(4)可開發性:選用的單片機要有可靠的可以開發手段,如程序開發工具、仿真調試手段等。單片機僅用于控制電機驅動,用51結構的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引腳)或STC的所有單片機都可以實現。根據在學校比較流行的學習單片機是AT89CXX系列,而且AT89C52單片機便宜,購買方便,故單片機選用AT89C52單片機[6]。五、電機驅動的選擇底盤和最小系統確定好了后,小車還是跑不起來——缺少電機驅動。單片機的I/O是驅動不了電機的,因此我選用的是L293D電機專用驅動芯片。L293D通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉,停止的操作,輸入引腳與輸出引腳的邏輯關系圖如表2.1所示。表2.1L293D模塊邏輯關系圖EnALn1(Ln3)Ln2(Ln4)運轉狀態0XX停止110正傳101反轉1同Ln2(Ln4)同Ln1(Ln3)剎車L293D電機驅動模塊性能特點:1、可實現電機正反轉及調速。2、啟動性能好,啟動轉矩大。3、工作電壓可達到36V,4A。4、可同時驅動兩臺直流電機。5、適合應用于機器人設計及智能小車的設計[7]。六、藍牙模塊的選擇本模塊分主機和從機,主機能和從機配對通信,從機與從機之間或主機與主機之間不能通信,從機能和電腦、手機等的藍牙配對通信,購買時默認為從機。我們在做智能小車控制時,藍牙模塊主要是實現接收從手機端發送過來的指令,所以我們需要的是從機模塊。藍牙串口在模塊功能上,偶數命名的互相兼容,從機命名的也互相兼容,也就是說,HC-04與HC-06,HC-03與HC-05在功能上是兼容的。HC-04與HC-06是比較早的版本,用戶不可以自己切換主機或者從機,AT指令集很少,包括修改藍牙名(限于從機),修改密碼,修改波特率,詢問版本號等幾個基本功能。在本次設計中我們只需實現簡單的通信,因此選用HC-06模塊。HC-06模塊只記憶最后一次配對過的從機,并只與該從機配對,直到KEY(26腳)高電平觸發時放棄記憶,26腳默認應該為低電平。七、電源的選擇電源給單片機及電機驅動等使用5V直流電的器件提供電源,供系統正常工作。方案一:使用開關電源將220V交流電轉為5V直流電給系統供電。開關電源的體積小,重量輕。但由于需要耐壓不小于220V的電容等特殊的元器件,日常生活中較難找全器件,開關電源的散熱比較差,不適宜長時間工作。故此方案不適宜。方案二:用變壓器降壓經整流橋整流和7805穩壓后給系統供電。變壓器相對比較重,但他的電路穩定,適宜長時間供電。能做到交流電供電正常時就能給系統正常供電。但在交流電失電時系統會停止工作,這時的時鐘也會停止走時。在重新供電時系統會重啟,從而造成原先設置的數據丟失。故此方案存在漏洞,不適宜使用。方案三:使用交流電和干電池混合給系統供電。在交流電不失效的情況下由交流電轉5V直流電供電,在交流電失效情況下由干電池供電。這樣就能解決運行成本過高或者在交流電失效時丟失原先設置數據的問題。方案四:使用干電池給系統供電。干電池供電能讓系統穩定的工作,時鐘的走時不受交流電的影響。干電池的價格相對交流電而言較貴,用干電池單獨供電會造成使用成本提高的問題。但綜合情況考慮到小車要前進、后退、左轉、右轉等問題,因此不可能采用交流電源來供電,最終決定電源采用干電池供電比較合理,因此采用方案四提供電源。第二節本章小結通過查找相關資料,首先確定要完成該設計需要到的硬件有單片機最小系統、藍牙模塊(只需實現接收數據,不用發送數據的從機模塊HC-06)、電機驅動模塊。通過分析該設計需要實現的功能,而選擇適合的芯片型號及供電的方式。綜合分析后繪制了該系統的硬件接線圖。第三章系統硬件電路設計整個系統的硬件設計可以分為四個模塊:電源電路、單片機最小系統、電機驅動模塊、藍牙模塊、。電源電路為整個系統供電,包括單片機AT89C52、電機驅動、藍牙模塊、及其他外圍電路。電源電路分兩個部分:(1)接外部電源給電機供電;(2)由4節干電池作為電源,給系統供電,以確保單片機、電機驅動、藍牙模塊的正常運行。在電源電路給系統供電時,綠色指示燈點亮,只是當前供電正常。單片機最小系統部分是整個系統的智能控制部分,也是整個系統的核心部分。電機驅動模塊L293D驅動直流電機。第一節單片機最小系統單片機的最小系統就是讓單片機能正常工作并發揮其功能時所必須的組成部分,也可理解為是用最少的元件組成的單片機可以工作的系統。對51系列單片機來說,最小系統一般應該包括:單片機、時鐘電路、復位電路、輸入/輸出設備等。圖3.1單片機最小系統框圖圖3.2單片機最小系統原理圖一、單片機AT89C52AT89S52單片機片內集成256字節程序運行空間、8K字節Flash存儲空間,支持最大64K外部存儲擴展。根據不同的運行速度和功耗的要求,時鐘頻率可以設置在0~33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低能耗模式、看門狗和斷電保護。可以在4V到5.5V寬電壓范圍內正常工作。不斷發展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數字芯片就可以制成下載線。根據不同場合的要求,這款單片機提供了多種封裝,本次設計根據最小系統有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝。下面對定時開關系統中使用到的管腳進行簡單說明.P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0不具有內部上拉電阻。P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。RST——復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。二.時鐘電路在設計時鐘電路之前,讓我們先了解下51單片機上的時鐘管腳:XTAL1(19腳):芯片內部振蕩電路輸入端。XTAL2(18腳):芯片內部振蕩電路輸出端。XTAL1和XTAL2是獨立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內振蕩器,或者是器件直接由外部時鐘驅動。在XTAL1、XTAL2的引腳上外接定時元件(一個石英晶體和兩個電容),內部振蕩器便能產生自激振蕩。一般來說晶振可以在1.2~12MHz之間任選,甚至可以達到24MHz或者更高,但是頻率越高功耗也就越大。在本實驗套件中采用的11.0592M的石英晶振。和晶振并聯的兩個電容的大小對振蕩頻率有微小影響,可以起到頻率微調作用。當采用石英晶振時,電容可以在20~40pF之間選擇(本實驗套件使用30pF);當采用陶瓷諧振器件時,電容要適當地增大一些,在30~50pF之間。通常選取33pF的陶瓷電容就可以了。三.復位電路在單片機系統中,復位電路是非常關鍵的,當程序跑飛(運行不正常)或死機(停止運行)時,就需要進行復位。MCS-5l系列單片機的復位引腳RST(第9管腳)出現2個機器周期以上的高電平時,單片機就執行復位操作。如果RST持續為高電平,單片機就處于循環復位狀態。復位操作通常有兩種基本形式:上電自動復位和開關復位。上電瞬間,電容兩端電壓不能突變,此時電容的負極和RESET相連,電壓全部加在了電阻上,RESET的輸入為高,芯片被復位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。并聯在電容的兩端為復位按鍵,當復位按鍵沒有被按下的時候電路實現上電復位,在芯片正常工作后,通過按下按鍵使RST管腳出現高電平達到手動復位的效果。一般來說,只要RST管腳上保持10ms以上的高電平,就能使單片機有效的復位。圖中所示的復位電阻和電容為經典值,實際制作是可以用同一數量級的電阻和電容代替,讀者也可自行計算RC充電時間或在工作環境實際測量,以確保單片機的復位電路可靠。四.EA/VPP(31腳)的功能和接法51單片機的EA/VPP(31腳)是內部和外部程序存儲器的選擇管腳。當EA保持高電平時,單片機訪問內部程序存儲器;當EA保持低電平時,則不管是否有內部程序存儲器,只訪問外部存儲器。對于現今的絕大部分單片機來說,其內部的程序存儲器(一般為flash)容量都很大,因此基本上不需要外接程序存儲器,而是直接使用內部的存儲器。在本實驗套件中,EA管腳接到了VCC上,只使用內部的程序存儲器。這一點一定要注意,很多初學者常常將EA管腳懸空,從而導致程序執行不正常。第二節電機驅動模塊一、L293D型驅動器的原理及應用L293D四倍高電流H橋驅動程序。L293D提供雙向驅動電流高達600毫安,電壓是從4.5V至36V的。兩個設備是專為驅動等感性負載繼電器,電磁閥,直流雙極步進和馬達,也可以給其他高電流/高電壓提供電源負載。兼容所有的TTL輸入。每個輸出都是推拉式驅動電路,與達林頓三極管和偽達林源。啟用1,2EN驅動器和3,4EN驅動器。當使能輸入為高電平時,相關聯的驅動器被啟用和他們的輸出處于活動狀態,并在其輸入端的同相。當使能輸入為低,這些驅動器被禁用其輸出關閉,在高阻抗狀態。【PS:1,2EN為1和2的使能端(高電平使能);3,4EN同理】用適當的數據輸入端,每對驅動程序的形式一個完整的H橋可逆驅動器適用于電磁閥或電機應用。L293D,外部輸出為高速鉗位二極管,應使用電感的瞬態抑制。VCC1和VCC2分開,提供邏輯輸入,以盡量減少設備功耗。L293D的工作溫度是從0°C至70°C。其引腳圖如下圖所示:圖3.3L293D引腳圖二、驅動原理圖圖3.4驅動原理圖第三節藍牙模塊一、藍牙模塊HC-06介紹1、采用CSR主流藍牙芯片,藍牙V2.0協議標準2、核心串口模塊工作電壓3.3V。帶底板的可以為3.1-6.5V之間3、波特率為1200,2400,4800,9600,19200,38400,57600,115200用戶可設置4、核心模塊尺寸大小為:28mmx15mmx2.35mm。底板尺寸27mm*47mm5、工作電流:配對中為50MA,配對完畢通信中為28MA6、休眠電流:不休眠7、用于GPS導航系統,水電煤氣抄表系統,工業現場采控系統。8、可以與藍牙筆記本電腦、電腦加藍牙適配器、PDA等設備進行無縫連接9、出廠默認參數:從機,波特率:9600,N,8,1。配對密碼:1234二、AT命令集如下1、測試通訊發送:AT(返回OK,一秒左右發一次)返回:OK2、改藍牙串口通訊波特率發送:AT+BAUD1返回:OK1200發送:AT+BAUD2返回:OK24001120022400348004960051920063840075760081152009230400A460800B921600C1382400不建議用在超過115200的波特率,信號的干擾會使系統不穩定。設置超過115200后用電腦無法使用,要用單片機編程于高于115200才能使用此波特率和重新發AT命令設低波特率用AT命令設好波特率后,下次上電使用不需再設,可以掉電保存波特率。3、改藍牙名稱發送:AT+NAMEname返回:OKname參數name:所要設置的當前名稱,即藍牙被搜索到的名稱。20個字符以內。例:發送AT+NAMEbill_gates返回OKname這時藍牙名稱改為bill_gates,參數可以掉電保存,只需修改一次。PDA端刷新服務可以看到更改后的藍牙名稱。4、改藍牙配對密碼發送:AT+PINxxxx返回:OKsetpin參數xxxx:所要設置的配對密碼,4個字節,此命令可用于從機或主機。從機則是適配器或手機彈出要求輸入配對密碼窗口時,則手工輸入此參數就可以連接從機。主機則是在用主藍牙模塊連數碼相機時,數碼相機是從機,找到相機的配對密碼,再設入主藍牙模塊,則主藍牙模塊就可以自動連接相機。例:發送AT+PIN8888返回OKsetpin這時藍牙配對密碼改為8888,模塊在出廠時的默認配對密碼是1234。參數可以掉電保存,只需修改一次。三、實物圖片圖3.5藍牙模塊實物圖四、原理圖圖3.6藍牙模塊原理圖第四節本章小結本章的任務主要介紹了各個模塊的核心芯片,并完成了電路設計工作,本設計由51單片機最小系統、HC-06藍牙模塊、L293D電機驅動模塊、電源電路、小車底板等組成。然后確定設計硬件模塊之間的電路連接圖,為實物硬件制作做足準備。第四章系統軟件程序設計這次設計可以用C語言編程序,也可以用匯編語言編程序,由于本次設計中程序系統用C語言編寫程序。此次設計所選用的單片機是AT89C52單片機,其C語言語法和結構和標準C語言基本相同,只是有了相應的擴充,用到的編譯軟件是KeilC。下面結合我的程序編譯簡要介紹以下KeilC的編譯環境的特點。KeilC51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。KeilC51在使用前一定要先進行注冊,否則程序過大會造成編譯時出現地址使用錯誤。程序在編譯時就遇到過這種問題。在單個程序運行時沒有錯誤,但是一整合編譯后出現地址沖突現象。這個問題困擾了很長一段時間,通過查資料發現若是KeilC51軟件沒有注冊的話使用時當程序過大就會出現地址沖突現象。在注冊完成后,程序編譯能順利通過[15]。第一節主程序的設計在本次設計中,主程序主要是在單片機的控制下,對藍牙模塊輸入的信息進行存儲分析,來控制電機驅動,以達到控制小車的前進、后退、左轉、右轉、停止。在這個過程中,單片機首先進行初始化,包括設置單片機各個端口的方向,各個變量的初始化,以及單片機振蕩頻率的校準等。單片機定時對藍牙模塊串口讀數據,如果串口的數據讀出,則對讀出的數據進行分析,讀出的數據如果為A、B、C、D則分別對應小車的前進、后退、左轉、右轉。小車硬件系統軟件設計的流程圖如圖5.1所示。開始開始初始化初始化N串口N串口是否連接30秒30秒內連接YY數據是否發送數據是否發送N30秒內N30秒內發送YY判斷判斷數值控制控制電機驅動小車小車前進、后退、左轉、右轉、停止圖4.1小車動作流程圖第二節驅動子程設計本次設計共有5個驅動子程,分別控制小車后退、前進、左轉、右轉、停止。程序如下:#defineLeft_moto_go{P0_0=1,P0_1=0;}//左邊電機向前走 #defineLeft_moto_back{P0_0=0,P0_1=1;}//左邊電機向后轉 #defineLeft_moto_Stop{P0_0=0,P0_1=0;}//左邊電機停轉 #defineRight_moto_go{P0_2=1,P0_3=0;} //右邊電機向前走 #defineRight_moto_back{P0_2=0,P0_3=1;} //右邊電機向后走 #defineRight_moto_Stop{P0_2=0,P0_3=0;} //右邊電機停轉//前速前進voidrun(void){ Left_moto_go;//左電機往前走 Right_moto_go;//右電機往前走}//前速后退voidbackrun(void){ Left_moto_back;//左電機往后走 Right_moto_back;//右電機往后走}//左轉voidleftrun(void){ Left_moto_back;//左電機往后走 Right_moto_go;//右電機往前走}//右轉voidrightrun(void){ Left_moto_go;//左電機往前走 Right_moto_back;//右電機往后走}//STOPvoidstoprun(void){ Left_moto_Stop;//左電機停止 Right_moto_Stop;//右電機停止第三節本章小結本章主要介紹本系統的軟件設計,其中單片機端的C語言程序設計包括主程序設計,以及驅動子程序設計。在程序設計時,涉及到通訊,開始會比較迷茫,通過查找資料,最終克服了困難。第五章系統安裝調試第一節調試方案根據電路原理圖、實物圖把電路板實物做出來后,下一步就是電路板調試。電路板調試是最關鍵的一步前面所做的電路設計的成功與否就是在調試步驟里體現的本系統的調試主要分為硬件調試、軟件調試和系統整體調試等三大部分。經過初步對定時器的分析設計后,在制作硬件電路的同時,調試也在穿插進行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而影響整體電路的檢查,從而可以節約大量的調試時間。例如當單片機控制模塊硬件部分制作好后,就可以先調試電機轉動程序,通過電機驅動控制電機轉動了,則結果正確了,說明電機驅動電路與單片機的連接電路是正確的,單片機能正常工作。軟件編程中,首先完成單元功能模塊的調試,然后進行系統的調試,調試的整體思想和步驟和硬件大同小異。系統的整體調試是最重要的一部分,雖然軟硬件調試都通過了,但是通過藍牙傳輸數據過程中可能會出現新的問題。第二節硬件電路調試硬件單元電路制作好后,在上電之前,應該先用萬用表對各個獨立元件進行檢查,在排除了虛焊、短路、斷路等問題后再通電進行電路功能的調試。具體調試過程如下所述:一、獨立元件的檢測任何組裝好的電子電路,在通電調試之前,必須認真檢查電路連線是否有誤。檢查的方法是對照電路圖,按一定的順序逐級對應檢查,例如:對電路板的電阻阻值進行確定,可以通過讀取電阻上的色環進行確認。特別是注意電源是否接錯,電源與地是否有短接,集成電路和晶體管的引腳是否接錯,輕輕撥一撥元器件,觀察焊點是否牢固等。用萬用表檢測是不是有短路和斷路現象。給系統上電后,看下電源(綠色)燈亮不亮。假如不亮,就要檢查電源指示燈發光二極管的好壞。還要用萬用表測一下單片機等芯片的電壓是不是符合要求。假如不是,就要進行各個芯片的檢查,看一下各個芯片的引腳有沒有焊好,芯片是否損壞。實物圖片如下:圖5.1主控制板模塊圖圖5.2藍牙模塊正反面圖圖5.3藍牙模塊調試圖二、單片機最小系統的調試單片機AT89C52最小系統的檢測分為硬件調試及軟件調試。量電源電壓有沒有到位,量復位RSL腳電平對不對,如果是高電平復位那么平時應該是低電平,量外部晶振有沒有起振,最小系統電路參考芯片PDF文檔,確認正確。硬件調試時用萬用表測量單片機的工作電壓及各個管腳的電壓是否達到正常工作電壓。在此檢測中還要燒入程序對各個I/O口的輸出進行測試,查看I/O口所輸出的電壓是否與程序所控制值一致。例如:編寫一個調試程序,使的所有I/O口從P1.0口開始依次賦予低電平,用萬用表測量其輸出電壓,確定是否與程序所付值一致,一致則證明正確;然后又對其依次賦予高電平,確定是否與程序所付值一致,一致則證明正確。兩次測試都正確,證明單片機最小系統是正常工作的。圖5.4單片機調試圖三、電源電路的調試電源電路作為整個系統的供電電路,其輸出電壓必須在單片機的正常工作電壓范圍(4V到5.5V之間)內。在電源通電之前,一定要檢查電路是否接錯,特別是極性電容是否有接反,防止出現極性電容接反而造成爆電容的現象。在確保器件接法無誤的情況下,接通電源,并用萬用表測量輸出電壓,得到其電壓為5.3V,符合系統的正常工作電壓要求。然后再在電機驅動輸出端接上干電池,實現兩個電源供電。四、驅動模塊的調試驅動模塊為驅動電機的芯片,L298需要從外部接兩個電壓,一個是給電機的,另一個給L298芯片的。首先檢查驅動芯片與單片機的各個連線是否都正確以后,給芯片通上電源,單片機指示燈點亮以后。運行單片機上的程序,通過單片機P0口的數據變化來控制L293D的IN1、IN2、IN3、IN4的電平的高低。L293D輸入端的高低電平的變化,通過輸入端的LED燈的亮滅來顯示。當運行前進程序的時候,IN1、IN2、IN3、IN4的值為1、0、1、0,分別點亮LED1和LED3,左右電機都正轉,實現小車前進;運行左轉程序的時候,IN1、IN2、IN3、IN4分別為1、0、0、1,分別點亮LED1、LED4,左電機正轉,右電機反轉,實現小車左轉;運行右轉程序的時候,IN1、IN2、IN3、IN4的值為0、1、1、0,點亮LED2,LED3,左電機反轉,右電機正轉,實現小車右轉;運行后退程序的時候,IN1、IN2、IN3、IN4的值分別為0、1、0、1,分別點亮LED2、LED4,左右電機都反轉,實現小車后退。通過調試電機驅動模塊能實現基本的功能。第三節軟件調試一、C語言的調試軟件的調試包括程序本身語法的調試和在電路板上功能的調試兩種。在編程過程中,為了得到滿足要求的用戶程序,一般都需要有一個對程序的調試過程,甚至需要經過多次反復的調試才能完成。在調試程序前為了調試方便,避免程序出錯時將單片機拆來拆去的麻煩,在電路板上做了一個下載口,可以將下載線直接插到電路板上進行調試,這樣就可以一邊進行調試,一邊修改程序。程序用KeilC軟件寫好后,先用該軟件的編譯功能編譯一下所寫的程序,檢查程序是有語法錯誤或其他的錯誤。如果有錯誤則根據提示進行分析將錯誤改過來直至編譯成功為止。當完成了語法調試后,再根據定時開關插座設計的功能要求修改程序完成系統的各個功能。在編寫程序的時候一定要根據系統實現的功能和連接方式,認真分析,畫出系統主程序、時鐘程序、設置程序的流程圖,并根據畫出的流程圖一步一步的去寫出程序。根據系統的特點,軟件系統應該按模塊進行調試,當各個模塊調試通過后再將各個模塊整合起來,進行綜合調試,直到得到預期結果。與純粹的C語言編程不同的是,單片機編程要考慮到硬件的設計,所有程序的編寫都是根據硬件資源進行。二系統整體的調試藍牙控制小車的硬件模塊和軟件模塊分別調試通過后,接下來就可以進行系統的整體測試。首先檢查各個模塊之間,以及電機驅動與電機的連接都沒有出錯的情況下,打開給各個模塊提供的5V電源以及打開給電機提供的另一個6V電源。此時最小系統模塊指示燈點亮,表示單片機供電正常,藍牙模塊指示燈開始閃爍,表示藍牙模塊也供電正常。此時打開安卓手機的藍牙,搜索該藍牙芯片,進行配對。然后打開我們做好的手機界面,當界面打開之后,開始自動搜索藍牙芯片的地址進行連接,當藍牙芯片的指示燈有閃爍轉變為常亮以后,表示藍牙配對連接成功。在剛開始的時候調試的時候遇到了一些問題,在電機驅動方面,當在手機端的界面上點擊前進、后退、左轉、右轉按鈕的時候,藍牙模塊能接受手機端發送的字符A、B、C、D的ASCII碼值,并且能夠通過串口相應的傳遞給單片機,單片機通過分析串口傳過來的數據,改變P0口的值分別為65、66、67、68,來控制電機驅動的輸入端IN1、IN2、IN3、IN4。相應的電機驅動端的四個指示LED燈都能根據數據的變化采取不同的量滅組合情況,來相應控制小車的前進、后退、左轉、右轉、停止。調試中的實物圖片與app圖片。圖5.5小車正面圖圖5.6小車反面圖圖5.7小車主板圖圖5.8手機app圖第四節本章小結在調試的過程中也遇到一些問題,就是最開始電機驅動輸出端控制的電機卻不會轉動。通過分析,可能有兩個原因導致電機不會轉動,其一,電機驅動的輸出端的接線出現了錯誤,導致電機轉動出現問題;其二,電機驅動端接的給電機供電的電壓達不到驅動電機的最低電壓,最后通過查詢資料和用萬用表測驅動模塊的輸出端的各個引腳的高低電平,發現輸出端的電平也能隨輸入端的改變而變化,當最后測試VCC和GND兩端,發現無明顯的壓降,再用萬用表的測電阻值測兩端的阻值,發現問題是電機驅動模塊輸出端的供電端VCC與GND端短路,導致外接電源不能給電機供電。最后我通過直接從芯片的引腳接線到電源端,則電機能夠正常轉動。總結本次技能訓練是一個基于單片機AT89C52的智能小車控制,包括方案選擇、軟硬件設計、單片機最小系統、電機驅動電路和藍牙電路、硬件測試結果及解決在電路調試時遇到的問題。在此期間主要完成的工作包括以下幾個方面:(1)設計初期收集電機驅動、單片機等相關資料,對智能小車的實現原理有比較清晰的了解。(2)確定系統框圖,對電源模塊、單片機最小系統模塊、藍牙電路模塊和電機及其驅動電路模塊等的實施方案進行比較,確定最終的智能小車控制的設計方案。(3)根據智能小車控制的原理圖制作出電路連接圖。(4)根據系統要實現前進、后退、左轉、右轉、停止等功能編寫出小車端的軟件程序。(5)軟硬件調試通過后進行整體調試,并查找該系統存在的缺陷,進行完善。(6)最終小車能夠實現前進、后退、左轉、右轉等功能,達到老師給出的基本要求。本次設計完成了基于安卓手機的智能小車控制系統。該系統采用51單片機AT89C52編程控制電機的正反轉來實現小車前進、后退、左轉、右轉、停止,而電機的正反轉則由電機驅動L293D輸出端的邏輯電平來控制。從整個設計的過程來看前期的充分的準備顯得非常的重要,經過前期充分的準備,和對嵌入式系統開發的學習,避免了很多在后續的設計中可能出現的問題。MCU端的軟硬件設計因為與所學知識相關性較大,所以出現的問題較少,MCU底板設計時鑒于電路簡單,且易于焊接,故未采用PCB制版也相應的節約了成本。特別值得一提的是為了提高系統在硬件上的安全性和穩定性,我特別添加了硬件保護裝置,以提高系統的硬件防碰撞的能力。總體來看,我進行了比較充分的準備,在實踐過程中通過查閱相關資料和咨詢有關人員,克服了系統設計過程中的絕大多數困難,基本都以達到設計要求,并通過了軟件測試。附件一:程序清單#include<AT89x51.H> //HL-1小車驅動接線定義#defineLeft_moto_go{P0_0=1,P0_1=0;}//左邊電機向前走 #defineLeft_moto_back{P0_0=0,P0_1=1;}//左邊電機向后轉 #defineLeft_moto_Stop{P0_0=0,P0_1=0;}//左邊電機停轉 #defineRight_moto_go{P0_2=1,P0_3=0;} //右邊電機向前走 #defineRight_moto_back{P0_2=0,P0_3=1;} //右邊電機向后走 #defineRight_moto_Stop{P0_2=0,P0_3=0;} //右邊電機停轉 #defineleft'C'#defineright'D' #defineup'A'#definedown'B' #definestop'F' #defineuintunsignedint//重定義無符號整數類型#defineucharunsignedchar//重定義無符號字符類型 charcodestr[]="收到指令,向前!\n"; charcodestr1[]="收到指令,向后!\n"; charcodestr2[]="收到指令,向左!\n"; charcodestr3[]="收到指令,向右!\n"; charcodestr4[]="收到指令,停止!\n"; bitflag_REC=0; bitflag=0; unsignedchari=0; unsignedchardat=0;unsignedcharbuff[5]=0;//接收緩沖字節 ucharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定義數碼管顯示數據0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9 #defineShowPortP2//定義數碼管顯示端口/************************************************************************/ //延時函數 voiddelay(unsignedintk){unsignedintx,y; for(x=0;x<k;x++) for(y=0;y<2000;y++);}/************************************************************************///字符串發送函數 voidsend_str()//傳送字串{ unsignedchari=0; while(str[i]!='\0') { SBUF=str[i]; while(!TI); //等特數據傳送 TI=0; //清除數據傳送標志 i++; //下一個字符 } } voidsend_str1()//傳送字串{ unsignedchari=0; while(str1[i]!='\0') { SBUF=str1[i]; while(!TI); //等特數據傳送 TI=0; //清除數據傳送標志 i++; //下一個字符 } } voidsend_str2()//傳送字串{ unsignedchari=0; while(str2[i]!='\0') { SBUF=str2[i]; while(!TI); //等特數據傳送 TI=0; //清除數據傳送標志 i++; //下一個字符 } } voidsend_str3()//傳送字串{ unsignedchari=0; while(str3[i]!='\0') { SBUF=str3[i]; while(!TI); //等特數據傳送 TI=0; //清除數據傳送標志 i++; //下一個字符 } } voidsend_str4()//傳送字串{ unsignedchari=0; while(str4[i]!='\0') { SBUF=str4[i]; while(!TI); //等特數據傳送 TI=0; //清除數據傳送
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 木結構建筑的保溫隔熱性能分析考核試卷
- 生物藥品的用藥指導與患者教育考核試卷
- 生物科學教學設備考核試卷
- 石油產品銷售模式轉型考核試卷
- 生態保護與城市生態島嶼建設考核試卷
- 物聯網智慧社區設計與規劃考核試卷
- 照明器具生產中的設備安全管理要點考核試卷
- 極速瘦腿課程介紹
- 《太平天國》列強侵華與晚晴時期的救亡圖存課件-1
- 七年級英語下學期期中模擬卷(南通專用)(原卷版)
- 汽車維修公務車輛定點維修車輛保養投標方案
- 歌曲Wonderful U:美妙的你.中英互譯
- 部編教材教讀課教學課例例說課件
- 冀教2011版四年級英語下冊《Lesson23MyFavouriteSchoolWork》評課稿
- 設備安裝調試驗收單
- 綜合能力測試真題和答案
- 雙眼視與斜視弱視學智慧樹知到答案章節測試2023年溫州醫科大學
- Q-CR 783.1-2021 鐵路通信網絡安全技術要求 第1部分:總體技術要求
- GB/T 27548-2011移動式升降工作平臺安全規則、檢查、維護和操作
- GB/T 24538-2009墜落防護緩沖器
- GB/T 13738.3-2012紅茶第3部分:小種紅茶
評論
0/150
提交評論