成宇軒 尤國強(qiáng) 楊佩
摘要:本文設(shè)計制作了一款具有語音控制功能的智能小車。該小車以STC15F2K60S2單片機(jī)作為核心控制單元,以LD3320芯片作為語音識別單元,實現(xiàn)了人聲控制小車行動的功能。另外,考慮到環(huán)境復(fù)雜性,這款的小車智能小車還帶有紅外傳感器模塊,并通過紅外線探測障礙物來實現(xiàn)避障功能。本文設(shè)計的智能聲控小車可以解放人的雙手,只通過發(fā)出固定的語音命令即可令小車實現(xiàn)諸如前進(jìn)、后退或轉(zhuǎn)向等動作。該小車可用于事故災(zāi)害現(xiàn)場危險環(huán)境的短距離搜救、探測等任務(wù),它可以解放執(zhí)行任務(wù)人員的雙手和大腦,配合人們完成復(fù)雜任務(wù)。另外,該智能聲控小車也可以進(jìn)一步開發(fā)為兒童玩具或人工智能設(shè)備,在這些領(lǐng)域,它同樣具有廣闊的未來應(yīng)用前景。
關(guān)鍵詞:智能小車;聲控;紅外避障; STC15F2K60S2單片機(jī)
中圖分類號:TP391? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)27-0176-03
1 引言
隨著科學(xué)技術(shù)的飛速發(fā)展,智能產(chǎn)品的出現(xiàn)使得我們的生活更加方便。其中人工智能無疑是該領(lǐng)域內(nèi)最重要的一個發(fā)展方向,無論在軍事領(lǐng)域還是民用領(lǐng)域都有著廣泛的應(yīng)用前景[1]。本文研究的智能聲控小車也可以認(rèn)為是人工智能設(shè)計中的一種應(yīng)用類型。
本文設(shè)計的智能聲控小車主要通過STC15F2K60S2單片機(jī)來實現(xiàn)不同的控制功能,它不但能夠完成對電機(jī)驅(qū)動模塊、語音采集模塊、避障模塊的計算和控制,還能夠?qū)崿F(xiàn)各個模塊之間的通信,從而實現(xiàn)整個控制系統(tǒng)的正常工作。本文采用的這款單片機(jī)具有高速、容量大、低功耗、抗干擾能力強(qiáng)等優(yōu)點。當(dāng)前方出現(xiàn)障礙物時,將通過避障模塊實現(xiàn)檢測,并由單片機(jī)發(fā)出控制指令實現(xiàn)小車的轉(zhuǎn)向避障功能。該避障模塊采用二只紅外對管分別置于小車的前端兩側(cè),其放置方向與小車的前進(jìn)方向成一定夾角,能夠?qū)π≤嚺c障礙物相對距離和方向能做出較為精準(zhǔn)的判斷。小車中的語音采集模塊以LD3320語音處理芯片為核心,通過模塊上面的咪頭來采集語音信息,并通過與預(yù)設(shè)指令的對比來實現(xiàn)小車前進(jìn)、后退或轉(zhuǎn)向等動作。
2 硬件電路設(shè)計
本聲控避障智能小車以STC15F2K60S2單片機(jī)作為中央控制器,并包含語音識別模塊、電機(jī)驅(qū)動模塊和障礙識別模塊三個部分,其整體結(jié)構(gòu)如下圖所示。
中央控制器為STC15F2K60S2單片機(jī),它是與MCS-51兼容的新一代增強(qiáng)型STC系列單片機(jī),具有速度快、抗干擾性強(qiáng)、加密性強(qiáng)、自帶ADC/PWM、超低功耗、可遠(yuǎn)程升級等優(yōu)點,其內(nèi)部還集成有MAX810專用復(fù)位電路,比傳統(tǒng)的8051系列單片機(jī)在片內(nèi)資源、操作性能和運(yùn)算速度上有了很大的改進(jìn)。
STC15F2K60S2單片機(jī)內(nèi)部有兩個可編程全雙工串行通信接口。每個串行口都由一個數(shù)據(jù)緩存器、一個移位寄存器、一個串行控制器和一個波特率發(fā)生器組成。串行口的數(shù)據(jù)緩沖器在物理上分為兩個獨立的發(fā)送、接收緩沖器,可以同時發(fā)送和接收數(shù)據(jù),其中發(fā)送緩存器只能寫入數(shù)據(jù),接收緩存器只能讀出數(shù)據(jù),兩個緩沖器共用一個內(nèi)存地址。
STC15F2K60S2單片機(jī)是整個系統(tǒng)的控制核心,用來控制模塊與模塊之間的相互通信。當(dāng)語音識別模塊識別出語音信息后,單片機(jī)就能夠從與語音模塊連接的串口中讀取到相關(guān)的語音指令,并通過邏輯判斷分析控制對應(yīng)串口的高低電平來改變小車的運(yùn)行狀態(tài)。當(dāng)障礙識別模塊檢測到前方有障礙后,單片機(jī)也可以從與該模塊連接的串口中識別出相應(yīng)的電平變化,并通過邏輯判斷分析控制對應(yīng)控制電機(jī)的電平變化來按照提前輸入的程序改變小車運(yùn)行方向以避開前方障礙。
語音識別模塊中的關(guān)鍵器件為LD3320芯片,該模塊主要通過咪頭采集外界語音信號,并通過STC15F2K60S2單片機(jī)實現(xiàn)與預(yù)設(shè)語音信心的分析和對比,從而實現(xiàn)智能識別語音命令的功能。常用的語音識別過程主要包含以下三種模型[2]。
(1)聲學(xué)模型:該模型通過系統(tǒng)語音數(shù)據(jù)得到,模型輸入值為語音特征向量,輸出值是音素信息;
(2)語言模型:該模型通過海量文本信息的訓(xùn)練和學(xué)習(xí),得到單個詞匯或者詞匯之間關(guān)聯(lián)的概率;
(3)映射模型:該模型搭建詞匯與音素之間的對應(yīng)關(guān)系。
語音模塊的語音處理過程包含以下幾個方面[3]。
(1)濾波和A/D轉(zhuǎn)換。在語音識別時,一般選擇7-10Khz的頻段進(jìn)行信息收集,對收集信號濾波的作用是為了抑制超過采樣頻率值一半的輸入信號的所有分量,以避免50Hz的工頻干擾;濾波后將原始語音模擬信號進(jìn)行A/D轉(zhuǎn)換,從而得到在時間和幅度上都離散化了的數(shù)字信號。
(2)預(yù)處理。因為在語音信息傳輸過程中,高頻成分的衰減程度很大,所以需要通過預(yù)加重來增強(qiáng)傳輸開始時信號的高頻部分,從而彌補(bǔ)高頻衰減。通常情況下,信號的頻率主要取決于電平變化的速度,所以絕大部分信號的高頻分量通常出現(xiàn)于信號的上升沿與下降沿,通過對這一階段識別出的高頻信號的預(yù)加重可有效防止高頻信號的損失。
(3)分窗分幀處理。由于語音信號具有短期穩(wěn)定性(可以認(rèn)為它在10-30ms內(nèi)大部分不會變化),所以可以將語音信號分成幾段逐個處理,這就是語音信號的分幀處理的方法。具體分幀操作則通過使用可移動的限長窗口來實現(xiàn)。
硬件系統(tǒng)中的電機(jī)控制模塊主要由L298N雙H電橋驅(qū)動芯片構(gòu)成,該模塊與單片機(jī)的控制I/O口相連,通過相應(yīng)單片機(jī)引腳高低電平的變化來控制小車電機(jī)輸出腳的使能情況,從而控制小車在不同指令下的運(yùn)行狀態(tài)。
障礙識別模塊主要由兩個紅外對管傳感器組成。該模塊將二支紅外對管傳感器分別置于小車前端兩側(cè),方向與小車前進(jìn)方向成一定夾角,通過紅外對管傳感器發(fā)射出的紅外線來探測前方是否有障礙物,一旦檢測出障礙物,該模塊與單片機(jī)相連接的引腳電平將會翻轉(zhuǎn)改變,進(jìn)而單片機(jī)執(zhí)行避障指令小車完成轉(zhuǎn)向避障動作。障礙識別模塊的詳細(xì)電路圖如下圖所示。
3 軟件仿真及程序設(shè)計
在確定了硬件結(jié)構(gòu)組成和器件工作原理的基礎(chǔ)上,通過應(yīng)用PROTEUS軟件并結(jié)合C語言控制程序?qū)φ麄€智能小車運(yùn)行系統(tǒng)進(jìn)行仿真,來進(jìn)一步驗證整體系統(tǒng)功能的正確性。由于PROTEUS軟件中沒有語音集成模塊LD3320對應(yīng)的仿真器件,故我們在小車仿真結(jié)構(gòu)中使用了一些功能按鍵來代替語音模塊識別出的指令來控制小車的前進(jìn)、后退、停止等動作。除此之外,仿真中還添加了兩個LED小燈,并通過小燈的亮滅來表示兩個車輪驅(qū)動電機(jī)的啟動和停止。仿真圖中按照從左到右的順序放置了五個按鍵來代替識別出的前進(jìn)、后退、停止、左拐、右拐語音指令。讀入控制程序并運(yùn)行仿真后,可通過對小燈亮滅的觀察,來確認(rèn)最終仿真系統(tǒng)控制的有效性和正確性。
所編寫的控制程序由C語言來實現(xiàn),并通過Keil μVersion4軟件來對齊編譯、鏈接。當(dāng)所設(shè)計的聲控避障程序開始運(yùn)行時,首先,程序會對所有用到的單片機(jī)I/O口進(jìn)行初始化功能設(shè)置;當(dāng)初始化完成后,會進(jìn)入等待狀態(tài),隨時檢測是否有語音信號輸入;一旦語音模塊采集到語音信號后,程序就會進(jìn)入語音邏輯判斷部分,并根據(jù)邏輯判斷結(jié)果來運(yùn)行不同的控制程序,并由此產(chǎn)生不同的電機(jī)控制命令,實現(xiàn)與語音命令匹配的前進(jìn)、后退、停止和轉(zhuǎn)向等動作。具體控制程序的流程圖如下圖所示。
4 實物驗證
基于上面的硬件組成和控制程序,設(shè)計制作了智能聲控小車實物。當(dāng)對該小車進(jìn)行上電操作后,STC15F2K60S2單片機(jī)中的控制程序會率先對LD3320語音識別模塊進(jìn)行初始化,然后等待語音信號的輸入。LD3320 捕捉到語音信號后就會對其進(jìn)行內(nèi)部邏輯判斷,來匹配內(nèi)部的關(guān)鍵詞列表,一旦找到匹配信息,就會將指令結(jié)果傳輸給單片機(jī)。并進(jìn)入相應(yīng)的電機(jī)控制函數(shù),并且根據(jù)函數(shù)控制結(jié)果向電機(jī)串口寫入指定的控制字符指令,從而實現(xiàn)小車相應(yīng)的動作變化。下圖為小車實物上電后的語音指令識別和執(zhí)行過程。
另外,對于障礙識別模塊,其上電后將利用障礙物對紅外線的反射特點,當(dāng)前面的有障礙物時,紅外傳感器發(fā)射出的紅外光大部分被反射回來,此時傳感器輸出為0,點亮障礙報警LED指示燈;反之,當(dāng)小車前方?jīng)]有障礙物的時候,小車紅外傳感器發(fā)射出的紅外光幾乎不會被反射回來,無法達(dá)到傳感器的最低動作水平,此時傳感器輸出為1。通過STC15F2K60S2單片機(jī)檢測與障礙識別模塊相連引腳的電平變化情況就能檢測到小車前方是否存在障礙物,進(jìn)而進(jìn)行避障操作。
需要說明的是,當(dāng)小車在全速前進(jìn)狀態(tài)下發(fā)現(xiàn)障礙物時,如果小車不做減速控制而直接進(jìn)行變向避障調(diào)整,將很容易出現(xiàn)避障時轉(zhuǎn)彎半徑過大導(dǎo)致碰撞到障礙物無法繼續(xù)運(yùn)行的問題。所以當(dāng)檢測到前方有障礙物時,應(yīng)該根據(jù)小車紅外感應(yīng)距離,先適當(dāng)調(diào)節(jié)小車運(yùn)行速度,以順利完成避障動作,防止因車速過快、轉(zhuǎn)彎半徑過大產(chǎn)生避障失敗。
5 結(jié)束語
本文設(shè)計了一款智能聲控小車系統(tǒng),該系統(tǒng)基于STC15F2K60S2單片機(jī)可以實現(xiàn)簡單的人機(jī)交互控制,系統(tǒng)通過語音識別模塊可以識別語音信號中的特征參數(shù),并根據(jù)識別出的語音信號由STC15F2K60S2單片機(jī)控制的小車的運(yùn)行狀態(tài)。另外,該智能小車系統(tǒng)還具有障礙識別模塊,該模塊可以通過紅外線傳感器識別前方的障礙,并通過預(yù)設(shè)的控制程序自動實現(xiàn)避障動作。本文設(shè)計的智能聲控小車可以解放人們的雙手,只通過語音指令即可令小車實現(xiàn)諸如前進(jìn)、后退或轉(zhuǎn)向等動作,其在智慧交通、搶險救援、智能玩具以及未來的人工智能人機(jī)交互等領(lǐng)域具有廣泛的應(yīng)用前景。在后續(xù)的研究中我們將會嘗試使用性能更加優(yōu)越的語音識別芯片來提高語音識別的準(zhǔn)確性和語音指令存儲量,以讓這款小車具有更強(qiáng)的抗噪性和實用性。
參考文獻(xiàn):
[1] 禹琳琳. 語音識別技術(shù)及應(yīng)用綜述[J].現(xiàn)代電子技術(shù),2013, 36(13): 43-45.
[2] 趙甜甜, 王夢嬌, 謝韜, 等. 基于LD3320的語音識別車配虛擬人系統(tǒng)的設(shè)計[J].信息化建設(shè), 2016,18(4): 329.
[3] 李雪霞, 劉雪梅, 李建勇. 基于嵌入式微處理器的智能語音小車設(shè)計[J].工業(yè)控制計算機(jī), 2018,30(9): 160-162.
【通聯(lián)編輯:梁書】