盛慧龍,王玉鵬,王淼,王宇童
(南京工業大學浦江學院,江蘇南京,210000)
隨著科技的發展,普通的垃圾桶已經滿足不了當今社會垃圾分類投放的需要,雖然先后出現了開合式垃圾桶和腳踩式垃圾桶,但是電子技術的飛速發展已經使得它們不再適用于要求垃圾精準分類投放的社會。
本產品以STM32F103為主控板,通過紅外傳感器,語音識別模塊實現了垃圾桶的自動翻蓋,利用太陽能面板和穩壓器實現了整個智能垃圾桶的供電,語音播報功能可以使人們在扔垃圾的同時了解該垃圾分類知識。
該系統由單片機、語音識別模塊、語音播報模塊、電機驅動模塊、太陽能充電模塊以及紅外傳感器組成,其設計的總體結構如圖1所示。

圖1 智能垃圾桶系統設計圖
該系統的設計以STM32F103C8T6為主控板。LD3320語音識別模塊主要接收用戶發出的一級指令和二級指令;JQ8400語音模塊播報用戶所扔垃圾的種類;L298N電機驅動模塊驅動相應垃圾桶的舵機使垃圾桶開蓋和合蓋;太陽能充電模塊為整個系統提供電能;紅外傳感器檢測是否有人靠近,來判斷垃圾桶的開蓋合蓋。
本 設 計 采 用 了STM32F103x8系 列 芯 片,圖2是STM32F103x8最小系統板實圖。與傳統的STC89C52相比具有更快的運算能力,使用性能更高,功耗更小等優點。

圖2 STM32F103x8最小系統板實圖
該模塊的型號是UNV–LD3320。集成了語音識別處理器和一些外部電路,包括、麥克風接口、聲音輸出接口等。當用戶向語音識別模塊發出一級指令時,該模塊會被喚醒,并等待接收用戶發出的二級指令即垃圾名稱。當接收到二級指令后,會把信息通過串口通信發送給單片機。語音識別模塊的電路圖如圖3所示。

圖3 語音識別模塊電路原理圖
TXD主要用于接收指令,RXD主要用于發送指令給單片機的串口。
JQ8400語音模塊集成了一個16位的MCU以及一個專門針對音頻解碼的ADSP,采用硬解碼的方式,保證了系統的穩定性和音質。該模塊的電路圖如圖4所示。

圖4 語音播報模塊電路圖
使用時,可通過串口或單總線與單片機進行通信,單片機將接收到的來自語音識別模塊的信息轉換成播放設置命令和需要播放的語音編號并輸入到該模塊,模塊就可以播放對應的音頻文件。
L298N電機驅動模塊主要通過控制舵機的正反轉來實現垃圾桶的開合蓋,具有控制能力高,電機驅動能力強的特點。圖5為電機驅動模塊原理圖。

圖5 電機驅動模塊原理圖
通過改變單片機輸出的PWM波形達到控制電機驅動模塊的效果,從而控制舵機轉動的速率,保證了垃圾桶開合蓋過程中的穩定性。
圖6為該模塊結構圖。

圖6 太陽能充電框圖
由3W 6V 500mA多晶硅鋼化玻璃板、可自動升降壓穩壓器、MPPT鋰電池充電板和18650鋰電池組成。該模塊能夠為整個系統提供一個穩定的電源。
該傳感器模塊的發射管發射出一定頻率的紅外線。圖7是紅外傳感器原理圖。

圖7 紅外傳感器原理圖
當檢測方向遇到障礙物時,紅外線反射回來被接收管接收,經過比較器電路處理之后,信號輸出接口輸出數字信號。實現了垃圾桶無接觸式開蓋和判斷人是否離開后合蓋。
該智能垃圾桶為一鍵式設計,只需按下一鍵啟動開關即可全自動執行,程序流程如圖8所示。

圖8 程序流程圖
按下一鍵啟動開關后,設備開始初始化;初始化完成后,語音識別模塊開始接收一級指令即喚醒指令,如果識別成功便開始接收二級指令;當二級指令識別成功后會驅動相應的舵機打開對應垃圾桶。此時紅外傳感器開始檢測人是否離開垃圾桶,如果未檢測到人群便驅動舵機盒蓋,若檢測到人則繼續使桶處于開蓋狀態。
對于STM32F103主板的程序設計來說,可以使用模塊化的編程思想來提高程序的可移植性和易讀性。各個功能模塊,如語音識別模塊和語音播報模塊可以單獨編程,并用串口實現與STM32單片機的通信。
因為涉及到的功能較多,綜合所有模塊的程序給單片機并能高速運行是重點。為了提高該系統的執行速率,需要注意的是:函數的嵌套調用不能太多,中斷優先級的分配必須合理,延時函數要適當使用等。
為了讓智能垃圾桶的電路布局簡單明了,本項目采用了模塊化電路的布局設計,圖9是智能垃圾桶主板電路設計。

圖9 智能垃圾桶主板電路設計
該主板電路由語音識別電路、語音播報電路、舵機驅動電路、供電電路所構成。圖中JRX和JTX與語音播報電路相連,LTX和LRX與語音識別電路相連,PWM1、PWM2、PWM3、PWM4與舵機驅動電路相連。這種設計能夠很好的對接模塊化的程序設計。便于對硬件的組裝和程序的修改。
本節將簡要說明語音識別模塊、語音播報模塊、電機驅動模塊和紅外傳感器的調試過程。
對于語音識別模塊的編程,我們使用的是keil4軟件??紤]到垃圾名稱的繁多,在初期調試過程中,只引入了部分垃圾的名稱,這樣不僅減少了調試的出錯率,還縮短了調試時間。調試時使用的串口調試助手使數據可視化。打開串口后,模塊開始接收一級指令,完成一級指令的接收后會進入二級指令接收階段。當二級指令識別成功后,串口會發送對應的數據給單片機。
語音播報模塊主要播放用戶所投垃圾的分類信息。在調試過程中需要用到串口調試工具和語音合成工具。為了使該模塊播放出來的聲音清晰響亮,需要通過多次的語音合成獲取最理想的音頻。通過不斷的調試,當設置語速5音量9時,所播報出的垃圾分類信息最清晰響亮,能給人們最佳的聽覺效果。
將L298N電機驅動模塊與舵機接好后,通過調節單片機IO口引腳輸出的PWM值來控制舵機轉動的速度。當開合蓋不會影響垃圾桶的穩定性時即達到調試效果如表1所示。

表1 電機驅動模塊調試結果
通過上表的多次調試數據可以看出,當PWM比較值為250時,垃圾桶開合蓋的效果最好。
在各個模塊的調試完成之后,將所有的模塊組裝成一個整體如圖10所示。

圖10 基于STM32智能垃圾桶
先將STM32焊接在萬用板上,再依次將語音識讀模塊和語音播報模塊與STM32相連接,然后將裝有舵機和紅外傳感器的垃圾桶模型與對應的單片機IO相連,最后接上可太陽能充電的電源。
當按下一鍵啟動鍵后,該智能垃圾桶即可接收用戶發出的語音指令,并播報對應的垃圾分類信息,同時安裝在垃圾桶上的舵機開始旋轉使垃圾桶開蓋,當傳感器模塊不再檢測人體靠近時,舵機反向轉動使垃圾桶合蓋。即實現了一次精準的垃圾分類投放。
在模塊調試與綜合調試過程中,由于調試效果較好,顯著提高了垃圾桶的執行效率,基本實現了垃圾桶的智能化。
該文設計的智能垃圾桶,既包括語音識別開蓋功能,又含有人體感應開合蓋的功能。不管用戶是選擇在語音指導下投放垃圾,還是直接投放,用戶都能快速精準的投放垃圾,并學習到語音播報功能推送的垃圾分類知識。除此之外,該智能垃圾桶的太陽能供電系統使得垃圾桶實現了零排放,“人走蓋合”的設計顯著減少了垃圾對空氣的影響。不僅傳播了垃圾分類知識而且緩解了生活垃圾給環境帶來的壓力,具有良好的發展前進。