基于ARM11的家用智能垃圾桶的設(shè)計(jì)與實(shí)現(xiàn)
隨著人們生活水品的不斷提高,在人們購買各種家具或家電時(shí)越來越重視其智能化和人性化。人們在生活中產(chǎn)生的生活垃圾都需用垃 圾桶放置,考慮到老人、孕婦或者殘疾人,放置垃圾時(shí)存在的不便、費(fèi)時(shí)、費(fèi)力等問題。設(shè)計(jì)針對這些問題,提出了具有語音識別功能的智能垃圾桶設(shè)計(jì)方案,當(dāng)用 戶想要扔垃圾時(shí),只要一聲令下,垃圾桶就會快速準(zhǔn)確地來到你身邊。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件包括垃圾桶車體機(jī)械結(jié)構(gòu)和硬件控制電路兩個部分。其中車體機(jī)械結(jié)構(gòu)為一部三輪小車車體,能按照在不同地點(diǎn)處用戶發(fā)出的聲音指令,自動行駛到用戶所在 地。系統(tǒng)硬件電路總體結(jié)構(gòu)框圖如圖1所示,包括電源模塊、ARM最小系統(tǒng)、聲源定位模塊、語音識別模塊、避障模塊和電機(jī)驅(qū)動模塊。
工作原理:首先通過語音識別模塊識別出用戶的呼叫命令,同時(shí)通過聲源定位模塊判斷用戶所處位置,再通過ARM產(chǎn)生驅(qū)動電機(jī)的PWM信號,利用電機(jī)驅(qū)動模塊 驅(qū)動垃圾桶向聲源方向行駛,并在行進(jìn)過程中,利用避障模塊自行避開障礙物。同時(shí),該設(shè)計(jì)還支持用戶對垃圾桶前、后、左、右行駛或打開、關(guān)閉垃圾桶蓋等語音 控制。
1.1 電源模塊
系統(tǒng)所有模塊和控制器都需要+5 V的工作電壓,采用鋰電池進(jìn)行供電,并用LM2576S-5穩(wěn)壓芯片將電壓穩(wěn)定在+5 V,然后通過穩(wěn)壓源LM1117-33和LM1117-18為S3C6410芯片3.3 V和1.8 V電壓。
其余語音芯片UDA1341TS、拾音器的5 V供電、紅外避障、直流電動機(jī)均為+5 V供電。
1.2 聲源定位模塊
聲源定位模塊主要包括拾音器構(gòu)成的麥克風(fēng)陣列和信號處理單元,如圖2所示。
系統(tǒng)中麥克風(fēng)陣列選用2個拾音器來實(shí)現(xiàn),其監(jiān)聽范圍為30~50 m2。由于拾音器所拾取的聲音信號太小,易受環(huán)境噪聲影響,因此有必要對聲音信號進(jìn)行預(yù)處理,通過信號調(diào)理單元的處理,使其能夠滿足系統(tǒng)要求。為滿足拾音 器所得到的微弱電信號進(jìn)行放大,系統(tǒng)采取兩級放大電路。又由于A/D模塊不能采集負(fù)電壓信號,因此需要對放大后的電信號進(jìn)行偏置,使其不出現(xiàn)負(fù)電壓,便于 ARM采樣,使其輸出的誤差更小。
1.3 語音識別模塊
設(shè)計(jì)采用 Philips公司UDA1341TS專用的語音處理芯片,能對語音實(shí)現(xiàn)放大、濾波、采樣、A/D或D/A轉(zhuǎn)換及進(jìn)行數(shù)字語音處理功能,并且支持璐總線數(shù) 據(jù)格式,與ARM芯片S3C6410內(nèi)置IIS總線接口配合使用。ARM芯片上內(nèi)置的IIS接口不但能夠讀取IIS總線上的數(shù)據(jù),為FIFO數(shù)據(jù)提供 DMA的傳輸模式,而且可以同時(shí)傳輸和接收數(shù)據(jù)。UDA1341TS對所采集的語音信號進(jìn)行采集和編碼,由DTW模型算法進(jìn)行模板訓(xùn)練,并將訓(xùn)練結(jié)果存儲 在Flash中以便于在語音信號識別階段讀取模板。在語音信號識別階段,將輸入的語音信號經(jīng)過音頻數(shù)字信號編譯碼器UDA1341 TS處理后,通知S3C6410嵌入式Linux操作系統(tǒng),與保存在Flash中的參考樣本進(jìn)行對比,找出最佳的聲音識別效果,然后由嵌入式Linux操 作系統(tǒng)中的系統(tǒng)調(diào)用函數(shù)控制S3C6410的I/O口,指揮垃圾桶的運(yùn)動。
1.4 電機(jī)驅(qū)動模塊
電機(jī)驅(qū)動模塊根據(jù)ARM控制器輸出的控制信號驅(qū)動電機(jī)的運(yùn)行。電機(jī)的驅(qū)動電路采用H橋驅(qū)動電路,如圖3所示。
Q1、Q2、Q3、Q4這4個三極管組成4個橋臂,Q1和Q4組成一組,Q2和Q3組成一組,Q5控制Q2、Q3的導(dǎo)通與關(guān)斷,Q6控制Q1和Q4的導(dǎo)通 與關(guān)斷,而Q5、Q6由S3C6410的IO口來控制,這樣就可以通過IO輸出的高低電平,控制4個橋臂的導(dǎo)通與關(guān)斷控制電機(jī)的運(yùn)行狀態(tài),使之正轉(zhuǎn)反轉(zhuǎn)或 者停轉(zhuǎn),進(jìn)而控制垃圾桶的行駛。為避免用分立元件使電路板過于復(fù)雜,在設(shè)計(jì)中使用H橋驅(qū)動L298N芯片。
1.5 避障模塊
避障電路采用漫反射式光電開關(guān)進(jìn)行避障。光電開關(guān)是集發(fā)射頭和接收頭于一體的檢測開關(guān),其工作原理是根據(jù)發(fā)射頭發(fā)出的光束,被障礙物反射,接收頭據(jù)此做出判 斷是否有障礙物。當(dāng)有光線反射回來時(shí),輸出低電平;當(dāng)沒有光線反射回來時(shí),輸出高電平。ARM根據(jù)接收頭電平的高低做出相應(yīng)控制,避免小車碰到障礙物,由 于接收管輸出TTL電平,有利于ARM對信號的處理。障礙檢測模塊作為對外部障礙信息的采集窗口,將行進(jìn)過程中障礙信息檢測出來,并傳遞給ARM控制器進(jìn) 行處理。
1.6 ARM最小系統(tǒng)
智能垃圾桶以三星公司的ARM微處理器 S3C6410為核心控制器,其主要作用:接收和處理收到的各種傳感器信號,并通過決策后輸出合適的控制信號。利用S3C6410豐富的片上外設(shè)可以方便 地采集和處理各種傳感器的信號,實(shí)時(shí)控制垃圾桶的運(yùn)動,同時(shí)完成與語音芯片UDA1341 TS之間的通信。
2 系統(tǒng)算法設(shè)計(jì)
系統(tǒng)軟件包括聲源定位算法、特定語音識別算法和自動避障算法等。
2.1 聲源定位算法
針對聲源定位,系統(tǒng)采用基于傳聲器陣列時(shí)延估計(jì)法來估測用戶發(fā)聲的方向?;跁r(shí)延估計(jì)的聲源定位算法分為兩個部分:(1)時(shí)延估計(jì),即計(jì)算聲源到兩兩傳聲器 之間的時(shí)間差。(2)方位估計(jì),即根據(jù)時(shí)延和傳聲器陣列的幾何位置估計(jì)出聲源的位置,其中時(shí)延估計(jì)的精度是關(guān)系到聲源定位精確與否的關(guān)鍵因素。
(1)時(shí)延估計(jì)。時(shí)延估計(jì)采用廣義互相關(guān)法。假設(shè)兩傳聲器m1和m2間距為d,在沒有混響的情況下,兩傳聲器接受到的信號x1(t)和x2(t)為
x1(t)=α1s(t)+n1(t) (1)
x2(t)=α2s(t-τ)+n2(t) (2)
其中,s(t)為聲源信號;α1、α2是聲波從聲源到傳感器的傳播衰減系數(shù);τ是聲源傳播到兩個傳感器所需延遲時(shí)間,即到達(dá)時(shí)延。n1(t)、n2(t)為環(huán)境噪聲。這時(shí),到達(dá)時(shí)延(TDOA)可以采用傳統(tǒng)的互相關(guān)法進(jìn)行估計(jì),這時(shí)互相關(guān)方程為
其中,是傳聲器1、2拾取信號的互相關(guān)譜;ψ12:(ω)是權(quán)函數(shù);φx1x2(ω)=ψ12(ω)Gx1x2(ω)是廣義互相關(guān)譜,這樣到達(dá)時(shí)延為
。
根據(jù)上式選取不同的權(quán)函數(shù)ψ12(ω)就可得到到達(dá)時(shí)延的不同算法,它的選取可根據(jù)實(shí)際的聲學(xué)環(huán)境選擇相應(yīng)的準(zhǔn)則,使得Rx1x2(τ)有個比較尖銳的峰 值,得到最好的估計(jì)效果。Rx1x2(τ)的峰值處即為兩傳聲器間的時(shí)延。但在實(shí)際應(yīng)用中,權(quán)函數(shù)的選取是一個難點(diǎn)。目前用得較多的是基于互功率譜相位加 權(quán)(CSP)法,其中加權(quán)函數(shù)選為ψ12=1/|Gx1x2(ω)|。這種方法通過對信號互功率譜的歸一化,去除了信號的幅度信息,只保留了信號的相位特 性,對于噪聲和混響都有一定的抑制效果。
(2)方位估計(jì)。采用幾何定位法,利用角度距離估計(jì)方位。利用兩個拾音器擺成如圖4所示,利用拾音器1和2接收到得時(shí)間差就可以檢測出聲源偏離主軸的角度θ。
由圖4可得
由于AB距離和V聲音已知,時(shí)延(tA-tB)可由式(1)~式(3)算出,再由式(4)和式(5)可求得聲源偏移正方向的角度θ,則可控制電機(jī)轉(zhuǎn)動使垃圾桶向用戶方位旋轉(zhuǎn)并前進(jìn)。
2.2 特定語音識別算法
針對特定語音的識別,采用動態(tài)時(shí)間規(guī)整(DTW)的算法,是一種把時(shí)間規(guī)整和距離測度的計(jì)算結(jié)合起來非線性規(guī)整技術(shù),多用于孤立詞的語音識別。語音識別過程如圖5所示。
首先應(yīng)濾掉輸入語音信號的噪音并進(jìn)行預(yù)加重處理,提升高頻分量,然后線性預(yù)測系數(shù)等方法進(jìn)行頻譜分析,找出語音的特征參數(shù)作為未知模式,與預(yù)先存儲的標(biāo)準(zhǔn)模式進(jìn)行比較,當(dāng)輸入的未知模式與標(biāo)準(zhǔn)模式的特征一致時(shí),ARM便識別輸入的語音信號并輸出結(jié)果。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要包括:數(shù)據(jù)采集模塊、SCI通訊模塊、特定聲源定位算法模塊和避障軟件模塊。系統(tǒng)軟件總體流程圖如圖6所示。
3.1 特定聲源定位算法設(shè)計(jì)
系統(tǒng)的聲源定位算法主要基于傳聲器陣列時(shí)延估計(jì)法,利用A/D采樣模塊檢測不同拾音器所接收到的聲音信號,算法實(shí)現(xiàn)采用廣義互相關(guān)法。ARM采樣得到的波形 接近為正弦波,將對應(yīng)采樣得到的值放入數(shù)組中保存,首先進(jìn)行相關(guān)運(yùn)算,得出互相關(guān)譜。為避免誤差和雜音的干擾,進(jìn)行多次計(jì)算去除了誤差較大的值。其算法流 程圖如圖7所示。
同時(shí),為避免垃圾桶對接收到的任何聲音都進(jìn)行定位,系統(tǒng)在定位時(shí)加入了語音識別,即只對需要的聲音進(jìn)行方位判斷,對特定聲音進(jìn)行語音識別的流程框圖如圖8所示。
3.2 避障軟件設(shè)計(jì)
避障軟件模塊采用對ARM的GPIO口查詢方法。在垃圾桶加電后,主函數(shù)中一直查詢GPIO,某一路的GPIO出現(xiàn)低電平時(shí),進(jìn)入相應(yīng)的子函數(shù),執(zhí)行相應(yīng)的 控制動作。3個紅外傳感器同時(shí)工作,發(fā)射紅外信號。任何一個紅外接收裝置接收到反射的紅外信號進(jìn)入相應(yīng)的子函數(shù)執(zhí)行控制電機(jī)轉(zhuǎn)動。紅外避障流程如圖9所示。
4 結(jié)束語
設(shè)計(jì)的智能垃圾桶“聽”到主人的呼喊后能自動到達(dá)主人身邊,并且能識別主人的聲音進(jìn)行一系列動作,經(jīng)試驗(yàn)證明該設(shè)計(jì)能夠滿足使用要求。