畢業(yè)論文-語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)論文-語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)論文-語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)論文-語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)論文-語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

大連東軟信息學(xué)院高職畢業(yè)設(shè)計(jì)(論文)論文題目論文題目:語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)系所:電子工程系專業(yè):嵌入式系統(tǒng)工程學(xué)生姓名:學(xué)生學(xué)號(hào):指導(dǎo)教師:導(dǎo)師職稱:講師完成日期:2014年4月25日大連東軟信息學(xué)院DalianNeusoftUniversityofInformation大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)摘要IV語音導(dǎo)游機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)摘要自主反應(yīng)式智能系統(tǒng)是一種應(yīng)用廣泛的控制系統(tǒng)。對(duì)電路的分析和驗(yàn)證工作依靠智能化來完成,效率高。因此它的研究與開發(fā)是一項(xiàng)非常有意義的工作。本系統(tǒng)采用STC89C52RC作為主控制芯片,采用L298N芯片作為直流電機(jī)驅(qū)動(dòng)器,通過改變單片機(jī)產(chǎn)生的PWM方波占空比,來控制智能機(jī)器人的速度。除此之外機(jī)器人導(dǎo)游的運(yùn)行狀態(tài)和旅游景點(diǎn)溫度值都可以通過LCD1602顯示器進(jìn)行顯示。機(jī)器人還安裝了紅外接收模塊和語音模塊,可以通過紅外遙控器對(duì)機(jī)器人隨時(shí)進(jìn)行控制,并且語音模塊會(huì)按照指令播報(bào)導(dǎo)游詞。四者的結(jié)合使機(jī)器人更加智能化,自動(dòng)化。整個(gè)系統(tǒng)在設(shè)計(jì)中注意低功耗處理和力求高性價(jià)比等細(xì)節(jié),電路結(jié)構(gòu)簡(jiǎn)單,可靠性高,無論在結(jié)構(gòu)和技術(shù)上都具有較好的科學(xué)性。關(guān)鍵詞:?jiǎn)纹瑱C(jī),語音模塊,紅外遙控,導(dǎo)游機(jī)器人大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)AbstractDesignandImplementationofVoiceIntelligentRobotAbstractSelf-reactiveintelligencesystemisawidelyusedcontrolsystems.Analysisandverificationofcircuitsrelyintelligenttocomplete,highefficiency.Soitisaverymeaningfulresearchanddevelopmentwork.ThesystemusesAT89S52asthemaincontrolchip,usingL298NchipastheDCmotordrives,bychangingthePWMdutycycleofthesquarewavegeneratedbythemicrocontrollertocontrolthespeedofintelligentrobots.Inadditiontorunningtherobotandattractionstemperaturevalues??canbedisplayedguidedbyLCD1602Monitor.Robotsalsoinstalledinfraredreceivermoduleandvoicemodule,infraredremotecontrolcancontroltherobotatanytime,andvoicemodulewillfollowtheinstructionguidewordsbroadcast.Thefourcombinedtomakemoreintelligentroboticsandautomation.Notethattheentiresystemisalow-powerprocessing,andstrivetohighcostandotherdetailsinthedesign,simplecircuitstructure,betterstabilityandcapability,bothinstructureandtechnicallyhaveabetterscientific.Keywords:Microcontroller,Voicemodule,Infraredremotecontrol,GuidedRobotics大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)目錄目錄TOC\o"1-3"\u摘要 IAbstract II第1章項(xiàng)目概述 11.1項(xiàng)目背景 11.2項(xiàng)目簡(jiǎn)介 11.3應(yīng)用范圍 1第2章項(xiàng)目實(shí)施方案 22.1概述 22.1.1設(shè)計(jì)主要內(nèi)容 22.1.2主要器件選擇 22.2開發(fā)環(huán)境 32.3硬件設(shè)計(jì) 32.3.1硬件系統(tǒng)框圖 32.3.2原理圖設(shè)計(jì) 32.4軟件設(shè)計(jì) 132.4.1軟件主流程圖 132.4.2紅外解碼模塊子流程圖 152.4.3溫度測(cè)量模塊子流程圖 16第3章項(xiàng)目實(shí)施過程 173.1硬件實(shí)現(xiàn)過程 173.1.1AltiumDesigner設(shè)計(jì)原理圖 173.1.2硬件實(shí)現(xiàn)步驟 183.2軟件實(shí)現(xiàn)過程 193.2.1Keil集成開發(fā)環(huán)境 193.2.2主函數(shù)介紹 203.2.3子函數(shù)介紹 223.3調(diào)試過程 233.3.1硬件調(diào)試 233.3.2軟件調(diào)試 24第4章項(xiàng)目成果 284.1硬件成果物 284.1.1硬件原理圖 284.1.2硬件實(shí)物圖 284.2軟件成果物 29第5章結(jié)論 33參考文獻(xiàn) 34致謝 35附錄 36大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)-第1章項(xiàng)目概述1.1項(xiàng)目背景改革開放帶動(dòng)了中國(guó)旅游業(yè)的高速發(fā)展,越來越多的人喜歡旅游,隨之導(dǎo)游這個(gè)職業(yè)受到了更多人的關(guān)注與喜愛。但是導(dǎo)游總負(fù)責(zé)介紹同一個(gè)景點(diǎn),導(dǎo)致了工作積極性和熱性度日益下降。而且近年來游客投訴現(xiàn)象日益增多,主要集中于導(dǎo)游與游客之間的沖突,人工導(dǎo)游已經(jīng)不能滿足消費(fèi)者多種多樣的需求,造成了游客本身的游玩意愿不能得以較好的實(shí)現(xiàn)。針對(duì)相對(duì)之后的導(dǎo)游服務(wù)之間存在的矛盾,本文設(shè)計(jì)了一種語音導(dǎo)游機(jī)器人的設(shè)計(jì)方案。1.2項(xiàng)目簡(jiǎn)介語音導(dǎo)游機(jī)器人全程由12V2.6A鋰電池組供電。鋰電池組接到帶有LM2576HVT-5.0開關(guān)電源穩(wěn)壓器的電源模塊上為其他模塊供電。游客可以使用紅外遙控器對(duì)語音導(dǎo)游機(jī)器人進(jìn)行遠(yuǎn)程遙控。在紅外遙控模式中紅外接收頭選用1838T,當(dāng)遙控器有按鍵按下時(shí),紅外模塊按時(shí)序進(jìn)行接收信號(hào),再將信號(hào)傳給單片機(jī)進(jìn)行處理,最后將處理信號(hào)傳給驅(qū)動(dòng)模塊、語音模塊和顯示模塊。驅(qū)動(dòng)模塊采用L298N驅(qū)動(dòng)芯片來驅(qū)動(dòng)4個(gè)直流電機(jī),語音模塊采用ISD1730芯片,并且兼容SIP模式操作和獨(dú)立按鍵操作,連接主板和8Ω0.5W的喇叭,通過上位機(jī)軟件可以對(duì)語音模塊進(jìn)行錄音、播放、擦除等操作。顯示模塊采用LCD1602液晶顯示器來顯示機(jī)器人運(yùn)行狀態(tài),不僅如此機(jī)器人還能夠通過溫度采集模塊全程監(jiān)控周圍環(huán)境,而溫度傳感器采用DS18B20,DS18B20集溫度測(cè)量和A/D轉(zhuǎn)換于一體,直接輸出數(shù)字量。1.3應(yīng)用范圍主要應(yīng)用于旅游業(yè)、圖書館、博物館進(jìn)行解說之需要。結(jié)合公園和展館的景區(qū)景點(diǎn)分布情況,語音導(dǎo)游機(jī)器人能夠?qū)珗@景區(qū)以及陳列歷史文物等內(nèi)容以音頻和文字的形式展示給游客。語音導(dǎo)游機(jī)器人本身就是一種講解專用設(shè)備,所以也適用于家庭、學(xué)校、公司等場(chǎng)合。使用戶在邊看邊聽中,汲取知識(shí),了解內(nèi)涵,享受文化。不僅如此,日常生活中還可以當(dāng)做兒童玩具,使得孩子在玩耍中,加強(qiáng)了兒童掌握語言運(yùn)用的能力。在工農(nóng)等領(lǐng)域可以用來監(jiān)管庫房、養(yǎng)殖基地、生產(chǎn)線的環(huán)境指數(shù)。除此之外還可以進(jìn)行高危作業(yè),可進(jìn)行探測(cè)和導(dǎo)航工作。第2章項(xiàng)目實(shí)施方案2.1概述2.1.1設(shè)計(jì)主要內(nèi)容智能機(jī)器人系統(tǒng)的設(shè)計(jì)所涉及的主要內(nèi)容有:(1)STC89C52RC單片機(jī)最小系統(tǒng)的設(shè)計(jì)。(2)驅(qū)動(dòng)芯片L298N的應(yīng)用:驅(qū)動(dòng)模塊的設(shè)計(jì)、驅(qū)動(dòng)模塊與單片機(jī)和直流電機(jī)的接口電路設(shè)計(jì),對(duì)驅(qū)動(dòng)機(jī)器人和PWM的程序設(shè)計(jì)。(3)語音芯片ISD1730的應(yīng)用:搭配ISD1730芯片組成的語音模塊的設(shè)計(jì),語音模塊與單片機(jī)和揚(yáng)聲器的接口電路的設(shè)計(jì)。(4)液晶顯示器LCD1602的應(yīng)用:LCD1602與單片機(jī)的接口電路的設(shè)計(jì),對(duì)LCD1602顯示的程序設(shè)計(jì),包括對(duì)LCD1602的初始化、寫指令,寫數(shù)據(jù),檢測(cè)忙,寫字符串等。(5)溫度傳感器DS18B20的應(yīng)用:DS18B20與單片機(jī)接口電路的設(shè)計(jì),對(duì)DS18B20采集溫度的程序設(shè)計(jì),包括對(duì)DS18B20溫度傳感器的初始化、設(shè)定精度,讀取溫度值等。(6)紅外接收頭1838T電路的設(shè)計(jì):電路連接,紅外接收模塊與紅外遙控器的解碼程序設(shè)計(jì),模式切換等設(shè)計(jì)。2.1.2主要器件選擇(1)單片機(jī)采用STC89C52RC型號(hào)單片機(jī)。由于STC系列單片機(jī)具有51單片機(jī)內(nèi)核,并且價(jià)格便宜,便于程序的下載。(2)液晶顯示器采用LCD1602,顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。相對(duì)于顯示字母和數(shù)字比較方便,控制簡(jiǎn)單,成本較低。(3)驅(qū)動(dòng)芯片選擇L298N,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,可以方便驅(qū)動(dòng)兩路直流電機(jī),可以直接用單片機(jī)的I/O口提供信號(hào),而且電路簡(jiǎn)單,使用比較方便。(4)溫度傳感器采用DS18B20。DS18B20集溫度測(cè)量和A/D轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠(yuǎn),可以很方便地實(shí)現(xiàn)多點(diǎn)測(cè)量,硬件電路結(jié)構(gòu)簡(jiǎn)單,與單片機(jī)接口幾乎不需要外圍元件。(5)語音芯片選擇ISD1730,ISD語音芯片精度高,抗干擾性強(qiáng),在惡劣的環(huán)境下依舊正常進(jìn)行語音播放,斷電后信息仍然可以保留很長(zhǎng)時(shí)間。并且應(yīng)用非常靈活,有兩種控制方式,兩種錄音輸入方式,兩種放音輸出方式。(6)紅外接收頭選用1838T。內(nèi)置專用IC,抗干擾能力強(qiáng),低工作電壓,能抵擋環(huán)境干擾光線,硬件電路結(jié)構(gòu)簡(jiǎn)單,易于操作。2.2開發(fā)環(huán)境硬件環(huán)境:筆記本電腦,USB轉(zhuǎn)串口下載線,電源線,音頻線,喇叭,車模,鋰電池組,萬用表,電烙鐵。軟件環(huán)境:AltiumDesignerWinter電路繪制軟件,Keil集成開發(fā)軟件,VoiceReader語音合成軟件,ISD1700VoiceChip錄音軟件,Windows7。2.3硬件設(shè)計(jì)2.3.1硬件系統(tǒng)框圖基于單片機(jī)的語音導(dǎo)游機(jī)器人系統(tǒng)及其硬件電路方框圖如圖2.1所示。硬件電路有9部分組成,即電源電路、單片機(jī)最小系統(tǒng)電路、溫度采集電路、語音電路、紅外接收電路、驅(qū)動(dòng)電路、液晶顯示電路等。分別由兩個(gè)單片機(jī)控制。圖2.1硬件系統(tǒng)框圖2.3.2原理圖設(shè)計(jì)1.單片機(jī)最小系統(tǒng)電路單片機(jī)最小系統(tǒng)電路采用STC系列單片機(jī)作為核心處理器。單片機(jī)控制系統(tǒng)基本由最小系統(tǒng)和外圍信號(hào)I/O口組成,其中最小系統(tǒng)包括電源(地),CPU時(shí)序電路(一般使用11.0592M或者12M和30P電容組成),復(fù)位電路。有了以上三塊,單片機(jī)就能夠正常工作。時(shí)鐘電路接M1單片機(jī)18、19引腳,復(fù)位電路接M1單片機(jī)9引腳,VCC接電源,VSS接地。STC89C52RC為8位單片機(jī),片內(nèi)含有8K字節(jié)的可編程Flash存儲(chǔ)器。STC89C52RC具有以下功能:32位I/0口線,512字節(jié)RAM,復(fù)位電路,看門口定時(shí)器,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷等,使得STC89C52RC為眾多的應(yīng)用系統(tǒng)提供高效的解決方案。其應(yīng)用范圍廣,性能良好,可用于解決復(fù)雜的控制問題。利用STC89C52RC的I/O端口對(duì)傳感器信號(hào)進(jìn)行實(shí)時(shí)判斷監(jiān)控來控制各模塊做出相應(yīng)的反映。如圖2.2是較為常見的單片機(jī)最小系統(tǒng)圖。圖2.2單片機(jī)最小系統(tǒng)2.時(shí)鐘電路單片機(jī)的時(shí)鐘產(chǎn)生有兩種方法:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本系統(tǒng)選用內(nèi)部時(shí)鐘方式,如圖2.3所示。STC89C52RC含有一個(gè)放大器,放大器的輸入端為引腳XTAL1,輸出端為XTAL2,分別為M1單片機(jī)的18、19引腳。在其兩端外接晶振振蕩器和兩個(gè)微調(diào)電容,就構(gòu)成了自激振蕩器。電容的大小會(huì)影響晶體振蕩器頻率的高低和穩(wěn)定性,振蕩器的頻率范圍一般為1.2MHz-12MHz,時(shí)鐘頻率的高低取決于晶振頻率的高低。因此,此系統(tǒng)電路的晶體振蕩器的值為11.0592MHz,電容值通常取30PF。圖2.3時(shí)鐘電路3.復(fù)位電路復(fù)位電路有兩種復(fù)位方式,分別為上電自動(dòng)復(fù)位方式和按鈕復(fù)位方式。所謂上電復(fù)位,是指計(jì)算機(jī)加點(diǎn)瞬間,要在RST_51引腳出現(xiàn)大于10MS的正脈沖,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。按鈕復(fù)位是指用戶按下“復(fù)位”按鈕,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。如圖2.4是上電復(fù)位及按鈕復(fù)位的一種實(shí)用電路。復(fù)位電路由電阻、電容、按鍵組成,其中RST_51接M1單片機(jī)9引腳。上電時(shí),+5V電源立即對(duì)單片機(jī)芯片供電,同時(shí)經(jīng)電阻R對(duì)電容C3充電,C3上電壓建立的規(guī)程就產(chǎn)生一定寬度的負(fù)脈沖,經(jīng)反向后,RST_51上出現(xiàn)正脈沖使單片機(jī)實(shí)現(xiàn)了上電復(fù)位。按鈕按下時(shí),RST_51上同樣出現(xiàn)高電平,實(shí)現(xiàn)了按鈕復(fù)位。圖2.4復(fù)位電路4.紅外接收電路設(shè)計(jì)紅外接收電路使用一體化紅外接收頭1838T,其電路如圖2.5所示。VCC和GND分別接主控電路的電源和地處,VCC與GND之間接一個(gè)瓷片電容104(即去耦電容),DOUT即解調(diào)信號(hào)的輸出端,直接與M1單片機(jī)的外部中斷引腳INT0(即P3.2口)相連。有紅外編碼信號(hào)發(fā)射時(shí),輸出為檢波整形后的方波信號(hào),并直接提供給單片機(jī)。圖2.5紅外接收電路5.語音電路設(shè)計(jì) 采用ISD1730芯片來構(gòu)成高音質(zhì)錄放的語音電路,其電路如圖2.6所示。語音芯片的工作電壓范圍為2.V-5.5V,最高不能超過6V,該種芯片支持兩種工作模式,分別為按鍵模式和SIP模式。其中按鍵模式不需要連接單片機(jī),/RESET為芯片復(fù)位端,/FWD為快進(jìn)控制端,短時(shí)間按K1鍵播放指針指向下一語音段。/ERASE為擦除控制端,短時(shí)間按K2鍵擦除當(dāng)前語音段,長(zhǎng)時(shí)間按K2鍵整片擦除。/REC為錄音控制端,接K2鍵可實(shí)現(xiàn)錄音功能,長(zhǎng)時(shí)間按K3錄音,釋放按鍵錄音結(jié)束。/PLAY為播放控制端,短時(shí)間按K4鍵可播放當(dāng)前語音段。在獨(dú)立芯片模式下,/FT一直為低電平時(shí),Analn直通線路被激活,該管腳有一個(gè)內(nèi)部上拉和一個(gè)內(nèi)部防抖動(dòng)設(shè)計(jì)。在SPI模式下,SPI不考慮這個(gè)輸入,直通線會(huì)直接被APC寄存器的DO所控制,接K5鍵實(shí)現(xiàn)直通功能。/VOL為音量控制端,一共7個(gè)檔可選擇,短時(shí)間按K6鍵音量減少4db。圖2.6語音電路VCC和GND分別接主控電路的電源和地處。MISO是SPI接口的串行輸出端,接單片機(jī)P1.1口,用于存放SCLK下降沿半個(gè)周期前的數(shù)據(jù),數(shù)據(jù)在SCLK的下降沿時(shí)移出。MOSI是SIP接口的數(shù)據(jù)輸入端,接M1單片機(jī)P1.2口,用于存放SCLK上升沿半個(gè)周期前的數(shù)據(jù),此管腳沒有數(shù)據(jù)輸出的時(shí)候是高電平。SCLK為SIP接口的時(shí)鐘端,接M1單片機(jī)P1.3口,用來同步MISO和MOSI端各自的數(shù)據(jù)輸入和輸出,此管腳沒有數(shù)據(jù)輸出的時(shí)候是高電平。/SS為選擇控制端,接M1單片機(jī)P1.4口,為低電平時(shí),芯片成為當(dāng)前被控制的設(shè)備并且啟動(dòng)SIP接口,所以空閑時(shí)被處于高電平。震蕩電阻ROSC連接一個(gè)80K的電阻接地,決定了語音芯片的采樣率,從而改變語音芯片的錄放時(shí)間和錄放音質(zhì)。ISD1730芯片的震蕩電阻調(diào)節(jié)范圍為60KΩ-160KΩ,對(duì)應(yīng)的采樣率為12KHz-4KHz,錄音時(shí)間為20-60秒。Analn為輔助模擬輸入端,連接音頻插座,插上音頻線,可實(shí)現(xiàn)與上位機(jī)通信。AUX/AUD為輔助輸出端,用來輸出一個(gè)AUX或AUD輸出,兩者都能用來驅(qū)動(dòng)一個(gè)外部揚(yáng)聲器。SP+和SP-為喇叭正負(fù)輸出端接8Ω0.5W的喇叭,MIC+和MIC-為麥克風(fēng)的輸入端。(1)獨(dú)立按鍵工作模式ISD1730的獨(dú)立按鍵工作模式只需要通過按鍵就可以輕松實(shí)現(xiàn)錄放功能,調(diào)節(jié)音量、快進(jìn)、直通放音、復(fù)位、擦除等功能。①錄音操作當(dāng)REC按鍵被按下時(shí),/REC管腳變?yōu)榈碗娖介_始錄音,直到/REC管腳為高電平或者超過錄音時(shí)長(zhǎng)時(shí)結(jié)束。操作完畢,放音指針會(huì)指向剛才錄音段的首地址,錄音指針會(huì)指向下一有效地址,即為下一段語音段的首地址。②放音操作/PLAY管腳的觸發(fā)方式有兩種,一種為邊沿觸發(fā),另一種為電平觸發(fā)。當(dāng)按下PLAY鍵則進(jìn)行放音操作,在放音過程中PLAY按鍵再次被按下則停止播放。a、邊沿觸發(fā)方式:按一下PLAY鍵,/PLAY管腳電平變低開始播放當(dāng)前放音地址的語音段,當(dāng)遇到EOM標(biāo)志后停止放音。放音結(jié)束后,放音地址會(huì)指向剛才播放的語音段的首地址處,再次按下PLAY鍵會(huì)重新播放剛才的語音。b、電平觸發(fā)方式:如果一直按PLAY鍵,此時(shí)/PLAY管腳一直為低電平,則語音芯片會(huì)循環(huán)播放所有語音段,直到/PLAY管腳為高電平。播放停止,播放指針會(huì)指向當(dāng)前停止語音段的首地址處。③快進(jìn)操作點(diǎn)按一下FWD鍵,此時(shí)/FWD管腳為低電平,播放指針就會(huì)指向下一個(gè)語音段的首地址進(jìn)行播放,如果播放的語音段為最后一段,進(jìn)行快進(jìn)操作,播放指針會(huì)指向第一個(gè)語音段的首地址進(jìn)行播放,快進(jìn)操作要取決于芯片當(dāng)時(shí)所處狀態(tài):a、如果芯片處于掉電狀態(tài)并且當(dāng)前播放指針指向的語音段不為最后一段,則指針會(huì)指向下一個(gè)語音段的首地址。b、如果芯片正在播放最后一段語音,此時(shí)播放停止,芯片將播放第一個(gè)語音段。④擦除操作ISD1730芯片有兩種擦除方式:?jiǎn)蝹€(gè)擦除和整體擦除,兩者區(qū)別如下所示:a、單個(gè)擦除:只能擦除第一段和最后一段的語音,如果芯片處于空閑狀態(tài)并且播放指針指向第一段或者最后一段語音,此時(shí)點(diǎn)按ERASE鍵,/ERASE管腳為低電平,則會(huì)刪除第一段或者最后一段語音,播放指針將會(huì)指向執(zhí)行擦除操作前的第二段語音的首地址。如果芯片處于空閑狀態(tài)并且播放指針沒有指向第一段或者最后一段語音,則不會(huì)進(jìn)行擦除操作,播放指針不發(fā)生改變。b、整體擦除:當(dāng)ERASE鍵或者/ERASE管腳為低電平的時(shí)間超過2.5S,則執(zhí)行整體擦除,所有語音信息將被刪除。⑤音量操作點(diǎn)按一下VOL鍵或者/VOL管腳為低電平就會(huì)改變輸出音量的大小??偣灿?個(gè)檔可選擇,每按一次按鍵就會(huì)調(diào)節(jié)一個(gè)檔,復(fù)位操作會(huì)將聲音調(diào)為最大音量。(2)ISD1730的SPI模式①微機(jī)接口單片機(jī)的I/O口與語音模塊的SCLK,MOSI,MISO,/SS相連,單片機(jī)通過SPI協(xié)議對(duì)語音模塊進(jìn)行串行通信。通過發(fā)送一些SIP命令,用戶可以指定錄音、放音、和擦除等操作。除此之外還可以用一些命令訪問APC寄存器,用來設(shè)置芯片模擬輸入的方式。②SPI協(xié)議總述ISP1730的SPI串行接口必須遵循下列協(xié)議:a、只有當(dāng)/SS管腳處于下降沿時(shí),才能進(jìn)行SPI。b、執(zhí)行完一個(gè)SPI指令,/SS管腳電平必須為低。d、根據(jù)ISP1730指令類型,SPI指令操作碼可包括數(shù)據(jù)字節(jié),地址字節(jié)和命令字節(jié)。e、在SCLK上升沿時(shí),數(shù)據(jù)被鎖存到MOSI管腳中。在SCLK下降沿時(shí),數(shù)據(jù)從MISO管腳輸出,并且先移出低位。(3)ISD1730SPI指令表如表2.1所示。表2.1ISD1730SPI指令表指令名稱命令字節(jié)描述ISD1700_PU0x01芯片上電ISD1700_STOP0x02停止操作ISD1700_REST0x03復(fù)位操作ISD1700_CLR_INT0x04清楚中斷信號(hào)和EOM信號(hào)ISD1700_RD_STAUS0x05返回狀態(tài)寄存器內(nèi)容ISD1700_RD_PLAY_PTR0x06在1,2數(shù)據(jù)字節(jié)返回狀態(tài)寄存器信息,在2,3數(shù)據(jù)字節(jié)返回播放指針I(yè)SD1700_PD0x07芯片下電ISD1700_RD_REC_PTR0x08清楚中斷信號(hào)和EOM信號(hào)ISD1700_DEVID0x09返回狀態(tài)寄存器內(nèi)容ISD1700_PLAY0x40清楚中斷信號(hào)和EOM信號(hào)ISD1700_REC0x41返回狀態(tài)寄存器內(nèi)容ISD1700_ERASE0x42清楚中斷信號(hào)和EOM信號(hào)ISD1700_G_ERASE0x43返回狀態(tài)寄存器內(nèi)容ISD1700_FWD0x48將播放指針指向下一段語音的首地址ISD1700_SET_PLAY0x80從首地址<S10:S0>開始放音,到<E10:E0>停止放音ISD1700_SET_REC0x81從首地址開始錄音<S10:S0>,到<E10:E0>停止錄音ISD1700_SET_ERASE0x82從首地址開始擦除<S10:S0>,到<E10:E0>停止擦除6.驅(qū)動(dòng)電路設(shè)計(jì)驅(qū)動(dòng)芯片選用L298N。該芯片持續(xù)工作電流為2A,最高工作電壓為46V,能夠控制4個(gè)直流電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,如圖2.7所示。VCC,VS均為電源管腳,VSS管腳接電源模塊12V,VS接電源模塊5V,GND管腳接電源模塊輸出端的負(fù)極。ISENA、ISENB分別為電流反饋引腳,P3用跳線帽跳上,使其兩引腳接地。IN1、IN2、IN3、IN4為數(shù)據(jù)輸入端,分別接M1單片機(jī)的P3.4、P3.5、P3.6、P3.7口。OUT1、OUT2、OUT3、OUT4為數(shù)據(jù)輸出端,OUT1、OUT2連接左側(cè)2個(gè)直流電機(jī),OUT3、OUT4連接右側(cè)2個(gè)直流電機(jī)。ENA,ENB為使能端,分別連接M1單片機(jī)P2.6、P2.7口,當(dāng)ENA和ENB管腳為高電平才允許輸出。IN1、IN2和ENA管腳控制左側(cè)電機(jī)的正反轉(zhuǎn),IN3、IN4和ENB管腳控制右側(cè)電機(jī)的正反轉(zhuǎn)。電路中D1-D8均為二極管(IN4004),二極管起到保護(hù)電路的作用,確保電壓在一定范圍內(nèi)輸出,D9-D12為發(fā)光二極管,用來提示哪條電路上有電流流過,其中4個(gè)電阻起到保護(hù)電路作用。圖2.7驅(qū)動(dòng)電路(1)L298N驅(qū)動(dòng)芯片L298N引腳功能表如表2.2所示。表2.2L298N引腳功能表引腳符號(hào)功能1,15ISENA,ISENB此引腳和地相連,用于電流檢測(cè)電阻,并將反饋信號(hào)傳給驅(qū)動(dòng)芯片2,3OUT1,OUT2此引腳是全橋式驅(qū)動(dòng)器A的兩個(gè)輸出端,用于連接負(fù)載4VS電機(jī)驅(qū)動(dòng)電源輸入端5,7IN1,IN2輸入標(biāo)準(zhǔn)的TTL邏輯電源信號(hào),用于控制驅(qū)動(dòng)器A的開關(guān)6,11ENA,ENB使能控制端,輸入標(biāo)準(zhǔn)的TTL邏輯電源信號(hào);低電平時(shí)驅(qū)動(dòng)器停止工作。8GND接地端,芯片自身的散熱片與8腳相通9VSS邏輯電源輸入端10,12IN3,IN4輸入標(biāo)準(zhǔn)的TTL邏輯電源信號(hào),用于控制驅(qū)動(dòng)器B的開關(guān)13,14OUT3,OUT4此引腳是全橋式驅(qū)動(dòng)器B的兩個(gè)輸出端,用于連接負(fù)載(2)L298N的邏輯控制L298的邏輯控制如表2.3所示。其中C、D分別為IN1、IN2或IN3、IN4;L為低電平,H為高電平,※為不管是低電平還是高電平。表2.3L298對(duì)直流電機(jī)控制的邏輯真值表輸入輸出Ven=HC=H;D=L正轉(zhuǎn)C=L;D=H反轉(zhuǎn)C=D制動(dòng)Ven=LC=※;D=※沒有輸出,電機(jī)不工作7.溫度采集電路設(shè)計(jì)本設(shè)計(jì)采用DS18B20溫度傳感器作為溫度采集電路核心部件,DS18B20具有高性能、體積小、數(shù)字化等特點(diǎn)的溫度傳感器??梢灾苯訉囟绒D(zhuǎn)化成數(shù)字信號(hào)供處理器處理。如圖2.8所示。溫度采集電路由DS18B20和電阻組成,DS18B20的1管腳接電源,3管腳接地,2管腳為數(shù)據(jù)端接M2單片機(jī)的P3.7口,1管腳與2管腳之間接一個(gè)10K電阻,因?yàn)镈S18B20為單總線溫度傳感器,數(shù)據(jù)端是漏極開路,當(dāng)DS18B20沒有接電源時(shí),需要數(shù)據(jù)端強(qiáng)上拉,給DS18B20供電。當(dāng)DS18B20接電源時(shí),電阻起到保護(hù)電路的作用。圖2.8溫度采集電路(1)DS18B20溫度傳感器特性①適應(yīng)電壓范圍寬,電壓范圍在3.0-5.5V,再寄生電源方式下可有數(shù)據(jù)線供電。②分辨率為9位時(shí),可以在93.75毫秒內(nèi)把模擬量轉(zhuǎn)換為數(shù)字量;分辨率為12位時(shí),可以在750毫秒內(nèi)把模擬量轉(zhuǎn)換為數(shù)字量,顯然速度更快。③DS18B20分辨率可達(dá)到9-12位,對(duì)應(yīng)溫度值分別為0.5℃,0.25℃,0.125℃和0.0625℃,使得檢測(cè)出的溫度值更準(zhǔn)確。④因?yàn)镈S18B20支持“一線總線”技術(shù),采用了三線制與單片機(jī)相連,所以減少了外部硬件電路。⑤測(cè)溫范圍-55攝氏度到+125攝氏度,在-10攝氏度到+85攝氏度之間精度可以達(dá)到+0.5℃。⑥支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。⑦獨(dú)特的單線接口方式,它與微處理器連接時(shí)僅需一條線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通信。⑧負(fù)壓特性。電源極性接反時(shí),芯片不會(huì)因?yàn)榘l(fā)熱而燒毀,但不能正常工作。(2)引腳介紹DS18B20有兩種封裝:三腳TO-92直插式和八腳SOIC貼片式,封裝引腳見圖2.9所示。表2.4列出了引腳定義。圖2.9DS18B20引腳封裝圖表2.4DS18B20引腳定義引腳符號(hào)GND電源負(fù)極DQ信號(hào)輸入輸出VDD電源正極NC空8.顯示電路設(shè)計(jì)顯示電路采用LCD1602液晶顯示語音導(dǎo)游機(jī)器人運(yùn)行狀態(tài)和溫度值。LCD1602液晶具有功耗低,顯示內(nèi)容豐富清晰,顯示信息量大,顯示速度較快,界面友好,使用簡(jiǎn)單等特點(diǎn)而得到了廣泛的應(yīng)用。并且外圍電路也比較簡(jiǎn)單,如圖2.10所示。VCC和GND分別接主控電路的電源和地處,VEE連接一個(gè)10K滑動(dòng)變阻器,通過改變電壓,來調(diào)整LCD1602的分辨率。RS為寄存器選擇端,接M2單片機(jī)P2.3口。R/W為讀寫選擇端,接M2單片機(jī)P2.4口。E為使能端,接M2單片機(jī)P2.5口。DB0-DB7為雙向數(shù)據(jù)端,分別接M2單片機(jī)P0.0-P0.7口。此字符型LCD有16條引腳線,15引腳為背光電源線接VCC,16引腳為地線接GND,字符型LCD的引腳定義如表2.5所示。圖2.10LCD1602電路表2.5LCD1602引腳定義引腳號(hào)引腳名作用1VSS電源地2VCC電源(+5V)3VEE對(duì)比調(diào)整電壓4RS寄存器選擇端,1=選擇數(shù)據(jù)寄存器,0=選擇指令寄存器5R/W讀寫選擇端,1=讀取信息,0=寫入指令或數(shù)據(jù)6E使能端,1=讀取信息,0=執(zhí)行指令7DB0數(shù)據(jù)總線08DB1數(shù)據(jù)總線19DB2數(shù)據(jù)總線210DB3數(shù)據(jù)總線311DB4數(shù)據(jù)總線412DB5數(shù)據(jù)總線513DB6數(shù)據(jù)總線614DB7數(shù)據(jù)總線715VCCLCD背光電源正極16GNDLCD背光電源負(fù)極2.4軟件設(shè)計(jì)2.4.1軟件主流程圖主程序?qū)CD1602、定時(shí)器和外部中斷進(jìn)行初始化,播放并顯示開機(jī)語音和開機(jī)畫片。通過調(diào)用各個(gè)子程序,實(shí)現(xiàn)紅外遙控、語音錄放,以及顯示機(jī)器人運(yùn)行狀態(tài)和溫度值等功能。其主程序流程圖如圖2.11和圖2.12所示。圖2.11主程序流程圖a圖2.12主程序流程圖b2.4.2紅外解碼模塊子流程圖當(dāng)紅外遙控有按鍵按下時(shí),立即觸發(fā)中斷,系統(tǒng)進(jìn)入外部中斷0入口函數(shù)并且判斷引導(dǎo)碼是否正確,如果正確開始接收4個(gè)字節(jié)內(nèi)容,低電平開始,不處理只等待高電平接收,高電平結(jié)束,判斷數(shù)據(jù)1或0向變量移入,直到接滿32位退出。紅外解碼程序流程圖如圖2.13所示。圖2.13紅外解碼流程圖2.4.3溫度測(cè)量模塊子流程圖利用DS18B20采集溫度,程序中利用讀寫數(shù)據(jù)進(jìn)行讀取溫度值并轉(zhuǎn)換,通過LCD1602液晶顯示器來顯示當(dāng)前溫度值。溫度測(cè)量流程圖如圖2.14所示。圖2.14溫度測(cè)量流程第3章項(xiàng)目實(shí)施過程3.1硬件實(shí)現(xiàn)過程3.1.1AltiumDesigner設(shè)計(jì)原理圖AltiumDesigner環(huán)境是一個(gè)軟件集成平臺(tái),匯集了所有必要的工具來創(chuàng)建一個(gè)單一的應(yīng)用程序。AltiumDesigner包括所有設(shè)計(jì)任務(wù)的工具:從原理圖和HDL設(shè)計(jì)輸入,電路仿真,PCB設(shè)計(jì)以及基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)和開發(fā)。PCB工程是創(chuàng)建PCB圖的基礎(chǔ),打開AltiumDesigner,依次點(diǎn)擊文件>新建>工程>PCB工程創(chuàng)建一個(gè)工程,保存后即可添加原理圖、封裝圖、PCB圖等。主板原理圖如圖3.1所示,依次點(diǎn)擊工程>CompileDocumentzhuban.SchDoc即可對(duì)主板原理圖編譯,在System中的Messages里可查看編譯結(jié)果。原理圖編譯無誤后便可以添加PCB,依次點(diǎn)擊文件>新建>PCB如圖3.2所示。圖3.1主板原理圖圖3.2主板PCB圖3.1.2硬件實(shí)現(xiàn)步驟由以下三步驟來實(shí)現(xiàn):1.元件焊接焊接前先將所需規(guī)格的元器件進(jìn)行分類,用萬用表測(cè)量元器件的參數(shù),例如電阻的阻值。帶極性的元器件焊接前要判斷其正負(fù)極,焊接過程中按照先小后大的順序進(jìn)行依次焊接,貼片類器件焊接過程中要使用鑷子等輔助工具進(jìn)行焊接。要保證每個(gè)焊點(diǎn)不能出現(xiàn)虛焊現(xiàn)象,如果出現(xiàn)錯(cuò)焊,則需借助吸焊槍和電烙鐵,但電烙鐵不能長(zhǎng)時(shí)間停留在PCB板上,以防焊盤脫落,造成PCB板損壞。2.整板測(cè)試元器件焊接完畢需對(duì)整板進(jìn)行測(cè)試,檢查線路連接是否正常,用萬用表對(duì)電路連接的焊點(diǎn)進(jìn)行測(cè)試,如果萬用表發(fā)出響聲則說明電路導(dǎo)通,否則斷路,可能出現(xiàn)虛焊或器件損壞問題。3.上電功能測(cè)試各模塊的板子都檢測(cè)沒問題就可以進(jìn)行上電測(cè)試,系統(tǒng)的核心是電源模塊,所以先對(duì)其進(jìn)行上電測(cè)試,用萬用表測(cè)電源板的輸入輸出口電壓值,如果輸出5V則電源板正常。將驅(qū)動(dòng)板和電機(jī)連接進(jìn)行測(cè)試,如果驅(qū)動(dòng)板的OUTA1、OUTA2、OUTB1、OUTB2口輸出電壓并且電機(jī)運(yùn)作則表明驅(qū)動(dòng)板正常。3.2軟件實(shí)現(xiàn)過程3.2.1Keil集成開發(fā)環(huán)境KeilSoftware公司推出的KeilμVision4是一款基于Windows的軟件平臺(tái),它是一種用于51單片機(jī)的集成開發(fā)環(huán)境。μVision4提供了對(duì)基于8051內(nèi)核的各種型號(hào)單片機(jī)的支持。KeilμVision4內(nèi)包含了功能強(qiáng)大的編輯器和調(diào)試器。編輯器可以像一般的文本編輯器一樣對(duì)源代碼進(jìn)行編輯,并允許用戶在編輯時(shí)設(shè)置程序斷點(diǎn)。用戶啟動(dòng)μVision4的調(diào)試器之后,斷點(diǎn)即被激活。基本操作:打開Keil4基本界面,點(diǎn)擊工具欄上的Project按鈕,選擇KeilμVisionProject并選擇芯片型號(hào),即可創(chuàng)建一個(gè)工程文件如圖3.3創(chuàng)建新工程文件所示。在工程文件中添加一個(gè).C或者.H的文件即可在其中編寫代碼如圖3.4添加文件所示。將編寫后的代碼進(jìn)行編譯,編譯成功后可生成.HEX文件如圖3.5生成可執(zhí)行文件所示。可利用STC-ISP和串口線將代碼下載到單片機(jī)上或者利用Proteus7Professional等仿真軟件進(jìn)行測(cè)試。圖3.3創(chuàng)建新工程文件圖3.4添加文件圖3.5生成可執(zhí)行文件3.2.2主函數(shù)介紹1.紅外遙控和語音播放主函數(shù)主函數(shù)用于控制智能機(jī)器人運(yùn)行和語音播放函數(shù)。函數(shù)一開始先對(duì)系統(tǒng)進(jìn)行初始化,包括芯片上電、定時(shí)器和外部中斷0的初始化。紅外接收模塊解碼成功,中斷標(biāo)志位為1,語音導(dǎo)游機(jī)器人會(huì)按照按鍵指令執(zhí)行相應(yīng)操作。voidmain(void){ init(); //系統(tǒng)初始化 PlaySoundTick(6); //開機(jī)語音 while(1){ if(bzw==1){ switch(ly_lhj[2]){ case0x18:motor(1,80);motor(2,80);PlaySoundTick(2);ly_lhj[2]=0x00;break;//直行case0x52:motor(1,-80);motor(2,-80);PlaySoundTick(3);ly_lhj[2]=0x00;break;//后退case0x08:motor(1,-50);motor(2,70);PlaySoundTick(4);ly_lhj[2]=0x00;break; //左轉(zhuǎn) case0x5a:motor(1,70);motor(2,-50);PlaySoundTick(5);ly_lhj[2]=0x00;break; //右轉(zhuǎn) case0x1c:IN1=0;IN2=0;IN3=0;IN4=0;break; //暫停 case0x07:IN1=0;IN2=0;IN3=0;IN4=0;PlaySoundTick(0);ly_lhj[2]=0x00;break; //瘋狂小鎮(zhèn) case0x15:IN1=0;IN2=0;IN3=0;IN4=0;PlaySoundTick(1);ly_lhj[2]=0x00;break; //神秘沙漠 } }}}2.LCD顯示和溫度采集主函數(shù)主函數(shù)中調(diào)用初始化函數(shù)進(jìn)行顯示模式設(shè)置和顯示清屏等。在循環(huán)體中,用程序屏蔽掉P1口的低四位并賦值給一個(gè)變量temp,LCD1602根據(jù)temp值來執(zhí)行對(duì)應(yīng)語句,從而顯示機(jī)器人運(yùn)行狀態(tài),DS18B20一直讀取溫度并用LCD1602顯示。voidmain(){Initialize_LCD(); while(1){ temp=(P1|0x0f);//屏蔽低四位 switch(temp) { case0xaf:LCD_ShowString(0,0,"Goforward");break;//直行 case0x5f:LCD_ShowString(0,0,"Retreat");break;//后退 case0x6f:LCD_ShowString(0,0,"Turnleft");break;//左轉(zhuǎn) case0x9f:LCD_ShowString(0,0,"Turnright");break;//右轉(zhuǎn) case0x0f:LCD_ShowString(0,0,"Stop");break;//暫停 default:break; } dsmain();} }3.2.3子函數(shù)介紹1.紅外遙控子函數(shù)此函數(shù)主要用于對(duì)紅外遙控器發(fā)出的信號(hào)進(jìn)行解碼。先判斷引導(dǎo)碼的前9MS和后4.5MS,然后利用循環(huán)語句開始接收四個(gè)字節(jié)內(nèi)容,此時(shí)中斷標(biāo)志位為1。如果解碼為0x45則跳出中斷標(biāo)志位,此時(shí)中斷標(biāo)志位為0。voidhongwai(void)interrupt0{ unsignedchari,ia; //開始判斷是否為6122波形引導(dǎo)碼的前9MS和后4.5MS ly_ct=0; //計(jì)數(shù)時(shí)間清0 while(!hwx) delay100us(); //調(diào)用0.1MS延時(shí)計(jì)數(shù),ly_ct每調(diào)用一次加1 if(ly_ct<80||ly_ct>100) //引導(dǎo)碼前9MS,ly_ct約等于90,給個(gè)誤差值,用80-100之間來判斷 return; ly_ct=0; while(hwx) { delay100us(); if(ly_ct>50) //NEC引導(dǎo)碼引導(dǎo)碼的后4。5MS,ly_ct約45 return; } if(ly_ct<40) //NEC引導(dǎo)碼引導(dǎo)碼的后4。5MS,ly_ct約45 return; /***********開始接收四個(gè)字節(jié)內(nèi)容**************************************/ for(i=0;i<4;i++) { for(ia=0;ia<8;ia++) { while(!hwx); //低電平開始,不處理只等待高電平接收 ly_ct=0; while(hwx){ //高電平開始, delay100us(); if(ly_ct>20) return; } //高電平結(jié)束,判斷數(shù)據(jù)1或0向變量移入 ly_lhj[i]>>=1; //數(shù)據(jù)由高位移入低位 if(ly_ct>10) //時(shí)間量TH1高于10,即高于1MS判斷為1 ly_lhj[i]|=0x80; } } //ly_flag=1; //接收成功 //TF1=0; bzw=1; if(ly_lhj[2]==0x45) //跳出中斷標(biāo)志位 {bzw=0;return;}}2.播放指定語音段函數(shù)此函數(shù)用于播放指定語音段信息,ISD_SS為低時(shí),選擇語音芯片成為被控制設(shè)備并且啟動(dòng)SPI模式,根據(jù)變量值,執(zhí)行對(duì)應(yīng)語句,在執(zhí)行過程中向RAM發(fā)送7個(gè)字節(jié),分別為指令地址和語音段首尾地址,從而實(shí)現(xiàn)語音播放,空閑時(shí),ISD_SS應(yīng)為高電平。voidPlaySoundTick(ucharsoundtick){ISD_SS=0; switch(soundtick){case0:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x0010,0x004D);}break; case1:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x004E,0x00BF);}break;case2:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00C0,0x00C6);}break; case3:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00C7,0x00D2);}break; case4:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00D3,0x00DA);}break;case5:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00DB,0x00E2);}break;case6:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00E3,0x00FD);}break;default:break;}ISD_SS=1;}3.3調(diào)試過程3.3.1硬件調(diào)試1.檢查電路通電調(diào)試之前,對(duì)照電路圖,檢查電路連接是否存在問題。首先檢查電源是否存在短路現(xiàn)象,依次檢查帶極性元器件焊接是否正確:電解電容、二極管、三極管、貼片LED燈等,利用萬用表檢查元器件是否出現(xiàn)虛焊現(xiàn)象。2.通電觀察確定電源無短路現(xiàn)象后,給模塊通電。首先觀察是否存在異常現(xiàn)象,例如元器件過熱,冒煙,有異味等。若果存在問題,要立刻斷電,排除故障后可重新通電,然后檢查各模塊電源引腳和芯片引腳的電壓值是否可以正常工作。3.3.2軟件調(diào)試1.上位機(jī)錄音和取地址環(huán)境為ISD1700VoiceChip軟件。錄音的具體步驟為:(1)按要求對(duì)PC機(jī)、單片機(jī)和語音模塊進(jìn)行連接:SIP接口、電源、串口、音頻線、小喇叭;(2)按將isd1700play.hex下載到單片機(jī)。(3)打開安裝文件,點(diǎn)擊Setup.exe,按提示安裝軟件。(4)雙擊ISD1700VoiceChip打開軟件界面如圖3.6所示(5)選擇可用的串口號(hào),波特率選擇默認(rèn)值9600。(6)打開串口后,就可以對(duì)單片機(jī)和語音模塊進(jìn)行操作了。首先依次點(diǎn)擊上位機(jī)軟件的1器件復(fù)位、2器件上電、3器件ID,此時(shí)界面彈出語音芯片型號(hào)提示框,如圖3.7所示。(7)錄音方式選擇Lin即為線錄。勾選監(jiān)聽與SPK,點(diǎn)擊設(shè)置,此時(shí)可以聽到喇叭產(chǎn)生的電流聲,如圖3.8所示。(8)點(diǎn)擊打開文件,選擇要錄的音頻文件,支持MP3和WAV格式,如圖3.9所示。(9)音頻文件載入成功后,點(diǎn)擊試聽,喇叭開始播放當(dāng)前音頻。(10)點(diǎn)擊擦除全部,芯片信息被清空。點(diǎn)擊錄音,上位機(jī)會(huì)把當(dāng)前音頻錄到芯片內(nèi),錄音過程中喇叭會(huì)播放音頻并且語音模塊LED常亮。(11)點(diǎn)擊擦除全部,芯片信息被清空。點(diǎn)擊錄音,上位機(jī)會(huì)把當(dāng)前音頻錄到芯片內(nèi),錄音過程中喇叭會(huì)播放音頻并且語音模塊LED常亮。錄音完畢系統(tǒng)會(huì)自動(dòng)停止也可以點(diǎn)擊停止,點(diǎn)擊播放可以聽到錄入芯片內(nèi)的音頻。(12)第一段音頻錄完后,點(diǎn)擊打開文件可以載入第二段音頻,再點(diǎn)擊錄音即可。依次重復(fù)操作,可以將所有音頻錄入到芯片內(nèi)。所有音頻的總時(shí)間不能超過芯片可錄的總時(shí)間。(13)錄完所有音頻后,開始取每一段音頻的首尾地址。錄音地址是從0010開始,因?yàn)?000~0010存放的是提示音的地址。點(diǎn)擊下一段,再點(diǎn)擊讀播放地址,顯示的是第一段音頻的首地址,依次重復(fù)操作可得知每一段音頻的首地址。因?yàn)榇鎯?chǔ)空間是連續(xù)的,所以下一段地址的首地址減1就是上一段的尾地址,將每段音頻的地址放到sound.h文件中。圖3.6上位機(jī)主界面圖3.7語音芯片型號(hào)對(duì)話框界面圖3.8線錄與喇叭設(shè)置界面圖3.9選擇錄音文件界面2.錄音過程中出現(xiàn)的問題及解決方法(1)開串口后沒能成功彈出語音芯片型號(hào)對(duì)話框。經(jīng)檢查發(fā)現(xiàn)SIP接口連接與程序中管腳定義的不一致,調(diào)整程序中管腳定義再次連接SIP接口,成功彈出對(duì)話框。(2)喇叭播放的聲音太小。點(diǎn)擊語音模塊音量按鈕,將聲音調(diào)到最大,但機(jī)器人在行進(jìn)過程中播報(bào)語音信息機(jī)會(huì)聽不到。檢查是否是為上位機(jī)錄音音量問題,點(diǎn)擊上位機(jī)音量,將音量進(jìn)度條調(diào)到紅色區(qū)即為最大,結(jié)果喇叭播放音量依舊很小。隨后換了個(gè)高功率的喇叭,沒起到明顯變化。最后換了根音頻線,重新錄音,喇叭播放恢復(fù)到最佳效果,解決了播放音量問題。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第4章項(xiàng)目成果4.1硬件成果物4.1.1硬件原理圖系統(tǒng)硬件部分主要包括主控電路,電源電路,顯示電路,溫度采集電路,語音電路等,系統(tǒng)硬件原理圖如圖4.1所示。圖4.1硬件原理圖4.1.2硬件實(shí)物圖智能語音導(dǎo)游機(jī)器人全程由12V2600mA鋰電池供電,鋰電池放置于機(jī)器人底層右側(cè),底層左側(cè)放有語音模塊和8Ω0.5W的喇叭,底層兩側(cè)有4個(gè)直流電機(jī),分別安裝4個(gè)輪胎。機(jī)器人頂層左側(cè)有主控制模塊M1,在其上方有主控模塊M2、LCD1602液晶顯示器、DS18B20。機(jī)器人頂層右側(cè)裝有驅(qū)動(dòng)模塊、電源模塊和紅外接收模塊,如圖4.2所示。圖4.2語音導(dǎo)游機(jī)器人實(shí)物圖系統(tǒng)上電,利用紅外遙控器實(shí)現(xiàn)對(duì)語音導(dǎo)游機(jī)器人的控制,如圖4.3所示。LCD1602第二行顯示溫度值為22.8℃。當(dāng)紅外遙控器的5按鍵被按下時(shí),語音導(dǎo)游機(jī)器人暫停不動(dòng),LCD1602第一行顯示“Stop”。圖4.3上電狀態(tài)顯示實(shí)物圖4.2軟件成果物圖4.4、圖4.6和圖4.7圖寫的程序用來實(shí)現(xiàn)紅外遙控語音導(dǎo)游機(jī)器人運(yùn)行和語音播放。主程序a中進(jìn)行系統(tǒng)初始化并播放開機(jī)語音,當(dāng)紅外遙控器有按鍵按下,立即進(jìn)入外部中斷0入口函數(shù),開始判斷是否為6122波形引導(dǎo)碼的前9MS和后4.5MS,再開始接收4個(gè)字節(jié)內(nèi)容,存放到ly_lhj[i]中,根據(jù)ly_lhj[2]值,控制機(jī)器人4個(gè)電機(jī)的轉(zhuǎn)向,并調(diào)用播放指定語音段程序。先讓ISD_SS為低,選擇語音芯片成為被控制的設(shè)備并開啟SPI模式,使用switchcase語句,根據(jù)soundtick值,調(diào)用對(duì)應(yīng)子程序(發(fā)送7個(gè)字節(jié)),從而播放指定語音信息,播放結(jié)束ISD_SS需要拉高。圖4.5和圖4.8寫的是LCD1602顯示溫度值和機(jī)器人運(yùn)行狀態(tài)。主程序b中進(jìn)行LCD1602初始化,屏蔽P1口低四位,使用switchcase語句,根據(jù)temp值,調(diào)用對(duì)應(yīng)顯示字符串子函數(shù),LCD1602液晶屏顯示小車運(yùn)行狀態(tài),執(zhí)行完case語句,調(diào)用dsmain()函數(shù)讀取溫度值并顯示。圖4.4主程序a圖4.5主程序b圖4.6紅外解碼程序圖4.7播放指定語音段程序圖4.8溫度值顯示程序第5章結(jié)論至此智能語音機(jī)器人的整體包括硬件和軟件的設(shè)計(jì)已經(jīng)完成,系統(tǒng)主要以51單片機(jī)為控制核心,結(jié)合無線遙控模塊、語音模塊、主控模塊、溫度采集模塊、顯示模塊實(shí)現(xiàn)語音導(dǎo)游機(jī)器人的智能化行駛。通過軟硬結(jié)合的方式,得到硬件檢測(cè)信號(hào)后輸入單片機(jī)各個(gè)對(duì)應(yīng)的I/O接口,通過C語言程序控制過程,用戶可以紅外遙控機(jī)器人行進(jìn)并且播報(bào)景點(diǎn)信息,而且液晶顯示器對(duì)景點(diǎn)溫度和運(yùn)行狀態(tài)進(jìn)行顯示。設(shè)計(jì)過程中,我首先上網(wǎng)搜集資料,選擇適合自己的方案,并用AltiumDesignerWinter09繪制原理圖和PCB并制板,隨后焊接各個(gè)板子上的元器件。雖然訓(xùn)練過焊接,但是在實(shí)際的焊接過程中,我感覺到即使是一個(gè)簡(jiǎn)單的電路,要想很輕松的焊好,也不是很容易的事情,有時(shí)是“虛焊”的原因,有時(shí)可能是阻值選錯(cuò)或者器件焊反,比如這次的驅(qū)動(dòng)電路就沒有焊好,這使我深深感受到理論與實(shí)際間的差距。焊接結(jié)束后,要對(duì)其進(jìn)行調(diào)試,在調(diào)試過程中,出現(xiàn)了很多問題,如驅(qū)動(dòng)電機(jī)的插口電壓相差很大,導(dǎo)致兩側(cè)的輪子在同一個(gè)PWM情況速度不一致、主板和采樣的電壓有些小,在老師的指導(dǎo)與幫助下,發(fā)現(xiàn)原來是電源模塊的電感選的過大,換成小值電感后,各模塊的電壓都恢復(fù)正常標(biāo)準(zhǔn),語音導(dǎo)游機(jī)器人能夠正確的實(shí)現(xiàn)各項(xiàng)功能。雖然語音導(dǎo)游機(jī)器人能夠穩(wěn)定、高效的完成指定功能。但還有許多地方需要完善,例如信息顯示方面,設(shè)計(jì)中選用的是LCD1602顯示器,只能顯示一些字符、數(shù)字、符號(hào),不能顯示漢字,所以語音模塊播放出來的景點(diǎn)信息就無法以漢字形式顯示給用戶看。如果換成12864液晶顯示器,它自身帶漢字庫,能顯示漢字,能讓機(jī)器人更加智能化。除此之外,在選擇錄音芯片上,本著節(jié)約的理念,選用的是ISD1730,采樣率為4KHz時(shí),芯片總錄音時(shí)間能達(dá)到60S,跟實(shí)際應(yīng)用要求相差很多。語音芯片換成ISD17240,總錄音時(shí)長(zhǎng)達(dá)到480S,可以滿足很多景點(diǎn)的要求。參考文獻(xiàn)[1]譚浩強(qiáng).C語言程序設(shè)計(jì)(第三版)[M],清華大學(xué)出版社,2005[2]胡文金.單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程[M],重慶大學(xué)出版社,2005[3]李建忠.單片機(jī)原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2007[4]劉玉賓.單片機(jī)原理及接口技術(shù)實(shí)踐教程[M],機(jī)械工業(yè)出版社,2004[5]張洪潤(rùn).傳感器應(yīng)用電路200例[M],北京航空航天大學(xué)出版社,2006[6]張義和,王敏男.例說51單片機(jī)(第三版)[M],人民郵電出版社,2010[7]何光明,楊靜宇.C語言程序設(shè)計(jì)與應(yīng)用開發(fā)[M],清華大學(xué)出版社,2006[8]侯志勛.電路與電子技術(shù)簡(jiǎn)明教程(修訂版)[M],北京郵電大學(xué)出版社,2007[9]彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例—基于8051+Proteus仿真[M],電子工業(yè)出版社,2009[10]高守瑋,楊建國(guó),肖永劍.ISD系列語音芯片開發(fā)平臺(tái)的設(shè)計(jì)[J],電聲技術(shù),2003,7(6):40-42大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)致謝本論文是在王偉老師的親切關(guān)懷和悉心指導(dǎo)下完成的,她嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。在此謹(jǐn)向王偉老師致以誠(chéng)摯的謝意和崇高的敬意。我還要感謝在一起愉快的度過畢業(yè)論文小組的同學(xué)們,正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!最后我還要感謝培養(yǎng)我長(zhǎng)大含辛茹苦的父母,謝謝你們!最后,再次對(duì)關(guān)心、幫助我的老師和同學(xué)表示衷心地感謝!-附錄程序代碼isd1700.c:#include"reg51.h"#include"ISD1700.H"#include"sound.h"#defineucharunsignedchar#defineuintunsignedint//SPI接口sbitISD_SS=P1^4;sbitISD_MISO=P1^1;sbitISD_MOSI=P1^2;sbitISD_SCLK=P1^3;uchardatacomm_temp;uchardataISD_COMM_RAM[7];uchardataISD_COMM_RAM_C[7];uchardata*isd_comm_ptr;uchardata*back_data_ptr;//函數(shù)聲明voiddelay(intx);voidrest_isd_comm_ptr(void); //指針復(fù)位ucharT_R_comm_byte(ucharcomm_data);//SPI通信函數(shù)voidisd1700_Npar_comm(ucharcomm_par,comm_byte_count);//noparametercomm//發(fā)送命令voidisd1700_par2_comm(ucharcomm_par,uintdata_par); //發(fā)送命令2voidisd1700_7byte_comm(ucharcomm_par,uintstar_addr,uintend_addr); //發(fā)送7個(gè)字節(jié)voidspi_pu(void); //芯片上電voidseril_back_sate(ucharbyte_number); //串口返回函數(shù) //芯片上電voidspi_pu(void){ ISD_SS=0; isd1700_Npar_comm(ISD1700_PU,2); ISD_SS=1;} //串口返回函數(shù)voidseril_back_sate(ucharbyte_number){ ucharsate_temp; rest_isd_comm_ptr(); sate_temp=0; do{ SBUF=*back_data_ptr++; while(!TI); TI=0; }while(++sate_temp<byte_number);} //指針復(fù)位voidrest_isd_comm_ptr(void){ isd_comm_ptr=ISD_COMM_RAM; back_data_ptr=ISD_COMM_RAM_C;} //發(fā)送命令voidisd1700_Npar_comm(ucharcomm_par,comm_byte_count){ uchari; i=0; ISD_COMM_RAM[0]=comm_par; isd_comm_ptr=&ISD_COMM_RAM[1]; do{ *isd_comm_ptr++=NULL; }while(++i<comm_byte_count-1); rest_isd_comm_ptr(); i=0; do{ *back_data_ptr++=T_R_comm_byte(*isd_comm_ptr++); i++; }while(i<comm_byte_count);}//發(fā)送命令2voidisd1700_par2_comm(ucharcomm_par,uintdata_par){ uchari; ISD_COMM_RAM[0]=comm_par; ISD_COMM_RAM[1]=data_par; ISD_COMM_RAM[2]=data_par>>8; rest_isd_comm_ptr(); i=0;do{ *back_data_ptr++=T_R_comm_byte(*isd_comm_ptr++); i++; }while(i<3);}//發(fā)送7個(gè)字節(jié) voidisd1700_7byte_comm(ucharcomm_par,uintstar_addr,uintend_addr){ uchari; ISD_COMM_RAM[0]=comm_par; ISD_COMM_RAM[1]=NULL; ISD_COMM_RAM[2]=star_addr; ISD_COMM_RAM[3]=star_addr>>8; ISD_COMM_RAM[4]=end_addr; ISD_COMM_RAM[5]=end_addr>>8; ISD_COMM_RAM[6]=NULL; rest_isd_comm_ptr(); i=0; do{ *back_data_ptr++=T_R_comm_byte(*isd_comm_ptr++); i++; }while(i<=7);}//SPI通信函數(shù)ucharT_R_comm_byte(ucharcomm_data){ ucharbit_nuber; uchartemp; bit_nuber=0; temp=0; do{ ISD_SCLK=0; delay(1); if((comm_data>>bit_nuber&0x01)!=0) {ISD_MOSI=1;} else {ISD_MOSI=0;} if(ISD_MISO) {temp=(temp>>1)|0x80;} else {temp=temp>>1;} ISD_SCLK=1; delay(1); }while(++bit_nuber<=7); ISD_MOSI=0; return(temp);}//短延時(shí)voiddelay(intx){ uchari; for(;x>=1;x--) {for(;i<=20;i++);}}//播放指定語音段函數(shù)voidPlaySoundTick(ucharsoundtick){ ISD_SS=0; switch(soundtick) { case0:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x0010,0x004D);}break; case1:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x004E,0x00BF);}break; case2:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00C0,0x00C6);}break; case3:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00C7,0x00D2);}break; case4:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00D3,0x00DA);}break; case5:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00DB,0x00E2);}break; case6:{isd1700_7byte_comm(ISD1700_SET_PLAY|ISD_LED,0x00E3,0x00FD);}break; default:break;} ISD_SS=1;}main.c:#defineucharunsignedchar#defineuintunsignedint#include"reg51.h"#include"sound.h"#include"ISD1700.H"#include"yaokong1.h"voidinit(void);voidPlaySoundTick(ucharnumber);voiddelay_isd(uinttime); externvoidspi_pu(void);externvoiddelay(intx);sbitS1=P2^4;ucharRunLedTime;sbiten2=P2^7;//L298的EnableBsbiten1=P2^6;//L298的EnableAuchartemp;uchart=0;/*中斷計(jì)數(shù)器*/uchartmp1,tmp2,flag=1;/*電機(jī)當(dāng)前速度值*/voidinit(void){ TMOD=0x22;SCON=0x50; TH0=0x9c;/*裝入定時(shí)器的初值*/TL0=0x9c; TH1=0xfd;TL1=0xfd;//波特率:9600bpsEX0=1;/*開啟外部中斷0,紅外接收數(shù)據(jù)引腳*/ IT0=1;/*設(shè)置成下降沿觸發(fā)方式*/ ET0=1; EA=1; TR0=1; TR1=1; P1=0xff;P0=0; spi_pu(); //芯片上電 P3=0xff; }/*定時(shí)器0函數(shù)*/voidtimer0()interrupt1/*T0中斷服務(wù)程序*/{if(t==0)/*1個(gè)PWM周期完成后才會(huì)接受新數(shù)值*/{tmp1=m1;tmp2=m2;}if(t<tmp1)en1=1;elseen1=0;/*產(chǎn)生電機(jī)1的PWM信號(hào)*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論