吳樹添,全釗鋒,覃雪婷,冉秋桂,藍國財,劉光曉,林雪瓊
(廣西民族師范學院 數理與電子信息工程學院,廣西崇左,532200)
目前我國各城市正在深入開展爭創國家衛生城市活動,這是全國愛國衛生運動委員會辦公室評選命名的國家級衛生優秀城市的最高榮譽,是一個城市綜合素質的重要標志。沈陽市正在深入開展創建國家衛生城市和建設國家健康城市(以下簡稱“雙城雙創”)工作,全面加強區域衛生基礎設施建設,促進城鄉環境衛生改善,營造整潔健康的市容環境,解決與人民群眾切身利益息息相關的社會衛生問題,爭創生態宜居的健康示范城市。本設計的投放使用將使普通市民從不隨手亂扔垃圾這樣的點滴小事做起,養成良好的衛生健康習慣,成為“雙城雙創”的主動參與者,踴躍參與到環境治理中來,成為“雙城雙創”的積極踐行者。在逐步完善長效管理機制中,智能垃圾桶的使用可以是人人可見的亮點。
目前市場上智能垃圾桶比較多,但是一般是應用超聲波傳感器或者是人體傳感器,這樣子的垃圾桶比較難應用到人流穿梭的街道,而語音控制的垃圾分類機器人,可以通過語音喚醒,也可以通過按鍵觸發喚醒語音識別,這樣子可以應用于人群密集和時常走動的街道,較好地解決了人群流動造成的系統誤以為有人需要丟垃圾而觸發的打開垃圾桶蓋的影響,本設計使用STM32作為主要控制的芯片開發和設計了一款可以通過語音控制的垃圾分類機器人,本設計研究的“語音控制垃圾分類機器人”主要是幫助人們將垃圾進行分類,使垃圾在清理時無需再次人工分類,能有效地節約環衛工人的時間,本設計會在你說出垃圾的名稱時自動打開該垃圾相應的垃圾類型的桶蓋并且通過語音播報告訴你是屬于什么類型的垃圾,當檢測到垃圾裝滿后可以ESP8266-01這款無線WIFI模塊通過MQTT協議連接中國移動物聯網OneNet云平臺告知工作人員垃圾已經裝滿,等工作人員清理,以確保不會出現垃圾后期需要進行分類和垃圾堆積的現象。本文使用STM32作為主要控制的芯片設計這款語音控制垃圾分類機器人來進行垃圾的分類,其主要是為了方便人們對垃圾進行分類,從而減少環衛工人的工作量和提高人們對垃圾進行分類的意識,且本設計能夠把物聯網技術、嵌入式技術、高頻技術、通信技術、大數據技術等理論知識結合引入到電子系統設計與制作工程實踐中,做到理論聯系實際,這個機器人的設計與實際生活緊密相關且具有很強的生活現實意義。
若想完成本設計需要使用到一個STM32F103C8T6核心板,一個ASR MO8-B語音識別模塊,一個MP3語音播報模塊,一個ESP8266-01WIFI模塊,一個HC-05藍牙模塊,四個紅外發射接收對管,四個SG90舵機,以STM32作為核心的控制器,語音識別模塊作為語音識別的裝置,MP3語音播報模塊用于播報垃圾的種類,ESP8266-01作為連接OneNet平臺的模塊,HC-05藍牙模塊作為單片機與手機APP通信的無線模塊,四個舵機用來控制垃圾桶的開關,四個紅外發射接收對管用于檢測垃圾是否裝滿。
本設計電路原理圖可以細分為:電源電路、主控模塊、WiFi、藍牙無線通信電路、紅外對管檢測電路、舵機驅動電路、語音識別模塊與語音播報模塊。系統設計框圖如圖1所示。

圖1 系統框圖
2.2.1 主控模塊
本設計主要是對WIFI模塊的數據接收和發送和ASR MO8-B語音識別模塊的串口數據接收還有手機APP與單片機通信的數據處理,對于這些數據可以使用STM32F103C8T6作為主控芯片,其本身自帶的三個串口通信功能可以剛好完成本設計數據分析和處理,使用單片機的USAR1串口打印輸出ESP8266對網絡連接的狀態,ESP8266通過單片機的USAR2連接OneNet平臺獲取平臺的數據和發送數據到平臺,HC-05模塊和語音識別模塊通過單片機的USAR3連接手機APP和語音識別模塊。

圖2 主控模塊
2.2.2 語音識別模塊
本設計使用一個ASR MO8-B語音識別模塊用于對人聲進行識別,ASR MO8-B語音識別模塊作為本設計的“耳朵”使用串口的通信方式向主控芯片發送數據,支持按鍵觸發識別語音、命令詞觸發識別語音,還有循環觸發識別語音,使用串口的通信方式使其更方便與其他單片機或Ardiuno等其他開發設備進行連接使用,使用范圍廣,并且可以自己修改識別的關鍵詞,相關領域擴展能力較強。
語音識別模塊將ASR MO8-B語音識別模塊的TX和RX腳分別接入單片機串口3的RX3(PB11)和TX3(PB10)腳與藍牙模塊共同使用單片機的串口通信3,由于兩個模塊只需要發送數據給單片機并不需要對數據進行接收,所以兩個模塊可以正常工作且互不影響。
2.2.3 無線通信模塊與舵機模塊
ESP8266是一個無線保真(WiFi)的小工具。它是在芯片(SoC)一個實用系統,它是內置的與TCP/IP協議中,可以結合任意微控制器與任何Wi-Fi網絡來連接,使用AT指令固件與單片機進行通信,更方便與單片機進行連接,在本設計中ESP8266是通過MQTT協議實現與OneNet平臺連接及交換數據。
HC-05藍牙模塊是主從一體的藍牙串口模塊,簡略的說,當藍牙主機與藍牙從機配對連接完成后,可以輕忽藍牙內部的通信協議,直接把藍牙模塊當作串口用。當兩個藍牙互相連接后,這兩藍牙一起使用一個通道也就是相當于使用了同一個串口,一個藍牙發送數據到使用的通道中,另外一個藍牙就可以接收當前通道的數據。
2.2.4 舵機模塊
舵機是一種通過調節脈寬進行轉動的伺服器,舵機可以通過改變一個周期高低電平的時間來改變角度。在本設計中SG09舵機用于對垃圾桶的控制,使四個舵機從0°至180°轉動從而實現四個垃圾桶的打開和閉合,這四個舵機信號控制端分別接在單片機的PB0、PB1、PB4、PB5中,這四個IO口都是單片機自帶的PWM接口,都由單片機的定時器3自帶的PWM驅動。
2.2.5 紅外對管檢測模塊與MP3語音模塊
本設計使用了四對紅外發射接收對管,紅外對管檢測模塊對于本設計來說就相當于是一雙“眼睛”用于查看垃圾桶內的垃圾是否裝滿,紅外對管使用紅外線發射和接收來進行判斷是否有障礙物的存在,紅外發射接收對管在無阻擋物時輸出高電平,有阻擋物時輸出低電平,垃圾是否裝滿的檢測只需要使用STM32單片機的IO口檢測紅外對管輸出的高低電平即可完成檢測,需要注意的是需要判斷低電平的時間超過三秒,防止投擲垃圾的時候系統檢測到一瞬間的低電平時誤以為是垃圾桶裝滿。
MP3語音播報模塊電路是連接MP3語音播報模塊信號端口與單片機IO口的電路,讓MP3模塊的信號端發生一次周期為20ms的下降沿即可使其播報對應端口設置的語音,單片機串口檢測到垃圾分類的指令后會給需要播報語音的信號端一個下降沿,讓MP3模塊播報對應的語音。
手機軟件的設計也是本設計一大重點,為了后續對本設計進行更好的開發與調試,本文開發了一款具有語音識別功能的手機APP,能夠解決語音識別模塊只能識別普通話和內部只能存儲50條命令關鍵詞的這兩大缺陷,讓設計者和使用者后續對本設計的開發和完善變得更加簡單,并且使用手機APP后續本設計學習垃圾分類的知識不需要改動已經設計好的硬件,只需要不斷更新APP的數據庫可以了,所以APP的開發設計對本設計而言無論是從開發成本還是后續對垃圾分類知識的學習都起到了很大的作用。
STM32的程序設計也相對比較簡單,在等待系統聯網成功后使用串口讀取語音識別模塊、藍牙模塊的數據就對比事先設定的數據就可以實現對垃圾的分類,在不斷讀取語音模塊和藍牙的數據時,系統也在不斷的利用ESP8266模塊向OneNet平臺發送紅外對管檢測到的數據,對垃圾桶是否裝滿的數據實時更新,程序流程圖如圖3所示。

圖3 程序流程圖
APP設計圖如圖4所示。

圖4 APP界面設計圖
這款由 MIT App Inventor網頁版設計的APP,基于語音識別的智能垃圾桶軟件主要圍繞4大功能:
(1)實現對垃圾桶內部容量的監測,以便及時清理垃圾,避免造成垃圾堵塞的情況。
(2)監測智能垃圾桶各功能模塊的工作狀態,當檢測到垃圾裝滿后可以ESP8266-01S這款無線WIFI模塊通過MQTT協議連接中國移動物聯網OneNet云平臺告知工作人,以便及時修復,從而恢復智能垃圾桶的正常運行狀態。
(3)智能垃圾桶的控制界面,通過控制界面實現智能垃圾桶的閉合和啟動等操作。當點擊一個類別的垃圾的類別時,可以對該垃圾桶進行垃圾桶蓋關閉和啟動的操作。
(4)同時本設計還設置了一個語音識別的功能,讓手機APP也可以通過語音識別的功能進行對垃圾種類的區分,并且語音識別的結果的垃圾種類數據庫可以較為簡單的更新。
通過這4大功能,就能實時對語音控制智能垃圾桶的工作情況進行了解和掌握,從而實現語音控制智能垃圾桶硬件與軟件的聯接,APP在設計之初就在APP的垃圾種類數據庫里寫入了大量的垃圾分類知識,且后續對軟件數據庫的更新和學習不需要再改動硬件部分,有效的為后續對此機器人的開發節約來通過改動硬件造成的高成本,本次開發的這款手機APP的語音識別功能也彌補了硬件部分的語音識別模塊只能識別普通話的這一重大缺陷,這款APP的語音識別功能可以識別個別地方的方言比如:粵語和四川話,使得語音識別功能不再局限于普通話,如此就更適合應用到人們的日常生活使用,為了本設計的垃圾分類機器人不局限于國人使用,對此本文設計的這款APP后續還可以開發對英語的語音識別。APP在手機運行的實際效果如圖5所示。

圖5 手機APP運行效果圖
在軟件設計的之初,考慮到可能有許多人不會使用本文開發的這款軟件,所以本設計在使用界面寫了一個軟件的使用說明,讓第一次接觸這款軟件的人也能快速上手使用。選擇識別的語言如圖6所示。手機APP的用戶可以通過選項自行選擇需要識別語言是普通話還是粵語或者是四川話。

圖6 用戶選擇識別語言
本設計完成了一個智能垃圾分類的機器人,這款機器人可以通過語音識別的方式識別垃圾種類并且能自動打開垃圾桶和通過語音播報告知使用者要丟是什么類型的垃圾,相當于市面上的一些智能垃圾桶,本設計多了語音識別和垃圾分類的效果,能夠很好的幫助人們完成垃圾的分類,并且本設計還有檢測垃圾是否裝滿的設計和與OneNet平臺的連接,能夠實時傳輸垃圾是否裝滿的數據上傳至OneNet平臺讓負責清潔的環衛工人更好的查看垃圾桶是否裝滿從而能夠對垃圾桶及時進行的清理,有效的防止垃圾堆積無人清理的現象,使用語音呼叫應答的方式對垃圾進行分類可以提高國民對垃圾分類的知識和意識,可以幫助普通居民更好的對垃圾進行分類,本設計也有部分缺陷,比如:在聲音比較雜的情況下,語音識別可能會無法識別、語音識別的距離較短等問題,不過這些存在的問題后續可以使用手機APP來進行改良。