夏子結,吳瑪佳,王 強,夏秀英,夏紀新,鮮建紅,查 靚
(安順學院電子與信息工程學院,貴州 安順 561000)
如何將可回收垃圾進行充分回收一直是我國亟待解決的問題。面對此情此景,研究和發展語音識別垃圾箱控制系統是非常有必要的。為此,本團隊對安順學院的戶外垃圾桶做了調查,根據調查結果顯示安順學院有374 個垃圾桶,需要手動翻蓋的垃圾桶有143 個,無須手動開蓋的垃圾桶有231 個。安順學院使用手動開蓋的戶外塑料垃圾桶占38%,無須手動開蓋不銹鋼戶外垃圾桶占到62%。
本項目抓住傳統垃圾桶的痛點,并將其進行創新。本文設計了一個可以對易拉罐、玻璃瓶、塑料瓶和廢紙這4 種可回收物進行分類收集的垃圾桶,這種非接觸垃圾桶的好處是:智能化、節約時間、保護環境、密封性好、回收方便和減少病毒的接觸性傳染。基于STM32的4 種類型語音控制垃圾桶不僅對防控新冠感染疫情起到積極作用,同時還能夠克服安順學院目前戶外垃圾桶使用存在的缺點。
本設計利用以STM32 單片機為核心的微控制器,采用語音識別模塊對普通話語音進行識別。復位開關在通電之后可選擇馬上使用或等待一會兒再使用,使用起來更加自由,同時可防止短路;JQ8900 語音播報模塊用于播報垃圾與垃圾桶的種類;設置了GSM 短信提醒模塊;按鍵模塊作為在普通話不標準或者不會說普通話的情況下方便使用;LED 提示燈是提醒使用者垃圾桶蓋已開;4 個舵機用來控制垃圾桶蓋的開關;4個紅外傳感器發射接收信息用于檢測垃圾是否裝滿;蜂鳴器報警模塊在傳感器感應到垃圾桶溢滿時進行報警。
1.2.1 主控芯片
本設計選用STM32F103C8T6 為主控芯片,而不選擇AT89C51 為主控芯片,是因為綜合了成本、片上資源、flash 和RAM 存儲器、改進功能的空間和內核等方面的對比。雖然AT89C51 芯片有成本低的優勢,但是經過對比,其在除了成本以外的其他方面都存在劣勢,所以此設計采用STM32F103C8T6 為主控芯片。
1.2.2 LD3320 語音識別模塊
根據本設計的需要和引腳較多的需求故選擇了LD3320 型號的語音識別模塊,并且LD3320 型號的語音識別模塊不需要花費太多錢,同時還低功耗。
1.2.3 電源
由于主控芯片需要協同帶動的模塊較多,燈光提示模塊已連接3.3 V 電源,而LD3320 語音播報模塊要用5 V,所以本設計選用5V 的電源,保證了本設計的穩定性。
1.2.4 舵機
電機控制板的功能是讓電機運動并且接收電位器返回的信息[1]。經過對比SG90 伺服機、MG90 伺服機、MG990 伺服機這3 種常見的伺服機,得出在本設計中,因需要帶動的是塑料的垃圾桶,所以SG90 舵機是完全夠用的,同時也考慮到成本和體積的問題,于是SG90 舵機再合適不過。
1.2.5 GSM 短信提醒
GSM-A6 型號短信提醒模塊是電路交換系統,只需要具備2 張電話卡就可實現連接,從而進行短信互發。GPRS-A6 是分組交換系統,但本設計不使用GPRS-A6 型號的數據傳輸技術,因為考慮到成本問題,同時本設計不需要視頻通話和互聯網接入,所以,本設計使用的是GSM-A6 短信提醒模塊。
1.2.6 傳感器模塊
TCRT5000 傳感器發射紅外線會分為2 種情況:指示二極管被點亮和指示二極管處于熄滅狀態。TCRT5000 傳感器具有抗干擾性強、使用方便而且簡單的優點。超聲波傳感器MB7139 的優點是敏感而且靈活,穿透的能力非常強,測量精度高,穩定性好,缺點是超聲波傳感器的測距速度較慢,容易造成資源浪費,存在最短探測距離。綜合以上介紹,本設計選用了TCRT5000 傳感器。
1.2.7 三極管
本設計的三極管需要的是放大電流,降低電壓,縮小信號,起到保護電路的作用。常見的有S8050 和S8550 型號三極管,2 種三極管有非常大的區別,S8050是NPN 管,S8550 是PNP 管,這2 種三極管原理不同,辨別方法也不同。經比較得出,S8550 型號與S8050 型號三極管是有區別的,綜合比較后本設計選用S8550型號的三極管最為合適。
本設計采用的單片機是以STM32F103C8T6 為主控芯片,優點是快速的處理能力、強大的外設支持、可擴展性強和性能消耗低。
在本設計中,4 個舵機連接的是PB0~1,PA7~6 這4 個引腳,4 個傳感器連接的是PB12~15 這4 個引腳,4 個按鍵連接的是PA15,PB3~5 這4 個引腳,電源連接正負引腳,語音播報模塊連接PA9(TXD1)和電源正負極引腳,GSM 短信提醒模塊連接PA3、PA2 引腳,語音識別模塊連接PB11、PB10 引腳進行數據的傳輸。蜂鳴器模塊連接PC14 引腳。如圖1 所示。

圖1 基于STM32 的4 種類型語音控制垃圾桶原理圖
語音識別模塊使用時只需連接5 V 電源,然后模塊的串口通信端口與單片的串口3 相連接就可以工作。在語音識別模塊運行時需要說普通話,有時會存在識別不出來的情況,需要再次喚醒,這也是LD3320 的缺點,識別精度低。
垃圾桶具有語音喚醒且開蓋的功能[2],單片機控制4 個轉向發動機的轉動。SG90 舵機是一種位置伺服驅動器,適用于需要不斷改變角度的控制系統,并且可以保持運行。項目采用STM32 核心板PB1/PB0/PA7/PA6端口輸出PWM 信號來控制舵機的旋轉角度,達到帶動垃圾桶蓋開關的目的。
JQ8900 語音播報模塊有3 種通信模式,即兩線串口通信方式、一線串口通信方式和IO 口按鍵觸發模式。本實驗中之所以使用的是一線串口通信方式,是因為查閱資料后發現一線串口通信方式程序編寫更加簡便。JQ8900語音模塊為RX接TXDI,GND接地,DC接5 V,SPK+和SPK-接小喇叭正負極。
本設計的溢滿報警采用蜂鳴器進行提醒,在垃圾桶里面的可回收垃圾滿了之后,系統將運行蜂鳴器發出警報信息,以達到一個聲音的報警,這樣可更加直觀地獲取垃圾桶已滿的信息。
指示燈電路的設置是為了讓使用者能更加明顯地看到垃圾桶已處于開蓋的狀態,4 個燈所對應的垃圾桶也不一樣,指示燈亮了之后人們就可以投放垃圾了。這給予了人們更加直觀的視覺沖擊,可及時獲取信息。電阻R1~R4 是限流電阻。
設置按鍵模塊的初衷是有些人不具備說話的能力或不會說普通話,就像言語障礙者等的人群。所以應該給這些人群提供更加便利的服務,按鍵模塊就被安排上了,這是非常有意義的。
電源模塊可以說是基本的模塊,有了電源才能夠運行整個程序,所有的程序都要依靠電源才能夠實現功能,在這個項目中使用的是直流供電。在電源連接后需要等待10 s 左右GSM 文本發送模塊才能夠啟動,所以在10 s 后才能夠喚醒垃圾桶。
這個設計使用的是TCRT5000 型號的紅外距離模塊,作為針對垃圾桶被投放滿之后不能夠繼續投放垃圾的動作發生、觸發蜂鳴器報警、文本信息的發送,傳感器是很重要的,其能夠將可回收垃圾積極清運,使工作人員的工作更加便利,避免了垃圾不及時處理造成的環境污染。
這個設計不需要聯網和視頻,所以選擇了短信提醒,能夠實現遠距離的文本信息發送。這在原有的處理垃圾方式上有了很大的創新,能夠節約成本和時間,使工作效率更高。
在這個項目進行軟件設計時,需要把整個運行過程分成很多個部分,部分之間都是息息相關的。程序的主程序開始運行時,會將整個程序進行初始化,接著讀取串口信息,判斷是否讀到數據,若讀取到信息,判斷可回收垃圾種類,隨后執行開蓋、關蓋、報警等操作。如圖2 所示。

圖2 主程序流程圖
程序開始時,當使用者在普通話喚醒并說出相對應的可回收垃圾的垃圾桶,并識別到是哪一個垃圾桶時,那么就得運行開蓋的程序,開蓋的流程需要有PWM 波形的形成,舵機旋轉到0°,輸出占空比為1.5的脈沖即可。
程序開始時,當使用者在普通話喚醒并說出相對應的可回收垃圾的垃圾桶,并識別到是哪一個垃圾桶時,那么就得運行開蓋的程序,開完蓋并投放垃圾后就需要關閉垃圾桶的蓋,關閉垃圾桶蓋的流程需要有PWM 波形的發生,舵機轉動角度為-90°[3],輸出占空比為0.5 的脈沖就可實現關蓋的功能。
語音識別模塊的程序開始時,將程序進行初始化,接著讀取串口數據,判斷是否接收到數據,沒接收到數據時會進行暫緩清零,若接收到數據則將讀取指令,數據為C4,則判斷為廢紙,那么廢紙垃圾桶就會開蓋;數據為C5,則判斷為易拉罐,易拉罐垃圾桶就會開蓋;接若數據為C6,則判斷為玻璃瓶,玻璃瓶垃圾桶就會開蓋;數據為C7,則判斷為塑料瓶,塑料瓶垃圾桶就會開蓋[4]。若指令數據不是C4、C5、C6 或C7,則程序會重新讀取串口數據。如圖3 所示。
垃圾桶項目系統的軟硬件調試是完成軟硬件項目的最后一步。需要多次調試才能發現系統中的軟件編譯錯誤,并糾正硬件生產中的潛在隱患。任何系統都必須經過調試和完善。實踐是檢驗真理的標準,不能急于取得結果而忽視細節。有必要在項目的調試上下功夫,只有經過仔細的調試,項目才能夠完成好。
在Keil 環境下進行編程時,編寫的程序容易報錯;編寫代碼時容易把相似的數字英文寫錯,導致找錯誤的時候難以發現。
硬件調試最重要的方面是電路板會不會有電線松動、泄漏、連接不正確、短路,以及電源的正負極是否正確連接;還需要確保電路中的模塊組件是否正常使用,焊接前可以使用萬用表和電流表進行測試。提前整理整個程序接線線路,這樣就可以減少許多不必要的錯誤。
在軟件和硬件測試完成并清晰之后,應該一起進行調試。盡管Keil 的軟件可以模擬,但卻不是一個肉眼可見的環境。最后一步現實的測試和調試是將軟件程序刻錄到微控制器中去,接上電源,然后測試相對應的功能,看看是否實現按設計目標功能工作。因為一些硬件測試需要軟件配合才能更好地識別問題,所以軟件測試也需要硬件合作才能更好地改進。
每個功能模塊的電路都可以獨立工作。當在進行集成和調試時,并不意味著可以實現整體功能。有必要改進調試以解決隨時可能會出現的問題。需要步步為營,一步一步地按照測試要求來做。隨時核對原理圖與電路板之間的連線,不放松警惕,保證實物能夠按照預期的想法完全實現,在本設計的調試中不得不承認花費了很多的時間,但在調試成功的時候是非常有成就感的。因為畢業設計是非常重要的,所以調試成功是必須要實現的。
在整體調試過程中,由于SIM 卡沒有正確安裝在卡槽中,垃圾桶裝滿時只有報警聲,沒有短信提醒。經過反復檢查和調整,最終收到了短信提醒。調試時每一步都不能馬虎,必須小心,才能確保這個設計成功完成并達到標準。
在調試時,喚醒語音識別模塊需要多次呼叫,因為識別精度不夠,容易受周圍環境影響,而且需要標準的普通話,對人的資質要求較高,所以需要耐心地使用。后期可以更新語音識別模塊的型號,使語音識別模塊的精度提高,使用起來更加輕松,避免人們在喚醒的時候垃圾桶無回應。整體調試如圖4 所示。

圖4 整體調試
必須驗收硬件和軟件互動調試的結果,最終的結果是對全部實物的展示。第一,電源連接至關重要。第二,要能成功喚醒垃圾桶。如果喚醒成功,操作可以繼續。如果喚醒失敗,則需要再次喚醒。喚醒的詞是“垃圾桶”。如果垃圾桶回復“歡迎使用垃圾桶”,麥克風可以繼續傳輸語音并說出可回收垃圾的名稱,相應的垃圾桶蓋就會打開,扔進可回收垃圾后,關閉垃圾桶蓋進行處理;如果有人扔垃圾時垃圾桶已滿,蜂鳴器會發出警報,同時短信提醒模塊會向指定的電話號碼發送文本信息。只要將該電話號碼的SIM 卡插入電話卡插槽,就可以接收到文本信息,達到及時清除和處理垃圾的目的。根據以上2 點來判斷是否達到了目標功能:垃圾滿的時候語音提醒,蜂鳴器發出鳴叫,手機收到報警短信,手動開/關蓋功能正常,4 個按鍵一個對應一個控制垃圾桶開/關蓋。
自動檢測和打開垃圾桶蓋是該項目創建語音識別垃圾桶控制系統的主要目標。語音識別垃圾桶控制系統是在當前環境保護的背景下創建的,目的是讓人們遠離垃圾,降低感染的風險。但是語音識別垃圾桶對中國人來說是陌生的,可以擁有也可以丟掉。中國的語音識別垃圾桶行業要獲得良好的技術和資金支持是很有挑戰性的,因此,它一直無法迅速發展。平常的一些人家和一些工廠對采購和利用它們的積極性不高。但筆者還是一開始就確定了該系統的設計方案,還對系統的整體設計和各個部分進行了深入的分析和設計。研究結果表明,語音識別電路、伺服驅動模塊、語音報警模塊構成了本項目所開發的語音識別垃圾桶控制系統的大部分。
事實上,此時創建的語音識別可控系統仍有很多缺陷。這種設計直接使用的主電源為電能,而不是使用太陽能等可再生能源。
基于STM32 的4 種類型語音控制垃圾桶的設計只是一個非常粗略的草案,在此基礎上還可以增加許多其他功能。如自動撿起掉在地上的垃圾,實現自動包裝垃圾,選擇識別精度高的語音識別模塊識別語言,開發夜間街道照明的功能,以及開發一個手機應用程序來控制蓋子的打開和關閉,這些都是可以添加的一些功能,所有這些都將在未來被付諸實踐。