基于ATmega16A的智能小車的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于ATmega16A的智能小車的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于ATmega16A的智能小車的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于ATmega16A的智能小車的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于ATmega16A的智能小車的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章引言1.1課題背景與來源當(dāng)前,在國內(nèi)外對(duì)各類智能機(jī)器人的鉆研開發(fā)成了科研的熱門,智能機(jī)器人??傮w上來說,機(jī)器人的發(fā)展可以分為兩個(gè)方向:第一個(gè)方向是無人管理時(shí)機(jī)器人的自主操作性越來越智能化,通過運(yùn)用傳感器、控制器,以先進(jìn)的控制算法和精密的機(jī)電控制操作系統(tǒng)來實(shí)現(xiàn);第二個(gè)方向和企業(yè)產(chǎn)品的生產(chǎn)加工相關(guān)的,設(shè)計(jì)出可以滿足生產(chǎn)線操作具體任務(wù)的產(chǎn)業(yè)機(jī)器人,主要選用物美價(jià)廉的高性能模塊,在能完成生產(chǎn)操作任務(wù)的基礎(chǔ)上,追求操作系統(tǒng)的經(jīng)濟(jì)性以及可靠性。人類是通過語言來實(shí)現(xiàn)信息的交流,我們可以通過運(yùn)用語言識(shí)別技術(shù),讓交流領(lǐng)域從人類與人類擴(kuò)展到人類與機(jī)器。智能小車屬于一種小型機(jī)器人,它的發(fā)展已經(jīng)運(yùn)用于機(jī)械、電子、工業(yè)等多個(gè)領(lǐng)域,和人們的生活密切相關(guān)。因此,為了適應(yīng)新時(shí)代發(fā)展,本設(shè)計(jì)運(yùn)用了一款集語音識(shí)別系統(tǒng)、語音播報(bào)系統(tǒng)、紅外避障傳感器和光電開關(guān)檢測系統(tǒng)于一體的具有語音識(shí)別、語音播報(bào)、避障以及尋跡的多功能小車。1.2課題意義隨著生產(chǎn)自動(dòng)化的發(fā)展,機(jī)器人在自動(dòng)化生產(chǎn)上應(yīng)用廣泛。現(xiàn)在科技發(fā)達(dá),人們的需求也越來越高,實(shí)現(xiàn)對(duì)小車的聲控功能的研究,為人們提供各種便利,比如聲控售貨機(jī)、聲控洗衣機(jī)、聲控電視等設(shè)備。實(shí)現(xiàn)小車的避障功能的研究,為避免發(fā)生車禍有著重要意義。實(shí)現(xiàn)小車自動(dòng)進(jìn)行尋跡功能的研究對(duì)智能運(yùn)輸系統(tǒng)起著重要作用。隨著國家的經(jīng)濟(jì)發(fā)展,越來越多的人涌入城市,現(xiàn)有的城市公共交通已經(jīng)滿足不了人群的需求,所以解決城市交通的基礎(chǔ)設(shè)施問題,為城市的發(fā)展起著重要性。因此智能運(yùn)輸系統(tǒng)越來越被人們所重視,因?yàn)樗腔陉P(guān)鍵理論模型,將數(shù)據(jù)傳輸技術(shù)、電子操作技術(shù)及微機(jī)運(yùn)算處理技術(shù)綜合起來形成的交通管理體系,能夠全方位發(fā)揮作用,為人類高效地管理城市交通系統(tǒng),從而解決生活中公交堵車、行使緩慢等問題。1.3設(shè)計(jì)的主要功能設(shè)計(jì)一個(gè)基于ATmega16A的智能小車,包含以下功能:1.聲控:非特定人可通過聲音來控制小車執(zhí)行相應(yīng)的程序指令,如前進(jìn)、左轉(zhuǎn)、停止等動(dòng)作;2.尋跡:小車會(huì)自動(dòng)沿著黑線軌道前進(jìn),在無人操作的情況下能引導(dǎo)小車順利地到達(dá)目的地;3.避障:通過紅外避障傳感器探測小車前后左右四個(gè)方向是否有障礙物,在小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)過程中主程序?qū)⒄{(diào)用避障子程序進(jìn)行檢測,如探測到有障礙物,小車將不會(huì)執(zhí)行相應(yīng)動(dòng)作,且語音提示遇到障礙,避免小車撞到障礙物;4.語音播放:用電腦合成音或者非特定人說話把想要播放的語音錄入到ISD4004芯片,然后經(jīng)過LM386放大播報(bào)相應(yīng)語音。

第二章系統(tǒng)設(shè)計(jì)方案與論證2.1系統(tǒng)組成框圖智能小車主要由單片機(jī)控制板、LD3320語音識(shí)別模塊、ISD4004語音播報(bào)模塊、紅外避障模塊、尋跡模塊、L298N電機(jī)驅(qū)動(dòng)等模塊組成。圖2-1為智能小車的系統(tǒng)框圖:ATmega16AATmega16A單片機(jī)片機(jī)紅外避障模塊ISD4004語音播放模塊紅外避障模塊ISD4004語音播放模塊LD3320語音識(shí)別模塊L298N電機(jī)驅(qū)動(dòng)模塊LD3320語音識(shí)別模塊L298N電機(jī)驅(qū)動(dòng)模塊尋跡模塊尋跡模塊圖2-1智能小車系統(tǒng)框圖2.2系統(tǒng)的功能介紹及操作說明智能小車的特點(diǎn)及實(shí)現(xiàn)的功能和操作說明如下:打開小車總開關(guān),語音播報(bào)“歡迎使用智能小車”,并提示“如要進(jìn)行尋跡模式,請(qǐng)將小車置于黑線軌道上”,如小車檢測不到軌道,則小車會(huì)自動(dòng)進(jìn)入語音模式,并等待非特定人語音指令。在語音模式,非特定人通過語音可以控制小車執(zhí)行相應(yīng)指令。即當(dāng)有人對(duì)智能小車發(fā)出左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、后退、停止和尋跡等動(dòng)作指令時(shí),智能小車就會(huì)根據(jù)指令來執(zhí)行相應(yīng)的動(dòng)作。3.在小車前進(jìn)過程中主程序?qū)⒄{(diào)用避障子程序進(jìn)行檢測,,所以一旦檢測到有障礙物,則小車停車播放語音提示遇到障礙。4.當(dāng)命令小車前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)時(shí),如小車相應(yīng)方向檢測到有障礙物,小車將不會(huì)執(zhí)行相應(yīng)動(dòng)作,且語音提示遇到障礙。5.當(dāng)把小車放在黑線軌道上時(shí)則會(huì)自動(dòng)進(jìn)入尋跡模式,執(zhí)行尋跡行走,如不在黑線軌道上則不執(zhí)行尋跡行走。2.3主控芯片的選擇方案一:采用AT89S51單片機(jī),AT89S51單片機(jī)是功耗非常小且具有高性能的芯片,芯片內(nèi)部含有4KB單元的程序存儲(chǔ)器,此存儲(chǔ)器的壽命為一千次的反復(fù)擦寫。芯片總共有40個(gè)管腳,內(nèi)部含有128字節(jié)大的隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)雙向I/0口,6個(gè)中斷源,2個(gè)16位可編程定時(shí)器/計(jì)算器,一個(gè)全雙工UART串行中斷口,其兼容MCS-51指令系統(tǒng)。方案二:采用ATmega16AVR單片機(jī),ATmega16AVR是功耗非常小的8位微型數(shù)據(jù)處理控制芯片,并具有1MIPS/MHZ的數(shù)據(jù)傳輸率和豐富的指令集。且其程序存儲(chǔ)器比51單片機(jī)的大且壽命也長多了,高達(dá)16KB的單元和一萬次的反復(fù)擦寫;并具有32個(gè)雙向I/0口,7個(gè)可以將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的A/D轉(zhuǎn)換器輸入端口,兩個(gè)可以預(yù)分頻功能的8位定時(shí)器和一個(gè)16位的定時(shí)/計(jì)數(shù)器。由于ATmega16AVR單片機(jī)運(yùn)行速度比51單片機(jī)高很多且定時(shí)器在本設(shè)計(jì)的小車中資源不會(huì)浪費(fèi),效率高,系統(tǒng)內(nèi)可用于編程的存儲(chǔ)空間比較大,所以本設(shè)計(jì)采用方案二。2.4避障模塊的選擇方案一:采用E18-D80NK紅外避障傳感器模塊,該傳感器是一種小型的反射式光電開關(guān),具有比較強(qiáng)的環(huán)境光線適應(yīng)能力。該模塊由一對(duì)紅外發(fā)射管與接收管組成,紅外發(fā)射管發(fā)射波長是780nm-1mm的紅外線,當(dāng)紅外線遇到障礙物時(shí)會(huì)被反射回來被紅外接收管接收,此時(shí)傳感器向單片機(jī)發(fā)出的電平信號(hào)由高電平轉(zhuǎn)變?yōu)榈碗娖剑瑒t單片機(jī)可以通過接收到的電平變換來確定小車是否遇到障礙物。還可以通過調(diào)節(jié)模塊上可調(diào)電阻的大小來調(diào)節(jié)傳感器的檢測距離,具有體積小便于安裝、抗干擾能力強(qiáng)、使用簡單等優(yōu)點(diǎn),所以常用于智能小車的避障系統(tǒng)中。方案二:采用HC-SR04超聲波測距模塊進(jìn)行避障,模塊采用IO口觸發(fā)測距,其檢測的距離近處為3-5厘米,遠(yuǎn)處為2-3米。當(dāng)超聲波發(fā)生電路發(fā)送8個(gè)40KHZ的方波,同時(shí)單片機(jī)啟動(dòng)定時(shí)器計(jì)時(shí),超聲波在遇到障礙物的時(shí)候會(huì)馬上返回來,同一模塊的接收電路接收到有返回的信號(hào),則產(chǎn)生變化電平輸送給單片機(jī)外部中斷引腳,產(chǎn)生中斷并停止計(jì)時(shí)。則這一時(shí)間便是超聲波從發(fā)射端遇到障礙物返回的時(shí)間,按據(jù)這個(gè)時(shí)間換算成小車與障礙物之間的間隔長度,測試距離=(時(shí)間*聲速(340M/S))/2,這樣就可以檢測到障礙讓小車提前進(jìn)行避障。由于本設(shè)計(jì)中小車是要多個(gè)方向檢測障礙物,所以在這里選擇方案一。2.5功放模塊的方案選擇功放模塊的作用是放大音頻信號(hào),在本設(shè)計(jì)中是放大錄入到ISD4004語音芯片中的信號(hào)。以下是常用的選擇方案:方案一:采用最常用到的TDA2030音頻功率放大電路,其為5個(gè)管腳單列直插式V型封裝構(gòu)造。因?yàn)門DA2030內(nèi)含保護(hù)電路,工作安全可靠性高且開機(jī)沖擊小、輸出功率大、外接元件也非常少、超小型封裝(TO-220)等優(yōu)良特性,所以TDA2030功放電路被常用于電腦有源音箱和汽車立體聲收錄音機(jī)當(dāng)中。需要注意的是,與TDA2030組成的功放電路所用的元器件必須是質(zhì)量有所保障的。方案二:采用LM386功率放大器集成電路,其為8個(gè)引腳雙列直插式封裝結(jié)構(gòu)。LM386靜態(tài)功耗約為4mA,工作電壓為4-12V或者5-18V,電壓增益可調(diào)為20-200DB且低失真度,適用于電池供電的產(chǎn)品中。它是美國半導(dǎo)體公司專為低電壓消費(fèi)類產(chǎn)品而設(shè)計(jì)生產(chǎn)的功放芯片,內(nèi)部電路與通用型集成運(yùn)放類似,是一個(gè)三級(jí)放大電路。能方便的應(yīng)用于語音芯片相結(jié)合的電路中,只需要將LM386的同相輸入端接一個(gè)可調(diào)電阻,然后與語音芯片的13腳即音頻輸出(AUDOUT)相連接便行??紤]到與ISD4004語音芯片的連接方便,故本設(shè)計(jì)選擇方案一。2.6語音播報(bào)模塊方案一:采用蜂鳴器提示。蜂鳴器是一種價(jià)格便宜且操作簡易的電子訊響器,可用直流電壓供電,當(dāng)電磁線圈有電流通過時(shí),其內(nèi)的彈片因繞在磁鐵上的線圈通電時(shí)產(chǎn)生的磁場而被電磁鐵吸引振動(dòng)發(fā)聲。所以只需要單片機(jī)給蜂鳴器一個(gè)脈沖便可以使其發(fā)音一次,但由于單片機(jī)IO引腳輸出電流小不能驅(qū)動(dòng)蜂鳴器發(fā)聲,所以需要一個(gè)三極管來放大電流。方案二:采用功能強(qiáng)大的ISD4004語音芯片,可以實(shí)現(xiàn)對(duì)用戶所需要的語音錄入與放出的控制,錄音時(shí)間可長達(dá)8至16分鐘且能清晰地還原語音,內(nèi)部含有閃爍存儲(chǔ)器能在斷電情況下可以存留信息長達(dá)100年時(shí)間,并提供10萬次錄音周期。可以在ISD4004語音芯片內(nèi)的0X00至0XHH各地址錄入不同的語音信息,且可以獨(dú)自播報(bào)任何一個(gè)地址中的語音信息,這種功能能夠方便靈活的播報(bào)所需要的語音。由于蜂鳴器只是起提醒作用,不能播報(bào)所需要的語音,故在本次設(shè)計(jì)中采用方案二。2.7尋跡模塊方案一:采用兩個(gè)JX-358F尋跡傳感器,把兩個(gè)傳感器分別置于黑線軌道的左邊和右邊,則可以根據(jù)它們兩個(gè)接收反射光的強(qiáng)弱變化而向單片機(jī)輸送高低電平,然后經(jīng)過單片機(jī)處理控制智能小車的左轉(zhuǎn)和右轉(zhuǎn),以此完成尋跡的目的。但是經(jīng)研究發(fā)現(xiàn),如果是兩個(gè)傳感器的距離太小,會(huì)約束小車的行使速度,如果距離太大則小車容易偏離黑線軌道,完成不了尋跡的任務(wù)。方案二:采用3個(gè)反射式光電開關(guān)ITR2001,并結(jié)合外圍電路設(shè)計(jì)成的尋跡電路,此ITR2001光電開關(guān)是發(fā)射與接收為一體化結(jié)構(gòu)的紅外對(duì)管,設(shè)計(jì)電路時(shí)將這3個(gè)紅外對(duì)管分別置于智能小車的車身底座前方。并根據(jù)黑線軌道的大小調(diào)整3個(gè)紅外對(duì)管之間的位置,使其中兩個(gè)分別位于黑線軌道的兩側(cè),單片機(jī)可以根據(jù)這兩個(gè)對(duì)管返回的信息判斷小車是應(yīng)該向左還是向右行駛,而其中一個(gè)位于黑線軌道上中間的位置,則可以根據(jù)這一個(gè)紅外對(duì)管判斷小車是否位于黑線軌道上,能方便快速的讓小車做出相應(yīng)調(diào)整。通過比較,選取第二種方案來實(shí)現(xiàn)尋跡。2.8電機(jī)的選擇方案一:采用直流電機(jī)。連續(xù)移動(dòng)的驅(qū)動(dòng)方式可以使直流電機(jī)運(yùn)行速度較快,小車行使時(shí)會(huì)比較平穩(wěn),且價(jià)格便宜。方案二:采用四相步進(jìn)電機(jī),步階形式分段移動(dòng)的驅(qū)動(dòng)方式可以讓我們精確地控制電機(jī)的轉(zhuǎn)動(dòng)情況,但是其運(yùn)行速度較慢,小車轉(zhuǎn)彎時(shí)會(huì)出現(xiàn)抖動(dòng)振蕩的情況,且價(jià)格較高。綜合比較,故采用方案一的直流電機(jī)驅(qū)動(dòng)智能小車。

第三章硬件組成與設(shè)計(jì)硬件是系統(tǒng)的基本結(jié)構(gòu),是實(shí)現(xiàn)智能小車多功能不可或缺的部分。本次設(shè)計(jì)智能小車的硬件主要包括單片機(jī)主控板、紅外避障模塊、尋跡模塊、LM386功放電路、語音播報(bào)電路、電機(jī)驅(qū)動(dòng)模塊和LD3320語音識(shí)別模塊。接下來將會(huì)詳細(xì)的介紹一些芯片的性能、整體電路圖的設(shè)計(jì)以及各個(gè)模塊的電路圖。3.1整體電路設(shè)計(jì)Atmega16A單片機(jī)及其外圍電路的電路圖如圖3-1所示。在智能小車中運(yùn)用的語音識(shí)別芯片是低功耗、高性能的LD3320芯片,工作電壓為3.3V,而Atmega16A單片機(jī)工作電壓為2.7至5.5V,所以可以直接和單片機(jī)Atmega16A連接起來。要使電機(jī)能正常轉(zhuǎn)動(dòng)就需要提供較大的電壓和電流,所以給電機(jī)驅(qū)動(dòng)模塊提供9V電壓,然后通過開關(guān)電壓調(diào)節(jié)器LM2596轉(zhuǎn)換成5V電壓,再經(jīng)過低漏失電壓調(diào)節(jié)器AMS1117芯片轉(zhuǎn)換成單片機(jī)主控板與LD3320語音識(shí)別模塊所需要的3.3V電壓。AMS1117有片內(nèi)過熱切斷電路,可提供限電流和過熱保護(hù)。Atmega16A單片機(jī)及其外圍電路的電路圖如圖3-2所示:圖3-1Atmega16A單片機(jī)及其外圍電路的電路圖3.2主控制器單片機(jī)常用于電子設(shè)計(jì)中作主控芯片,AVR單片機(jī)使用的是先進(jìn)的精簡指令集且每執(zhí)行一條程序指令大多數(shù)只需要一個(gè)時(shí)鐘周期,而51單片機(jī)使用的是復(fù)雜指令集且每執(zhí)行一條程序指令需要至少長達(dá)十二個(gè)時(shí)鐘周期,所以AVR單片機(jī)的運(yùn)算速度比51單片機(jī)快。AVR單片機(jī)的I/O口功能比51的強(qiáng)大,不僅可以簡單方便的設(shè)置引腳輸出/輸入的屬性,還具有八個(gè)模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的片內(nèi)A/D轉(zhuǎn)換器的引腳接口,可不用像51單片機(jī)一樣還需要外加A/D轉(zhuǎn)換芯片,可以直接接入模擬信號(hào)量,操作簡單節(jié)約成本。且AVR還可以通過調(diào)節(jié)內(nèi)部輸出PWM波控制電機(jī)速度,使小車能平穩(wěn)的行駛和精確的轉(zhuǎn)彎,另外AVR單片機(jī)的功耗比一般51單片機(jī)低。所以在本設(shè)計(jì)中采用Atmega16AAVR單片機(jī),Atmega16A的指令是一個(gè)指令周期,含有多種硬件電路,且抗干擾能力也較強(qiáng),自帶晶振電路。Atmega16A芯片引腳圖如圖3-2所示:圖3-2Atmega16A芯片引腳圖3.3紅外避障傳感器為了避免小車在運(yùn)行過程中撞到障礙物而損壞車體,本設(shè)計(jì)在車體左右前后各方向分別安裝了一個(gè)紅外避障傳感器,其主要功能是在小車運(yùn)行方向檢測到有障礙物時(shí),停止運(yùn)動(dòng)并語音提醒有障礙物。紅外避障傳感器和尋跡用的光電開關(guān)工作原理差不多,發(fā)射管發(fā)送紅外線,當(dāng)遇到障礙物時(shí),則會(huì)因?yàn)槲镔|(zhì)的反射性而返回,接收管接收到紅外線將會(huì)產(chǎn)生一個(gè)低電平送給單片機(jī)處理。本系統(tǒng)設(shè)計(jì)中使用E18-D80NK紅外避障傳感器,其測量范圍為3-80CM,在測量范圍內(nèi),如果小車遇到障礙物,傳感器將返回一個(gè)低電平,經(jīng)單片機(jī)指令處理后控制小車停止并通過語音播報(bào)提示;如果小車沒有遇到障礙物,則發(fā)射出管發(fā)出的紅外線會(huì)消散在空氣中,小車?yán)^續(xù)前進(jìn)。該紅外避障傳感器只有三根線,安裝方便,只需要接上5V電源另一根接單片機(jī)外部中斷引腳便可實(shí)現(xiàn)小車的避障控制功能。3.4尋跡模塊電路尋跡模塊主要由LM339比較器和ITR20001/T反射式光電開關(guān)傳感器以及電位器相組成。有三個(gè)光電開關(guān)對(duì)管,每個(gè)對(duì)管的發(fā)射管發(fā)出紅外線,則接收管根據(jù)被反射回來的紅外線強(qiáng)弱的變化來判斷是否檢測到黑線軌道。通過調(diào)節(jié)上拉電阻可使比較器比較輸出5V電壓,提高傳感器的檢測率,通過調(diào)節(jié)電位器可以調(diào)節(jié)傳感器的檢測距離,使小車更能適應(yīng)道路不平坦的環(huán)境。在不同的黑線軌道進(jìn)行尋跡時(shí)需要調(diào)整ITR20001對(duì)管的位置,使其中兩個(gè)分別位于黑線軌道的兩側(cè)白色處,當(dāng)小車在行駛過程中偏離軌道時(shí),必定會(huì)有一側(cè)的對(duì)管照射到黑線軌道上發(fā)生電平變化,則單片機(jī)可以根據(jù)這兩個(gè)對(duì)管返回的信息判斷小車是應(yīng)該向左還是向右行駛,修正行駛軌跡便能再次回到軌道上;而其中一個(gè)位于黑線軌道上中間的位置,則可以根據(jù)這一個(gè)紅外對(duì)管判斷小車是否位于黑線軌道上,方便快速的讓小車做出相應(yīng)調(diào)整。尋跡電路主要采用ITR20001/T反射式光電開關(guān)傳感器檢測黑線軌道,通過黑線軌道吸收光線,觸發(fā)高電平,實(shí)現(xiàn)小車尋跡的目的。其原理圖如圖3-3所示:圖3-3檢測黑線軌道的電路原理圖3.5LM386功放電路LM386的靜態(tài)功耗可低為24mW,所以在電子設(shè)計(jì)中常用于低功耗電源工作的產(chǎn)品。該芯片由美國半導(dǎo)體公司制造,因其不僅靜態(tài)功耗低,而且電壓增益可調(diào)為20DB至200DB,使用的外圍零件較少及具有低失真度,因此是一款備受大眾喜愛的功放芯片。將它與ISD4004語音芯片相結(jié)合,能夠很好的彌補(bǔ)ISD4004芯片音頻功放較小的缺陷,并能提高音質(zhì)的清晰度,使播放效果更加令人滿意。且電路連接方便,只需要將LM386的同相輸入端接一個(gè)20K精密可調(diào)電阻,通過調(diào)節(jié)該電阻便可改變播放聲音的大小,而電阻的另一端與語音芯片的13腳即音頻輸出(AUDOUT)相連接便行。在這個(gè)電路的設(shè)計(jì)中還有一個(gè)比較重要但容易被忽視的問題,即錄音輸入方式的連接,如果選擇使用麥克風(fēng),應(yīng)該選擇在安靜的環(huán)境下進(jìn)行錄音否則會(huì)有噪聲影響播放音質(zhì),所以最好是選擇電腦合成音,不會(huì)受到環(huán)境影響且發(fā)音較為標(biāo)準(zhǔn),將ISD4004語音芯片的音頻輸入口連接到電腦音頻輸出口就可以了。還需要注意的是喇叭的連接問題,如果通過用電線將喇叭與音頻模塊輸出口連接,會(huì)因?yàn)楹附硬粍诨蛘咚x用的線不適宜傳輸音頻信號(hào)而大大影響音質(zhì),所以解決的辦法是直接將喇叭焊接到功放模塊的音頻輸出端。該功放電路的原理如3-4圖所示:圖3-4LM386電路圖3.6語音播報(bào)模塊本次方案所用到的語音播報(bào)芯片是ISD4004,然后與LM386相結(jié)合進(jìn)行外圍電路的設(shè)計(jì),便可以設(shè)計(jì)成播放清晰語音的語音播報(bào)模塊。在ISD4004芯片與LM386芯片之間連接一個(gè)20K的精密可調(diào)電位器,這樣就可以對(duì)模塊播放的聲音進(jìn)行音量大小的調(diào)節(jié)。由于ISD4004芯片工作電壓為+3.3V,在本設(shè)計(jì)中采用低漏失電壓調(diào)節(jié)器AMS1117芯片,內(nèi)部有集成過熱切斷電路,可提供限電流和過熱保護(hù),適于用電池供電的便攜式計(jì)算機(jī)產(chǎn)品中。語音播報(bào)電路的設(shè)計(jì)比較困難,不好調(diào)試,做出來的模塊容易受到噪音干擾或者焊接技術(shù)不好而影響聲音的錄放,在DXP軟件上畫PCB電路圖時(shí)要注意元器件的布置以及遵守布線規(guī)則,否則也會(huì)影響播放音質(zhì),所以在本模塊電路的設(shè)計(jì)有挺多東西比較講究。本模塊電路的設(shè)計(jì),選擇了用電腦合成音而不是人說話通過麥克風(fēng)進(jìn)行錄音,這樣可以避免吵雜的環(huán)境影響錄音質(zhì)量。為了提高音質(zhì),在連接電腦音頻線的接口處,焊了一個(gè)104PF的瓷片電容來對(duì)芯片在進(jìn)行錄音時(shí)出現(xiàn)的高頻雜音、毛刺現(xiàn)象進(jìn)行過濾,減少雜音的產(chǎn)生。在連接喇叭時(shí),使用質(zhì)量較好的音頻線和喇叭,可減少雜音使音質(zhì)更清晰。在畫PCB電路圖時(shí),為了減少噪聲干擾,采用了45°角轉(zhuǎn)彎的畫線規(guī)則,并將VCC電源線跟ISD4004的音頻輸出(AUDOUT)腳和自動(dòng)靜噪(AMCAP)腳的電容分開一些,且LM386功放芯片與ISD4004語音芯片之間的元件要擺放恰當(dāng),由于語音電路容易受線路影響,因此畫電路圖的時(shí)候信號(hào)線要盡量短,總的連線也要盡可能短,以便在做板時(shí)能減少銅板面積節(jié)約成本。由于電機(jī)驅(qū)動(dòng)模塊工作電壓是9V,尋跡、避障等模塊的工作電壓是+5V,而ISD4004語音芯片的正常工作電壓為+3.3V,所以在小車上必需能實(shí)現(xiàn)三種電壓之間的轉(zhuǎn)換。經(jīng)過幾個(gè)方案的綜合比較,本設(shè)計(jì)采用AMS1117芯片和LM2596芯片,使輸出電壓更穩(wěn)定。ISD4004芯片的外圍電路圖如圖3-5所示;圖3-6是5V降壓為3.3V的電壓轉(zhuǎn)換電路;圖3-7是9V降壓為5V的電壓轉(zhuǎn)換電路。圖3-5ISD4004電路圖圖3-6AMS1117降壓電路圖圖3-7LM2596降壓電路圖由美國ISD公司生產(chǎn)的ISD4004語音芯片,正常工作電壓為3.3V,工作電流為25~30mA,維持芯片工作只需1μA的電流。此芯片的錄放語音時(shí)間可長達(dá)8至16分鐘,且播放出來的音質(zhì)很好,較適用于便攜式的電子產(chǎn)品。其芯片采用CMOS技術(shù),內(nèi)部含有音頻放大器、振蕩器和自動(dòng)靜噪等,且有高密度的閃爍存儲(chǔ)器能在斷電情況下保存信息長達(dá)100年,并提供10萬次錄音周期。該芯片的任何操作都是由微控制器控制,其指令可通過串行通信接口SPI或串行同步雙工通信接口Microware輸入,而且可以將模擬信號(hào)量直接存貯在片內(nèi)閃爍存貯器中,所以可以真實(shí)、自然地還原語音、音調(diào)和效果聲,避免了噪音的干擾影響。其采樣頻率有4.0,5.3,6.4或者是8.0KHZ,如果頻率越高,錄放的時(shí)間則會(huì)越短,音質(zhì)會(huì)有所提高。ISD4004語音芯片總共有28個(gè)引腳,為了減小噪聲的產(chǎn)生,應(yīng)分開連接數(shù)字電壓和模擬電壓。該芯片的通信方式是SPI(同步串行數(shù)據(jù)傳輸)協(xié)議,當(dāng)片選信號(hào)端(SS)為下降沿時(shí),串行數(shù)據(jù)開始進(jìn)行傳輸且期間SS需要保持低電平,而兩條指令間需要保持高電平;當(dāng)ISD操作時(shí)如檢測到EOM或者是OVF時(shí),中斷信號(hào)端(INT)要變成低電平并保持,該端口屬于漏極開路輸出,并清除于下一個(gè)SPI周期的開始,放音時(shí)如檢測有EOM標(biāo)志則此狀態(tài)位將置1;若芯片內(nèi)部的采樣時(shí)鐘頻率不夠,可以從外部時(shí)鐘(XCLK)端口輸入外部時(shí)鐘,輸入的時(shí)鐘信號(hào)占空比不是很重要,因?yàn)閮?nèi)部已首先進(jìn)行了分頻,在不接外部時(shí)鐘時(shí),此端需接地;為了解決錄放音質(zhì)量和噪音問題,芯片內(nèi)部設(shè)計(jì)了自動(dòng)靜噪功能,通常此自動(dòng)靜噪(AMCAP)端口對(duì)地接1MF的電容,如要禁止自動(dòng)靜噪則接VCCA。我們可以在ISD4004語音芯片內(nèi)的0X00至0XHH各地址錄入不同的語音信息,且可以獨(dú)自播報(bào)任何一個(gè)地址中的語音信息,這種功能能夠讓我們準(zhǔn)確的知道所錄的信息分別在哪些地址中便于對(duì)播報(bào)所需要的語音進(jìn)行管理。3.7電機(jī)驅(qū)動(dòng)模塊由STC公司生產(chǎn)的L298N電機(jī)驅(qū)動(dòng)芯片,它具有操作方便、抗干擾性強(qiáng)、過壓過流保護(hù)等優(yōu)良特性。L298N結(jié)合外圍電路設(shè)計(jì)成的驅(qū)動(dòng)模塊通過單片機(jī)處理可以精確控制智能小車的車速,且能夠?qū)崿F(xiàn)對(duì)電機(jī)的快速啟動(dòng)、停轉(zhuǎn)和反轉(zhuǎn)。只需在5、7、10、12引腳之間改變高低電平的轉(zhuǎn)換便可以控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),而6、7引腳為控制使能端,連接單片機(jī)的定時(shí)/計(jì)數(shù)器引腳,利用PWM模式即改變脈沖電壓的占空比可實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的快慢進(jìn)行控制。L298N芯片內(nèi)具有兩個(gè)H橋驅(qū)動(dòng)電路,這樣的設(shè)計(jì)主要是為了實(shí)現(xiàn)電機(jī)的正反方向驅(qū)動(dòng),一片L298N可控制兩個(gè)兩相的步進(jìn)電機(jī)、一個(gè)四相的步進(jìn)電機(jī)、兩個(gè)繼電器或者兩個(gè)直流電機(jī),且還有兩個(gè)控制使能端。本設(shè)計(jì)中為了更好的驅(qū)動(dòng)電機(jī),采用了L298N驅(qū)動(dòng)芯片并與外圍元件構(gòu)成了電機(jī)驅(qū)動(dòng)模塊,可以控制智能小車準(zhǔn)確行走。其中5、7、10、12引腳接電平的輸入控制,驅(qū)動(dòng)電機(jī)的正反方向轉(zhuǎn)動(dòng)。其驅(qū)動(dòng)模塊原理圖如下3-8圖所示:圖3-8L298N驅(qū)動(dòng)模塊原理圖3.8LD3320語音識(shí)別模塊LD3320語音識(shí)別模塊是本次畢業(yè)設(shè)計(jì)的重頭戲,可以讓人和智能小車通過語音交互界面進(jìn)行交流,讓小車能夠根據(jù)非特定人所說的話執(zhí)行相應(yīng)動(dòng)作,實(shí)現(xiàn)聲控功能。為了實(shí)現(xiàn)小車的聲控功能,引入了語音識(shí)別系統(tǒng),此系統(tǒng)是根據(jù)所采集到的聲音提取其特征,進(jìn)行模式識(shí)別,與模式庫的詞語進(jìn)行比較后取得分最高的詞語,然后把識(shí)別結(jié)果輸送給單片機(jī)處理。LD3320芯片是一款由ICRoute公司設(shè)計(jì)的語音識(shí)別芯片,該芯片通過快速精確的優(yōu)化算法,可以對(duì)非特定人的語音進(jìn)行識(shí)別,且不用用戶事先對(duì)芯片進(jìn)行錄音,識(shí)別準(zhǔn)確度可高達(dá)95%。該芯片內(nèi)含語音識(shí)別處理器、DA、AD轉(zhuǎn)換器和聲音輸入輸出口等,不需要外接輔助芯片如RAM等,只要與現(xiàn)成產(chǎn)品結(jié)合就可以實(shí)現(xiàn)語音識(shí)別功能。該工作供電為3.3V,適用于便攜式電子產(chǎn)品中,且只需要用3節(jié)AA電池便可。而且可以在程序中動(dòng)態(tài)編輯或修改任意的語音識(shí)別關(guān)鍵詞語,每次可編寫多達(dá)50項(xiàng)候選識(shí)別語句。語句可以是單字或者短句,要注意的是短句字?jǐn)?shù)不可大于10個(gè),語句還可以是79個(gè)字節(jié)的拼音串,這樣可以用于多種場合,例如自動(dòng)售貨機(jī),手持游戲機(jī),智能手機(jī)等,提高設(shè)備的應(yīng)用性。LD3320芯片支持并口方式和串口方式傳輸,串行傳輸方式可以簡化與CPU之間的連接,在本次設(shè)計(jì)中使用該芯片的串行接口通過SPI(同步串行數(shù)據(jù)傳輸)協(xié)議和ATmega16A單片機(jī)連接,此時(shí)用到的端口共有七個(gè)分別為SPI的SDI(輸入)、SDI(輸出)、SDCLK(時(shí)鐘)、SPIS(片選)、RESET(芯片復(fù)位)、IRQ(中斷信號(hào))、CS(芯片片選)端口。LD3320語音識(shí)別芯片其引腳圖如圖3-9所示:圖3-9LD3320語音識(shí)別芯片引腳圖

第四章軟件設(shè)計(jì)小車功能的實(shí)現(xiàn)除了硬件外還得要有相應(yīng)的軟件來結(jié)合。如果說硬件是小車的身體,決定了基本結(jié)構(gòu)和特性,軟件則是小車的思維,決定了要做什么怎么去執(zhí)行,軟硬件缺一不可,相輔相成。在進(jìn)行本系統(tǒng)軟件設(shè)計(jì)時(shí),由于主控芯片是AVR單片機(jī),所以使用ICCAVR編程軟件,采用C語言對(duì)單片機(jī)編寫程序,實(shí)現(xiàn)小車的各項(xiàng)功能。車體主要由Atmega16A單片機(jī)主控板,電機(jī)驅(qū)動(dòng)模塊、ISD4004語音播報(bào)模塊、尋跡模塊和LD3320語音識(shí)別模塊等組成。當(dāng)把小車放在黑線軌道上時(shí)則會(huì)自動(dòng)進(jìn)入尋跡模式,執(zhí)行尋跡行走,如不在黑線軌道上則不執(zhí)行尋跡行走。如果尋跡途中遇到障礙物,將會(huì)停止前進(jìn),并進(jìn)行語音提示。小車尋跡模式程序流程圖如圖4-1所示:開始開始系統(tǒng)初始化系統(tǒng)初始化否是否檢測到黑線軌道否是否檢測到黑線軌道語音模式語音模式是是尋跡行走尋跡行走是停止并語音提示前方有障礙物是否有障礙物是停止并語音提示前方有障礙物是否有障礙物否否繼續(xù)前進(jìn)直到尋跡完畢繼續(xù)前進(jìn)直到尋跡完畢小車停止圖4-1小車尋跡模式程序流程圖當(dāng)小車不在黑線軌道上時(shí)會(huì)自動(dòng)進(jìn)入語音模式下,并等待非特定人語音指令控制小車。即當(dāng)任何人發(fā)出小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止等動(dòng)作指令時(shí),小車會(huì)執(zhí)行相應(yīng)的動(dòng)作,而且小車在前進(jìn)過程中將調(diào)用避障函數(shù)進(jìn)行避障,所以一旦檢測到有障礙物,則小車會(huì)立即停車并播放語音提示遇到障礙,避免撞壞車體。如果小車本來距離就小于安全距離時(shí),命令小車前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn),小車將不會(huì)執(zhí)行相應(yīng)動(dòng)作,且語音提示遇到障礙。小車的語音模式程序流程圖如圖4-2所示:開始開始系統(tǒng)初始化系統(tǒng)初始化否是否有語音命令否是否有語音命令停止并語音提示前方有障礙物停止并語音提示前方有障礙物是貴港是貴港是貴港是貴港否是貴港是否有障礙物前進(jìn)否是貴港是否有障礙物前進(jìn)前進(jìn)前進(jìn)停止并語音提示左方有障礙物是貴港停止并語音提示左方有障礙物是貴港否否是貴港左轉(zhuǎn)是貴港左轉(zhuǎn)是否有障礙物左轉(zhuǎn)停止并語音提示右方有障礙物是否有障礙物左轉(zhuǎn)停止并語音提示右方有障礙物否否是貴港是貴港否否是貴港右轉(zhuǎn)是貴港右轉(zhuǎn)是否有障礙物右轉(zhuǎn)停止并語音提示后方有障礙物是否有障礙物右轉(zhuǎn)停止并語音提示后方有障礙物否否是貴港否是貴港否是貴港是否有障礙物后退是貴港是否有障礙物后退后退停止停止否否否否圖4-2小車語音模式程序流程圖第五章系統(tǒng)測試與分析5.1系統(tǒng)設(shè)計(jì)過程開始的時(shí)候在網(wǎng)上和課本上進(jìn)行相關(guān)資料查閱,確定了本次畢業(yè)設(shè)計(jì)的方案,并逐漸了解所用到的芯片的技術(shù)資料。使用AltiumDesigner電路制圖軟件進(jìn)行原理圖的設(shè)計(jì),確認(rèn)原理圖無誤后導(dǎo)入到該工程下的PCB圖中,進(jìn)行元器件的位置擺放和線路的布線,整體上要求達(dá)到整齊美觀。還要注意到的是,元器件的封裝一定要和實(shí)際元件相匹配,如果軟件的封裝庫沒有合適的就需要按照實(shí)物引腳的尺寸來畫。遵守布線的原則,要合理的分配地線和電源線,數(shù)字、模擬信號(hào)線盡量走短,且地線要大于電源線和信號(hào)線。畫好PCB圖后打印出來并覆蓋在無損的銅板上進(jìn)行轉(zhuǎn)印,注意在轉(zhuǎn)印前把銅板表面的氧化物用砂紙擦洗掉,以免影響轉(zhuǎn)印時(shí)碳墨粘不牢在銅板上。轉(zhuǎn)印后如線路有移位斷裂或模糊的現(xiàn)象,用馬克筆畫好補(bǔ)上,等油墨干后用腐蝕液對(duì)銅板進(jìn)行腐蝕,注意腐蝕過程中腐蝕液的配制是鹽酸、雙氧水和水的比例是1:1:1,且不要腐蝕太久,否則會(huì)腐蝕掉電路線。腐蝕好銅板擦掉碳粉就可以進(jìn)行鉆孔,要注意大小不一的銅孔要用對(duì)應(yīng)的鉆孔針,以免損壞電路或者元件插入不了。最后就是裝入相應(yīng)元件進(jìn)行焊板,元件要安放合理,先焊小的再焊大的元件,對(duì)于不耐溫的元器件不適宜焊接久,以免燒壞,在焊接過程中切誤急功近利以免出現(xiàn)虛焊或短路現(xiàn)象。電路板檢查無誤后就可以進(jìn)行模塊的調(diào)試。5.2各模塊的調(diào)試電路板制作好后,編寫好C語言程序就可以就進(jìn)行各模塊的調(diào)試工作。由于本次設(shè)計(jì)用到的是AVR單片機(jī),所以要用相關(guān)的AVR編程軟件,在國內(nèi),最多人使用的AVR編程軟件就是ICCAVR軟件了,它含有非常豐富的程序例子,可以方便的進(jìn)行調(diào)用而省去不少麻煩,雖然它的各方面性能不是很突出,可是使用起來比較方便。本次設(shè)計(jì)需要調(diào)試的模塊有語音識(shí)別模塊、語音播報(bào)模塊、尋跡模塊、電機(jī)驅(qū)動(dòng)模塊和避障模塊等五個(gè)大模塊。避障模塊主要是調(diào)E18-D80NK紅外避障傳感器,一是看其發(fā)射管和接收管是否能工作,檢測到障礙物的時(shí)候是否有高低電平的變化,二是調(diào)其感應(yīng)距離,在這里調(diào)的距離為20CM。尋跡模塊主要是檢測黑線軌道,光電開關(guān)傳感器在檢測到白線時(shí)反射光線返回的是低電平,檢測到黑線時(shí)被吸收光線返回的是高電平。調(diào)試過程中發(fā)現(xiàn)檢測黑白線的時(shí)候電平?jīng)]有變化,研究發(fā)現(xiàn)是因?yàn)檫B比較器可調(diào)電阻沒有調(diào)節(jié)好,調(diào)好后可以發(fā)現(xiàn)檢測黑白線時(shí)返回的電平有變化。電機(jī)驅(qū)動(dòng)模塊在調(diào)試的過程中發(fā)現(xiàn)怎么調(diào)電機(jī)都沒有轉(zhuǎn)動(dòng),后來把電機(jī)直接連電源的5V電壓也不動(dòng)才發(fā)現(xiàn)電機(jī)是壞的,換成了好的電機(jī)調(diào)試后,電機(jī)驅(qū)動(dòng)模塊能夠正常驅(qū)動(dòng)電機(jī)正反轉(zhuǎn)。語音播報(bào)模塊的調(diào)試比較復(fù)雜,除了能夠準(zhǔn)確無誤錄音和放音,還要使聲音能清晰的播放出來,而且在沒有播報(bào)語音的時(shí)候喇叭不能有沙沙的噪聲。如果有噪聲則是因?yàn)橛布想娐吩O(shè)計(jì)得不夠好,因此在硬件上的設(shè)計(jì)要認(rèn)真對(duì)待。在調(diào)試過程中人對(duì)著咪頭說話,錄好語音后發(fā)現(xiàn)播放的聲音不清晰或者是雜音大,研究發(fā)現(xiàn)主要原因有兩方面,一是說話發(fā)音不準(zhǔn),二是周圍環(huán)境吵鬧。后來改成用電腦合音進(jìn)行錄音,能播放出清晰的聲音。語音識(shí)別模塊的調(diào)試是重點(diǎn),要實(shí)現(xiàn)小車的聲控功能就得靠它來完成。語音識(shí)別即能夠分辨出人所說的詞語不同則所代表的意思不同,這就要在程序中把所要求識(shí)別的關(guān)鍵詞編寫好。在調(diào)試過程中,開始的時(shí)候采用并行通信連接到單片機(jī),因?yàn)殡y度比較大調(diào)了很久都沒成功就改成用串行通信,串行通信一開始也調(diào)不得,后來查資料發(fā)現(xiàn)需要把硬件上的并行通信口斷開并把串行通信口連接好。在采集聲音時(shí),用杜邦線把麥克風(fēng)連接到模塊上,識(shí)別率非常的低,后來直接把麥克風(fēng)焊在模塊上識(shí)別率提高了許多,而且人說話時(shí)不能離麥克風(fēng)太遠(yuǎn),否則采集不到聲音。調(diào)試過程中發(fā)現(xiàn)周圍環(huán)境如有雜音,模塊也會(huì)進(jìn)行識(shí)別,只是識(shí)別不成功,所以為了確保能識(shí)別人的所說的指令,需要在安靜的環(huán)境下進(jìn)行語音識(shí)別。5.3系統(tǒng)測試達(dá)到的技術(shù)指標(biāo)1.小車避障:小車前后左右四個(gè)方向都可以檢測到障礙物2.聲控距離:由于是小咪頭,所以,在實(shí)驗(yàn)室情況下測試小車需要較近的距離,幾乎是貼著小話筒;如果需要遠(yuǎn)距離測試,則需要非特定人大聲發(fā)出小車要執(zhí)行的指令。3.工作電壓:3.3V;4.語音播報(bào)工作:可以錄音也可以放音;5.控制小車情況:既可以聲控,又可以尋跡行走。6.小車前進(jìn):圖5-1小車前進(jìn)圖6.小車后退:圖5-1小車后退圖7.小車左轉(zhuǎn):圖5-2小車左轉(zhuǎn)圖7.小車右轉(zhuǎn):圖5-1小車右轉(zhuǎn)圖7.小車尋跡:圖5-2小車尋跡圖

第六章總結(jié)與展望6.1總結(jié)本次畢業(yè)設(shè)計(jì)足足花了四個(gè)多月的時(shí)間,期間雖然有許許多多的困難,不過在老師還有同學(xué)的幫助以及自己的努力之下終于能夠在規(guī)定的時(shí)間內(nèi)成功完成了作品設(shè)計(jì)。 從設(shè)計(jì)方案到開始實(shí)施,經(jīng)歷了畫電路原理圖到PCB圖,到焊接電路板,到程序的編寫完成以及小車的組裝調(diào)試,我一直努力認(rèn)真地完成每一個(gè)步驟。在硬件設(shè)計(jì)與程序編寫過程中遇到過挺多困難,如對(duì)電路設(shè)計(jì)、元器件擺放不合理,編寫程序時(shí)調(diào)用多個(gè)中斷定時(shí)等有沖突,還有語音識(shí)別方面以前從沒接觸過,不知道從何下手,對(duì)此我并沒有放棄而是積極地去請(qǐng)教老師和同學(xué)或者上網(wǎng)查找資料,在堅(jiān)持不懈地努力之下終于功克一個(gè)個(gè)難題,完成了本次設(shè)計(jì)。雖然這四個(gè)多月來休息時(shí)間都少了很多,且一直思考極消耗腦力,比較辛苦,但這并不影響我的自信與激情,因?yàn)檫@一切都是值得的。通過本次畢業(yè)設(shè)計(jì),讓我深刻地了解到自己學(xué)習(xí)的不足并學(xué)到了很多新的專業(yè)知識(shí)。6.2工作展望本次畢業(yè)設(shè)計(jì)涉及到了語音信號(hào)的識(shí)別與播報(bào),以及避障與尋跡等功能,經(jīng)過本次畢業(yè)設(shè)計(jì),讓自己學(xué)到了更多的專業(yè)基礎(chǔ)知識(shí),還提高了動(dòng)手能力,為以后走專業(yè)方面的道路奠定了基礎(chǔ)。雖然自己的專業(yè)知識(shí)學(xué)得還不是很好,但是我永不言棄,會(huì)通過自己的努力把模電、單片機(jī)、C語言等知識(shí)學(xué)好,因?yàn)樵谶@競爭激烈的社會(huì)如果沒有掌握好一門好技術(shù)就難以立足,希望自己在以后的工作生活能不斷的學(xué)習(xí),可以有所進(jìn)步,有所提高。電子信息工程主要研究的是電子設(shè)備與信息系統(tǒng)的設(shè)計(jì)、開發(fā)和應(yīng)用,而且隨著科技的發(fā)展與人們生活水平的日益提高, 將會(huì)有越來越多的電子產(chǎn)品進(jìn)入人們的生活中。所以希望畢業(yè)以后能夠進(jìn)入到較好的公司,在更大的平臺(tái)上進(jìn)行新的學(xué)習(xí),從事電子產(chǎn)品的技術(shù)管理和開發(fā)工作。

參考文獻(xiàn)[1]邊鵬飛.基于行為的移動(dòng)機(jī)器人智能避障系統(tǒng)研究[D].武漢:武漢理工大學(xué),2009:1-30[2]肖南峰.智能機(jī)器人[M].廣州:華南理工在學(xué)出版社,2008:128-130[3]何友等著.多傳感器信息融合及應(yīng)用第2版[M].北京:電子工業(yè)出版社,2009.1-12[4]張拓,戴亞文.基于ATmega16A單片機(jī)的智能循跡機(jī)器人設(shè)計(jì)[J].機(jī)電工程技術(shù),2009(1):13-15[5]劉建清,蘇保書,李鳳偉等.輕松玩轉(zhuǎn)AVR單片機(jī)C語言[M].北京:北京航空航天大學(xué)出版社,2011.1-8[6]何希才.薛永毅.傳感器及其應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2004:138-152[7]祝勝光.智能尋跡小車設(shè)計(jì)與研究[J].深圳:深圳大學(xué)機(jī)電與控制工程學(xué)院2009(14):32-35[8]謝自美.電子線路設(shè)計(jì)與實(shí)驗(yàn)[M].武漢:華中科技大學(xué)出版社,2009:26-33[9]譚保華等.語音識(shí)別技術(shù)概述[J].鄖陽師范高等??茖W(xué)校學(xué)報(bào),2009(3):19-20[10]胡漢才.單片機(jī)原理極其接口技術(shù)-2版[M].北京:清華大學(xué)出版社,2004:66-70[11]金鑫等.聲控小車技術(shù)及其應(yīng)用[J].電腦與信息技術(shù),2011,6(8):20-23[12]王力.電路設(shè)計(jì)與制作ProtelDXP庫元器件手冊[M].北京:人民郵電出版社,2008:66-70[13]過惠,吳迅.單片機(jī)C語言程序設(shè)計(jì)完全自學(xué)手冊[M].北京:電子工業(yè)出版社,2008.10:1-200.[14]趙亮,侯國銳.單片機(jī)C語言編程與實(shí)例[M].北京:人民郵電出版社,2003:33-38[15]YooOh.Anamerecognitionbasedcallandcomeserviceforhomerobots[J].IEEETransactionsonConsumerElectronics,2008,vol.54:247-251[16]JamesW.Nilsson,Susan.Prentice-HallInternationalinc[M].ElectricCircuitsNinthEdition.2012.122-123

附錄一、實(shí)物圖二、原理圖1.Atmega16A及其外圍器件電路圖2.反射式光電開關(guān)傳感器及其外圍器件電路圖3.語音播放電路圖4.L298N驅(qū)動(dòng)原理圖程序//////***********主函數(shù)********///////#include"common.h"

uint8nAsrStatus=0;//中斷中的nAsrStatus=LD_ASR_FOUNDOK表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果

//語音識(shí)別流程:1.芯片初始化》寫入識(shí)別列表》開始識(shí)別。

//每識(shí)別一次都需要進(jìn)行一次這樣的流程。

uint8RunASR(void)

{

uint8i=0;

uint8asrflag=0;

for(i=0;i<5;i++) // 防止由于硬件原因?qū)е翷D3320芯片工作不正常,所以一共嘗試5次啟動(dòng)ASR識(shí)別流程

{

LD_AsrStart();//芯片初始化。

delay(10);

if(LD_AsrAddFixed()==0)//識(shí)別列表是否成功,返回1表示成功

{

LD_reset(); // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片

delay(10); // 并從初始化開始重新ASR識(shí)別流程

continue;

}

delay(1);

if(LD_AsrRun()==0)//啟動(dòng)識(shí)別語音是否成功,返回1表示成功

{

LD_reset(); // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片

delay(10); // 并從初始化開始重新ASR識(shí)別流程

continue;

}

asrflag=1;

break; // ASR流程啟動(dòng)成功,退出當(dāng)前for循環(huán)。開始等待LD3320送出的中斷信號(hào)

}

returnasrflag;//返回1標(biāo)示成功,返回0標(biāo)示失敗。

}

voiddispatch(uint8cmd)

{

switch(cmd)

{

case1:

qianjin90();//前進(jìn)test();

break;

case2:

houtui90();//后退test1();

break;

case3:

zuozhuan90();//zuozhuan90();//左轉(zhuǎn)test2();

break;

case4:

youzhuan90();//youzhuan90();//右轉(zhuǎn)test3();

break;

case5:

tingzhi();//右轉(zhuǎn)test3();

break;

default:

break;

}

}

voidinit(void)

{

DDRA=0x1F;

PORTA=0XFF;

DDRB=0xFF;

DDRC=0x7F;

PORTC=0X80;

DDRD=0x03;//00000001

PORTD=0X0C;//01001100

MCUCR|=0x0A;//INT0的下降沿產(chǎn)生異步中斷請(qǐng)求

GICR|=0xC0;//INT0使能

TIMSK=0x00;//timerinterruptsources

SEI();//re-enableinterrupts

}

voidmain(void)

{

uint8nAsrRes=0,aaa=0;

init();

init_12864();

LD_reset();//test_delay();

nAsrStatus=LD_ASR_NONE; //LD_ReadReg(0xba)=0x00 中斷輔助信息,讀或設(shè)為00// 初始狀態(tài):沒有在作ASR

isd_pu();//AN鍵按下ISD上電并延時(shí)50ms

isd_pd();

isd_pu();

speak(0x06,0X06,300);//你好!歡迎使用智能小車,,

speak(0x07,0X07,300);//如要進(jìn)行尋跡模式,請(qǐng)將小車置于黑線軌道上

while(1)

{

if((!(PINA&0X80))&&(PINA&0X40)&&(!(PINA&0X20)))

{

while(PINA&0X40)//測到黑線為高電平

{

if((PINA&0X80)&&(!(PINA&0X20)))//右轉(zhuǎn)

{

youzhuan();

//frequen_2(255,5);

}

elseif((!(PINA&0X80))&&(PINA&0X20))//左轉(zhuǎn)

{

zuozhuan();

//frequen_2(5,255);

}

else //前進(jìn)

{

zhizou();

//frequen_2(255,255);

}

}

}

elseif((!(PINA&0X80))&&(!(PINA&0X40))&&(!(PINA&0X20)))

{

tingzhi();

delay(1);

while(!(PINA&0X40))

{

test55();//指示燈作用,可以進(jìn)行聲控

switch(nAsrStatus)

{

caseLD_ASR_RUNING://表示LD3320正在作ASR識(shí)別中

caseLD_ASR_ERROR://表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)

break;

caseLD_ASR_NONE://初始化識(shí)別。表示沒有在作ASR識(shí)別

{

nAsrStatus=LD_ASR_RUNING;

if(RunASR()==0) // 啟動(dòng)語音識(shí)別是否成功,啟動(dòng)一次ASR識(shí)別流程:ASR初始化,ASR添加關(guān)鍵詞語,啟動(dòng)ASR運(yùn)算

{

nAsrStatus=LD_ASR_ERROR;// 表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)

}

break;

}

caseLD_ASR_FOUNDOK:// 表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果

{

nAsrRes=LD_GetResult(); // 0XC5一次ASR識(shí)別流程結(jié)束,去取ASR識(shí)別結(jié)果

nAsrStatus=LD_ASR_NONE;

dispatch(nAsrRes);///得出識(shí)別結(jié)果給dispatch好作出相應(yīng)動(dòng)作

break;

}

caseLD_ASR_FOUNDZERO:

//test5();//表示一次識(shí)別流程結(jié)束后,沒有識(shí)別結(jié)果,有聲音輸出,但是沒有匹配的內(nèi)容。

default:

{

nAsrStatus=LD_ASR_NONE;//初始狀態(tài):沒有在作ASR

break;

}

}//*///switch

}

}

}//while

}

#pragmainterrupt_handlerint0_isr:iv_INT0

voidint0_isr(void)

{

ProcessInt0();

}

#pragmainterrupt_handlerint1_isr:iv_INT1

voidint1_isr(void)

{

tingzhi();

delay(5);

speak(0x05,0X05,300);//前方有障礙請(qǐng)注意行使

}

voidDELAY_NOP(uintn)//8*0.125=1us

{

uinti,j;

for(j=0;j<8;j++)

{

for(i=0;i<n;i++)

{NOP();NOP();}

}

}

voiddelay(uintms)//1ms

{

ucharj,k;

{

for(;ms>0;ms--)

for(j=2;j>0;j--)////for(j=20;j>0;j--)

for(k=141;k>0;k--);

}

}

voiddelay_nms(uintz)

{

uinti,j;

for(i=z;i>0;i--)

for(j=114;j>0;j--);///for(j=1140;j>0;j--);

}

voidtest55(void)

{

PORTD|=BIT(1);

delay(50);

PORTD&=~BIT(1);

delay(50);

}

//////********************點(diǎn)H程序包含子函數(shù)***********************//////

#ifndefCOMMON_H_

#defineCOMMON_H_

#include<iom16v.h>

#include<macros.h>

#include"LDChip.h"

#include"Reg_RW.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

#endif

//////*******************LD3320芯片驅(qū)動(dòng)函數(shù)點(diǎn)H文件**************//////#ifndefLD_CHIP_H

#defineLD_CHIP_H

#include"common.h"

#defineDATE_A7/*數(shù)組二維數(shù)值*/

#defineDATE_B15 /*數(shù)組一維數(shù)值*/

#defineRSTB3//復(fù)位信號(hào),低電平有效

#defineSCS2//芯片片選信號(hào)

#defineSDCK4//SPI時(shí)鐘信號(hào)

#defineSDI0//SPI數(shù)據(jù)輸入

#defineSPIS1//SPI模式設(shè)置:低有效。

#defineSDO7//SPI數(shù)據(jù)輸出

#defineCON_PORTPORTA//高低電平

#defineCON_DDRDDRA//輸入輸出

#defineCON_PINPINA//接收

#defineRSTB_SETCON_PORT|=(1<<RSTB)//復(fù)位信號(hào)

#defineRSTB_RESETCON_PORT&=~(1<<RSTB)

#defineSCS_SETCON_PORT|=(1<<SCS)//芯片片選信號(hào)

#defineSCS_RESETCON_PORT&=~(1<<SCS)

#defineSDCK_SETCON_PORT|=(1<<SDCK)//SPI時(shí)鐘信號(hào)

#defineSDCK_RESETCON_PORT&=~(1<<SDCK)

#defineSDI_SETCON_PORT|=(1<<SDI)//SPI數(shù)據(jù)輸入

#defineSDI_RESETCON_PORT&=~(1<<SDI)

#defineSPIS_RESETCON_PORT&=~(1<<SPIS)//SPI模式設(shè)置:低有效.

#defineSDO_IN(PINC&(1<<SDO))//SPI數(shù)據(jù)從語音模塊中輸出到MCU的PC7口

#defineuint8unsignedchar

#defineuint16unsignedint

#defineuint32unsignedlong

// 以下五個(gè)狀態(tài)定義用來記錄程序是在運(yùn)行ASR識(shí)別過程中的哪個(gè)狀態(tài)

#defineLD_ASR_NONE 0x00 // 表示沒有在作ASR識(shí)別

#defineLD_ASR_RUNING 0x01 // 表示LD3320正在作ASR識(shí)別中

#defineLD_ASR_FOUNDOK 0x10 // 表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果

#defineLD_ASR_FOUNDZERO 0x11 // 表示一次識(shí)別流程結(jié)束后,沒有識(shí)別結(jié)果

#defineLD_ASR_ERROR 0x31 // 表示一次識(shí)別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)

#defineCLK_IN 22 /*userneedmodifythisvalueaccordingtoclockin*/

#defineLD_PLL_11 (uint8)((CLK_IN/2.0)-1)

#defineLD_PLL_ASR_19 (uint8)(CLK_IN*32.0/((LD_PLL_11)+1)-0.51)

#defineLD_PLL_ASR_1B 0x48

#defineLD_PLL_ASR_1D 0x1f

//識(shí)別碼(客戶修改處)

#defineCODE_QJ 1 /*前進(jìn)*/

#defineCODE_HT 2 /*后退*/

#defineCODE_ZZ 3 /*左轉(zhuǎn)*/

#defineCODE_YZ 4 /*右轉(zhuǎn)*/

#defineCODE_TZ 5 /*停止*/

#defineCODE_YY6/*語音*/

#defineCODE_XJ7/*尋跡*/

#defineMIC_VOL0x43//咪頭增益(靈敏度調(diào)節(jié))

voidLD_reset(void);

voidLD_Init_Common(void);//識(shí)別模式初始化

voidLD_Init_ASR(void);

voidLD_AsrStart(void);

uint8LD_AsrRun(void);

uint8LD_AsrAddFixed(void);

uint8LD_Check_ASRBusyFlag_b2(void);

uint8LD_GetResult(void);

voidProcessInt0(void);

#endif

//////*******************LD3320芯片的驅(qū)動(dòng)函數(shù)*****************//////#include"common.h"

externuint8nAsrStatus;

uint8ucRegVal;

/************************

函數(shù)功能;LD3320復(fù)位函數(shù)

入口參數(shù):無

出口參數(shù):無

***************************/

voidLD_reset(void)

{

RSTB_SET;

delay(2);

RSTB_RESET;

delay(2);

RSTB_SET;

delay(2);

SCS_RESET;

delay(2);

SCS_SET;

delay(2);

}

/*******LD3320初始化*********/

voidLD_Init_Common(void)

{

LD_ReadReg(0x06);//激活蕊片

LD_WriteReg(0x17,0x35);//軟件復(fù)位

delay(10);

LD_ReadReg(0x06);//激活蕊片

LD_WriteReg(0x89,0x03);//進(jìn)入蕊片初始化狀態(tài)

delay(5);

LD_WriteReg(0xCF,0x43);//進(jìn)入蕊片初始化狀態(tài)

delay(5);

LD_WriteReg(0xCB,0x02);

LD_WriteReg(0x11,LD_PLL_11);

/////MODE=1語音識(shí)別模式/////

LD_WriteReg(0x1E,0x00);

LD_WriteReg(0x19,LD_PLL_ASR_19);

LD_WriteReg(0x1B,LD_PLL_ASR_1B);

LD_WriteReg(0x1D,LD_PLL_ASR_1D);

delay(10);

LD_WriteReg(0xCD,0x04);//初始化時(shí)設(shè)置。允許芯片休眠

LD_WriteReg(0x17,0x4C);//進(jìn)入省電模式

delay(5);

LD_WriteReg(0xB9,0x00);//初始化設(shè)置

LD_WriteReg(0xCF,0x4F);//內(nèi)部省電模式

LD_WriteReg(0x6F,0xFF);//初始化設(shè)置

}

///***語音識(shí)別初始化**/////

voidLD_Init_ASR(void)

{

LD_Init_Common();//識(shí)別模式初始化

LD_WriteReg(0xBD,0x00);//啟動(dòng)ASR模塊

LD_WriteReg(0x17,0x48);//激活內(nèi)部DSP

delay(1);

LD_WriteReg(0x3C,0x80);

LD_WriteReg(0x3E,0x07);

LD_WriteReg(0x38,0xff);

LD_WriteReg(0x3A,0x07);

LD_WriteReg(0x40,0x00);

LD_WriteReg(0x42,0x08);

LD_WriteReg(0x44,0x00);

LD_WriteReg(0x46,0x08);//配置數(shù)據(jù)口

delay(1);

}

/*************************

功能描述:獲取識(shí)別結(jié)構(gòu)

調(diào)用函數(shù):

入口參數(shù):

返回函數(shù):

*************************/

voidProcessInt0(void)

{

uint8nAsrResCount=0;///////nAsrStatus

GICR&=~(1<<INT0);//失能外部中斷請(qǐng)求0

ucRegVal=LD_ReadReg(0x2B);//2B為中斷請(qǐng)求編號(hào)

LD_WriteReg(0x29,0);//29為中斷允許地址,0表示不允許

LD_WriteReg(0x02,0);//02為FIFO中斷允許地址,0表示不允許//21表示閑狀態(tài),35可以確定語音識(shí)別流程正常結(jié)束

if((ucRegVal&0x10)&&(LD_ReadReg(0xb2)==0x21)&&(LD_ReadReg(0xbf)==0x35))//識(shí)別成功

{

nAsrResCount=LD_ReadReg(0xba);//BA中斷時(shí),是語音識(shí)別有幾個(gè)識(shí)別候選

if((nAsrResCount>0)&&(nAsrResCount<=4))//1-4:N個(gè)識(shí)別候選,0或者大于4沒有識(shí)別候選

{

nAsrStatus=LD_ASR_FOUNDOK;//0X10//表示一次識(shí)別流程結(jié)束后,有一個(gè)識(shí)別結(jié)果//PORTD&=~BIT(6);

}

else

{

nAsrStatus=LD_ASR_FOUNDZERO;//沒有識(shí)別結(jié)果

}

}

else

{

nAsrStatus=LD_ASR_FOUNDZERO;

}

LD_WriteReg(0x2b,0);//

LD_WriteReg(0x1C,0);//ADC開關(guān)控制,0為ADC不可用

GICR|=(1<<INT0);//使能外部中斷請(qǐng)求0

}

uint8LD_Check_ASRBusyFlag_b2(void)

{

uint8j;

uint8flag=0;

for(j=0;j<10;j++)

{

if(LD_ReadReg(0xb2)==0x21)//21表示空閑

{

flag=1;

break;

}

delay(10);

}

returnflag;

}

voidLD_AsrStart(void)

{

LD_Init_ASR();

}

uint8LD_AsrRun(void)//Return1:success.

{

GICR&=~(1<<INT0);//失能外部中斷請(qǐng)求0

LD_WriteReg(0x35,MIC_VOL);//麥克風(fēng)的音量設(shè)置。一般設(shè)為40-50理解B3寄存器的調(diào)整對(duì)于靈敏度和識(shí)別距離的影響

LD_WriteReg(0x1C,0x09);//輸入方式選擇

LD_WriteReg(0xBD,0x20);//啟動(dòng)ASR或者M(jìn)P3

LD_WriteReg(0x08,0x01);//清除FIFO-DATA,先進(jìn)先出緩沖寄存器

delay(1);

LD_WriteReg(0x08,0x00);

delay(1);

if(LD_Check_ASRBusyFlag_b2()==0)

{

return0;

}

LD_WriteReg(0xB2,0xff);

LD_WriteReg(0x37,0x06);//通知DSP開始準(zhǔn)備識(shí)別語音

delay(5);

LD_WriteReg(0x1C,0x0b);//麥克風(fēng)輸入ADC通道可用

LD_WriteReg(0x29,0x10);//同步中斷

LD_WriteReg(0xBD,0x00);//啟動(dòng)識(shí)別

GICR|=(1<<INT0);//使能外部中斷請(qǐng)求0gai

return1;

}

uint8LD_GetResult(void)

{

returnLD_ReadReg(0xc5);//C5讀取ASR最佳結(jié)果

}

//寫入識(shí)別列表。返回0寫入失敗。返回1寫入成功

uint8LD_AsrAddFixed(void)

{

uchark,flag;

ucharnAsrAddLength;

ucharconstsRecog[DATE_A][DATE_B]={"qianjin","houtui","zuozhuang","youzhuang","tingzhi","yuyin","xunji"};//添加關(guān)鍵詞,用戶修改

ucharconstpCode[DATE_A]={CODE_QJ,CODE_HT,CODE_ZZ,CODE_YZ,CODE_TZ,CODE_YY,CODE_XJ};//添加識(shí)別碼,用戶修改

flag=1;

for(k=0;k<DATE_A;k++)//

{

if(LD_Check_ASRBusyFlag_b2()==0)

{

flag=0;

break;

}

LD_WriteReg(0xc1,pCode[k]);//識(shí)別字INDEX(00H-FFH)寫入識(shí)別字序號(hào)

LD_WriteReg(0xc3,0x00);//識(shí)別字添加時(shí)寫00

LD_WriteReg(0x08,0x04);//清除FIFO—EXT

delay(1);//jiadelay(5);

LD_WriteReg(0x08,0x00);

delay(1);

for(nAsrAddLength=0;nAsrAddLength<DATE_B;nAsrAddLength++)

{

if(sRecog[k][nAsrAddLength]==0)

break;

LD_WriteReg(0x05,sRecog[k][nAsrAddLength]);//FIFO-EXT數(shù)據(jù)口,寫入列表

}

LD_WriteReg(0xb9,nAsrAddLength);//當(dāng)前添加字符串的長度,寫入本字符串長度

LD_WriteReg(0xb2,0xff);//DSP忙閑狀態(tài)

LD_WriteReg(0x37,0x04);//通知寫下一個(gè)識(shí)別詞語

}

returnflag;

}

//////****************LD3320讀寫函數(shù)點(diǎn)H文件******************///////#ifndefREG_RW_H

#defineREG_RW_H

#include"common.h"

voidLD_WriteReg(unsignedcharaddress,unsignedchardataout);

unsignedcharLD_ReadReg(unsignedcharaddress);

#endif///***********LD3320讀寫寄存器子程序************/////////#include"common.h"

voidLD_WriteReg(unsignedcharaddress,unsignedchardataout)

{

unsignedchari=0;

unsignedcharcommand=0x04;

SPIS_RESET;//0

SCS_RESET;//0低電平有效

DELAY_NOP(50);

for(i=0;i<8;i++)

{

if((command&0x80)==0x80)

{

SDI_SET;//SPI數(shù)據(jù)輸入//1

}

else

{

SDI_RESET;

}

DELAY_NOP(100);//gai

SDCK_RESET;

command=(command<<1);

DELAY_NOP(50);

SDCK_SET;

}

//writeaddress

for(i=0;i<8;i++)

{

if((address&0x80)==0x80)

{

SDI_SET;

}

else

{

SDI_RESET;

}

DELAY_NOP(100);//gai

SDCK_RESET;

address=(address<<1);

DELAY_NOP(50);

SDCK_SET;

}

//writedata

for(i=0;i<8;i++)

{

if((dataout&0x80)==0x80)

{

SDI_SET;

}

else

{

SDI_RESET;

}

DELAY_NOP(100);//gai

SDCK_RESET;

dataout=(dataout<<1);

DELAY_NOP(50);

SDCK_SET;

}

DELAY_NOP(50);

SCS_SET;

}

unsignedcharLD_ReadReg(unsignedcharaddress)

{

unsignedchari=0;

unsignedchardatain=0;

unsignedcharcommand=0x05;

SPIS_RESET;//0

SCS_RESET;//0

DELAY_NOP(50);

//writecommand

for(i=0;i<8;i++)

{

if((command&0x80)==0x80)

{

SDI_SET;

}

else

{

SDI_RESET;

}

DELAY_NOP(100);//gai

SDCK_RESET;

command=(command<<1);

DELAY_NOP(50);

SDCK_SET;

}

//writeaddress

for(i=0;i<8;i++)

{

if((address&0x80)==0x80)

{

SDI_SET;

}

else

{

SDI_RESET;

}

DELAY_NOP(100);//gai

SDCK_RESET;

address=(address<<1);

DELAY_NOP(50);

SDCK_SET;

}

DELAY_NOP(50);

//Readdata

for(i=0;i<8;i++)

{

datain=(datain<<1);

DELAY_NOP(100);//gai

SDCK_RESET;

if(SDO_IN)

{

datain|=0x01;

}

DELAY_NOP(50);

SDCK_SET;

}

DELAY_NOP(50);

SCS_SET;

returndatain;

}

///*************************LD3320讀寫函數(shù)***********************/////////#include"common.h"

voidLD_WriteReg(unsignedcharaddress,unsignedchardataout)

{

unsignedchari=0;

溫馨提示

  • 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)論