一種新型智能垃圾桶的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引 言
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,各行各業(yè)呈現(xiàn)出一種智能化的趨勢(shì),智能家居、智慧城市、智能物流的產(chǎn)生極大地改變了人們的生活 [1],為人們帶來(lái)了便利。各種物聯(lián)網(wǎng)硬件的成本隨著技術(shù)的進(jìn)步逐漸降低,這一趨勢(shì)勢(shì)必會(huì)降低智能產(chǎn)品的價(jià)格,在未來(lái)的幾年或者幾十年的時(shí)間,智能設(shè)備會(huì)飛速普及。而智能家居將會(huì)出現(xiàn)在尋常百姓家,所以說(shuō)智能家居的前景將會(huì)十分火爆 [2]。本文將物聯(lián)網(wǎng)技術(shù)運(yùn)用到傳統(tǒng)的垃圾桶上,力求開(kāi)發(fā)出一款操作簡(jiǎn)便、功能完善的新型智能垃圾桶。
1 系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)的垃圾桶主要由 Arduino 單片機(jī)、電機(jī)驅(qū)動(dòng)模塊、語(yǔ)音識(shí)別模塊、超聲波測(cè)距模塊、人體紅外模塊以及光敏傳感器組成。其主要功能 :以智能車(chē)機(jī)器人為載體實(shí)現(xiàn)系統(tǒng)的移動(dòng)功能、非特定人聲語(yǔ)音識(shí)別,并根據(jù)語(yǔ)音指令做出相應(yīng)動(dòng)作 ;檢測(cè)用戶(hù)是否投放垃圾進(jìn)行自動(dòng)開(kāi)關(guān)蓋、滿(mǎn)箱檢測(cè),并進(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]。簡(jiǎn)單來(lái)說(shuō),可以把該模塊看作 4 個(gè)單刀雙擲開(kāi)關(guān),通過(guò)單片機(jī)引腳控制開(kāi)關(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 語(yǔ)音識(shí)別模塊
使用 LD3320 語(yǔ)音識(shí)別模塊,其具備非特定人聲語(yǔ)音識(shí)別功能。所謂識(shí)別非特定人聲,是指對(duì)任意音色和音調(diào)的聲音它都能檢測(cè)并且識(shí)別出來(lái),該芯片利用 DSP 算法實(shí)現(xiàn)這一功能 [4]。通過(guò)上位機(jī)軟件對(duì)需要識(shí)別的詞條進(jìn)行設(shè)置,一共可以添加 50 條關(guān)鍵詞,并且設(shè)置每條關(guān)鍵詞被識(shí)別出后模塊返回的數(shù)據(jù),比如添加一條前進(jìn)指令,格式為“00,qianjin,001,$”。為了防止誤識(shí)別,本系統(tǒng)使用“關(guān)鍵詞喚醒”工作模式。喚醒詞應(yīng)該設(shè)置為日常生活中人們不常用的詞語(yǔ),當(dāng)語(yǔ)音識(shí)別模塊識(shí)別到喚醒詞后再進(jìn)入識(shí)別模式,對(duì)預(yù)設(shè)的關(guān)鍵詞進(jìn)行識(shí)別。
2.3 超聲波測(cè)距模塊
本節(jié)選用 HC-SR04 超聲波傳感器。該傳感器有 4 個(gè)引腳,一對(duì)是電源引腳,另一對(duì)是控制超聲波發(fā)射和接收的引腳。超聲波測(cè)距模塊最大測(cè)量距離為 7 m,工作時(shí)需要提供一個(gè) 5 V 電壓供電,模塊的發(fā)射引腳和接收引腳與單片機(jī)引腳相連,模塊工作時(shí),當(dāng)單片機(jī)發(fā)送一個(gè) 10 μs 以上的高電平給模塊發(fā)送端引腳。然后接收端檢測(cè)是否是高電平,當(dāng)讀取到高電平時(shí)打開(kāi)定時(shí)器,直到高電平結(jié)束,再關(guān)閉定時(shí)器。這段時(shí)間就是模塊發(fā)射超聲波到被測(cè)物體的時(shí)間加上超聲波遇到物體被反射后返回的時(shí)間。利用發(fā)送和接收的時(shí)間差以及聲波在空氣中的傳播速度,即利用公式 :測(cè)量距離 = (高電平時(shí)間 × 聲速)/2,很容易測(cè)得被測(cè)量點(diǎn)到傳感器的距離 [5]。
2.4 人體紅外模塊
本系統(tǒng)采用 HC-SR501 人體紅外傳感器。人體紅外模塊可以檢測(cè)物體發(fā)出的紅外線強(qiáng)度,根據(jù)動(dòng)物和物體發(fā)出紅外線強(qiáng)弱進(jìn)行區(qū)分 [6]。該模塊需要 5 V 電壓供電,具備兩種工作模式 :一種是檢測(cè)到人后不再進(jìn)行檢測(cè),會(huì)一直持續(xù)高電平幾秒后再進(jìn)行監(jiān)測(cè) ;另一種是檢測(cè)到人后觸發(fā)高電平,這時(shí)還會(huì)進(jìn)行檢測(cè)。工作模式可以通過(guò)傳感器下方的跳線帽進(jìn)行選擇。傳感器檢測(cè)到人后高電平的延時(shí)時(shí)間是可控的,調(diào)節(jié)右側(cè)電位器即可。該傳感器的測(cè)量距離可以通過(guò)調(diào)節(jié)左側(cè)的電位器進(jìn)行微調(diào),也可以根據(jù)需要的測(cè)量的范圍進(jìn)行設(shè)置。
2.5 光敏傳感器
光敏傳感器上的光敏元件收集光信號(hào)并且將光信號(hào)轉(zhuǎn)換成電信號(hào),光敏元件的敏感波長(zhǎng)在可見(jiàn)光波長(zhǎng)附近 [7]。光敏電阻是光敏傳感器的一種,其價(jià)格低廉,工作效果較高,在多種物聯(lián)網(wǎng)系統(tǒng)的開(kāi)發(fā)中,該類(lèi)傳感器多被用來(lái)檢測(cè)外界環(huán)境的光線強(qiáng)度變化,以實(shí)現(xiàn)系統(tǒng)在不同環(huán)境下切換不同的功能。比如常見(jiàn)的可夜視攝像頭監(jiān)控系統(tǒng),在攝像頭前方安裝一個(gè)光敏電阻,對(duì)當(dāng)前環(huán)境的光線強(qiáng)度進(jìn)行感知,當(dāng)光線亮度下降到設(shè)定的閾值時(shí),攝像頭上的紅外燈自動(dòng)打開(kāi),啟動(dòng)夜視功能。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件部分使用 C 語(yǔ)言編寫(xiě),目前 Arduino 單片機(jī)的開(kāi)源代碼非常多,并且封裝了很多函數(shù)庫(kù),所以可以直接調(diào)用庫(kù)函數(shù)進(jìn)行編程,從很大程度上簡(jiǎn)化了代碼的編寫(xiě)。軟件部分的核心是獲取語(yǔ)音識(shí)別模塊,通過(guò)串口發(fā)送給單片機(jī)的參數(shù),解析該參數(shù)對(duì)應(yīng)的動(dòng)作,如“前進(jìn)”“后退”“打開(kāi)蓋子” 等。為避免語(yǔ)音識(shí)別模塊的誤識(shí)別導(dǎo)致系統(tǒng)進(jìn)行錯(cuò)誤的行為,需要把語(yǔ)音識(shí)別模塊設(shè)置一個(gè)喚醒詞。本系統(tǒng)選用了現(xiàn)實(shí)生活中人們不常用的詞語(yǔ)“若琪”作為喚醒詞 [8],當(dāng)語(yǔ)音識(shí)別模塊識(shí)別到喚醒詞后才進(jìn)入識(shí)別狀態(tài),減少了誤操作。系統(tǒng)的核心工作流程如圖 2 所示。
當(dāng)系統(tǒng)通過(guò)語(yǔ)音模塊識(shí)別到的指令,運(yùn)行相應(yīng)的運(yùn)動(dòng)函數(shù)移動(dòng)到使用者附近時(shí),垃圾桶蓋前方的人體紅外傳感器識(shí)別到人的存在,同時(shí)用戶(hù)需要發(fā)出“打開(kāi)蓋子”的語(yǔ)音指令,當(dāng)同時(shí)滿(mǎn)足這兩種條件時(shí)垃圾桶打開(kāi)蓋子。這樣設(shè)計(jì)是為了避免系統(tǒng)的錯(cuò)誤行為,打開(kāi)垃圾桶蓋只需要通過(guò) Arduino 自帶的 PWM 引腳控制舵機(jī)的旋轉(zhuǎn)角度 [9],比如在未開(kāi)蓋時(shí)舵機(jī)的角度為 0°,打開(kāi)蓋子時(shí)舵機(jī)旋轉(zhuǎn)角度為 90°,當(dāng)開(kāi)蓋5 s 后,默認(rèn)用戶(hù)已經(jīng)扔完了垃圾,再控制舵機(jī)角度為 0°,關(guān)閉蓋子即可。
滿(mǎn)箱檢測(cè)功能是通過(guò)讀取垃圾桶蓋內(nèi)壁安裝的超聲波傳感器所測(cè)得距離實(shí)現(xiàn)的。該距離即代表垃圾桶當(dāng)前所??臻g。Arduino 函數(shù)庫(kù)同樣提供了超聲波傳感器測(cè)距函數(shù),把超聲波傳感器定義的引腳作為參數(shù)傳給該函數(shù),就可以得到距離。在程序中對(duì)該距離進(jìn)行判斷,系統(tǒng)把距離為 4 cm 作為報(bào)警閾值,當(dāng)測(cè)得距離小于 4 cm 時(shí)蜂鳴器發(fā)聲從而提示用戶(hù)更換垃圾袋。同時(shí)配合光敏電阻輸出的電平判斷當(dāng)前環(huán)境為黑夜還是白天,如果是白天則進(jìn)行報(bào)警,黑夜則關(guān)閉報(bào)警功能。超聲波測(cè)距工作流程如圖 3 所示。
4 系統(tǒng)測(cè)試與實(shí)物展示
語(yǔ)音控制功能測(cè)試 :使用手機(jī)播放喚醒詞“若琪”將系統(tǒng)喚醒,然后保持聲音大小不變播放“前進(jìn)”“后退”“左轉(zhuǎn)” “右轉(zhuǎn)”共四個(gè)語(yǔ)音命令,并且在每個(gè)距離上循環(huán)播放 200 次,通過(guò)語(yǔ)音識(shí)別模塊配套的軟件對(duì)識(shí)別結(jié)果進(jìn)行統(tǒng)計(jì),經(jīng)過(guò)反復(fù)實(shí)驗(yàn),系統(tǒng)在 2 ~ 3 m 之間的正確識(shí)別率在 85% 以上 [10],把語(yǔ)音識(shí)別模塊與單片機(jī)連接。重復(fù)上述測(cè)試過(guò)程,觀察系統(tǒng)的運(yùn)動(dòng)功能,發(fā)現(xiàn)系統(tǒng)可以根據(jù)語(yǔ)音指令實(shí)現(xiàn)相應(yīng)的運(yùn)動(dòng),說(shuō)明本功能實(shí)現(xiàn)良好。
自動(dòng)開(kāi)關(guān)蓋功能測(cè)試 :實(shí)驗(yàn)者發(fā)出語(yǔ)音識(shí)別模塊喚醒詞“若琪”,并且發(fā)出“打開(kāi)蓋子”指令,同時(shí)把手放在人體紅外傳感器前方 5 ~ 8 cm 處,蓋子打開(kāi)并且當(dāng)人扔完垃圾幾秒種后,桶蓋自動(dòng)關(guān)閉,證明本功能正常。
滿(mǎn)箱檢測(cè)與報(bào)警功能測(cè)試 :把 Arduino 單片機(jī)與電腦連接,通過(guò)串口調(diào)試助手實(shí)時(shí)顯示超聲波傳感器所測(cè)的距離。首先控制光敏電阻檢測(cè)到的環(huán)境為白天,當(dāng)串口顯示的距離值為 4 cm 時(shí),蜂鳴器發(fā)聲 ;用手遮擋光敏電阻,測(cè)得距離小于 4 cm,蜂鳴器未響,說(shuō)明程序及硬件無(wú)誤,功能可以正常使用。
垃圾桶實(shí)物如圖 4 所示。
5 結(jié) 語(yǔ)
本文設(shè)計(jì)的智能垃圾桶實(shí)現(xiàn)了語(yǔ)音控制運(yùn)動(dòng)功能、語(yǔ)音控制開(kāi)蓋功能、滿(mǎn)箱檢測(cè)功能、分時(shí)報(bào)警功能。與目前已存在的智能垃圾桶相比,本文提出的智能垃圾桶具有功能更加齊全、性能更加穩(wěn)定的優(yōu)點(diǎn),但還存在很多不足之處,比如未實(shí)現(xiàn)垃圾分類(lèi)功能和自動(dòng)巡航功能。在后期的優(yōu)化升級(jí)中會(huì)逐步加入這些功能,讓用戶(hù)切實(shí)感受到物聯(lián)網(wǎng)技術(shù)為生活帶來(lái)的便捷。