語音控制小車_第1頁
語音控制小車_第2頁
語音控制小車_第3頁
語音控制小車_第4頁
語音控制小車_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

語音控制小車摘要本文主要以SPCE061A為基礎(chǔ)介紹了如何應(yīng)用SPCE061A芯片進(jìn)行語音控制小車的硬件和軟件設(shè)計(jì)。SPCE061A是一種16位y'nSP結(jié)構(gòu)的微控制器。該芯片帶有硬件乘法器,能夠?qū)崿F(xiàn)乘法運(yùn)算、內(nèi)積運(yùn)算等復(fù)雜的運(yùn)算。它不僅運(yùn)算能力強(qiáng),而且處理速度快,單周期最高可以達(dá)到49MHz。SPCE061A內(nèi)嵌32K字的FLASH程序存儲(chǔ)器以及2K的SRAM。同時(shí)該SOC芯片具有ADC和DAC功能,其MIC_ADC通道帶有AGC自動(dòng)增益環(huán)節(jié),能夠很輕松的將語音信號(hào)采集到芯片內(nèi)部,兩路10位的電流輸出型DAC,只要外接一個(gè)功放就可以完成聲音的播放。以上介紹的這些硬件資源使得該SPCE061A能夠單芯片實(shí)現(xiàn)語音處理功能。SPCE061A是繼µ'nSPTM系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使µ'nSPTM能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,與SPCE500A相比,以µ'nSPM為核心的SPCE061A微控制器是適用于數(shù)字語音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品的一種最經(jīng)濟(jì)的選擇。借助于SPCE061A的語音特色,我們開發(fā)出了這款語音控制小車。小車不僅具有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)停車等基本功能;同時(shí)配合SPCE061A的語音特色,實(shí)現(xiàn)語音控制功能。目錄第一章前言……………………1第二章語音控制小車設(shè)計(jì)要求……………2功能設(shè)計(jì)要求………………2參數(shù)說明……………2注意事項(xiàng)……………22.4備注* 3第三章芯片特性簡(jiǎn)介…………4SPCE061A特性簡(jiǎn)介…………4精簡(jiǎn)開發(fā)板——61板………5第四章系統(tǒng)總體方案介紹………………7系統(tǒng)硬件方案……………7系統(tǒng)控制方案…………… 7第五章系統(tǒng)硬件設(shè)計(jì)…………9車體介紹………………95.1.1小車的行走原理…………………10控制板原理圖…………115.2.1全橋驅(qū)動(dòng)原理……………………12

5.2.2動(dòng)力電機(jī)驅(qū)路……………………145.2.3方向電機(jī)控制電路………………14第六章系統(tǒng)軟件設(shè)計(jì)………176.1系統(tǒng)的總體程序流程……………………176.2程序中需要說明的幾個(gè)問題………………24第七章連接與操作說明………26硬件連接………………26硬件模塊連接圖………26功能說明………………27代碼下載………………27訓(xùn)練小車………………28聲控小車………………29重新訓(xùn)練………………29303132結(jié)語參考文獻(xiàn)致謝303132前言語音處理技術(shù)是一門新興的技術(shù),它不僅包括語音的錄制和播放,還涉及語音的壓縮編碼和解碼,語音的識(shí)別等各種處理技術(shù)。做這方面的設(shè)計(jì),一般有兩個(gè)途徑:一種方案是單片機(jī)擴(kuò)展設(shè)計(jì),另一種就是借助于專門的語音處理芯片。普通的單片機(jī)往往不能實(shí)現(xiàn)這么復(fù)雜的過程和算法,即使勉強(qiáng)實(shí)現(xiàn)也要加很多的外圍器件。專門的語音處理芯片也比較多,像ISD系列、PM50系列等,但是專門的語音處理芯片功能比較單一,想在語音之外的其他方面應(yīng)用基本是不可能的。SPCE061A是一種16位u'nSS構(gòu)的微控制器。該芯片帶有硬件乘法器,能夠?qū)崿F(xiàn)乘法運(yùn)算、內(nèi)積運(yùn)算等復(fù)雜的運(yùn)算。它不僅運(yùn)算能力強(qiáng),而且處理速度快,單周期最高可以達(dá)到49MHz。SPCE061A內(nèi)嵌32K字的FLASH程序存儲(chǔ)器以及2K的SRAM。同時(shí)該SOC芯片具有ADC和DAC功能,其MIC_ADC通道帶有AGC自動(dòng)增益環(huán)節(jié),能夠很輕松的將語音信號(hào)采集到芯片內(nèi)部,兩路10位的電流輸出型DAC,只要外接一個(gè)功放就可以完成聲音的播放。以上介紹的這些硬件資源使得該SPCE061A能夠單芯片實(shí)現(xiàn)語音處理功能。借助于SPCE061A的語音特色,我們?cè)O(shè)計(jì)出了這款語音控制小車。小車不僅具有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)停車等基本功能;同時(shí)配合SPCE061A的語音特色,實(shí)現(xiàn)語音控制功能。第二章語音控制小車設(shè)計(jì)要求2.1功能設(shè)計(jì)要求語音控制小車是凌陽大學(xué)計(jì)劃推出的基于SPCE061A的代表性興趣產(chǎn)品,它配合61板推出,綜合應(yīng)用了SPCE061A的眾多資源,打破了傳統(tǒng)教學(xué)中單片機(jī)學(xué)習(xí)枯燥和低效的現(xiàn)狀。小車采用語音識(shí)別技術(shù),可通過語音命令對(duì)其行駛狀態(tài)進(jìn)行控制。語音控制小車的主要功能:可以通過簡(jiǎn)單的I/O操作實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)功能;配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識(shí)別資源,實(shí)現(xiàn)語音控制的功能;可以在行走過程中聲控改變小車運(yùn)動(dòng)狀態(tài);在超出語音控制范圍時(shí)能夠自動(dòng)停車。參數(shù)說明車體:雙電機(jī)兩輪驅(qū)動(dòng)供電:電池(四節(jié)AA:1.2Vx4或1.5Vx4)工作電壓:DC4V~6V工作電流:運(yùn)動(dòng)時(shí)約200mA注意事項(xiàng)一定要注意電池的正負(fù)極性,切勿裝反;長(zhǎng)期不用請(qǐng)將電池取出電池盒;由于語音信號(hào)的不確定性,語音識(shí)別的過程會(huì)出現(xiàn)一定的誤差和不準(zhǔn)確性;由于小車行動(dòng)比較靈活,速度比較快,在使用時(shí)一定要注意保持場(chǎng)地足夠大,且保證不會(huì)對(duì)周圍的物體造成傷害;5.不要讓小車長(zhǎng)時(shí)間運(yùn)行在堵轉(zhuǎn)狀態(tài)(堵轉(zhuǎn)狀態(tài):由于小車所受阻力過大,造成小車電機(jī)加電但并不轉(zhuǎn)動(dòng)的現(xiàn)象),這樣會(huì)造成很大的堵轉(zhuǎn)電流,有可能會(huì)損壞小車的控制電路。備注可以自行添加各種傳感器,實(shí)現(xiàn)避障、循跡、跟蹤等功能。第三章核心器件簡(jiǎn)介SPCE061A特性簡(jiǎn)介SPCE061A是一種十六位單片機(jī),使用它可以非常方便靈活的實(shí)現(xiàn)語音的錄放,該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動(dòng)增益電路。這為實(shí)現(xiàn)語音錄入提供了方便的硬件條件。兩路10位精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外十六位單片機(jī)具有一套易學(xué)易用的指令系統(tǒng)和集成開發(fā)環(huán)境,在此環(huán)境中,它支持標(biāo)準(zhǔn)C語言編程,也支持C語言與匯編語言的互相調(diào)用。另外還提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就可以很容易的完成語音的錄放、識(shí)別等功能,這些都為軟件開發(fā)提供了方便的條件。SPCE061是一款擁有2KRAM、32KFlash、32個(gè)1/O口,并集成了AD/DA功能強(qiáng)大的16位微處理器,它還擁有豐富的語音處理功能,為小車的功能擴(kuò)展提供了相當(dāng)大的空間。只要按照該單片機(jī)的要求對(duì)其編制程序就可以實(shí)現(xiàn)很多不同的功能。SPCE061A是繼µ'nSPTM系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能, SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使µ'nSPTM能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,與SPCE500A相比,以µ'nSPTM為核心的SPCE061A微控制器是適用于數(shù)字語音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品的一種最經(jīng)濟(jì)的選擇。SPCE061A特性:位y'nSP微處理器;16工作電壓:內(nèi)核工作電壓VDD為3.0V?3.6V(CPU),I/O口工作電壓VDDH為VDD~5.5V(I/O);時(shí)鐘:0.32MHz?49.152MHz;CPU內(nèi)置2K字SRAM;內(nèi)置32K閃存ROM;可編程音頻處理;晶體振蕩器;系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2pA@3.6V;個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;2位通用可編程輸入/輸出端口;32個(gè)中斷源可來自定時(shí)器A/B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;14具備觸鍵喚醒的功能;使用音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);實(shí)時(shí)時(shí)鐘;32768Hz通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器;7聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能;具備串行設(shè)備接口;低電壓復(fù)位(LVR)功和低電壓監(jiān)測(cè)(LVD)功能;內(nèi)置在線仿真板(ICE,In-CircuitEmulator)接口。3.2精簡(jiǎn)開發(fā)板——61板“61板”是SPCE061AEMUBOARD的簡(jiǎn)稱,是以凌陽16位單片機(jī)SPCE061A為核心的精簡(jiǎn)開發(fā)-仿真-實(shí)驗(yàn)板,大小相當(dāng)于一張撲克牌?!?1板”除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、復(fù)位電路、ICE電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)等,“61板”可以采用電池供電。圖3-1所示為該精簡(jiǎn)開發(fā)板的實(shí)物圖。

圖3-161板實(shí)物圖第四章系統(tǒng)總體方案4.1系統(tǒng)硬件方案系統(tǒng)的結(jié)構(gòu)框圖如圖4-1示。圖4-1系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)組成主要包括以下兩部分:SPCE061A精簡(jiǎn)開發(fā)板、語音小車控制電路板。圖中的語音輸入部分MIC_IN、按鍵輸入KEY、聲音輸出部分的功率放大環(huán)節(jié)等已經(jīng)做到了精簡(jiǎn)開發(fā)板——61板上,為我們使用提供了很大的方便。在電機(jī)的驅(qū)動(dòng)方面,采用全橋驅(qū)動(dòng)技術(shù),利用四個(gè)I/O端口分為兩組分別實(shí)現(xiàn)兩個(gè)電機(jī)的正傳、反轉(zhuǎn)和停三態(tài)運(yùn)行。4.2系統(tǒng)控制方案小車的運(yùn)動(dòng)控制采用語音控制和中斷定時(shí)控制相結(jié)合,通過語音觸發(fā)小車動(dòng)作,小車動(dòng)作之后,隨時(shí)可以通過語音指令改變小車的運(yùn)動(dòng)狀態(tài)。在每一次動(dòng)作觸發(fā)的同時(shí)啟動(dòng)定時(shí)器,如果小車由于某些原因不能正常的接收語音指令,則只要定時(shí)時(shí)間到,中斷服務(wù)程序會(huì)發(fā)出指令讓小車停下來。詳細(xì)的控制過程請(qǐng)參看第6節(jié)程序設(shè)計(jì)部分。第五章系統(tǒng)硬件設(shè)計(jì)小車驅(qū)動(dòng)電機(jī)一般利用現(xiàn)成的玩具小車上的配套直流電機(jī)??紤]到小車必須能夠前進(jìn)、倒退、停止,并能靈活轉(zhuǎn)向,在左右兩輪各裝一個(gè)電機(jī)分別進(jìn)行驅(qū)動(dòng)。當(dāng)左輪電機(jī)轉(zhuǎn)速高于右輪電機(jī)轉(zhuǎn)速時(shí)小車向右轉(zhuǎn),反之則向左轉(zhuǎn)。為了能控制車輪的轉(zhuǎn)速,可以采取PWM調(diào)速法,即由單片機(jī)的I0B8、I0B9輸出一系列頻率固定的方波,再通過功率放大來驅(qū)動(dòng)電機(jī),在單片機(jī)中編程改變輸出方波的占空比就可以改變加到電機(jī)上的平均電壓,從而可以改變電機(jī)的轉(zhuǎn)速。左右輪兩個(gè)電機(jī)轉(zhuǎn)速的配合就可以實(shí)現(xiàn)小車的前進(jìn)、倒退、轉(zhuǎn)彎等功能。車體介紹語音控制小車為四輪結(jié)構(gòu),如圖5-1所示。其中前面兩個(gè)車輪由前輪電機(jī)控制,在連桿和支點(diǎn)作用下控制前輪左右擺動(dòng),來調(diào)節(jié)小車的前進(jìn)方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個(gè)車輪由后輪電機(jī)驅(qū)動(dòng),為整個(gè)小車提供動(dòng)力。所以又稱前面的輪子為方向輪,后面的兩個(gè)輪子為驅(qū)動(dòng)輪,如圖5-2所示。圖5-1車體側(cè)視圖

直走:由小車的結(jié)構(gòu)分析,在自然狀態(tài)下,前輪在彈簧作用下保持中間狀態(tài),這是只要后輪電機(jī)正轉(zhuǎn)小車就會(huì)前進(jìn)。如圖5-3所示;倒車:倒車動(dòng)作和前進(jìn)動(dòng)作剛好相反,前輪電機(jī)仍然保持中間狀態(tài),后輪電機(jī)反轉(zhuǎn),小車就會(huì)向后運(yùn)動(dòng),如圖5-4所示;左轉(zhuǎn):前輪電機(jī)逆時(shí)針旋轉(zhuǎn)(規(guī)定為正轉(zhuǎn)),后輪電機(jī)正轉(zhuǎn),這時(shí)小車就會(huì)在前后輪共同作用下朝左側(cè)前進(jìn),如圖5-5所示;右轉(zhuǎn):前輪電機(jī)反轉(zhuǎn),后輪電機(jī)正轉(zhuǎn),這時(shí)小車就是會(huì)在前后輪共同作用下朝右側(cè)前進(jìn),如圖5-6所示。

圖5-3小車前進(jìn)原理圖圖圖5-3小車前進(jìn)原理圖圖5-4小車倒車示意圖5.2控制板原理圖控制板主要包括:接口電路、電源電路和兩路電機(jī)的驅(qū)動(dòng)電路,控制板原理圖如圖5-7所示。

接口電路:接口電路負(fù)責(zé)將61板的I/O接口信號(hào)傳送給控制電路板,I/O信號(hào)主要為控制電機(jī)需要的IOB8?IOB11這四路信號(hào),同時(shí)為了方便后續(xù)的開發(fā)和完善,預(yù)留了IOB12?IOB15以及IOA8?IOA15接口,可以在這些接口上添加一些傳感器。電源部分:整個(gè)小車有4個(gè)電源信號(hào):電池電源,控制板工作電源,61板工作電源,61板的I/O輸出電源。系統(tǒng)供電由電池提供,控制板直接采用電池供電(VCC),然后經(jīng)二極管D1后產(chǎn)生61板電源(VCC_61),通過61板的Vio跳線產(chǎn)生61板的端口電源(V1)。二極管D1作用:1.降壓,4節(jié)電池提供的電壓VCC最大可達(dá)到6V,D1可有效地降壓。2.2.保護(hù),D1可以防止電源接反燒壞61板。PNP8E532CON1UCON1QCON1QQ3105UI67CONEQ10NCOM2I44D37CCN2Q2hFN&D?CON2VCC612.2.保護(hù),D1可以防止電源接反燒壞61板。PNP8E532CON1UCON1QCON1QQ3105UI67CONEQ10NCOM2I44D37CCN2Q2hFN&D?CON2VCC61J2IC-5J4E105151軸1心衍7l-OAUQ7>|圖5-7控制板原理圖5.2.1全橋驅(qū)動(dòng)原理全橋驅(qū)動(dòng)又稱H橋驅(qū)動(dòng),下面介紹一下H橋的工作原理:H橋一共有四個(gè)臂,分別為B1?B4,每個(gè)臂由一個(gè)開關(guān)控制,示例中為三極管

Q1~Q4。如果讓QI、Q2導(dǎo)通Q3、Q4關(guān)斷,如圖5-8所示,此時(shí)電流將會(huì)流經(jīng)Q1、負(fù)載、Q2組成的回路,電機(jī)正轉(zhuǎn)。圖5-8Bl、B2工作時(shí)的H橋電路簡(jiǎn)圖 圖5-9B3、B4工作時(shí)的H橋電路簡(jiǎn)圖如果讓Ql、Q2關(guān)斷Q3、Q4導(dǎo)通,如圖5-9所示,此時(shí)電流將會(huì)流經(jīng)Q3、負(fù)載、Q4組成的回路,電機(jī)反轉(zhuǎn)。如果讓Ql、Q2關(guān)斷Q3、Q4也關(guān)斷,負(fù)載Load兩端懸空,如圖5-10所示,此時(shí)電機(jī)停轉(zhuǎn)。這樣就實(shí)現(xiàn)了電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止三態(tài)控制。如果讓Ql、Q2導(dǎo)通Q3、Q4也導(dǎo)通,那么電流將會(huì)流經(jīng)Ql、Q4組成的回路以及Q2和Q3組成的回路,如圖5-ll所示,這時(shí)橋臂上會(huì)出現(xiàn)很大的短路電流。在實(shí)際應(yīng)用時(shí)注意避免出現(xiàn)橋臂短路的情況,這會(huì)給電路帶來很大的危害,嚴(yán)重會(huì)燒毀電路圖5-l0Bl~B4全部停止工作時(shí)的H橋簡(jiǎn)圖圖5-llBl~B4全部工作時(shí)的H橋簡(jiǎn)圖5.2.2動(dòng)力電機(jī)驅(qū)動(dòng)電路動(dòng)力驅(qū)動(dòng)由后輪驅(qū)動(dòng)實(shí)現(xiàn),負(fù)責(zé)小車的直線方向運(yùn)動(dòng),包括前進(jìn)和后退,后輪驅(qū)動(dòng)電路是一個(gè)全橋驅(qū)動(dòng)電路,如圖3-12所示:QI、Q2、Q3、Q4四個(gè)三極管組成四個(gè)橋臂,Q1和Q4組成一組,Q2和Q3組成一組,Q5控制Q2、Q3的導(dǎo)通與關(guān)斷,Q6控制Q1和Q4的導(dǎo)通與關(guān)斷,而Q5、Q6由I0B9和I0B8控制,這樣就可以通過I0B8和10B9控制四個(gè)橋臂的導(dǎo)通與關(guān)斷控制后輪電機(jī)的運(yùn)行狀態(tài),使之正轉(zhuǎn)反轉(zhuǎn)或者停轉(zhuǎn),進(jìn)而控制小車的前進(jìn)和后退。NPNSOSC2NPN8O5O04NPNSQEQQ2^1COM2Q1NPNSOSC2NPN8O5O04NPNSQEQQ2^1COM2Q1、PNPB550/Q3、PN==,552,^'圖5-12后輪電機(jī)驅(qū)動(dòng)電路當(dāng)I0B8為高電平、I0B9為低電平時(shí)Q1和Q4導(dǎo)通,Q2和Q3截止,后輪電機(jī)正轉(zhuǎn),小車前進(jìn);反之當(dāng)I0B8為低電平、I0B9為高電平時(shí)Q1和Q4截止,Q2和Q3導(dǎo)通,后輪電機(jī)反轉(zhuǎn),小車倒退;而當(dāng)10B8、IOB9同為低電平時(shí)Q1、Q2、Q3和Q4都截止,后輪電機(jī)停轉(zhuǎn),小車停止運(yùn)動(dòng)。注意:I0B8和10B9不能同時(shí)置高電平,這樣會(huì)造成后輪驅(qū)動(dòng)全橋短路現(xiàn)象。5.2.3方向電機(jī)控制電路方向控制由前輪驅(qū)動(dòng)實(shí)現(xiàn),包括左轉(zhuǎn)和右轉(zhuǎn),前輪驅(qū)動(dòng)電路也是一個(gè)全橋驅(qū)動(dòng)電路,如圖3-12所示:Q7、Q8、Q9、Q10四個(gè)三極管組成四個(gè)橋臂,Q7和Q10組成一組,Q8和Q9組成一組,Q11控制Q8、Q9的導(dǎo)通與關(guān)斷,Q12控制Q7和Q10的導(dǎo)通與關(guān)斷,而Q11、Q12由IOB10和I0B11控制,這樣就可以通過IOB10和I0B11控制前輪電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),進(jìn)而控制小車的左轉(zhuǎn)和右轉(zhuǎn)。

VCCQ7、PMPB550丿平11密INPNcCctiX圖5-13前輪電機(jī)驅(qū)動(dòng)電路當(dāng)IOB10為高電平、I0B11為低電平時(shí)Q8和Q9導(dǎo)通,Q7和Q10截止,前輪電機(jī)正轉(zhuǎn),小車前輪朝左偏轉(zhuǎn);反之當(dāng)IOB10為低電平、IOB11為高電平時(shí)Q8和Q9截止,Q7和Q10導(dǎo)通,前輪電機(jī)反轉(zhuǎn),小車前輪朝右偏轉(zhuǎn);而當(dāng)OB10、IOB11同為低電平時(shí)Q8和Q9截止,Q7和Q10也截止,前輪電機(jī)停轉(zhuǎn),在彈簧作用下前輪被拉回到中間位置,保持直向。注意:IOB10、IOB11不能同時(shí)為高電平,這樣會(huì)造成前輪驅(qū)動(dòng)全橋的橋臂短路。結(jié)合以上對(duì)前輪和后輪的狀態(tài)分析,得到小車的運(yùn)行狀態(tài)與輸入的對(duì)照表,如下表所示:表5.1基本的輸入與小車運(yùn)動(dòng)狀態(tài)對(duì)照表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車0000停轉(zhuǎn)停轉(zhuǎn)停0001正轉(zhuǎn)停轉(zhuǎn)刖進(jìn)0010反轉(zhuǎn)停轉(zhuǎn)倒退0101正轉(zhuǎn)正轉(zhuǎn)左前轉(zhuǎn)1001正轉(zhuǎn)反轉(zhuǎn)右前轉(zhuǎn)

另外還有一些不常用的運(yùn)行狀態(tài),比如右后轉(zhuǎn)、左后轉(zhuǎn)等,結(jié)合以上對(duì)前輪和后輪的狀態(tài)分析,其端口對(duì)照如表5.2所示:表5.2輸入與小車的運(yùn)動(dòng)狀態(tài)對(duì)照表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車0110正轉(zhuǎn)正轉(zhuǎn)右后轉(zhuǎn)1010正轉(zhuǎn)反轉(zhuǎn)左后轉(zhuǎn)注意:為了小車的安全請(qǐng)不要出現(xiàn)以下兩種組合情況:表5.3禁止的輸入狀態(tài)列表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車**11停轉(zhuǎn)*停11***停轉(zhuǎn)停)

第六章系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的總體程序流程系統(tǒng)的總體程序流程如圖6-1所示:經(jīng)訓(xùn)繚""Tn"(開始)語音識(shí)別與執(zhí)行轉(zhuǎn)我語百哽型初始化訓(xùn)辯小車騾存訓(xùn)練姑果進(jìn)入識(shí)別模式經(jīng)訓(xùn)繚""Tn"(開始)語音識(shí)別與執(zhí)行轉(zhuǎn)我語百哽型初始化訓(xùn)辯小車騾存訓(xùn)練姑果進(jìn)入識(shí)別模式等特豆位消模型d儲(chǔ)區(qū)圖6-1系統(tǒng)總體程序流程圖語音識(shí)別小車的主程序流程如圖6-1所示,分為四大部分:初始化部分、訓(xùn)練部分、識(shí)別部分、重訓(xùn)操作。初始化部分:初始化操作將I0B8?I0B11設(shè)置為輸出端,用以控制電機(jī)。必要時(shí)還要有對(duì)應(yīng)的輸入端設(shè)置和PWM端口設(shè)置等。訓(xùn)練部分:訓(xùn)練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓(xùn)練過,如果沒有訓(xùn)練過則要求對(duì)其進(jìn)行訓(xùn)練,并且會(huì)在訓(xùn)練成功之后將訓(xùn)練的模型存儲(chǔ)到Flash,在以后使用時(shí)不需要重新訓(xùn)練;如果已經(jīng)訓(xùn)練過會(huì)把存儲(chǔ)在Flash中的模型調(diào)出來裝載到辨識(shí)器中。識(shí)別部分:在識(shí)別環(huán)節(jié)當(dāng)中,如果辨識(shí)結(jié)果是名字,停止當(dāng)前的動(dòng)作并進(jìn)入待命狀態(tài),然后等待動(dòng)作命令。如果辨識(shí)結(jié)果為動(dòng)作指令小車會(huì)語音告知相應(yīng)動(dòng)作并執(zhí)行該動(dòng)作,在運(yùn)動(dòng)過程中可以通過呼叫小車的名字使小車停下來。重訓(xùn)操作:考慮到有重新訓(xùn)練的需求,設(shè)置了重新訓(xùn)練的按鍵(61板的KEY3),循環(huán)掃描該按鍵,一旦檢測(cè)到此鍵按下,則將擦除訓(xùn)練標(biāo)志位(OxeOOO單元),并等待復(fù)位。復(fù)位后,程序重新執(zhí)行,當(dāng)檢測(cè)到訓(xùn)練標(biāo)志位為)xffff時(shí)會(huì)要求重新對(duì)其進(jìn)行訓(xùn)練。下面詳細(xì)介紹以上提到的子程序。6.1.1語音識(shí)別的原理簡(jiǎn)介在介紹子程序之前首先介紹一下語音識(shí)別的原理。語音識(shí)別主要分為“訓(xùn)練”和“識(shí)別”兩個(gè)階段。在訓(xùn)練階段,單片機(jī)對(duì)采集到的語音樣本進(jìn)行分析處理,從中提取出語音特征信息,建立一個(gè)特征模型;在識(shí)別階段,單片機(jī)對(duì)采集到的語音樣本也進(jìn)行類似的分析處理,提取出語音的特征信息,然后將這個(gè)特征信息模型與已有的特征模型進(jìn)行對(duì)比,如果二者達(dá)到了一定的匹配度,則輸入的語音被識(shí)別。語音識(shí)別的具體流程如圖6-2所示:

6.1.2訓(xùn)練子程序當(dāng)程序檢測(cè)到訓(xùn)練標(biāo)志位BS_Flag內(nèi)容為Oxffff,就會(huì)要求操作者對(duì)它進(jìn)行訓(xùn)練操作,訓(xùn)練操作的過程如圖6-3所示:訓(xùn)練采用兩次訓(xùn)練獲取結(jié)果的方式,以訓(xùn)練名字為例:小車首先會(huì)提示:給我取個(gè)名字吧,這時(shí)你可以告訴它一個(gè)名字(比如Jack);然后它會(huì)提示:請(qǐng)?jiān)僬f一遍,這時(shí)再次告訴它名字(Jack),如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓(xùn)練成功;如果沒能夠成功的建立模型,小車會(huì)告知失敗的原因并要求重新訓(xùn)練。成功訓(xùn)練名稱后會(huì)給出下一條待訓(xùn)練指令提示音:前進(jìn),參照名稱訓(xùn)練方式訓(xùn)練前進(jìn)指令。依次訓(xùn)練小車的名稱—前進(jìn)指令—倒車指令—左轉(zhuǎn)指令—右轉(zhuǎn)指令,全部訓(xùn)練成功子程序返回,訓(xùn)練結(jié)束。

下面是訓(xùn)練部分的子程序,在訓(xùn)練時(shí)如果訓(xùn)練不成功TrainWord()返回值不為0,要求重復(fù)訓(xùn)練,只有當(dāng)訓(xùn)練成功,TrainWord()返回0,進(jìn)行下一條指令訓(xùn)練。voidTrainSD(){while(TrainWord(NAME_ID,S_NAME)!=0);//訓(xùn)練名稱while(TrainWord(COMMAND_GO_ID,S_ACT1)!=0);//訓(xùn)練第1個(gè)動(dòng)作while(TrainWord(COMMAND_BACK_ID,S_ACT2)!=0);//訓(xùn)練第2個(gè)動(dòng)作while(TrainWord(COMMAND_LEFT_ID,S_ACT3)!=0);//訓(xùn)練第3個(gè)動(dòng)作while(TrainWord(COMMAND_RIGHT_ID,S_ACT4)!=0);//訓(xùn)練第4個(gè)動(dòng)作}6.1.3語音識(shí)別子程序語音識(shí)別流程如圖6-4所示:首先獲取辨識(shí)器的辨識(shí)結(jié)果,判斷是否有語音觸發(fā)如果有語音觸發(fā)則會(huì)返回識(shí)別結(jié)果的ID號(hào),ID號(hào)對(duì)應(yīng)名稱或者對(duì)應(yīng)不同的動(dòng)作。如果ID號(hào)為名稱,則結(jié)束運(yùn)動(dòng)(如果當(dāng)前在運(yùn)動(dòng)狀態(tài)),進(jìn)入待命狀態(tài),等待下一次的指令觸發(fā);如果ID號(hào)為動(dòng)作,則語音告知將要執(zhí)行的動(dòng)作,并執(zhí)行該動(dòng)作。語昔識(shí)別N右轉(zhuǎn)*返回Y舖ituh低護(hù)右轉(zhuǎn)指令血乍播令名?左轉(zhuǎn)特余前語昔識(shí)別N右轉(zhuǎn)*返回Y舖ituh低護(hù)右轉(zhuǎn)指令血乍播令名?左轉(zhuǎn)特余前進(jìn)措》停帶待命左轉(zhuǎn)前訕圖6-4語音識(shí)別部分流程圖6.1.4動(dòng)作子程序動(dòng)作子程序包括:前進(jìn)、倒車、左拐、右拐、停車子程序;前進(jìn):由小車的結(jié)構(gòu)原理和驅(qū)動(dòng)電路分析知:只要10B8為高電平,I0B9,IOB10,I0B11全部為低電平即可實(shí)現(xiàn)小車的前進(jìn)。前進(jìn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下:voidGoAhead()//前進(jìn){PlaySnd(S_ACT1,3);//語音提示*P_IOB_Data=0x0100;//前進(jìn)*P_INT_Mask1=0x0004;〃開2Hz中斷__asm("intfiq,irq");uiTimecont=0;//清定時(shí)器}倒車:由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知:只要10B9為高電平,10B8,IOBIO,I0B11全部為低電平即可實(shí)現(xiàn)小車的倒退。倒退子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,程序如下:voidBackUp()//倒退{(lán)PlaySnd(S_ACT2,3);//語音提示*P_IOB_Data=OxO2OO;//倒車*P_INT_Mask1=0x0004;〃開2Hz中斷__asm("intfiq,irq");uiTimecont=0;//清定時(shí)器}左轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知:小車左轉(zhuǎn)需要兩個(gè)條件:1.前輪左偏2.后輪前進(jìn),這時(shí)對(duì)應(yīng)的I/O狀態(tài)為:IOB8、IOB10為高電平,IOB9、IOB11為低電平。左轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下:voidTurnLeft()//左轉(zhuǎn){PlaySnd(S_GJG,3);//播放提示音*P_IOB_Data=0x0900;//前輪右偏Delay();//延時(shí)*P_IOB_Data=0x0500;//前輪左偏*P_INT_Mask|=0x0004;〃打開2Hz中斷__asm("intfiq,irq");//允許總中斷uiTimecont=0;//清定時(shí)器}注:在左轉(zhuǎn)之前首先讓前輪右偏,然后再讓前輪朝左偏,這樣前輪的擺動(dòng)范圍更大,慣性更大,擺幅也最大,能更好實(shí)現(xiàn)轉(zhuǎn)彎。右轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知:小車右轉(zhuǎn)需要兩個(gè)條件:1.前輪右偏2.后輪前進(jìn),這時(shí)對(duì)應(yīng)的I/O狀態(tài)為:I0B8、I0B11為高電平,I0B9、IOB10為低電平。右轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下:voidTurnLeft()//左轉(zhuǎn){PlaySnd(S_GJG,3);//播放提示音*P_IOB_Data=0x0500;//前輪左偏Delay();//延時(shí)*P_IOB_Data=0x0900;//前輪右偏*P_INT_Mask1=0x0004;〃打開2Hz中斷__asm("intfiq,irq");//允許總中斷uiTimecont=0;//清定時(shí)器}注:在右轉(zhuǎn)之前首先讓前輪左偏,然后再讓前輪朝右偏,這樣前輪的擺動(dòng)范圍更大,慣性更大,擺幅也最大,能更好實(shí)現(xiàn)轉(zhuǎn)彎。6.1.5中斷子程序雖然已經(jīng)有了前進(jìn)、后退以及停車(通過直接呼叫小車的名字使其停車)等語音控制指令,但是考慮環(huán)境的干擾因素,小車運(yùn)行時(shí)的噪音影響和有效距離的限制,小車運(yùn)行后可能接收不到語音指令而一直運(yùn)行。為了防止出現(xiàn)這種情況,加入了時(shí)間控制,在啟動(dòng)小車運(yùn)行的同時(shí)啟動(dòng)定時(shí)器,定時(shí)器時(shí)間到停止小車的運(yùn)行,該定時(shí)器借助于2Hz時(shí)基中斷完成,圖6-5所示為該程序的流程圖??梢栽诔绦蛑行薷膗iTimeset參數(shù)來控制運(yùn)行時(shí)間,當(dāng)uiTimeset=2時(shí),運(yùn)行時(shí)間為1s,以此類推。圖6-52Hz定時(shí)中斷子函數(shù)程序中需要說明的幾個(gè)問題在程序中有幾個(gè)地方不易理解,需要特別說明一下:首先,小車有沒有被訓(xùn)練過是怎么知道的?在這里利用了一個(gè)特殊的Flash單元,語音模型存儲(chǔ)區(qū)首單元(該示例程序中為OxeO00單元)。當(dāng)Flash在初始化以后,或者在擦除后為Oxffff,在成功訓(xùn)練并存儲(chǔ)后為0x0055(該值由辨識(shí)器自動(dòng)生成)。這樣就可以根據(jù)這個(gè)單元的值來判斷是否經(jīng)過訓(xùn)練。其次,為什么已經(jīng)訓(xùn)練過的系統(tǒng)在重新運(yùn)行時(shí)還要進(jìn)行模型裝載?在首次訓(xùn)練完成之后,辨識(shí)器中保存著訓(xùn)練的模型,但是系統(tǒng)一旦復(fù)位辨識(shí)器中的模型就會(huì)丟失,所以在重新運(yùn)行時(shí)必須把存儲(chǔ)在Flash中的語音模型裝載到辨識(shí)器(RAM)中去。第三,在轉(zhuǎn)彎時(shí)為什么前輪要先做一個(gè)反方向的擺動(dòng)?這是為了克服車體的限制,由于前輪電機(jī)的驅(qū)動(dòng)能力有限,有時(shí)會(huì)出現(xiàn)前輪偏轉(zhuǎn)不到位的情況,所以在轉(zhuǎn)彎前首先讓前輪朝反方向擺動(dòng),然后再朝目標(biāo)方向擺動(dòng)。這樣前輪的擺動(dòng)范圍更大,慣性更大,擺幅也最大,能更好實(shí)現(xiàn)轉(zhuǎn)彎。第四,關(guān)于語音的一些具體問題,關(guān)于語音的一些具體問題請(qǐng)參看SPCE061A相關(guān)書籍中關(guān)于語音的詳細(xì)介紹。調(diào)試結(jié)果及數(shù)據(jù)(包括電路裝配、焊接、電路調(diào)試所用儀器和儀表工具,調(diào)試的具體步驟,發(fā)現(xiàn)的問題、原因分析及修正方法等,也包括PCB圖)電路調(diào)試及故障分析第七章連接與操作說明硬件連接語音控制小車電路包括兩大部分:61板部分和控制板部分,硬件部分的連接如圖7-1示,主要用到SPCE061A的I0B8?I0B11來控制小車的狀態(tài)。電源部分連接:電池電源直接接控制板電源接口J1,J2接61板的電源,連接時(shí)注意電源極性。61板和控制板的I/O連接有兩種情況:采用I/O排針向下的61板,直接將61板和控制板扣接在一起即可,61板的IOBH通過J6與控制電路連通;采用I/O排針向上的61板,直接用排線將61板的IOBH和J5相連接即可。圖7-1系統(tǒng)結(jié)構(gòu)框圖7.2硬件模塊連線圖圖7-2連線圖功能說明小車運(yùn)動(dòng)控制:通過SPCE061A的I/O端口,驅(qū)動(dòng)控制板的H橋電路,進(jìn)而控制前輪電機(jī)和后輪電機(jī)。聲控功能:利用特定人語音識(shí)別實(shí)現(xiàn)小車的名稱和動(dòng)作訓(xùn)練,并根據(jù)相應(yīng)的語音指令輸入執(zhí)行前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停車等動(dòng)作。定時(shí)控制功能:利用時(shí)基定時(shí)器設(shè)定運(yùn)行時(shí)間,小車運(yùn)行同時(shí)啟動(dòng)定時(shí)器,時(shí)間到小車停止運(yùn)行。代碼下載硬件連接完成之后,檢查無誤,接下來就可以下載程序了。具體的步驟為:第一步:打開集成開發(fā)環(huán)境,打開“CarDemo.spj”文件,編譯鏈接。(注意:如果看不到CarDemo.spj,請(qǐng)?jiān)趶棾龅膶?duì)話框中選擇打開類型為spj或者所有文件)第二步:點(diǎn)擊菜單Project—>SelectBody,或者直接點(diǎn)擊圖標(biāo)打開如圖3-2所示的對(duì)話框:圖7-3SelectBody對(duì)話框第三步:在彈出的對(duì)話框中選擇BodyName為SPCE060A_061A,選擇Probe為Auto,點(diǎn)擊OK按鈕確定。第四步:點(diǎn)擊IDE工具欄上的圖標(biāo)噸選擇UseICE模式。第五步:按F8快捷下載按鈕,下載代碼。訓(xùn)練小車成功下載程序以后,去掉下載線并復(fù)位系統(tǒng)(如果使用EZ-Probe還應(yīng)將Probe選擇跳線S5拔去),小車就會(huì)提示對(duì)它進(jìn)行訓(xùn)練。訓(xùn)練采用應(yīng)答式訓(xùn)練,每條指令的訓(xùn)練次數(shù)為兩次,每一條命令的訓(xùn)練過程都是一樣的,以“前進(jìn)”為例說明:步驟一:小車提示“前進(jìn)”;步驟二:告訴小車“前進(jìn)”;步驟三:小車提示“請(qǐng)?jiān)僬f一遍”(重復(fù)訓(xùn)練提示音);步驟四:再次告訴小車“前進(jìn)”(重復(fù)訓(xùn)練一次)。這是一個(gè)完整的訓(xùn)練過程,如果訓(xùn)練成功,小車會(huì)自動(dòng)進(jìn)入下一條指令的訓(xùn)練,并會(huì)提示下一條指令對(duì)應(yīng)的動(dòng)作;如果沒有訓(xùn)練成功,小車會(huì)提示“說什么暗語呀”或者“沒有聽到任何聲音”等信息,這樣的話就要重復(fù)剛才所說的四個(gè)步驟,直到成功為止。

整個(gè)的訓(xùn)練過程共有5次這樣的訓(xùn)練,依次為:名稱——前進(jìn)——后退——左拐——右拐。整個(gè)的訓(xùn)練流程如圖7-4所示:圖7-4小車訓(xùn)練流程聲控小車訓(xùn)練完小車之后,怎樣進(jìn)行聲控操作,讓小車運(yùn)動(dòng)或者停下來呢?可以直接對(duì)小車說前進(jìn),或者倒車、左拐、右拐等,小車如果識(shí)別出指令會(huì)有一個(gè)回應(yīng)信號(hào),告知你它要執(zhí)行的動(dòng)作,然后執(zhí)行該動(dòng)作。如果想要小車執(zhí)行其它動(dòng)作,直接告訴小車將要執(zhí)行動(dòng)作對(duì)應(yīng)的指令即可。比如在前進(jìn)時(shí)告訴小車“倒車”,小車識(shí)別出之后就會(huì)直接倒車。如果在小車運(yùn)動(dòng)的過程中想要小車停下來,可以直接呼叫小車的名字,小車準(zhǔn)確識(shí)別之后就會(huì)停下來。重新訓(xùn)練在實(shí)際的使用過程當(dāng)中,可能會(huì)對(duì)訓(xùn)練的結(jié)果不滿意,或者其他人也想對(duì)它進(jìn)行訓(xùn)練、控制。這樣就要求小車可以被重新訓(xùn)練。為此,我們把61板的KEY3鍵定義為重新訓(xùn)練按鈕,系統(tǒng)運(yùn)行之后就會(huì)不斷的掃描61板的KEY3鍵。如果檢測(cè)到KEY3鍵按下,那么程序首先會(huì)把訓(xùn)練標(biāo)志位(OxeOOO)單元擦除,并會(huì)進(jìn)入一個(gè)死循環(huán)等待復(fù)位的到來。復(fù)位到來之后,程序檢測(cè)到訓(xùn)練標(biāo)志單元內(nèi)容為Oxffff,認(rèn)為小車沒有經(jīng)過訓(xùn)練,就會(huì)要求對(duì)它進(jìn)行訓(xùn)練。第八章結(jié)束語本設(shè)計(jì)綜合應(yīng)用了SPCE061A豐富的軟硬件資源,成功的實(shí)現(xiàn)了語音控制功能。下面簡(jiǎn)單的介紹一下實(shí)際應(yīng)用中的一些資源優(yōu)勢(shì):在硬件方面,較高的執(zhí)行速度、內(nèi)置的硬件乘法器ADC和DAC功能、內(nèi)置的AGC自動(dòng)增益環(huán)節(jié),這些為語音處理提供了強(qiáng)大基礎(chǔ)。在軟件方面,標(biāo)準(zhǔn)的C語言編程,豐富的語音資源函數(shù)為編程提供了很大的方便。該設(shè)計(jì)方案結(jié)構(gòu)簡(jiǎn)單,以單芯片實(shí)現(xiàn)了語音播放與識(shí)別以及電機(jī)控制功能,相當(dāng)于“語音識(shí)別芯片+普通單片機(jī)”的功能。但是比“語音識(shí)別芯片+普通單片機(jī)”方案實(shí)現(xiàn)起來要簡(jiǎn)單很多,而且成本也會(huì)降低很多。該語音控制小車操作比較簡(jiǎn)單,訓(xùn)練和識(shí)別成功的幾率也比較高,是一個(gè)典型的語音識(shí)別應(yīng)用方案。

參考文獻(xiàn)、資料索引文獻(xiàn)、資料名稱編著者出版單位凌陽16位單片機(jī)應(yīng)用基礎(chǔ)[M]凌陽16位單片機(jī)原理及應(yīng)用[M]單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開[M]單片機(jī)創(chuàng)新開發(fā)與機(jī)器人制作機(jī)器人制作提咼篇凌陽大學(xué)計(jì)劃網(wǎng)羅亞非張彥斌薛鈞義趙亮耿德根詹衛(wèi)前李青DavidCook畢樹生李大寨高志慧譯北京航空航天大學(xué)出版社清華大學(xué)出版社人民郵電出版社北京航空航天大學(xué)出版社北京航空航天大學(xué)出版社此表格有學(xué)生填寫所參考的文獻(xiàn)、資料致謝在論文完成之際,我要特別感謝我的指導(dǎo)老師左老師的熱情關(guān)懷和悉心指導(dǎ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)論