劉曉蒙 趙立強(qiáng) 李偉
摘 要:針對(duì)目前已存在的智能垃圾桶功能單一、性能一般的問題,文中提出一種基于Arduino單片機(jī)和語音識(shí)別技術(shù)的多功能新型智能垃圾桶。該垃圾桶可通過語音識(shí)別模塊對(duì)非特定人聲進(jìn)行識(shí)別并把識(shí)別結(jié)果發(fā)送給單片機(jī),單片機(jī)根據(jù)該語音指令的含義和各種傳感器采集的數(shù)據(jù)控制系統(tǒng)完成相應(yīng)的功能,實(shí)現(xiàn)了語音控制移動(dòng)功能、自動(dòng)開關(guān)蓋功能、滿箱檢測功能和分時(shí)報(bào)警功能。該智能垃圾桶與傳統(tǒng)智能垃圾桶相比具有功能齊全、智能化、人性化的優(yōu)點(diǎn),應(yīng)用前景廣泛。
關(guān)鍵詞:Arduino單片機(jī);非特定人聲識(shí)別;語音控制;傳感器;智能垃圾桶;智能化
中圖分類號(hào):TP391;F291.1文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)09-00-03
0 引 言
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,各行各業(yè)呈現(xiàn)出一種智能化的趨勢,智能家居、智慧城市、智能物流的產(chǎn)生極大地改變了人們的生活[1],為人們帶來了便利。各種物聯(lián)網(wǎng)硬件的成本隨著技術(shù)的進(jìn)步逐漸降低,這一趨勢勢必會(huì)降低智能產(chǎn)品的價(jià)格,在未來的幾年或者幾十年的時(shí)間,智能設(shè)備會(huì)飛速普及。而智能家居將會(huì)出現(xiàn)在尋常百姓家,所以說智能家居的前景將會(huì)十分火爆[2]。本文將物聯(lián)網(wǎng)技術(shù)運(yùn)用到傳統(tǒng)的垃圾桶上,力求開發(fā)出一款操作簡便、功能完善的新型智能垃圾桶。
1 系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)的垃圾桶主要由Arduino單片機(jī)、電機(jī)驅(qū)動(dòng)模塊、語音識(shí)別模塊、超聲波測距模塊、人體紅外模塊以及光敏傳感器組成。其主要功能:以智能車機(jī)器人為載體實(shí)現(xiàn)系統(tǒng)的移動(dòng)功能、非特定人聲語音識(shí)別,并根據(jù)語音指令做出相應(yīng)動(dòng)作;檢測用戶是否投放垃圾進(jìn)行自動(dòng)開關(guān)蓋、滿箱檢測,并進(jìn)行分時(shí)報(bào)警。系統(tǒng)架構(gòu)如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 電機(jī)驅(qū)動(dòng)模快
采用L298N電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)兩個(gè)直流電機(jī),該模塊上具有2個(gè)使能引腳以及4個(gè)輸入引腳,其中1個(gè)使能引腳配合它相鄰的2個(gè)輸入引腳,可以對(duì)一個(gè)直流電機(jī)進(jìn)行控制[3]。簡單來說,可以把該模塊看作4個(gè)單刀雙擲開關(guān),通過單片機(jī)引腳控制開關(guān)進(jìn)行組合,從而控制電機(jī)的不同運(yùn)動(dòng)方式。使用單片機(jī)上4個(gè)帶有PWM功能的引腳對(duì)電機(jī)驅(qū)動(dòng),其中2個(gè)控制左電機(jī),另外2個(gè)控制右電機(jī),既能實(shí)現(xiàn)控制電機(jī)前后轉(zhuǎn)動(dòng),又能利用PWM脈沖寬度調(diào)制技術(shù)實(shí)現(xiàn)電機(jī)調(diào)速,進(jìn)而控制系統(tǒng)的運(yùn)動(dòng)速度。
2.2 語音識(shí)別模塊
使用LD3320語音識(shí)別模塊,其具備非特定人聲語音識(shí)別功能。所謂識(shí)別非特定人聲,是指對(duì)任意音色和音調(diào)的聲音它都能檢測并且識(shí)別出來,該芯片利用DSP算法實(shí)現(xiàn)這一功能[4]。通過上位機(jī)軟件對(duì)需要識(shí)別的詞條進(jìn)行設(shè)置,一共可以添加50條關(guān)鍵詞,并且設(shè)置每條關(guān)鍵詞被識(shí)別出后模塊返回的數(shù)據(jù),比如添加一條前進(jìn)指令,格式為“00,qian jin,001,$”。為了防止誤識(shí)別,本系統(tǒng)使用“關(guān)鍵詞喚醒”工作模式。喚醒詞應(yīng)該設(shè)置為日常生活中人們不常用的詞語,當(dāng)語音識(shí)別模塊識(shí)別到喚醒詞后再進(jìn)入識(shí)別模式,對(duì)預(yù)設(shè)的關(guān)鍵詞進(jìn)行識(shí)別。
2.3 超聲波測距模塊
本節(jié)選用HC-SR04超聲波傳感器。該傳感器有4個(gè)引腳,一對(duì)是電源引腳,另一對(duì)是控制超聲波發(fā)射和接收的引腳。超聲波測距模塊最大測量距離為7 m,工作時(shí)需要提供一個(gè)5 V電壓供電,模塊的發(fā)射引腳和接收引腳與單片機(jī)引腳相連,模塊工作時(shí),當(dāng)單片機(jī)發(fā)送一個(gè)10 μs以上的高電平給模塊發(fā)送端引腳。然后接收端檢測是否是高電平,當(dāng)讀取到高電平時(shí)打開定時(shí)器,直到高電平結(jié)束,再關(guān)閉定時(shí)器。這段時(shí)間就是模塊發(fā)射超聲波到被測物體的時(shí)間加上超聲波遇到物體被反射后返回的時(shí)間。利用發(fā)送和接收的時(shí)間差以及聲波在空氣中的傳播速度,即利用公式:測量距離=(高電平時(shí)間×聲速)/2,很容易測得被測量點(diǎn)到傳感器的距離[5]。
2.4 人體紅外模塊
本系統(tǒng)采用HC-SR501人體紅外傳感器。人體紅外模塊可以檢測物體發(fā)出的紅外線強(qiáng)度,根據(jù)動(dòng)物和物體發(fā)出紅外線強(qiáng)弱進(jìn)行區(qū)分[6]。該模塊需要5 V電壓供電,具備兩種工作模式:一種是檢測到人后不再進(jìn)行檢測,會(huì)一直持續(xù)高電平幾秒后再進(jìn)行監(jiān)測;另一種是檢測到人后觸發(fā)高電平,這時(shí)還會(huì)進(jìn)行檢測。工作模式可以通過傳感器下方的跳線帽進(jìn)行選擇。傳感器檢測到人后高電平的延時(shí)時(shí)間是可控的,調(diào)節(jié)右側(cè)電位器即可。該傳感器的測量距離可以通過調(diào)節(jié)左側(cè)的電位器進(jìn)行微調(diào),也可以根據(jù)需要的測量的范圍進(jìn)行設(shè)置。
2.5 光敏傳感器
光敏傳感器上的光敏元件收集光信號(hào)并且將光信號(hào)轉(zhuǎn)換成電信號(hào),光敏元件的敏感波長在可見光波長附近[7]。光敏電阻是光敏傳感器的一種,其價(jià)格低廉,工作效果較高,在多種物聯(lián)網(wǎng)系統(tǒng)的開發(fā)中,該類傳感器多被用來檢測外界環(huán)境的光線強(qiáng)度變化,以實(shí)現(xiàn)系統(tǒng)在不同環(huán)境下切換不同的功能。比如常見的可夜視攝像頭監(jiān)控系統(tǒng),在攝像頭前方安裝一個(gè)光敏電阻,對(duì)當(dāng)前環(huán)境的光線強(qiáng)度進(jìn)行感知,當(dāng)光線亮度下降到設(shè)定的閾值時(shí),攝像頭上的紅外燈自動(dòng)打開,啟動(dòng)夜視功能。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件部分使用C語言編寫,目前Arduino單片機(jī)的開源代碼非常多,并且封裝了很多函數(shù)庫,所以可以直接調(diào)用庫函數(shù)進(jìn)行編程,從很大程度上簡化了代碼的編寫。軟件部分的核心是獲取語音識(shí)別模塊,通過串口發(fā)送給單片機(jī)的參數(shù),解析該參數(shù)對(duì)應(yīng)的動(dòng)作,如“前進(jìn)”“后退”“打開蓋子”等。為避免語音識(shí)別模塊的誤識(shí)別導(dǎo)致系統(tǒng)進(jìn)行錯(cuò)誤的行為,需要把語音識(shí)別模塊設(shè)置一個(gè)喚醒詞。本系統(tǒng)選用了現(xiàn)實(shí)生活中人們不常用的詞語“若琪”作為喚醒詞[8],當(dāng)語音識(shí)別模塊識(shí)別到喚醒詞后才進(jìn)入識(shí)別狀態(tài),減少了誤操作。系統(tǒng)的核心工作流程如圖2所示。
當(dāng)系統(tǒng)通過語音模塊識(shí)別到的指令,運(yùn)行相應(yīng)的運(yùn)動(dòng)函數(shù)移動(dòng)到使用者附近時(shí),垃圾桶蓋前方的人體紅外傳感器識(shí)別到人的存在,同時(shí)用戶需要發(fā)出“打開蓋子”的語音指令,當(dāng)同時(shí)滿足這兩種條件時(shí)垃圾桶打開蓋子。這樣設(shè)計(jì)是為了避免系統(tǒng)的錯(cuò)誤行為,打開垃圾桶蓋只需要通過Arduino自帶的PWM引腳控制舵機(jī)的旋轉(zhuǎn)角度[9],比如在未開蓋時(shí)舵機(jī)的角度為0°,打開蓋子時(shí)舵機(jī)旋轉(zhuǎn)角度為90°,當(dāng)開蓋5 s后,默認(rèn)用戶已經(jīng)扔完了垃圾,再控制舵機(jī)角度為0°,關(guān)閉蓋子即可。
滿箱檢測功能是通過讀取垃圾桶蓋內(nèi)壁安裝的超聲波傳感器所測得距離實(shí)現(xiàn)的。該距離即代表垃圾桶當(dāng)前所剩空間。Arduino函數(shù)庫同樣提供了超聲波傳感器測距函數(shù),把超聲波傳感器定義的引腳作為參數(shù)傳給該函數(shù),就可以得到距離。在程序中對(duì)該距離進(jìn)行判斷,系統(tǒng)把距離為4 cm作為報(bào)警閾值,當(dāng)測得距離小于4 cm時(shí)蜂鳴器發(fā)聲從而提示用戶更換垃圾袋。同時(shí)配合光敏電阻輸出的電平判斷當(dāng)前環(huán)境為黑夜還是白天,如果是白天則進(jìn)行報(bào)警,黑夜則關(guān)閉報(bào)警功能。超聲波測距工作流程如圖3所示。
4 系統(tǒng)測試與實(shí)物展示
語音控制功能測試:使用手機(jī)播放喚醒詞“若琪”將系統(tǒng)喚醒,然后保持聲音大小不變播放“前進(jìn)”“后退”“左轉(zhuǎn)”“右轉(zhuǎn)”共四個(gè)語音命令,并且在每個(gè)距離上循環(huán)播放200次,通過語音識(shí)別模塊配套的軟件對(duì)識(shí)別結(jié)果進(jìn)行統(tǒng)計(jì),經(jīng)過反復(fù)實(shí)驗(yàn),系統(tǒng)在2~3 m之間的正確識(shí)別率在85%以上[10],把語音識(shí)別模塊與單片機(jī)連接。重復(fù)上述測試過程,觀察系統(tǒng)的運(yùn)動(dòng)功能,發(fā)現(xiàn)系統(tǒng)可以根據(jù)語音指令實(shí)現(xiàn)相應(yīng)的運(yùn)動(dòng),說明本功能實(shí)現(xiàn)良好。
自動(dòng)開關(guān)蓋功能測試:實(shí)驗(yàn)者發(fā)出語音識(shí)別模塊喚醒詞“若琪”,并且發(fā)出“打開蓋子”指令,同時(shí)把手放在人體紅外傳感器前方5~8 cm處,蓋子打開并且當(dāng)人扔完垃圾幾秒種后,桶蓋自動(dòng)關(guān)閉,證明本功能正常。
滿箱檢測與報(bào)警功能測試:把Arduino單片機(jī)與電腦連接,通過串口調(diào)試助手實(shí)時(shí)顯示超聲波傳感器所測的距離。首先控制光敏電阻檢測到的環(huán)境為白天,當(dāng)串口顯示的距離值為4 cm時(shí),蜂鳴器發(fā)聲;用手遮擋光敏電阻,測得距離小于4 cm,蜂鳴器未響,說明程序及硬件無誤,功能可以正常使用。
垃圾桶實(shí)物如圖4所示。
5 結(jié) 語
本文設(shè)計(jì)的智能垃圾桶實(shí)現(xiàn)了語音控制運(yùn)動(dòng)功能、語音控制開蓋功能、滿箱檢測功能、分時(shí)報(bào)警功能。與目前已存在的智能垃圾桶相比,本文提出的智能垃圾桶具有功能更加齊全、性能更加穩(wěn)定的優(yōu)點(diǎn),但還存在很多不足之處,比如未實(shí)現(xiàn)垃圾分類功能和自動(dòng)巡航功能。在后期的優(yōu)化升級(jí)中會(huì)逐步加入這些功能,讓用戶切實(shí)感受到物聯(lián)網(wǎng)技術(shù)為生活帶來的便捷。
注:本文通訊作者為趙立強(qiáng)。
參 考 文 獻(xiàn)
[1]田宇琪.物聯(lián)網(wǎng)在物流工程管理中的應(yīng)用探討[J].現(xiàn)代營銷(經(jīng)營版),2019(5):161.
[2]張馨心,袁月,展躍.論智能家居應(yīng)用前景[J].信息記錄材料,2018(4):127-128.
[3]戴文翔,孫智勇.基于樹莓派的紅外避障小車[J].數(shù)字技術(shù)與應(yīng)用,2018(1):89-90.
[4]王磊,何勇,張宇.智能語音控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2018,26(2):109-112.
[5]張克聲,隆昌喜.基于HC-SR04模塊的時(shí)差法聲速測量[J].機(jī)械與電子,2018(2):54-57.
[6]何楓,周雪芹,楊鳳年,等.基于STC12的家庭安防系統(tǒng)設(shè)計(jì)[J].福建電腦,2018,34(2):129-130.
[7]王濤.智能燈光控制系統(tǒng)的設(shè)計(jì)[J].電子制作,2013(17):69.
[8]陳白楊.基于語音交互的智能家居控制系統(tǒng)[D].蘭州:蘭州大學(xué),2018.
[9]倪文彬,毛耀,陸廣華.基于Arduino的體感機(jī)械手設(shè)計(jì)[J].機(jī)床與液壓,2017,45(23):5-9.
[10]涂洋,蘇湛,萬深展.基于可穿戴的智能家居語音控制系統(tǒng)設(shè)計(jì)[J].電子科技,2017,30(9):89-92.