劉曉蒙 趙立強 李偉



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