版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
[4]的設(shè)計中則直接使用可以進行語音識別的單片機,使用的SPCE061A單片機作為控制器,但是只用于完成語音識別,利用無線模塊進行和51單片機的通信,51單片機主要負(fù)責(zé)小車的控制,這種將語音功能和小車控制功能分隔開的思想值得借鑒。在這些研究設(shè)計文獻中,都對實現(xiàn)方案以及所用的單片機或者芯片進行了不同的選擇,通過這些經(jīng)驗初步了解本設(shè)計所需要實現(xiàn)的功能以及可選擇的方案,可以知道如何驅(qū)動電機,選擇什么樣的電機驅(qū)動模塊,如何去實現(xiàn)語音識別這個最為主要的功能,是否需要是使用通信模塊,對這些有了基本的認(rèn)識之后,從而清楚自己在設(shè)計中的思路以及對所用到的工具還有實現(xiàn)的方法進行初步的整理,使得自己在系統(tǒng)設(shè)計的過程中盡可能的有一定的初步理論驗證,在接下來的動手設(shè)計中少走一些彎路。2.2語音控制智能車系統(tǒng)概述語音控制的智能車系統(tǒng)原理是利用語音信號中的信息進行處理,轉(zhuǎn)換成控制智能車運動及功能的控制指令,從而設(shè)計并實現(xiàn)語音控制的智能車。該系統(tǒng)一般包含兩大系統(tǒng),即安卓手機語音識別與處理系統(tǒng)和智能車系統(tǒng)。安卓手機軟件接收人發(fā)出語音信號并進行語音識別將其轉(zhuǎn)換成文本進行處理分析,然后根據(jù)語音信息內(nèi)容利用手機藍牙發(fā)送不同的與之相對應(yīng)的指令給智能車系統(tǒng),智能車根據(jù)不同的藍牙指令作出不同的反應(yīng),控制智能車的運動以及功能,利用藍牙模塊發(fā)送對應(yīng)的數(shù)據(jù)到手機軟件上,從而實現(xiàn)語音控制智能車。語音控制智能車有以下幾個方面的發(fā)展趨勢:(1)語音指令越來越多,語音控制的智能車正朝著功能更加多樣化的方向發(fā)展,通過對智能車系統(tǒng)的不斷升級完善,智能車所能受語音控制的功能也會越來越多,功能多樣化的好處是有利于實現(xiàn)多功能甚至是幾個功能組合成的復(fù)雜功能,增加了功能的同時也減少了原本需要多輛智能車才能實現(xiàn)同樣功能的使用。(2)能夠識別出相同語音信息指令的語音,更加的智能化。語音識別功能從單個固定的語音控制文本向多個相同含義語音控制文本發(fā)展,進一步發(fā)展成為只要是包含相同語音控制信息指令的語音都可以實現(xiàn)語音識別,實現(xiàn)更為智能化的語音識別功能。(3)采用各種新技術(shù)增強智能車的性能,例如使用物聯(lián)網(wǎng)技術(shù),控制多個智能車,系統(tǒng)性的分配智能車任務(wù),使得智能車可以更加高效的運行。2.3本設(shè)計方案思路本設(shè)計以實現(xiàn)語音控制智能車的運動和功能為主要目的;以語音識別,各個分系統(tǒng)通信和智能車運動和功能實現(xiàn)為主要的設(shè)計內(nèi)容。在語音識別方面開發(fā)安卓應(yīng)用程序,并設(shè)計信息處理功能和程序界面設(shè)計;在智能車運動方面,要解決智能車供電問題,電機的驅(qū)動問題,還要考慮到智能車速度控制的問題以及智能車系統(tǒng)中各種功能模塊不會產(chǎn)生很大的沖突;在多模塊共同工作問題的處理辦法上,對智能車系統(tǒng)再次進行分割,主要分為智能車運動系統(tǒng)和智能車控制與通信系統(tǒng),使用兩個單片機對應(yīng)負(fù)責(zé)這兩個系統(tǒng)(詳見第二章的硬件設(shè)計部分),對智能車系統(tǒng)進行功能上的劃分:單片機之間采用串口通信,單片機與安卓手機軟件采用藍牙通信。2.4研發(fā)內(nèi)容和技術(shù)關(guān)鍵(1)安卓手機軟件開發(fā);(2)手機軟件上語音識別與處理功能實現(xiàn);(3)智能車的運動及控制;(4)安卓手機軟件與智能車的數(shù)據(jù)通信。2.5主要功能要求(1)實現(xiàn)語音識別與控制功能(以下功能都是基于語音控制實現(xiàn));(2)智能車根據(jù)語音指令做到向左行駛、向右行駛、向前行駛和向后行駛;(3)實現(xiàn)智能車的速度控制功能;(4)實現(xiàn)小車的循跡功能,能夠自動防止撞到障礙物。3語音控制的智能車總體系統(tǒng)方案設(shè)計語音控制的智能車系統(tǒng)是通過語音的方式遠距離控制智能車運動與功能的系統(tǒng),主要分為語音識別與處理與智能車運動與控制部分,本章主要對整體方案進行初步的規(guī)劃、比較、論證。最終確立一種控制便捷、穩(wěn)定、語音識別率高的語音控制智能車的方案,滿足該設(shè)計的功能要求,并具有一定的自動化和智能化。3.1語音識別實現(xiàn)方案的擬定和比較語音識別是整個語音控制的智能車系統(tǒng)的關(guān)鍵所在,語音識別的成功率和正確率關(guān)系著控制智能車運動和功能的效果好壞,經(jīng)過閱讀相關(guān)文獻,目前有以下三種方案。方案一:采用凌陽16位SPCE061A語音控制單片機實現(xiàn)。在一塊單片機上同時實現(xiàn)語音識別功能和智能車的運動與控制系統(tǒng),性能強大,處理速度快,對于復(fù)雜的信號能夠在較短的的時間內(nèi)完成那處理,可以通過編程對音頻信號進行處理,實現(xiàn)語音識別的功能,是利用處理數(shù)字信號實現(xiàn)語音識別的一種比較好的選擇。方案二:采用MCS-51系列單片機實現(xiàn)。由于該系列單片機無法利用自身的芯片實現(xiàn)語音識別功能,但是可以與語音識別模塊連接通信后,對數(shù)據(jù)進行處理后實現(xiàn)自身所不具有的語音識別功能,因此需要利用外部模塊拓展功能,通常使用LD3320非特定人聲識別模塊,但這樣必然會造成端口的資源緊張,而且其他功能也會在語音識別過程中受到影響。由于語音識別和智能車運動與控制的一體化方案也就導(dǎo)致語音識別的正確率和識別效果會受到人聲在傳遞至智能車語音識別模塊衰減的影響,因此如果想達到比較好的控制效果,人與智能車的距離通常不能太遠,大大限制了智能車的功能運行,也使得控制智能車變得不便捷。方案三:使用安卓語音識別與處理軟件實現(xiàn)。如今手機的語音識別功能日漸強大,識別精度高,識別效果好,并采用藍牙與智能車進行通信和控制,相比較上面兩種方案語音控制的距離會更加的遠,識別的數(shù)量也會更多,也具有一定的可移植性,同時基于手機界面可實現(xiàn)一定的交互性,使得整個系統(tǒng)更具智能性,也更加符合本設(shè)計的需求。因此本設(shè)計采用安卓手機語音識別與處理實現(xiàn)語音識別并控制智能車運動與功能的方案。3.2智能車系統(tǒng)方案的擬定和比較方案一:使用STC89C52RC單片機實現(xiàn)。需要定時器中斷實現(xiàn)智能車的驅(qū)動電機,需要串口中斷和定時器中斷,串口與藍牙模塊連接實現(xiàn)與手機軟件的通信,還需要使用外部中斷及端口實現(xiàn)智能車的速度測量,使用的中斷較多而且中斷工作時由于存在中斷優(yōu)先級使得各個中斷間會有一定的影響。方案二:使用STC12C5A60S2單片機(簡稱STC12單片機)和STC89C52RC單片機(簡稱STC89單片機)實現(xiàn)。將智能車系統(tǒng)按功能分為兩個子系統(tǒng),STC12單片機負(fù)責(zé)智能車的通信和控制系統(tǒng),STC89單片機負(fù)責(zé)智能車的運動系統(tǒng)。利用STC12單片機的雙串口,智能車通信與控制系統(tǒng)的STC12單片機其中一個串口與藍牙模塊相連接,實現(xiàn)安卓手機的藍牙通信以及數(shù)據(jù)傳輸,STC12單片機的另一個串口和STC89單片機的串口相連接,實現(xiàn)智能車的通信與控制系統(tǒng)對智能車運動系統(tǒng)的通信與控制,并且將智能車系統(tǒng)的功能模塊,例如循跡模塊、測速模塊等等,與STC12單片機相連,實現(xiàn)基于智能車運動下的功能。將智能車功能中的運動功能和其他所需要的功能劃分開來,既使得各個模塊運行時降低相互間的影響,減少單片機的不斷中斷,也使得整個智能車的系統(tǒng)框架變得清晰。通過比較和驗證兩種方案,本設(shè)計選擇了方案二完成智能車系統(tǒng)中運動、控制、通信的實現(xiàn)。3.3語音控制智能車總系統(tǒng)方案的確定經(jīng)過比較與方案的驗證,最終確定語音控制的智能車的總體方案為:選擇語音識別方案中的方案一:開發(fā)安卓手機軟件作為客戶端,實現(xiàn)語音識別與處理,利用手機藍牙與智能車進行通信,完成數(shù)據(jù)傳輸和指令控制。選擇智能車系統(tǒng)方案中的方案二:智能車作為終端,使用STC12單片機作為智能車的總控制端和與安卓軟件通信端,并與STC89單片機進行通信,完成對應(yīng)的語音指令所需要的智能車運動。使用STC89單片機作為智能車的運動的控制端,負(fù)責(zé)智能車的運動。語音控制的智能車總系統(tǒng)框圖如圖3-1。圖3—1語音控制的智能車總系統(tǒng)框圖語音控制的智能車系統(tǒng)框圖如圖3—1所示,整個設(shè)計的設(shè)計思路是將整個系統(tǒng)按照功能進行劃分,大致思路是手機軟件進行語音識別,STC89單片機進行智能車的各種運動功能,STC12單片機負(fù)責(zé)數(shù)據(jù)的收集和通信,也就是作為智能車的總控制系統(tǒng),主要接收手機傳來的控制指令,并下達指令給STC89單片機,完成整個過程的控制。因此有兩個通信過程,兩個單片機使用串口通信,STC12單片機則進行遠距離通信。整個語音控制的智能車系統(tǒng)分為客戶端和終端兩個部分??蛻舳酥饕M行數(shù)據(jù)的收發(fā)處理,語音識別,并將信息顯示在手機界面上,終端包含智能車通信與控制系統(tǒng)和智能車運動系統(tǒng),智能車通信與控制系統(tǒng)主要的模塊有:數(shù)碼管模塊、測速模塊、藍牙無線通信模塊。智能車運動系統(tǒng)的主要模塊有:數(shù)碼管模塊、循跡模塊、避障模塊、L298N電機驅(qū)動模塊、電機模塊、電源模塊。主要的通信過程:STC12單片機實時監(jiān)測智能車速度,并發(fā)送至客戶端,手機與STC12單片機進行語音控制指令通信,STC12單片機對語音指令信息進行處理后對STC89單片機下達智能車所需要的運動控制指令,完成相應(yīng)的功能,從而實現(xiàn)語音控制的智能車過程。首先安卓手機軟件為客戶端,主要負(fù)責(zé)的功能:(1)基于安卓手機系統(tǒng)語音識別引擎實現(xiàn)語音識別功能;(2)基于安卓手機藍牙實現(xiàn)數(shù)據(jù)的接收和發(fā)送;(3)基于開發(fā)安卓手機軟件對各種數(shù)據(jù)進行處理,利用手機界面實現(xiàn)交互功能。智能車為終端,智能車系統(tǒng)包含兩個分系統(tǒng)(智能車系統(tǒng)中硬件的連接詳見第四章硬件設(shè)計部分,智能車語音控制與處理系統(tǒng)中軟件流程與邏輯詳見第五章軟件設(shè)計部分)。智能車通信與控制系統(tǒng)主要負(fù)責(zé)的功能:(1)智能車與安卓手機軟件基于藍牙的數(shù)據(jù)通信控制功能;(2)STC12單片機和STC89單片機基于單片機串口通信控制功能;(3)智能車測速功能;(4)智能車速度顯示功能智能車運動系統(tǒng)主要負(fù)責(zé)的功能:(1)智能車的直行、退后、左轉(zhuǎn)、右轉(zhuǎn)、停止;(2)智能車速度控制;(3)智能車循跡功能;(4)智能車避障功能;(5)智能車狀態(tài)顯示功能。4語音控制智能車硬件系統(tǒng)設(shè)計4.1語音控制的智能車的硬件組成本設(shè)計所用到的硬件主要包括:STC89C52RC單片機、STC12C5A60S2單片機、小車底盤(小車底盤包括直流減速電機、小車輪胎、電源供電系統(tǒng))、L298N電機驅(qū)動模塊、速度測量模塊、紅外避障模塊、數(shù)碼管顯示模塊、循跡模塊、藍牙通信模塊。硬件系統(tǒng)框圖如圖4—1所示。圖4—1硬件系統(tǒng)框圖STC12單片機的串口2連接藍牙模塊,串口1與STC89的串口相連,測速模塊使用外部中斷的引腳,實現(xiàn)計數(shù),并連接數(shù)碼管模塊,用于速度值的顯示。STC89與L298N電機驅(qū)動模塊連接,電機驅(qū)動模塊連接電機,STC89單片機輸出PWM(Pulsewidthmodulation,脈沖寬度調(diào)制)波對智能車速度進行控制。STC89連接循跡模塊、避障模塊、數(shù)碼管模塊,其中數(shù)碼管模塊用于負(fù)責(zé)智能車的狀態(tài)顯示(功能模塊具體實現(xiàn)詳見第五章軟件設(shè)計)。電源模塊對兩個單片機板進行供電。4.2智能車運動控制芯片STC89C52RCSTC89C52RC單片機是一款在消耗電量十分低的情況下同時有著較強性能的一款8位的微控制器,相比較與傳統(tǒng)的51單片機,STC89C52RC單片機做了很多的改進,在程序的存儲空間和數(shù)據(jù)的存儲空間都得到了增強,也可以稱為性能增強的芯片是8051的單片機,并且通過編程實現(xiàn)功能的代碼同樣也可以用在8051的單片機上,這些改進的地方都使得在嵌入式控制系統(tǒng)的應(yīng)用中提供了更多的幫助和解決方法。具有以下的特點:STC89C52RC單片機有三個定時器,相比較STC89C51單片機(簡稱51單片機)多出來一個定時器T2,EEPROM的存儲空間為4K字節(jié),數(shù)據(jù)的存儲空間為512字節(jié),程序的存儲空間為8K字節(jié)。STC89C52RC單片機還有一個雙全工的串口,可以用來串口通信,也可以利用其進行燒錄程序,并且STC89C52RC單片機還具有空閑模式,微處理器不工作,而繼續(xù)工作的有計數(shù)器,也可以讓串口工作。STC89C52RC芯片引腳圖如圖4—2所示。圖4—2STC89C52RC芯片引腳圖4.3智能車通信與控制芯片STC12C5A60S2STC12C5A60S2單片機可以在復(fù)雜環(huán)境下保證程序的正常運行,也可以十分快速的處理所需要的接受到的信號,同時保證耗電量在一個非常低的水平。在STC12C5A60S2單片機上所實現(xiàn)的功能所需要的運行的代碼程序同樣也可以在一般的51單片機上進行稍微的適配后運行實現(xiàn)相同的功能,同時速度可以達到一般的51單片機的10倍左右,STC12C5A60S2單片機(簡稱STC12單片機)一共有4個定時器,定時器的位數(shù)是16,。和STC89C52RC單片機有所不同之處,STC12單片機只有T0、T1兩個定時器,定時器的位數(shù)是16,沒有T2定時器,同時2路PCA(Programmable?Counter?Array,可編程計數(shù)陣列)模塊進行寄存器的配置后也可以實現(xiàn)兩個定時器,定時器的位數(shù)是16,共計四個定時器。雖然少了一個定時器,沒有辦法利用這個少的作為波特率發(fā)生器,但是STC12單片機擁有一個波特率發(fā)生器,而且是進行編程后可以自己單獨工作的,在進行串口通信時,作波特率發(fā)生器。STC12單片機的有兩路PCA,也可以作為2路PWM波輸出,也可以配置寄存器后等同于兩個定時器,也可以進行寄存器配制后等同于兩個外部中斷,在做外部中斷時,會出現(xiàn)外部中斷信號由低電平變成高電平的中斷和外部中斷信號由高電平變成低電平的中斷,這兩種中斷PCA在進行寄存器配制后都是可以識別出來的,方便使用者編程,也可以當(dāng)作兩路D/A使用。STC12單片機也有只用于A/D轉(zhuǎn)換的電路,電路一共有8路,ADC所能到達的精度高達10位,并且轉(zhuǎn)換速度也十分的快。STC12單片機具有一個串口,工作方式是全雙工異步通信,因為STC12單片機是高速的單片機,所以只要處理速度足夠快,可以利用定時器進行適當(dāng)?shù)目刂茖崿F(xiàn)許多的串口。晶振選擇:由于語音控制的智能車系統(tǒng)是通過串口和藍牙通信,藍牙模塊和安卓手機軟件遠距離無線通信,因此在波特率的設(shè)置中,為了有更好的通信效果,產(chǎn)生較少的波特率誤差,需要產(chǎn)生波特率,這時候就要定時器進行配合和設(shè)置。而定時器的效果和單片機的晶振有關(guān),如果采用12M的晶振,然后用定時器配置出9600的波特率,計算得出的誤差會比較大,但如果選擇11.0592M的晶振,則基本上沒有誤差。因此選擇的單片機板晶振都為11.0592M。4.4電機驅(qū)動L298N模塊L298N模塊是可以實現(xiàn)電機驅(qū)動的功能,驅(qū)動的電機是直流環(huán)境下進行工作使用的芯片是L298N芯片,利用兩個H形狀的類似于橋的電路形成的芯片,用于將直流電機進行工作,驅(qū)動板大概重33g。L298N的實物圖如圖4—3所示。使用說明:首先介紹一下驅(qū)動板主要的使用方法,L298N驅(qū)動板可以驅(qū)動直流電機,可以驅(qū)動一個直流電機,也可以再增加一個直流電機,兩個電機互相不會影響不過此時的使能端ENA、ENB必須為高電平,否則驅(qū)動板則不會正常工作,也沒有能力使得直流電機工作。L298N電機驅(qū)動板電路原理圖如圖4—4所示,控制與電機狀態(tài)表如表4-1所示。直流電機的驅(qū)動:該驅(qū)動板可驅(qū)動兩路直流電機,使能端ENA、ENB為高電平時有效,控制方式及直流電機狀態(tài)圖所示。因為兩路的驅(qū)動方式都是相同的,因此講述一邊的控制方式,首先驅(qū)動板正常工作需要使能端為高電平,此時控制端口IN1、IN2才能夠正常工作,IN1、IN2相當(dāng)于控制電機的兩個引腳為高電平還是低電平,例如ENA為高電平,IN1為高電平,IN2為低電平時,并且電機和驅(qū)動板連接好后,電機便會反轉(zhuǎn),同樣的另一邊的電機也可以根據(jù)這種控制方式實現(xiàn)電機的正轉(zhuǎn)等狀態(tài),通過兩個電機的配合實現(xiàn)智能車的向各個方向的運動。如果要對直流電機的轉(zhuǎn)速可以發(fā)生改變,即利用PWM進行控制智能車單位時間所行駛的距離,可以對改變電機的控制端的狀態(tài),對IN1、IN2進行設(shè)置,清楚每一個狀態(tài)下電機會往對應(yīng)狀態(tài)下的轉(zhuǎn)動的方向,然后在使能端,也就是ENA處,將單片機產(chǎn)生的PWM脈沖輸入進去,從而實現(xiàn)電機工作時間的改變、電機轉(zhuǎn)速的改變、智能車速度的改變。圖4—3L298N電機驅(qū)動板實物圖圖4—4L298N電機驅(qū)動板電路原理圖表4—1控制與電機狀態(tài)表4.5測速模塊SD-1/2測速傳感器是利用檢測紅外射線中斷,根據(jù)檢測到的不同狀態(tài),從而決定輸出高電平還是低電平,當(dāng)檢測到障礙物時,輸出電平信號為高,沒有檢測到妨礙紅外射線傳播的物體,或者檢測范圍內(nèi)沒有檢測到妨礙紅外射線傳播的物體時,在電路工作和處理后輸出電平信號為低。同時測速模塊還有LED(light-emittingdiode,發(fā)光二極管)的顯示功能,當(dāng)檢測到紅外射線中斷,LED指示燈會熄滅,當(dāng)檢測到紅外射線正常傳播時,LED指示燈會亮,方便使用者的調(diào)試。本設(shè)計使用測速模塊經(jīng)過對數(shù)據(jù)處理后,能夠得到智能車的速度數(shù)據(jù),對于使用者能都更為清楚的知道對于智能車的速度控制效果,本設(shè)計使用該模塊既增加了該設(shè)計的功能,也使得智能車的速度控制得到反饋,使得控制效果更好。SD-1/2測速傳感器實物圖如圖4—5所示,SD-1/2測速傳感器電路原理圖如圖4-6所示。圖4—5SD-1/2測速傳感器實物圖圖4—6SD-1/2測速傳感器電路原理圖4.6藍牙通信模塊概述:DX-BT04-A藍牙模塊工作時所需要的電量較少的優(yōu)點,而且能夠快速的接收和發(fā)送信號,十分的靈敏,只需要一些簡單的器件組合便可以充分發(fā)揮功能,操作起來也十分的簡單便捷。通過藍牙通信模塊,利用其可以進行無線通信的優(yōu)勢完成STC12單片機和手機軟件的通信,既保證了語音識別后指令的正??刂?,還擴大了語音控制的的范圍,本設(shè)計使用該模塊后充分發(fā)揮無線通信的優(yōu)點,使得整個設(shè)計突出可遠距離控制的優(yōu)勢。藍牙通信模塊實物圖如圖4—7所示,應(yīng)用電路圖如圖4—8所示。圖4—7藍牙通信模塊實物圖圖4—8應(yīng)用電路圖5軟件設(shè)計因為本設(shè)計方案選擇的是單片機板和安卓手機軟件組合設(shè)計和實現(xiàn)語音控制的智能車,并且使用了兩塊單片機板,因此本章節(jié)主要講述兩個單片機系統(tǒng)的軟件設(shè)計以及開發(fā)安卓軟件的軟件設(shè)計。首先介紹一下單片機代碼編程軟件和安卓開發(fā)環(huán)境,然后開始介紹終端中智能車通信控制系統(tǒng)的軟件設(shè)計、智能車運動系統(tǒng)的軟件設(shè)計和客戶端中安卓手機軟件的系統(tǒng)設(shè)計,最后詳細(xì)講述上述三個系統(tǒng)中主要程序的邏輯與設(shè)計。5.1編程軟件介紹5.1.1開發(fā)軟件KeiluVision5與STC-ISP的介紹本次畢業(yè)設(shè)計所需要的智能車系統(tǒng)的程序開發(fā)需要進行軟件編程,因此需要一款功能強大,簡潔好用的開發(fā)軟件,而所編寫的代碼基本上是用的C語言,因此使用Keil軟件,并且使用的是C51的版本,同時在代碼編寫完成后,需要另一款軟件將程序燒錄進單片機中,從而讓單片機按照所編寫的程序進行工作運行,實現(xiàn)所需要的功能,因此選擇了STC-ISP軟件。接下來對這兩個軟件做一個簡單的介紹。系統(tǒng)概述:KeilC51擁有著十分強大的功能,而且功能的種類也十分多,還有這各種各樣的函數(shù)組成的庫,并著有著優(yōu)秀的界面,使得在操作上基本上和操作電腦界面一樣,成為了現(xiàn)在單片機開發(fā)時需要對代碼進行編程的使用最多的代碼編寫軟件。KeilC51運行是需要合適的開發(fā)環(huán)境的,需要在Windows系統(tǒng)上安裝軟件并進行相應(yīng)的配置,軟件中代碼的編寫主要是通過.c文件實現(xiàn)的,我們建立一個.c文件后在該文件中將我們寫的代碼進行編譯,經(jīng)過軟件一系列的處理,看是否有錯誤,在沒有錯誤之后會提示我們,之后如果我們想驗證代碼的正確與否,可以使用軟件的調(diào)試功能,或者生成.hex文件,利用程序燒寫程序,將生成的.hex文件下載到單片機上。該軟件因為使用的是C語言的編程,利用C語言的優(yōu)點,可以有許多的函數(shù)可以使用,實現(xiàn)各種各樣的功能,而且還因為C語言有著很好的可以在其他地方稍作修改就可以使用的特點,使得這個軟件成為非常適合編寫代碼并且有一定的糾錯和調(diào)試的軟件。STC-ISP軟件的主要作用是將單片機代碼編寫軟件編寫好的對應(yīng)程序下載到單片機上,是專門開發(fā)出來的軟件,為了讓STC系列的單片機可以進行程序文件的燒錄,基本上只要是STC單片機,該軟件都可以正常工作,并且操作也不復(fù)雜,下載的流程也十分的簡單,成為開發(fā)者的主要的使用的軟件。STC-ISP的軟件操作界面如圖5—1所示。圖5—1軟件操作界面圖5.1.2安卓開發(fā)編程環(huán)境在安卓開發(fā)的編程環(huán)境中,我選擇了MIT開發(fā)的圖形化編程軟件APPInventor2。作為AppInventor新版本的APPInventor2,完全基于瀏覽器,開發(fā)者除了瀏覽器不需要額外安裝任何軟件。圖形化的界面、云積木的方式,使得安卓軟件開發(fā)變得便利簡單,使用起來也不會有太大的難度,做出的功能也能夠滿足基本的設(shè)計要求,而且網(wǎng)站上也具有調(diào)試功能,通過安裝調(diào)試助手,將開發(fā)的程序運行在調(diào)試助手上,省去了每次都要將程序打包,安裝,再進行驗證調(diào)試的步驟,而且也能實時的報錯提示,對開發(fā)者找到軟件的錯誤所在提供了幫助。5.2智能車通信與控制系統(tǒng)軟件設(shè)計智能車通信與控制系統(tǒng)是基于STC12單片機實現(xiàn),因此該系統(tǒng)設(shè)計的主程序是完成STC12單片機與STC89單片機的串口通信、STC12單片機與手機軟件通信和實現(xiàn)使用智能車的功能模塊:測速模塊、數(shù)碼管顯示模塊、紅外避障模塊和循跡模塊。5.2.1工作流程圖5—2STC12單片機系統(tǒng)流程圖STC12單片機系統(tǒng)流程圖如圖5—2所示。STC12單片機板上電啟動后,首先對測速功能、兩個串口通信功能所需要的中斷和一些定時器以及寄存器進行配置和初始化,等待手機連接上單片機板上的藍牙,建立起通信后,開始接收測速模塊的速度數(shù)據(jù)信息顯示在數(shù)碼管上,并通過藍牙發(fā)送速度數(shù)據(jù)信息至手機,并時刻監(jiān)測并驗證是否手機發(fā)來的指令信息是否正確,當(dāng)接受到正確的指令信息時,單片機會根據(jù)程序中的狀態(tài)機機制將發(fā)送對應(yīng)指令信息的控制指令至STC89單片機板,并回復(fù)客戶端對應(yīng)指令操作已完成。如果所接收到的控制指令需要小車的一些信息,便會發(fā)送相關(guān)數(shù)據(jù),如進行速度設(shè)置后需要將目前速度值發(fā)送至客戶端,該系統(tǒng)會發(fā)送當(dāng)前速度設(shè)置值。5.2.2串口通信和藍牙串口通信軟件設(shè)計因為STC12單片機有兩個串口,可用于藍牙通信以及和STC89單片機的串口通信,首先對串口所需要的波特率進行配置和初始化,利用單片機上的獨立波特率發(fā)生器作為波特率的發(fā)生器,兩個串口可使用同一個波特率,串口初始化程序如下:對于數(shù)據(jù)處理,在串口2中斷中進行數(shù)據(jù)的接收,設(shè)置每一次接收到的指令字節(jié)為3,并判斷接受的數(shù)據(jù)是否正確,如果正確,則保存至字符串?dāng)?shù)組,并將設(shè)置接收完畢標(biāo)志位和接收正確標(biāo)志位,串口中斷數(shù)據(jù)接收判斷程序如下:5.2.3速度測量功能設(shè)計為了能夠得知智能車的速度,以便我們更好的控制智能車的速度,利用速度測量模塊和固定在電機上并隨之同步運動的碼盤,電機每轉(zhuǎn)一圈,測量模塊輸出20個低電平信號,利用STC12單片機設(shè)置單位時間為1s,獲得接收到的脈沖信號個數(shù)以及利用輪胎的周長,經(jīng)過計算得出1s內(nèi)智能車行駛的路程,從而得到智能車的速度相關(guān)數(shù)據(jù)。定時器和外部中斷設(shè)置程序如下:5.3智能車運動系統(tǒng)軟件設(shè)計5.3.1工作流程STC89單片機板上電啟動后,首先對PWM波速度控制功能,串口通信功能所需要的中斷和一些定時器以及寄存器進行配置和初始化,并設(shè)置一些數(shù)據(jù)的初始值,如智能車的速度、當(dāng)前智能車的狀態(tài)。建立起和STC12單片機板的通信后,智能車處于停止?fàn)顟B(tài),等待STC12單片機板發(fā)送控制指令,接收到指令后,利用程序中的狀態(tài)機機制,完成對應(yīng)功能,如前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、循跡功能、速度控制功能和避障功能,并在數(shù)碼管上顯示不同的數(shù)字代表處于不同的狀態(tài)下。STC89單片機系統(tǒng)流程圖如圖5—3所示。圖5—3STC89單片機系統(tǒng)流程圖5.3.2電機驅(qū)動與速度控制設(shè)計因為L298N電機驅(qū)動模塊(簡稱驅(qū)動板)有A、B通道使能端(簡稱使能端)和四個單片機IO控制輸入端(簡稱輸入端),只有兩個使能端為高電平時,驅(qū)動板才可以通過輸出端口驅(qū)動兩路的直流電機,因此對于速度的控制有兩種方案:第一種方案是STC89單片機輸出四路PWM波輸出至驅(qū)動板的輸入端,第二種方案是STC89單片機輸出兩路PWM波輸出至驅(qū)動板的使能端。第二種方案僅僅需要兩路PWM波便可以實現(xiàn)對智能車速度控制,因此選擇方案二實現(xiàn)速度控制。PWM波輸出實現(xiàn)程序如下:首先利用對定時器進行初始化,設(shè)置每1ms進行一次定時器中斷,在定時器中斷程序中對定時器的寄存器再次重新賦值再次開始計時,并記錄中斷次數(shù),通過中斷次數(shù)的處理獲得更為準(zhǔn)確并且足夠長的時間,從而實現(xiàn)PWM波的周期、占空比的設(shè)置。速度控制程序如下(左右電機速度控制程序基本相同,只需要介紹一個程序):程序說明:通過設(shè)置20ms周期的時間,即定時器1ms的中斷次數(shù)為20次時,將次數(shù)賦值為0,重新計數(shù),我們通過調(diào)節(jié)占空比(push_val_right),當(dāng)中斷次數(shù)小于或等于控制占空比的變量值時,使得控制右電機的使能端為高電平,當(dāng)中斷次數(shù)大于控制占空比的變量值時,使得控制右電機的使能端為低電平,從而控制驅(qū)動板的電機驅(qū)動是否工作,從而實現(xiàn)PWM波的輸出,并利用驅(qū)動板的四個輸入端實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)、停止,通過左右電機的配合實現(xiàn)智能車的左右轉(zhuǎn)、直行和停止,并調(diào)節(jié)PWM波的占空比,實現(xiàn)控制電機一個工作周期內(nèi)的工作時間,從而實現(xiàn)對智能車的速度控制。5.4安卓手機軟件系統(tǒng)設(shè)計5.4.1工作流程手機軟件流程圖如圖5—4所示,手機客戶端主界面如圖5—5所示,手動模式界面圖如圖5—6所示。圖5—4手機軟件流程圖首先等待藍牙連接按鈕按下,選擇連接的藍牙,連接成功后會在界面上顯示藍牙的信息以及連接成功的提示,接收到STC12單片機上藍牙模塊發(fā)送來的智能車速度數(shù)據(jù)進行處理并顯示在客戶端界面上,當(dāng)開始按鍵按下,調(diào)用語音識別等待語音識別結(jié)束后,分析處理語音信息,利用藍牙發(fā)送對應(yīng)的指令數(shù)據(jù),接收處理智能車回復(fù)的數(shù)據(jù)并顯示在客戶端對應(yīng)界面上,當(dāng)手動模式按鈕按下時,會換到界面2,顯示手動模式下的按鈕,(與智能車的通信會中斷一下后自動重新連接)相應(yīng)指令按下后發(fā)送對應(yīng)指令至智能車,實現(xiàn)智能車手動按鈕控制,按返回按鈕回到主界面。手機客戶端主界面主要分為四個區(qū)域:藍牙連接與斷開區(qū)、藍牙信息顯示區(qū)、速度顯示與速度手動控制區(qū)、用戶交互與通信區(qū)、功能區(qū)。藍牙連接與斷開區(qū)負(fù)責(zé)手機藍牙與智能車系統(tǒng)上藍牙模塊的連接與斷開,并在藍牙信息顯示區(qū)顯示藍牙信息及是否連接成功提示??赏ㄟ^調(diào)節(jié)速度顯示與速度手動控制區(qū)的水平滑動條,根據(jù)滑塊所在位置設(shè)置智能車不同的速度檔位,接受到智能車系統(tǒng)發(fā)來的相關(guān)速度數(shù)據(jù),安卓手機進行處理后,換算成智能車的速度數(shù)據(jù),在速度顯示與速度手動控制區(qū)中顯示。用戶交互和通信區(qū)則負(fù)責(zé)實現(xiàn)交互信息的顯示以及顯示智能車系統(tǒng)發(fā)送過來的數(shù)據(jù),也方便了后續(xù)的調(diào)試,在與智能車建立起藍牙通信后,便會在用戶交互和通信區(qū)提示用戶可選用的功能,即對智能車的速度控制、循跡模式以及運動控制,用戶可以點擊功能區(qū)的開始按鈕進行語音指令輸入,也會顯示智能車發(fā)送過來的通信數(shù)據(jù)。最后的功能區(qū)主要包含兩個功能:語音識別功能和手動遙控智能車功能,當(dāng)開始按鈕按下,啟動語音識別功能,根據(jù)語音指令調(diào)用不同的功能,并將語音信息顯示在用戶交互與功能區(qū),當(dāng)手動模式按鈕按下時則會跳轉(zhuǎn)到界面2,即手動模式界面,在手動模式界面中主要為三個區(qū):返回區(qū)、藍牙信息區(qū)和手動控制區(qū)。在返回區(qū)中主要負(fù)責(zé)退出手動控制智能車功能,返回主界面。當(dāng)返回按鈕按下時,返回主界面,退出手動控制智能車功能。藍牙信息區(qū)負(fù)責(zé)顯示藍牙信息和提示是否連接藍牙成功。手動控制區(qū)主要包括五個按鈕,負(fù)責(zé)智能車的運動控制,按下按鈕后便會通過藍牙通信發(fā)送對應(yīng)的控制指令,實現(xiàn)遠程手動控制智能車。圖5—5手機客戶端主界面圖圖5—6手動模式界面圖5.4.2藍牙連接程序設(shè)計主要程序如下:圖5—7藍牙連接程序頁面一程序說明:當(dāng)點擊連接按鈕時,會獲取手機的藍牙列表供我們選擇,當(dāng)選擇完成,并成功連接時會提示我們連接成功,否則則會提示連接失敗,連接成功后會將所連接的藍牙保存至微數(shù)據(jù)庫,方便下次連接,并且顯示該藍牙相關(guān)信息,運行主界面函數(shù),提示用戶可以選擇的功能。5.4.3語音識別程序設(shè)計主要程序如下:圖5—8藍牙連接程序頁面二圖5—9藍牙連接程序頁面三程序說明:當(dāng)開始按鈕按下時,調(diào)用語音識別器識別語音,識別結(jié)束時調(diào)用功能函數(shù),例如前進函數(shù)中,判斷語音識別器的識別結(jié)果是否為前進或者向前,如果是則調(diào)用藍牙發(fā)送控制文本。5.4.4手動功能程序設(shè)計因為通過語音控制智能車有時候確實很方便,但需要一段時間進行語音識別的處理,因此添加了一個附加功能,基于藍牙實現(xiàn)手動操控智能車,從而實現(xiàn)基本上較為精準(zhǔn)的智能車控制。但實現(xiàn)遙控智能車需要一個手動功能的界面設(shè)計,此時出現(xiàn)了一個問題,在界面的轉(zhuǎn)換時,手機與智能車的藍牙連接會中斷,因此需要解決界面變換時智能車與手機的藍牙通信問題。實現(xiàn)方法:在藍牙連接程序設(shè)計中,將藍牙的信息保存在了微數(shù)據(jù)庫中,所以可以利用微數(shù)據(jù)庫存儲的藍牙信息,直接選擇后連接,從而省去了再次進行選擇藍牙,再次連接藍牙的重復(fù)操作,避免了客戶端的重復(fù)操作。具體程序如下:圖5—10藍牙連接程序頁面四程序說明:當(dāng)跳轉(zhuǎn)到界面2后,對界面2進行初始化,調(diào)用藍牙連接微數(shù)據(jù)庫中存儲的藍牙信息,如果連接成功設(shè)置連接區(qū)的文本為藍牙相關(guān)信息,當(dāng)返回按鈕按下時則關(guān)閉界面2返回主界面,當(dāng)前進按鈕按下時則調(diào)用藍牙發(fā)送對應(yīng)的控制文本。6制作與調(diào)試 6.1硬件系統(tǒng)的連接與調(diào)試6.1.1總體特點該系統(tǒng)所涉及的各部分硬件電路,總體的特點是:(1)電路原理簡單,所用的器件均為模塊化器件。(2)由于使用了兩塊單片機板,因此分別對兩塊單片機板分別進行調(diào)試,等兩快單片機板的功能都基本實現(xiàn)時再進行組裝進行整體調(diào)試,同時模塊和單片機板之間大多使用杜邦線進行連接,要注意連接線是否損壞,影響調(diào)試結(jié)果判斷錯誤。6.1.2系統(tǒng)劃分為方便調(diào)試,把智能車系統(tǒng)劃按單片機板分成兩組:(1)STC89單片機板構(gòu)成的智能車運動系統(tǒng)一組;(2)STC12單片機板構(gòu)成的智能車通信與控制系統(tǒng)為一組;6.1.3連接連接前根據(jù)各個模塊的數(shù)據(jù)手冊以及模塊上的引腳說明,對照著程序上所設(shè)定的對應(yīng)的各個模塊的引腳接口,進行各個模塊的鏈接,并按照下面所說的基本原則進行連接:(1)按模塊一個個進行連接,首先連接模塊的供電端和地端,這樣保證各模塊不會因為接反造成損壞和有正確的工作電壓,然后按照單片機手冊和各模塊手冊連接各個引腳;(2)模塊連接好后仔細(xì)檢查一遍,再給單片機上電,防止因為疏忽造成模塊甚至是單片機損壞,并對連接最終結(jié)果進行記錄,這樣再接下來需要重新連接時節(jié)約大量時間,也可以降低出錯率。6.2調(diào)試(1)對于單片機板的調(diào)試,應(yīng)充分利用串口,將單片機和電腦連接后,打開我們所使用的燒錄軟件,利用它可以和單片機進行串口通信的功能實現(xiàn)串口通信,將程序調(diào)試信息輸出在電腦屏幕上,也可以用串口調(diào)試助手模擬指令的發(fā)送和數(shù)據(jù)的接收,分析并驗證程序是否正確。在兩塊單片機板都完成調(diào)試后,將兩塊單片機板連接后進行整體調(diào)試,同樣利用電腦串口助手和部分調(diào)試程序編寫,驗證兩塊單片機板間的通信控制是否正常。(2)對于手機軟件程序的調(diào)試,利用手機調(diào)試助手,將開發(fā)的軟件運行,利用自帶的報錯提示,并利用手機界面,將所需要驗證的信息顯示在手機界面上,從而實現(xiàn)程序的調(diào)試。(3)最終將三個系統(tǒng)進行最后的調(diào)試,在經(jīng)過前兩個的調(diào)試后,首先進行STC12單片機和手機軟件間的獨立調(diào)試,也可以利用STC12的雙串口,一個與電腦通信,將單片機板的調(diào)試信息顯示,利用手機界面和自帶的報錯提示,將手機軟件的調(diào)試信息顯示在手機界面上。實現(xiàn)通信和控制后,將三個系統(tǒng)進行最后的整體調(diào)試,驗證通信和功能的正常工作。7結(jié)論本設(shè)計方案達到了任務(wù)書的要求,設(shè)計并實現(xiàn)了語音控制的智能車,實現(xiàn)了較為完整的語音控制智能車系統(tǒng)的運動和功能:(1)實現(xiàn)了較為準(zhǔn)確的語音識別功能,能夠識別多條指令,并且能控制智能車的運動狀態(tài)和功能設(shè)置;(2)經(jīng)過調(diào)試,實現(xiàn)智能車的直行、退后、左轉(zhuǎn)、右轉(zhuǎn)、停止等運動功能;(3)實現(xiàn)智能車的沿著特定路線行駛的功能和自動避障功能;(4)實現(xiàn)對智能車的速度測量和速度控制,并顯示在客戶端界面上。因為時間有限,并且自己的水平也不是非常高,在實現(xiàn)過程中碰到了許多困難,但也積累了許多經(jīng)驗,因此在語音識別功能中,在語音識別指令的數(shù)量上和在使用語音識別功能時不受外部環(huán)境的影響上仍然需要進行加強,還有著可以繼續(xù)優(yōu)化的地方,實現(xiàn)識別更多的語音指令,增強復(fù)雜環(huán)境下語音識別抗干擾能力。另外在這個系統(tǒng)的進一步的完善和代碼的優(yōu)化方面,由于時間和設(shè)備的原因
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同補償協(xié)議
- 金屬制作合同范本
- 鐵管購買合同范本
- 金錠采購合同范本
- 鋼筋加工合同范本
- 內(nèi)墻粉刷協(xié)議合同
- 鐵藝工程合同范本
- 探店營銷合同范本
- 承建房屋合同范本
- 意向資金合同范本
- 中石油安全培訓(xùn)文件課件
- 青少年非自殺性自傷的護理
- 數(shù)字孿生水利信息化建設(shè)方案
- 《嵌入式實驗與實踐教程-基于STM32與Proteus》課件-第三章
- 《嵌入式實驗與實踐教程-基于STM32與Proteus》課件-第四章
- 2025四川瀘州納溪城鄉(xiāng)建設(shè)發(fā)展集團有限公司招聘補充考試參考試題及答案解析
- 《管理學(xué)》(第二版)課件全套 高教版馬工程 第0-16章 緒論 - 組織變革與創(chuàng)新
- 2025年衛(wèi)生高級職稱面審答辯(中醫(yī)內(nèi)科)在線題庫(副高面審)練習(xí)題及答案
- 2025年醫(yī)學(xué)人文試題題庫及答案
- 無人機管理平臺建設(shè)方案
- 統(tǒng)編版(2024)八年級上冊歷史第一、二單元綜合評估測試卷(含答案)
評論
0/150
提交評論