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