版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
編號:審定成績:畢業(yè)設計〔論文〕設計〔論文〕題目:基于安卓藍牙控制的智能小車設計學院名稱:自動化學生姓名:專業(yè):測控技術與儀器班級:學號:指導教師:辯論組負責人:填表時間:2023年05月制摘要隨著物聯網的興起,Android以其獨有的開放性優(yōu)勢正在為我們提供更多優(yōu)質便捷的技術成果。本課題研究的是基于安卓藍牙控制的智能小車設計,基于平臺,借助于藍牙技術,設計和實現了一種無線遙控小車新的解決方案。設計以控制平臺、藍牙通訊模塊、電機驅動模塊等硬件模塊組成的遙控小車。實現小車的前進、后退、前左轉彎、前右轉彎、后左轉彎、后右轉彎等實時控制功能。為遙控玩具小車的設計提出了一種新的思路,同時可以為將來智能家居的遙控設計提供一定的參考意義。闡述一種通過藍牙遙控小車行走的軟、硬件設計。藍牙作為客戶端,小車上的藍牙模塊HC-06作為效勞端??蛻舳瞬捎肊clipse開發(fā)環(huán)境,JAVA編程,效勞端采用單片機控制。雙方通過串口進行通信,單片機驅動直流電機控制小車行動。實驗結果說明,小車可以接收遙控信號并靈活地進行前行、倒退、左轉、右轉和停止等功能。
本文介紹了基于安卓的藍牙智能小車控制要實現的功能,接著闡述該系統(tǒng)電路的設計及原理的說明,包括了方案的設計、重要元器件的介紹、電路設計的說明〔包括單片機控制電路、電機驅動電路〕安卓軟件界面設計、軟件設計流程以及系統(tǒng)的調試。最后總結了基于安卓的藍牙智能小車控制設計完成的任務,分析系統(tǒng)出現的缺乏?!娟P鍵詞】Andriod藍牙智能小車智能AT89C52單片機ABSTRACTWiththeriseoftheInternetofThings,Androidphoneswithitsuniqueadvantageofbeingopenforustoprovidemorequalityandconvenienttechnologicalachievements.TheresearchisbasedontheAndroidmobilephoneBluetoothcontrolledsmartcardesign,basedonmobileplatforms,bymeansofBluetoothtechnology,designandimplementationofawirelessremotecontrolcarnewsolutions.Controlplatformdesignedformobilephones,Bluetoothcommunicationmodule,motordrivemodulesandotherhardwaremodulesremotecontrolcar.Realizethecarforward,backward,turnleftinfront,frontrightturnafterturnleft,turnrightaftertheotherreal-timecontrolfunctions.Fortheremotecontroltoycardesignpresentsanewwayofthinking,andcanforthefuturesmarthomeremotecontroldesignedtoprovidesomereferencevalue.Describesonekindofwalkingthroughthephone'sBluetoothremotecontrolcarsoftwareandhardwaredesign.Bluetoothmobilephoneasaclient,asmallcarBluetoothModuleHC-06asaserver.ClientsusingtheEclipsedevelopmentenvironment,JAVAprogramming,clientservicesusingmicro-controller.Thetwosidescommunicatethroughtheserialport,themicrocontrollerdriveDCmotorcontrolcaraction.Experimentalresultsshowthatthecarcanreceivemobilephoneremotecontrolsignalsandtheflexibilitytomoveforward,backward,turnleft,turnrightandstopfunctions.IntroducesthebasedonAndrews'stheBluetoothintelligenttrolleycontrolwanttoachievethefunctionistrolleybeabletoforward,backward,turnleft,turnright,thenexpoundedthatthesystemcircuitdesignandprincipleofdescription,includingtheprogramdesign,itisimportantcomponentsintroduction,circuitdesignDescriptionof(,includingSCMcontrolcircuit,themotordrivecircuit)Andrewsmobilephonesoftwareinterfacedesign,softwaredesignflowaswellassystemdebugging.FinallysummedupthebasedonAndrews'stheBluetoothintelligenttrolleycontroldesigniscompletedthetaskof,analysissystemappeardeficiencies.【Keywords】AndriodBluetoothIntelligentcarSmartphoneAT89C52SCM目錄前言………………1第一章緒論………………………2第一節(jié)國內外研究現狀………………………2第二節(jié)開展趨勢分析…………4第三節(jié)本章小結…………………4第二章設計方案分析……………5第一節(jié)設計方案分析確定………………………5第二節(jié)本章小結………………8第三章安卓操作系統(tǒng)概述…………………9第一節(jié)安卓操作系統(tǒng)開展歷史及趨勢……………………9第二節(jié)Android開發(fā)環(huán)境搭建………………9一、Android的根本介紹…………………9二、Android系統(tǒng)構架………………………10三、Android開發(fā)包及其工具的安裝和配置………………11第三節(jié)本章小結………………13第四章系統(tǒng)硬件電路設計………………14第一節(jié)單片機最小系統(tǒng)………………………14第二節(jié)電機驅動模塊…………17第三節(jié)藍牙模塊………………21第四節(jié)本章小結………………22第五章系統(tǒng)軟件程序設計……………………23第一節(jié)主程序設計…………23第二節(jié)端程序設計………………………25界面程序設計……………………27監(jiān)聽程序設計……………………28第三節(jié)本章小結………………29第六章系統(tǒng)整體的調試…………31第一節(jié)調試的方案……………31第二節(jié)硬件電路調試…………31一、獨立元件的檢測………………………31二、單片機最小系統(tǒng)的調試………………33三、電源電路的測試………………………34四、驅動電路的調試………………………34第三節(jié)軟件調試……………37第四節(jié)系統(tǒng)整體調試………………………38第五節(jié)本章小結………………40結論…………………………41致謝…………………………43參考文獻…………………………44附錄…………………………46一、英文原文…………………46二、英文翻譯………………54三、源程序……………………60前言遙控小車是玩具市場一種很常見的玩具,但是每個小車都有自己特定的遙控器,原裝遙控器壞了很難與其它型號的進行匹配。現在使用十分普遍,如果利用這個平臺,通過軟件編程,可以很方便的在一個硬件平臺實現多種小車的遙控器。藍牙,是一種支持短距離通信的無線電技術。那么可以通過藍牙來控制我們的玩具小車[1、2]。隨著家用電器的越來越普及和人們生活節(jié)奏的加快,人們對電器的依賴性進一步提高,對電器的功能要求也進一步增大?,F有每個普通家庭中的遙控器包括空調遙控器、電視遙控器、DVD遙控器、汽車遙控器、門窗遙控器等,門類繁多且不通用,而另一方面,已成為人人必備的工具,如果可以用我們必備的去遙控所有這些家用電器,可擺脫將來對專用紅外遙控面板的依賴,一機在手,萬物盡在掌握之中。因此,本論文先設計一種對智能遙控車的控制方案,利用本系統(tǒng)的控制模塊可擴展至對所有家電的控制[2]。Andriod是一個完全開放的標準平臺,在2007年11月5日這天,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個全球性的聯盟組織,該組織由34家制造商、軟件開發(fā)商、電信運營商以及芯片制造商共同組成。這一聯盟將支持谷歌發(fā)布的操作系統(tǒng)以及應用軟件,將共同開發(fā)Android系統(tǒng)的開放源代碼。本程序是基于Android2.1系統(tǒng),所用開發(fā)工具為Eclipse集成開發(fā)環(huán)境,Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比方C++、Python和Android的開發(fā)工具,在此開發(fā)環(huán)境下開發(fā)軟件非常的方便。第一章緒論第一節(jié)國內外研究現狀一、國外研究現狀1984年,世界上第一幢智能建筑在美國康涅迪格州落成,這棟意義非凡的建筑只是對一座舊式大樓的一定程度的改造而完成的。它只是采用計算機系統(tǒng)對大樓的空調、電梯、照明等設備進行監(jiān)控,并提供語音通信、電子郵件、情報資料等方面的信息效勞。2000年,新加坡有近30個社區(qū)的約5000戶家庭采用了這種家庭智能化系統(tǒng),而美國的安裝住戶高達4萬戶。2003年,網絡化家居的建設帶來了高達4500億美元的市場價值,這其中有3700億美元是智能家電硬件產品的價值,剩余的局部那么是軟件和技術支持效勞的費用?,F在,國外的智能家居系統(tǒng)技術己日趨成熟,預計今年,50%以上的新房將具有一定的“智能型家居〞功能。于此同時,由于技術的日益標準化,這些新型智能家居系統(tǒng)將比比爾.蓋茨耗資6000萬美元的高端別墅廉價得多。在智能家居系統(tǒng)研發(fā)方面,美國及一些歐洲國家一直處于領先地位。近年來,以美國微軟公司及摩托羅拉公司等為首的一批國外知名企業(yè),先后擠身于智能家居的研發(fā)中。例如:微軟公司開發(fā)的“夢幻之家〞、摩托羅拉公司開發(fā)的“居所之門〞、IBM公司開發(fā)的“家庭主任〞等均已日趨成穩(wěn)得技術強占家居市場。此外,日韓新等國的龍頭企業(yè)紛紛致力于家居智能化的開發(fā),對家居市場更是躍躍欲試。目前市場上出現得智能家居控制系統(tǒng)主要有:〔1〕X-10系統(tǒng)〔美國〕,該系統(tǒng)是利用電力線作為網絡平臺,采用集中控制方式實現。這套系統(tǒng)的功能較為強大,與其它家居控制系統(tǒng)如ABB、C_BUS等比起來更容易接收,使用也相對簡單。因為實現同樣的功能,X-10家居控制系統(tǒng)是利用220v電力線將發(fā)射器發(fā)出的X-10信號傳送給接收器從而實現智能化的控制,因此采用這套系統(tǒng)不需要額外的布線,這也是這套系統(tǒng)的最大的一個優(yōu)勢,因為其它系統(tǒng)根本上都需要布低壓線,在墻上或地面開槽、鉆孔,施工難度大、費用高、工期長。但由于缺乏在國內市場推廣的條件且價格昂貴,該系統(tǒng)在國內應用極少?!?〕EIB系統(tǒng)〔德國〕,該系統(tǒng)采用預埋總線及中央控制方式實現控制功能。但由于其工程要求復雜嚴苛,并且價格較高,因此一直無法翻開國內市場[3]?!?〕8X系統(tǒng)〔新加坡〕,該系統(tǒng)采用預處理總線跟集中控制方式來實現功能。它的優(yōu)點在于利用的產品對系統(tǒng)進行擴展,系統(tǒng)較為成熟,比擬適合中國國情。但是由于系統(tǒng)架構、靈活性及產品價格等方面還難以到達要求,所以目前在國內還較少應用。二、國內研究現狀20世紀90年代后期,我國的智能小區(qū)日益興起。眾所周知,我國的智能化住宅建設最早起于上海、廣州和深圳等沿海城市,并逐漸向內陸開展。在97香港回歸之際,在建設部“97跨世紀住宅小區(qū)案競賽活動〞中,上海中皇廣場被建設部科技委員會列為全國首家“智能住宅示范工程〞,揭開了全國智能小區(qū)開展的序幕。1999年,建設部勘察設計司、建設部住宅產業(yè)化辦公室聯合組織實施全國住宅小區(qū)智能化技術示范工程,標志著我國住宅小區(qū)智能化進入了一個新階段。隨著信息化走進了千家萬戶,由國家經貿委牽頭成立了家庭信息網絡技術委員會,而信息網絡技術體系研究及產品開發(fā)已經被列為了國家技術創(chuàng)新的重點專項方案。據建設部要求,截止今年,我國將有70%以上的家庭擁有Internet入網設備,大中城市中50%的住宅要實現智能化。我國的智能家居相對于國外起步較晚,尚未形成一定的國家標準。目前,主要采用國外的一些技術產品,但也有一些企業(yè)推出了自己的產品,主要有:〔1〕e家庭〔海爾〕,該系列產品以海爾電腦作為控制中心,各種網絡家電作為終端設備,海爾移動作為移動數字控制中心。海爾在技術上同微軟合作,利用微軟的WindowsMe技術和海爾的網絡家電,使“e家庭〞已具雛形,已推出了網絡洗衣機、網絡冰箱、網絡空調、網絡微波爐等一系列網絡家電。〔2〕e-home數字家園〔清華同方〕,該智能家居控制系統(tǒng)是專門針對中國家庭設計的,遵循國際技術標準,采用嵌入式軟、硬件技術,提供網絡、網絡節(jié)點及末端設備。產品以功能模塊開發(fā)為主,基于國外成熟的智能家居標準之上。其智能家居控制系統(tǒng)主要有以下三個局部:A系列:遵循EIB協議的家庭控制產品,適用于中高檔住宅區(qū)。B系列:遵循X-10協議的家庭控制產品,適用于中檔住宅區(qū)。易家三代:配電箱集中安裝式家庭控制產品。國內各大軟、硬件機構正在積極的研制、開發(fā)更為符合市場的智能化家居設備,以解決當前智能化產品實用性差、使用復雜及產品價格昂貴等缺點,而技術創(chuàng)新性也逐步向國際先進水平靠攏,這樣的未來值得期待[4]。開展趨勢智能家居的開展分為三個階段:首先是家庭電子化〔HomeElectronics〕階段,這個時期主要是面向單個的電器,家庭電器之間并沒有形成網絡,亦沒有大的聯系。其次是住宅自動化〔HomeAutomation〕階段,這個時期是面向功能的階段,一局部的家庭電器之間形成了簡單的網絡,主要是為了實現某個特定單一的功能,例如單一的自動抄表功能。最后是家居智能化〔歐洲稱為SmartHome,美國稱為WiseHouse〕階段,這個時期是面向系統(tǒng)設計的階段,系統(tǒng)通過家庭分布總線把住宅內各種與信息相關的通信設備、家用電器、報警裝置并到網絡節(jié)點中進行集中的監(jiān)控、管理,保持家電與環(huán)境的協調,提供生活、工作、學習以及娛樂的各種優(yōu)質效勞,營造一種溫馨舒適的家庭氣氛。智能家居控制系統(tǒng)提供高效、舒適的家居環(huán)境,確保住戶的生命財產平安;集中或遠程調節(jié)家居環(huán)境的溫度、濕度以及風的速度等,同時檢查空氣成分,提高空氣質量;調節(jié)音響,電視等娛樂設施,愉悅心情;合理利用太陽能活周遭環(huán)境的變化,盡可能的節(jié)約能耗,到達合理利用資源;提供現代化的通信、信息效勞。第三節(jié)本章小結Internet和移動通信的迅速開展,使人們對各種數據和移動效勞的需求快速增長。藍牙技術作為一個全球開放性無線標準,通過把各種語言和數據設備用無線鏈路連接起來,使人們能夠隨時隨地實現個人區(qū)域內語言和數據的交換與傳輸,隨著技術的開展和完善,藍牙必將對人們的生活和工作產生重大的影響。第二章設計方案分析第一節(jié)設計方案分析設計要求本次設計要求實現一個可以遠程通過藍牙控制小車的前進、后退、左轉和右轉。要求學生對單片機和安卓開發(fā)有一定程度的理解,熟悉單片機定時器/計數器以及中斷的使用,會根本的C語言和java,熟練掌握keil51軟件的使用與程序下載以及安卓軟件開發(fā)環(huán)境。設計構思通過查找資料進行方案論證和選擇,可以確定出該系統(tǒng)的整體構成。本設計是以AT89C52單片機為核心,以設置界面來設置前進、后退、左轉、右轉、停止等功能。單片機控制電機驅動來控制電機的正反轉以實現小車的前進、后退、左轉、右轉、停止。HC-06為藍牙接收模塊,通過與端的藍牙進行連接配對,從而接收從端發(fā)送過來的動作指令。接收到的指令再傳遞給單片機,單片機通過分析傳遞過來的指令不同,而跳轉到不同的子程序來控制電機驅動,從而實現小車的前進、后退、左轉、右轉、停止等不同的動作。電源提供應單片機5V直流電,L298需要從外部接兩個電壓,一個是給電機的,另一個給L298芯片的[5]。三、系統(tǒng)框圖通過查找資料進行方案論證和選擇,可以確定出該系統(tǒng)的整體構成,本系統(tǒng)的系統(tǒng)框圖如圖2.1所示。圖2.1系統(tǒng)框圖四、單片機的選擇單片機芯片選型時,總的原那么是:(1)芯片含有功能或數量略大于設計需求,設計需求盡可能用芯片完成,少用外圍器件。(2)技術性:要從單片機的技術指標角度,對單片機芯片進行選擇,以保證單片機應用系統(tǒng)在一定的技術指標下可靠運行;(3)實用性:要從單片機的供貨渠道、信譽程序等角度,對單片機的生產廠家進行選擇以保證單片機應用系統(tǒng)在能長期、可靠運行;(4)可開發(fā)性:選用的單片機要有可靠的可以開發(fā)手段,如程序開發(fā)工具、仿真調試手段等。單片機僅用于控制電機驅動,用51結構的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列〔20引腳〕或STC的所有單片機都可以實現。根據在學校比擬流行的學習單片機是AT89CXX系列,而且AT89C52單片機廉價,購置方便,故單片機選用AT89C52單片機[6]。五、電機驅動的選擇底盤和最小系統(tǒng)確定好了后,小車還是跑不起來——缺少電機驅動。單片機的I/O是驅動不了電機的,因此我選用的是L298N電機專用驅動芯片。L298N通過單片機的I/O輸入改變芯片控制端的電平,即可以對電機進行正反轉,停止的操作,輸入引腳與輸出引腳的邏輯關系圖如表2.1所示。表2.1L298N模塊邏輯關系圖EnALn1Ln2運轉狀態(tài)0XX停止110正傳101反轉111立停100停止L298N電機驅動模塊性能特點:1、可實現電機正反轉及調速。2、啟動性能好,啟動轉矩大。3、工作電壓可到達36V,4A。4、可同時驅動兩臺直流電機。5、適合應用于機器人設計及智能小車的設計[7]。六、藍牙模塊的選擇本模塊分主機和從機,主機能和從機配對通信,從機與從機之間或主機與主機之間不能通信,從機能和電腦、等的藍牙配對通信,購置時默認為從機。我們在做智能小車控制時,藍牙模塊主要是實現接收從端發(fā)送過來的指令,所以我們需要的是從機模塊。藍牙串口在模塊功能上,偶數命名的互相兼容,從機命名的也互相兼容,也就是說,HC-04與HC-06,HC-03與HC-05在功能上是兼容的。HC-04與HC-06是比擬早的版本,用戶不可以自己切換主機或者從機,AT指令集很少,包括修改藍牙名〔限于從機〕,修改密碼,修改波特率,詢問版本號等幾個根本功能。在本次設計中我們只需實現簡單的通信,因此選用HC-06模塊。HC-06模塊只記憶最后一次配對過的從機,并只與該從機配對,直到KEY〔26腳〕高電平觸發(fā)時放棄記憶,26腳默認應該為低電平。七、電源的選擇電源給單片機及電機驅動等使用5V直流電的器件提供電源,供系統(tǒng)正常工作。方案一:使用開關電源將220V交流電轉為5V直流電給系統(tǒng)供電。開關電源的體積小,重量輕。但由于需要耐壓不小于220V的電容等特殊的元器件,日常生活中較難找全器件,開關電源的散熱比擬差,不適宜長時間工作。故此方案不適宜。方案二:用變壓器降壓經整流橋整流和7805穩(wěn)壓后給系統(tǒng)供電。變壓器相比照擬重,但他的電路穩(wěn)定,適宜長時間供電。能做到交流電供電正常時就能給系統(tǒng)正常供電。但在交流電失電時系統(tǒng)會停止工作,這時的時鐘也會停止走時。在重新供電時系統(tǒng)會重啟,從而造成原先設置的數據喪失。故此方案存在漏洞,不適宜使用。方案三:使用交流電和干電池混合給系統(tǒng)供電。在交流電不失效的情況下由交流電轉5V直流電供電,在交流電失效情況下由干電池供電。這樣就能解決運行本錢過高或者在交流電失效時喪失原先設置數據的問題。方案四:使用干電池給系統(tǒng)供電。干電池供電能讓系統(tǒng)穩(wěn)定的工作,時鐘的走時不受交流電的影響。干電池的價格相對交流電而言較貴,用干電池單獨供電會造成使用本錢提高的問題。但綜合情況考慮到小車要前進、后退、左轉、右轉等問題,因此不可能采用交流電源來供電,最終決定兩個電源都采用干電池供電比擬合理,因此采用方案四提供電源。第二節(jié)本章小結通過查找相關資料,首先確定要完成該設計需要到的硬件有單片機最小系統(tǒng)、藍牙模塊〔只需實現接收數據,不用發(fā)送數據的從機模塊HC-06〕、電機驅動模塊。通過分析該設計需要實現的功能,而選擇適合的芯片型號及供電的方式。最后綜合分析后繪制了該系統(tǒng)的硬件接線圖。第三章安卓操作系統(tǒng)概述第一節(jié)安卓操作系統(tǒng)的開展歷史及趨勢Android系統(tǒng)一開始并不是由谷歌研發(fā)出來的,Android系統(tǒng)原來的公司名字就叫做Android,谷歌公司在2005收購了這個僅成立22月的高科技企業(yè)。Android系統(tǒng)也開始由谷歌接手研發(fā),Android系統(tǒng)的負責人以及Android公司的CEO安迪·魯賓成為谷歌公司的工程部副總裁,繼續(xù)負責Android工程的研發(fā)工作。在2007年11月5日這天,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個全球性的聯盟組織,該組織由34家制造商、軟件開發(fā)商、電信運營商以及芯片制造商共同組成。這一聯盟將支持谷歌發(fā)布的操作系統(tǒng)以及應用軟件,將共同開發(fā)Android系統(tǒng)的開放源代碼[8]。第二節(jié)Android開發(fā)環(huán)境搭建Android的根本介紹Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能和平板電腦,由Google公司和開放聯盟領導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓〞或“安致〞。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放聯盟共同研發(fā)改進Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android智能發(fā)布于2023年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機等。2023年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2023年11月數據顯示,Android占據全球智能操作系統(tǒng)市場76%的份額,中國市場占有率為90%。其具有以下特點:=1\*GB3①開放性:在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商參加到Android聯盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。開發(fā)性對于Android的開展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的。=2\*GB3②不受束縛:在過去很長的一段時間,特別是在歐美地區(qū),應用往往受到運營商制約,使用什么功能接入什么網絡,幾乎都受到運營商的控制。自從2007年iPhone上市后,用戶可以更加方便地連接網絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網絡的逐步過渡和提升,隨意接入網絡已不是運營商口中的笑談。③豐富的硬件:這一點還是與Android平臺的開放性相關,由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特色,卻不會影響到數據同步、甚至軟件的兼容,如同從諾基亞Symbian風格一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯系人等資料更是可以方便地轉移。④方便開發(fā):Android平臺提供應第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。⑤Google應用:在互聯網的Google已經走過10年度歷史,從搜索巨人到全面的互聯網滲透,Google效勞如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,而Android平臺將無縫結合這些優(yōu)秀的Google效勞。二、Android系統(tǒng)構架Android的系統(tǒng)架構和其操作系統(tǒng)一樣,采用了分層的架構。從架構圖3.1看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層[9]。圖3.1Android結構圖1、應用程序Android會同一系列核心應用程序包一起發(fā)布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。2、應用程序框架開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用,任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊〔不過得遵循框架的平安性〕。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。3、系統(tǒng)運行庫Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應用程序框架為開發(fā)者提供效勞。4、系統(tǒng)內核Android是運行于Linuxkernel之上,但并不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。三、Android開發(fā)包及其工具的安裝和配置Android的開發(fā)是可以在windowsXP及其以版本、MACOS、Linux等系統(tǒng)上進行開發(fā)的;首先呢,我們要進入Google的官方網站下載windowsXP版本的java開發(fā)包JDK,我們選擇的版本是JDK以上的版本。在應用開發(fā)平臺方面,我們采用的是eclipse,因為google提供了基于eclipse的android開發(fā)插件ADT,在隨時更新的插件幫助下,可以很快幫助我們完成android終端的相關應用開發(fā)。1、安裝JDK和配置java開發(fā)環(huán)境首先,安裝JDK時,安裝包中有JDK和JRE兩局部,點擊安裝程序,指定安裝目錄,然后點擊下一步,等待安裝完成即可。安裝完成之后,點擊“我的電腦〞,選擇“屬性〞里面的“高級〞選項,選擇環(huán)境變量,找到path變量,如果沒有,就自己添加一個,按后命名path就行,完成之后,點擊編輯,添加JDK安裝目錄的“l(fā)ib〞文件路徑;之后點擊確定,然后再找到CLASSPATH變量,在路徑輸入“.〞,然后點擊確定。2、檢測安裝安裝配置完成之后,需要測試是否安裝成功。點擊開始——運行輸入“cmd〞,翻開命令模式。輸入“java—version〞,檢測JDK安裝是否成功,如果現實結果,那么安裝成功。3、安裝eclipse翻開安裝包,點擊安裝,彈出workspace對話框,確定創(chuàng)立工程的保存路徑。4、SDK和ADT的安裝和配置首先,解壓安裝包,運行“SDKSetup.exe〞。其次,在“AndroidSDKandAvdmanager〞的窗口左側選擇“setting〞,選中“Forces://......〞然后返回“Installedpackges〞,點擊“Updateall〞。點擊“AvailablePackges〞,選擇要安裝的API版本以及USB驅動和SDK文檔,我們都選擇了。這個過程很漫長,一定要保證網速快的情況下來安裝,要不會出現安裝不了的情況,最少安裝這個也要一天的時間,所以要耐心等待。下載完成之后,選擇所有選項,然后全部安裝,安裝完成之后,配置SDK,SDK的配置更JDK是一樣的。5、ADT的安裝和配置啟動eclipse,點擊“Help〞菜單,選擇“InstallNewSoftware〞之后,點擊“Add〞按鈕,點擊Archive指向下載的ADT壓縮包,然后點擊“ok〞,選中所需要安裝的插件即可。6、Android虛擬機的搭建翻開菜單“windows〞,一次選擇“AndroidSDKandAVDManager〞,翻開界面;然后點擊NEW新建模擬機,彈出選項卡,根據選項卡填寫自己所需要的內容,即可創(chuàng)立。7、建立好工程名后,即可啟動虛擬機。第三節(jié)本章小結本章主要介紹了安卓系統(tǒng)的概述和安卓開發(fā)環(huán)境的一個搭建過程。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層。Android系統(tǒng)的主要優(yōu)點有:開放性、不受束縛、豐富的硬件、方便開發(fā)、Google應用。在搭建安卓開發(fā)環(huán)境的時候,耗時相比照擬漫長[10、11]。系統(tǒng)硬件電路設計整個系統(tǒng)的硬件設計可以分為四個模塊:電源電路、單片機最小系統(tǒng)、電機驅動模塊、藍牙模塊、。電源電路為整個系統(tǒng)供電,包括單片機AT89C52、電機驅動、藍牙模塊、及其他外圍電路。電源電路分兩個局部:〔1〕接外部電源給電機供電;〔2〕由4節(jié)干電池作為電源,給系統(tǒng)供電,以確保單片機、電機驅動、藍牙模塊的正常運行。在電源電路給系統(tǒng)供電時,綠色指示燈點亮,只是當前供電正常。單片機最小系統(tǒng)局部是整個系統(tǒng)的智能控制局部,也是整個系統(tǒng)的核心局部。電機驅動模塊L298需要從外部接兩個電壓,一個是給電機的,另一個給L298芯片的[12]。第一節(jié)單片機最小系統(tǒng)單片機的最小系統(tǒng)就是讓單片機能正常工作并發(fā)揮其功能時所必須的組成局部,也可理解為是用最少的元件組成的單片機可以工作的系統(tǒng)。對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、時鐘電路、復位電路、輸入/輸出設備等[13、14]。圖4.1單片機最小系統(tǒng)框圖圖4.2單片機最小系統(tǒng)原理圖一、單片機AT89C52AT89S52單片機片內集成256字節(jié)程序運行空間、8K字節(jié)Flash存儲空間,支持最大64K外部存儲擴展。根據不同的運行速度和功耗的要求,時鐘頻率可以設置在0~33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低能耗模式、看門狗和斷電保護??梢栽?V到5.5V寬電壓范圍內正常工作。不斷開展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數字芯片就可以制成下載線。根據不同場合的要求,這款單片機提供了多種封裝,本次設計根據最小系統(tǒng)有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝。下面對定時開關系統(tǒng)中使用到的管腳進行簡單說明.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的陶瓷電容就可以了。三.復位電路在單片機系統(tǒng)中,復位電路是非常關鍵的,當程序跑飛〔運行不正?!郴蛩罊C〔停止運行〕時,就需要進行復位。MCS-5l系列單片機的復位引腳RST〔第9管腳〕出現2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。復位操作通常有兩種根本形式:上電自動復位和開關復位。上電瞬間,電容兩端電壓不能突變,此時電容的負極和RESET相連,電壓全部加在了電阻上,RESET的輸入為高,芯片被復位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。并聯在電容的兩端為復位按鍵,當復位按鍵沒有被按下的時候電路實現上電復位,在芯片正常工作后,通過按下按鍵使RST管腳出現高電平到達手動復位的效果。一般來說,只要RST管腳上保持10ms以上的高電平,就能使單片機有效的復位。圖中所示的復位電阻和電容為經典值,實際制作是可以用同一數量級的電阻和電容代替,讀者也可自行計算RC充電時間或在工作環(huán)境實際測量,以確保單片機的復位電路可靠。四.EA/VPP〔31腳〕的功能和接法51單片機的EA/VPP〔31腳〕是內部和外部程序存儲器的選擇管腳。當EA保持高電平時,單片機訪問內部程序存儲器;當EA保持低電平時,那么不管是否有內部程序存儲器,只訪問外部存儲器。對于現今的絕大局部單片機來說,其內部的程序存儲器〔一般為flash〕容量都很大,因此根本上不需要外接程序存儲器,而是直接使用內部的存儲器。在本實驗套件中,EA管腳接到了VCC上,只使用內部的程序存儲器。這一點一定要注意,很多初學者常常將EA管腳懸空,從而導致程序執(zhí)行不正常[15]。電機驅動模塊L298N型驅動器的原理及應用L298是SGS公司的產品,比擬常見的是15腳Multiwatt封裝的L298N,內部同樣包含4通道邏輯驅動電路??梢苑奖愕尿寗觾蓚€直流電機,或一個兩相步進電機。L298N芯片可以驅動兩個二相電機,也可以驅動一個四相電機,輸出電壓最高可達50V,可以直接通過電源來調節(jié)輸出電壓;可以直接用單片機的IO口提供信號;而且電路簡單,使用比擬方便。L298N可接受標準TTL邏輯電平信號VSS,VSS可接4.5~7V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.5~46V。輸出電流可達2.5A,可驅動電感性負載。1腳和15腳下管的發(fā)射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號。L298可驅動2個電動機,OUT1,OUT2和OUT3,OUT4之間可分別接電動機,本實驗裝置我們選用驅動一臺電動機。5,7,10,12腳接輸入控制電平,控制電機的正反轉。EnA,EnB接控制使能端,控制電機的停轉。其引腳圖如圖4.3所示。圖4.3L298N引腳圖1、引腳說明:1、1和15和8引腳直接接。,2、4管腳VS接2.5到46的電壓,它是用來驅動電機的。3、9引腳是用來接4.5到7V的電壓的,它是用來驅動L298芯片的,L298需要從外部接兩個電壓,一個是給電機的,另一個給L298芯片的。4、6和11引腳是它的使能端,一個使能端控制一個電機,至于那個控制那個你自己焊接,你可以把它理解為總開關,只有當它們都是高電平的時候兩個電機才有可能工作。5、5,7,10,12是298的信號輸入端和單片機的IO口相連,2,3,13,14是輸出端,輸入5和7控制輸出2和3,輸入的10,12控制輸出的13,14。2、驅動原理圖L298N是SGS公司的產品,內部包含4個通道邏輯驅動電路,是一種二相和四相電機的專用驅動器,即內含二個H橋的高電壓大電流雙全橋式驅動器,接收標準TTL邏輯電平信號,可以驅動4V、2V以下的電機。圖4.4L298驅動原理圖OUT1、OUT2和OUT3、OUT4之間分別接兩個電機。IN1、IN2、IN3、IN4引腳從單片機輸入控制電平,控制電機的正反轉,ENA、ENB接控制使能端,控制電機的停轉。L298N的邏輯功能如表4.1所示。表4.1L298邏輯功能表IN1IN2IN3IN4左電機右電機電動車運動狀態(tài)1010正轉正轉前行1001正轉反轉左轉1011正轉停以電機為中心左轉0110反轉正轉右轉1110停正轉以電機為中心右轉0101反轉反轉后退3、直流電機實物接線圖圖4.5直流電機實物接線圖4、直流電機原理圖圖4.6L298驅動直流電機原理圖藍牙模塊一、藍牙模塊HC-06介紹1、采用CSR主流藍牙芯片,藍牙V2.0協議標準2、核心串口模塊工作電壓3.3V。帶底板的可以為之間3、波特率為1200,2400,4800,9600,19200,38400,57600,115200用戶可設置4、核心模塊尺寸大小為:28mmx15mmx2.35mm。底板尺寸27mm*47mm5、工作電流:配對中為50MA,配對完畢通信中為28MA6、休眠電流:不休眠7、用于GPS導航系統(tǒng),水電煤氣抄表系統(tǒng),工業(yè)現場采控系統(tǒng)。8、可以與藍牙筆記本電腦、電腦加藍牙適配器、PDA等設備進行無縫連接9、出廠默認參數:從機,波特率:9600,N,8,1。配對密碼:1234二、AT命令集如下1、測試通訊發(fā)送:AT〔返回OK,一秒左右發(fā)一次〕返回:OK2、改藍牙串口通訊波特率發(fā)送:AT+BAUD1返回:OK1200發(fā)送:AT+BAUD2返回:OK24001---------12002---------24003---------48004---------96005---------192006---------384007---------576008---------1152009---------230400A---------460800B---------921600C---------1382400不建議用在超過115200的波特率,信號的干擾會使系統(tǒng)不穩(wěn)定。設置超過115200后用電腦無法使用,要用單片機編程于高于115200才能使用此波特率和重新發(fā)AT命令設低波特率用AT命令設好波特率后,下次上電使用不需再設,可以掉電保存波特率。3、改藍牙名稱發(fā)送:AT+NAMEname返回:OKname參數name:所要設置的當前名稱,即藍牙被搜索到的名稱。20個字符以內。例:發(fā)送AT+NAMEbill_gates返回OKname這時藍牙名稱改為bill_gates,參數可以掉電保存,只需修改一次。PDA端刷新效勞可以看到更改后的藍牙名稱。4、改藍牙配對密碼發(fā)送:AT+PINxxxx返回:OKsetpin參數xxxx:所要設置的配對密碼,4個字節(jié),此命令可用于從機或主機。從機那么是適配器或彈出要求輸入配對密碼窗口時,那么手工輸入此參數就可以連接從機。主機那么是在用主藍牙模塊連數碼相機時,數碼相機是從機,找到相機的配對密碼,再設入主藍牙模塊,那么主藍牙模塊就可以自動連接相機。例:發(fā)送AT+PIN8888返回OKsetpin這時藍牙配對密碼改為8888,模塊在出廠時的默認配對密碼是1234。參數可以掉電保存,只需修改一次。第四節(jié)本章小結本章的任務主要介紹了各個模塊的核心芯片,并完成了電路設計工作,本設計由51單片機最小系統(tǒng)、HC-06藍牙模塊、L298電機驅動模塊、電源電路、小車底板等組成。然后確定設計硬件模塊之間的電路連接圖,為實物硬件制作做足準備。第五章系統(tǒng)軟件程序設計這次設計可以用C語言編程序,也可以用匯編語言編程序,由于本次設計中程序系統(tǒng)用C語言編寫程序。此次設計所選用的單片機是AT89C52單片機,其C語言語法和結構和標準C語言根本相同,只是有了相應的擴充,用到的編譯軟件是KeilC。下面結合我的程序編譯簡要介紹以下KeilC的編譯環(huán)境的特點。KeilC51軟件提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢。KeilC51在使用前一定要先進行注冊,否那么程序過大會造成編譯時出現地址使用錯誤。程序在編譯時就遇到過這種問題。在單個程序運行時沒有錯誤,但是一整合編譯后出現地址沖突現象。這個問題困擾了很長一段時間,通過查資料發(fā)現假設是KeilC51軟件沒有注冊的話使用時當程序過大就會出現地址沖突現象。在注冊完成后,程序編譯能順利通過[15]。第一節(jié)主程序的設計在本次設計中,主程序主要是在單片機的控制下,對藍牙模塊輸入的信息進行存儲分析,來控制電機驅動,以到達控制小車的前進、后退、左轉、右轉。在這個過程中,單片機首先進行初始化,包括設置單片機各個端口的方向,各個變量的初始化,以及單片機振蕩頻率的校準等。單片機定時對藍牙模塊串口讀數據,如果串口的數據讀出,那么對讀出的數據進行分析,讀出的數據如果為A、B、C、D那么分別對應小車的前進、后退、左轉、右轉。小車硬件系統(tǒng)軟件設計的流程圖如圖5.1所示。圖5.1小車動作流程圖端程序的設計本程序是基于Android2.1系統(tǒng),所用開發(fā)工具為Eclipse集成開發(fā)環(huán)境,Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比方C++、Python和Android的開發(fā)工具,在此開發(fā)環(huán)境下開發(fā)軟件非常的方便。首先設計本系統(tǒng)端軟件的程序界面,為了盡快實現程序的功能,本程序沒有對軟件界面設計做特別美化的設計,僅包含我們所用到的幾個按鈕和圖形顯示,以實現我們的功能為最大目標。下面介紹Android相關資源文件的作用[16、17]:1、assets
文件夾:此文件夾也可以存放資源文件,而且/assets目錄下的資源文件不會在R.java自動生成ID,所以讀取/assets目錄下的文件必須指定文件的路徑〔url的路徑為:〕。除此之外,我們還可以通過AssetManager類來訪問這些文件。翻開文件時,會把apk文件當做zip文件進行解壓讀取。但是有文件大小有限制:不能超過1M〔android2.2好似放寬〔或者取消〕了這個限制〔至少可以存放>10M,具體沒有測試。〕〕。2、res
文件夾:主要用來存放資源。此文件夾下可以創(chuàng)立子文件,常見的有:動畫anim,圖片drawable,顏色color,菜單menu,
布局layout,常量值values,詳細如下:〔1〕anim文件夾:后綴名為.xml。動畫文件都放在這里?!?〕drawable文件夾:用于存放圖片資源,圖片或者xml。圖片格式,有png,9.png,jpg,gif都行。xml文件通常為自定義的形狀shape或圖片選擇器類selector似的東西,就是不同狀態(tài)下不同的圖片,用于設置background的。對分辨率籠統(tǒng)的分,可以分為高中低三種分辨率?!?〕color文件夾:用于存放color列表,和drawable的xml一樣,表示不同狀態(tài)下的不同顏色〔4〕menu文件夾:菜單資源文件夾?!?〕
layout文件夾:布局文件夾。此文件夾的名字也是可以起到屏幕適配的功能的。①橫豎屏:layout-land|port;②分辨率:layout-1280x720〔6〕
values文件夾:存放常量值的文件夾。里面常見的xml文件為:arrays.xml
:資源數組;colors.xml
:
顏色值;dimens.xml
:像素值;strings.xml
:字符串值;tyles.xml
:樣式值。此文件夾,也有屏幕適配作用。比方:dimens在不同分辨率下的值。同樣的是加-1280x720這樣的后綴。對于strings,有各種語言的版本對應。默認為英文。中文的文件夾名字應該是:values-zh-rCN,values-zh-rTW。〔7〕
raw文件夾:存放不需要系統(tǒng)編譯成二進制的文件,例如字體文件等同assets文件夾類似?!?〕
xml文件夾存放xml文件。以下是端實現功能的程序流程圖如圖5.2所示。圖5.2藍牙通信流程圖界面程序設計在設置界面的時候,在Eclipse集成開發(fā)環(huán)境下,首先新建一個android工程工程,興建路徑是File—New—androidproject—projectname選擇android1.6版本,工程名命名為Bluetooth-car,選擇CreateActivity,那么自動創(chuàng)立了一個Activity.在創(chuàng)立Activity時,需要注意一下四個要點:1、一個Activity就是一個類,并且這個類要繼承Activity。2、需要復寫Oncreate方法〔當一個Activity第一次運行顯示在上或者虛擬機上的時就會調用Oncreate方法〕。3、每一個Activity都需要在Androidmanifast.xml文件當中配置。4、為Activity添加必要的控件。如圖5.3所示,在制作藍牙小車界面的時候,我用到了Textview文本控件和Butten按鈕控件,并且在添加控件時采用相對布局形式[18、19]。圖5.3界面圖兩個Textview文本控件分別命名為:重慶郵電大學自動化學院和藍牙控制系統(tǒng),在layout布局文件下可以任意改變控件的位置、字體的大小、背景圖片。改變背景圖片的方法為:首先將需要用到的背景圖片,分別拖入到drawable下,高中低分辨率都拖入一張,以便不同分辨率的識別,然后在layout布局文件下,翻開Activitybuletooth-car文件,調用添加安卓界面背景的語句為android:background="@drawable/background1">,就能得到我們所修改的背景圖片。二、監(jiān)聽程序設計在Eclipes開發(fā)平臺上,首先在Layout文件中采用相對布局的形式設計完成界面以后,就要考慮為我們的每個Butten按鍵綁定監(jiān)聽程序,以實現在每個按鍵按下時,就能通過藍牙發(fā)送相應的數據到小車藍牙接收模塊。首先在Layout文件中,每添加一個控件,都會為這個控件設置一個ID,〔如android:id="@+id/button1"〕,然后在R.JAVA文件就會自動生成一個ID地址。然后在主程序里面編寫監(jiān)聽程序,當按鍵按下的時候,通過監(jiān)聽按鍵的ID地址的不同,采用switch結構,跳轉到不同的case里,向小車藍牙模塊發(fā)送不同的數據。在程序里直接寫進小車藍牙模塊的藍牙地址〔00:12:10:31:01:70〕,當程序開始運行時,將會自動搜索該地址的藍牙芯片,當進行過一次配對連接以后,將會記憶該地址,以后每次只要翻開界面,開始運行時就會自動進行搜索配對連接好[20、21]。*按鈕點擊事件. *@paramv */publicvoidonClick(Viewv){switch(v.getId()){ //轉寫按鈕caseR.id.button1: message[0]=(byte)0x41; vibrator();Toast.makeText(this,"前進",Toast.LENGTH_LONG).show(); bluesend(message);break; //設置按鈕caseR.id.button2: message[0]=(byte)0x44; vibrator();Toast.makeText(this,"后退",Toast.LENGTH_LONG).show(); bluesend(message);break;caseR.id.button3: message[0]=(byte)0x43; vibrator();Toast.makeText(this,"左轉",Toast.LENGTH_LONG).show(); bluesend(message);break;caseR.id.button4: message[0]=(byte)0x42; vibrator();Toast.makeText(this,"右轉",Toast.LENGTH_LONG).show(); bluesend(message);break;caseR.id.button5: message[0]=(byte)0x61; vibrator(); Toast.makeText(this,"停止",Toast.LENGTH_LONG).show(); bluesend(message);break;default:break;} }第三節(jié)本章小結本章主要介紹本系統(tǒng)的軟件設計,其中就包括單片機端的C語言程序設計和Android端的JAVA程序設計。由于我們在本科階段都只接觸過C語言,對JAVA語言從未涉及過,所以在做起來的時候遇到了很多的困難。首先對JAVA語言的開發(fā)環(huán)境Eclipes的使用不熟悉,對新接觸語言的語法不熟悉。后來通過查找資料和對一些做好的工程例子的學習以后,有了對JAVA語言的大致的了解,就開始先學習著做簡單的界面的程序。然后通過網上找到一些相關的程序進行修改以及在指導老師的指導和修改下,完成了端的軟件設計。第六章系統(tǒng)整體調試第一節(jié)調試方案根據電路原理圖、實物圖把電路板實物做出來后,下一步就是電路板調試。電路板調試是最關鍵的一步前面所做的電路設計的成功與否就是在調試步驟里表達的本系統(tǒng)的調試主要分為硬件調試、軟件調試和系統(tǒng)整體調試等三大局部。經過初步對定時器的分析設計后,在制作硬件電路的同時,調試也在穿插進行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而影響整體電路的檢查,從而可以節(jié)約大量的調試時間。例如當單片機控制模塊硬件局部制作好后,就可以先調試電機轉動程序,通過電機驅動控制電機轉動了,那么結果正確了,說明電機驅動電路與單片機的連接電路是正確的,單片機能正常工作。軟件編程中,首先完成單元功能模塊的調試,然后進行系統(tǒng)的調試,調試的整體思想和步驟和硬件大同小異。系統(tǒng)的整體調試是最重要的一局部,雖然軟硬件調試都通過了,但是通過藍牙傳輸數據過程中可能會出現新的問題。第二節(jié)硬件電路調試硬件單元電路制作好后,在上電之前,應該先用萬用表對各個獨立元件進行檢查,在排除了虛焊、短路、斷路等問題后再通電進行電路功能的調試。具體調試過程如下所述:一、獨立元件的檢測任何組裝好的電子電路,在通電調試之前,必須認真檢查電路連線是否有誤。檢查的方法是對照電路圖,按一定的順序逐級對應檢查,例如:對電路板的電阻阻值進行確定,可以通過讀取電阻上的色環(huán)進行確認。特別是注意電源是否接錯,電源與地是否有短接,集成電路和晶體管的引腳是否接錯,輕輕撥一撥元器件,觀察焊點是否牢固等。用萬用表檢測是不是有短路和斷路現象。給系統(tǒng)上電后,看下電源〔綠色〕燈亮不亮。假設不亮,就要檢查電源指示燈發(fā)光二極管的好壞。還要用萬用表測一下單片機等芯片的電壓是不是符合要求。假設不是,就要進行各個芯片的檢查,看一下各個芯片的引腳有沒有焊好,芯片是否損壞。圖6.1驅動模塊反面圖圖6.2藍牙模塊正反面圖圖6.3藍牙模塊調試圖二、單片機最小系統(tǒng)的調試單片機AT89C52最小系統(tǒng)的檢測分為硬件調試及軟件調試。量電源電壓有沒有到位,量復位RSL腳電平對不對,如果是高電平復位那么平時應該是低電平,量外部晶振有沒有起振,最小系統(tǒng)電路參考芯片PDF文檔,確認正確。硬件調試時用萬用表測量單片機的工作電壓及各個管腳的電壓是否到達正常工作電壓。在此檢測中還要燒入程序對各個I/O口的輸出進行測試,查看I/O口所輸出的電壓是否與程序所控制值一致。例如:編寫一個調試程序,使的所有I/O口從P1.0口開始依次賦予低電平,用萬用表測量其輸出電壓,確定是否與程序所付值一致,一致那么證明正確;然后又對其依次賦予高電平,確定是否與程序所付值一致,一致那么證明正確。兩次測試都正確,證明單片機最小系統(tǒng)是正常工作的。圖6.4單片機調試圖三、電源電路的調試電源電路作為整個系統(tǒng)的供電電路,其輸出電壓必須在單片機的正常工作電壓范圍〔4V到5.5V之間〕內。在電源通電之前,一定要檢查電路是否接錯,特別是極性電容是否有接反,防止出現極性電容接反而造成爆電容的現象。在確保器件接法無誤的情況下,接通電源,并用萬用表測量輸出電壓,得到其電壓為5.3V,符合系統(tǒng)的正常工作電壓要求。然后再在電機驅動輸出端接上干電池,實現兩個電源供電。四、驅動模塊的調試驅動模塊為驅動電機的芯片,L298需要從外部接兩個電壓,一個是給電機的,另一個給L298芯片的。首先檢查驅動芯片與單片機的各個連線是否都正確以后,給芯片通上電源,單片機指示燈點亮以后。運行單片機上的程序,通過單片機P2口的數據變化來控制L298的IN1、IN2、IN3、IN4的電平的上下。L298輸入端的上下電平的變化,通過輸入端的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,左右電機都反轉,實現小車后退。通過調試電機驅動模塊能實現根本的功能。其調試圖如圖6.5,圖6.6,圖6.7,圖6.8所示。圖6.5小車前進指示圖圖6.6小車后退指示圖圖6.7小車左轉指示圖圖6.8小車右轉指示圖第三節(jié)軟件調試一、C語言的調試軟件的調試包括程序本身語法的調試和在電路板上功能的調試兩種。在編程過程中,為了得到滿足要求的用戶程序,一般都需要有一個對程序的調試過程,甚至需要經過屢次反復的調試才能完成。在調試程序前為了調試方便,防止程序出錯時將單片機拆來拆去的麻煩,在電路板上做了一個下載口,可以將下載線直接插到電路板上進行調試,這樣就可以一邊進行調試,一邊修改程序。程序用KeilC軟件寫好后,先用該軟件的編譯功能編譯一下所寫的程序,檢查程序是有語法錯誤或其他的錯誤。如果有錯誤那么根據提示進行分析將錯誤改正來直至編譯成功為止。當完成了語法調試后,再根據定時開關插座設計的功能要求修改程序完成系統(tǒng)的各個功能。在編寫程序的時候一定要根據系統(tǒng)實現的功能和連接方式,認真分析,畫出系統(tǒng)主程序、時鐘程序、設置程序的流程圖,并根據畫出的流程圖一步一步的去寫出程序。根據系統(tǒng)的特點,軟件系統(tǒng)應該按模塊進行調試,當各個模塊調試通過后再將各個模塊整合起來,進行綜合調試,直到得到預期結果。與純粹的C語言編程不同的是,單片機編程要考慮到硬件的設計,所有程序的編寫都是根據硬件資源進行。二.JAVA語言的調試將做好的工程添加進入Eclipes開發(fā)環(huán)境中,檢查各個文件夾下面的程序有沒有出現打紅色X的問題以及警告,點開下方的problem的文件,檢查該工程有沒有出現問題,當排除了所有的問題以后。配置一個2.2版本的模擬器,然后啟動模擬器,在模擬器上運行該工程,在模擬器上將會出現已經做好的界面,運行完成,調試成功。然后將連接到電腦上,翻開安卓的USB接口。接下來點擊運行整個工程工程,在上出現前面那個做好的藍牙小車控制界面。點擊各個按鈕,都無問題,證明該JAVA程序沒有問題[22]。圖6.9端程序運行圖第三節(jié)系統(tǒng)整體的調試藍牙控制小車的硬件模塊和軟件模塊分別調試通過后,接下來就可以進行系統(tǒng)的整體測試。首先檢查各個模塊之間,以及電機驅動與電機的連接都沒有出錯的情況下,翻開給各個模塊提供的5V電源以及翻開給電機提供的另一個6V電源。此時最小系統(tǒng)模塊指示燈點亮,表示單片機供電正常,藍牙模塊指示燈開始閃爍,表示藍牙模塊也供電正常。此時翻開安卓的藍牙,搜索該藍牙芯片,進行配對。然后翻開我們做好的界面,當界面翻開之后,開始自動搜索藍牙芯片的地址進行連接,當藍牙芯片的指示燈有閃爍轉變?yōu)槌A烈院螅硎舅{牙配對連接成功。在剛開始的時候調試的時候遇到了一些問題,在電機驅動方面,當在端的界面上點擊前進、后退、左轉、右轉按鈕的時候,藍牙模塊能接受端發(fā)送的字符A、B、C、D的ASCII碼值,并且能夠通過串口相應的傳遞給單片機,單片機通過分析串口傳過來的數據,改變P2口的值分別為65、66、67、68,來控制電機驅動的輸入端IN1、IN2、IN3、IN4。相應的電機驅動端的四個指示LED燈都能根據數據的變化采取不同的量滅組合情況,來相應控制小車的前進、后退、左轉、右轉[23、24、25]。圖6.10小車底板正面圖圖6.11小車底板反面圖圖6.12小車實體圖第四節(jié)本章小結在調試的過程中也遇到一些問題,就是最開始電機驅動輸出端控制的電機卻不會轉動。通過分析,可能有兩個原因導致電機不會轉動,其一,電機驅動的輸出端的接線出現了錯誤,導致電機轉動出現問題;其二,電機驅動端接的給電機供電的電壓達不到驅動電機的最低電壓,最后通過查詢資料和用萬用表測驅動模塊的輸出端的各個引腳的上下電平,發(fā)現輸出端的電平也能隨輸入端的改變而變化,當最后測試VCC和GND兩端,發(fā)現無明顯的壓降,再用萬用表的測電阻值測兩端的阻值,發(fā)現問題是電機驅動模塊輸出端的供電端VCC與GND端短路,導致外接電源不能給電機供電。最后我通過直接從芯片的引腳接線到電源端,那么電機能夠正常轉動。結論本次畢業(yè)設計是一個基于單片機AT89C52的智能小車控制,包括方案選擇、軟硬件設計、單片機最小系統(tǒng)、電機驅動電路和藍牙電路、硬件測試結果及解決在電路調試時遇到的問題。在此期間主要完成的工作包括以下幾個方面:〔1〕設計初期收集電機驅動、單片機等相關資料,對智能小車的實現原理有比擬清晰的了解。〔2〕確定系統(tǒng)框圖,對電源模塊、單片機最小系統(tǒng)模塊、藍牙電路模塊和電機及其驅動電路模塊等的實施方案進行比擬,確定最終的智能小車控制的設計方案。〔3〕根據智能小車控制的原理圖制作出電路連接圖?!?〕根據系統(tǒng)要實現前進、后退、左轉、右轉等功能編寫出小車端的軟件程序?!?〕在eclipes開發(fā)環(huán)境下,應用JAVA程序編寫界面程序,并且通過模擬器來檢測界面程序?!?〕軟硬件調試通過后進行整體調試,并查找該系統(tǒng)存在的缺陷,進行完善。〔7〕最終小車能夠實現前進、后退、左轉、右轉等功能,到達老師給出的根本要求。本次設計完成了基于安卓的智能小車控制系統(tǒng)。該系統(tǒng)采用51單片機AT89C52編程控制電機的正反轉來實現小車前進、后退、左轉、右轉,而電機的正反轉那么由電機驅動L298N輸出端的邏輯電平來控制。從整個設計的過程來看前期的充分的準備顯得非常的重要,經過前期充分的準備,和對嵌入式系統(tǒng)開發(fā)的學習,防止了很多在后續(xù)的設計中可能出現的問題。MCU端的軟硬件設計因為與所學知識相關性較大,所以出現的問題較少,MCU底板設計時鑒于電路簡單,且易于焊接,故未采用PCB制版也相應的節(jié)約了本錢。特別值得一提的是為了提高系統(tǒng)在硬件上的平安性和穩(wěn)定性,我特別添加了硬件保護裝置,以提高系統(tǒng)的硬件防碰撞的能力。主要的問題出現在android端的軟件設計上,由于對android開發(fā)環(huán)境的不熟悉,缺乏一些在編寫JAVA程序時的一些技巧性問題,所以剛剛開始時總是出現很多問題,并且出現的問題都需要查找相關資料才能解決。通過學習一些android相關的學習視頻,最后對android環(huán)境有了一個系統(tǒng)的了解在開發(fā)的過程中也得心應手些。Android端圖形界面的設計也是一大難點,基于Java的圖形界面設計不管是從設計平臺還是Java語言的掌握都是一想挑戰(zhàn),但幸于Java軟件的開發(fā)技術已經成熟,且可查閱的資料多且詳盡,所以圖形界面的設計到達設計時的五項按鍵要求,功能實現良好,除界面的友好程度可以更加優(yōu)化外,其余完成任務??傮w來看,我進行了比擬充分的準備,在實踐過程中通過查閱相關資料和咨詢有關人員,克服了系統(tǒng)設計過程中的絕大多數困難,根本都以到達設計要求,并通過了軟件測試。致謝畢業(yè)設計完成了,在這個過程中我學到了很多東西。首先我要感謝我的導師羅萍老師,他在我完成論文的過程中,給予了我很大的幫助。在論文開始的初期,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市豐臺區(qū)招考聘用社區(qū)工作者461人高頻重點提升(共500題)附帶答案詳解
- 北京協和醫(yī)院科研處合同制工作人員招考聘用高頻重點提升(共500題)附帶答案詳解
- 2024版離婚協議書賠償離婚賠償協議書
- 個人與出版機構2024年度出版合同3篇
- 2024飼料恒溫運輸合同3篇
- 全國農業(yè)技術推廣服務中心公開招聘應屆畢業(yè)生補充(北京)高頻重點提升(共500題)附帶答案詳解
- 佛山市南海區(qū)網絡中心2025年招考高頻重點提升(共500題)附帶答案詳解
- 云南西雙版納州生態(tài)環(huán)境局4050公益性崗位人員招考聘用3人高頻重點提升(共500題)附帶答案詳解
- 云南省地質調查局局屬事業(yè)單位2025年公開招聘工作人員歷年高頻重點提升(共500題)附帶答案詳解
- 云南曲靖市會澤縣公開招聘工作人員縮減部分招聘崗位歷年高頻重點提升(共500題)附帶答案詳解
- 建筑施工進度管理-項目進度管理概述(施工組織)
- 初中九年級美術期末藝術測評指標試卷及答案
- 新生入職紀委培訓課件
- 違停抓拍方案
- 《生殖系統(tǒng)》課程教學大綱
- 心臟搭橋手術與心臟搭橋手術知情同意書
- 檢驗科質控總結匯報
- 醫(yī)院婦產科2024年度工作總結
- 破產法培訓課件銀行
- 歷史文化古城
- 中小學綜合實踐活動課程指導綱要解讀
評論
0/150
提交評論