余 驍,劉 碩
(江蘇科技大學(xué),江蘇 鎮(zhèn)江 212000)
查閱相關(guān)數(shù)據(jù)發(fā)現(xiàn),我國2019年生活垃圾的清運(yùn)量高達(dá)24 206.19萬噸[1]。之前,由于人們?nèi)狈诸愐庾R,導(dǎo)致大部分垃圾未進(jìn)行合理有效分類就被扔進(jìn)垃圾桶,造成資源的大量浪費(fèi)。自從《上海市生活垃圾管理條例》正式實(shí)施之后,垃圾分類再次成為全國人民關(guān)注的焦點(diǎn)[2]。垃圾可劃分為4種不等的類別,可分為可回收垃圾、廚余垃圾、有害垃圾、其他垃圾。垃圾分類是對傳統(tǒng)垃圾收集和處理方法的改革,是有效進(jìn)行垃圾處理的科學(xué)管理方法,通過進(jìn)一步挖掘垃圾蘊(yùn)含的潛在價值,從而達(dá)到變廢為寶、保護(hù)環(huán)境的目的[3]。
針對垃圾分類的現(xiàn)狀與存在的問題,本論文提出了基于深度學(xué)習(xí)和單片機(jī)的智能垃圾分類系統(tǒng)設(shè)計,可以實(shí)現(xiàn)垃圾的自動識別與自動投放、LCD顯示以及滿載檢測等功能。
本系統(tǒng)主要搭載了基于Pytorch的深度學(xué)習(xí)框架進(jìn)行視覺識別,利用STM32嵌入式單片機(jī)作為微控制器進(jìn)行功能拓展。通過攝像頭采集圖像信息,利用視覺識別算法對圖像信息進(jìn)行處理,然后通過串口將處理后的數(shù)據(jù)發(fā)送給STM32單片機(jī),經(jīng)過單片機(jī)對數(shù)據(jù)作進(jìn)一步處理后控制步進(jìn)電機(jī)與舵機(jī)運(yùn)轉(zhuǎn),實(shí)現(xiàn)垃圾的自動識別與自動投放,以及LCD顯示屏的顯示功能,最終實(shí)現(xiàn)垃圾的自動分類。還可在垃圾桶上外加對射紅外開關(guān)進(jìn)行滿載檢測。系統(tǒng)整體裝配如圖1所示。
圖1 系統(tǒng)整體裝配圖
智能垃圾分類系統(tǒng)硬件結(jié)構(gòu)涉及的主要模塊有視覺識別模塊、舵機(jī)模塊、步進(jìn)電機(jī)模塊、LCD顯示模塊以及滿載檢測模塊。系統(tǒng)硬件結(jié)構(gòu)設(shè)計如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)設(shè)計
智能垃圾分類系統(tǒng)的視覺識別模塊主要搭載基于Pytorch的深度學(xué)習(xí)框架進(jìn)行視覺識別。通過攝像頭采集垃圾圖像數(shù)據(jù),經(jīng)過事先擬合好的函數(shù)進(jìn)行數(shù)據(jù)處理,可以得出當(dāng)前采集的垃圾數(shù)據(jù)與哪一類垃圾數(shù)據(jù)更為匹配。然后通過串口將處理好的數(shù)據(jù)傳輸給STM32單片機(jī),從而對步進(jìn)電機(jī)、舵機(jī)以及LCD顯示屏進(jìn)行控制。Pytorch相比Tensorflow而言,更加簡潔直觀[4]。視覺識別模塊與STM32單片機(jī)的通信結(jié)構(gòu)如圖3所示。
圖3 通信結(jié)構(gòu)
智能垃圾分類系統(tǒng)采用MG90S舵機(jī)實(shí)現(xiàn)自動投放垃圾的功能。STM32單片機(jī)通過I/O口向舵機(jī)傳送PWM信號,控制舵機(jī)運(yùn)轉(zhuǎn),將200 mm×200 mm木板上的垃圾投放到垃圾桶中。舵機(jī)大體可分為殼體、減速器、驅(qū)動馬達(dá)、位置檢測部件和電路板。MG90S屬于數(shù)字舵機(jī),相比模擬舵機(jī)而言,數(shù)字舵機(jī)的控制電路具有更多的晶體振蕩器和微處理器,極大地提高了舵機(jī)的驅(qū)動性能[5]。舵機(jī)驅(qū)動原理如圖4所示。
圖4 舵機(jī)驅(qū)動原理
智能垃圾分類系統(tǒng)采用TB6600驅(qū)動器和57步進(jìn)電機(jī),實(shí)現(xiàn)了垃圾桶的自動選擇功能。TB6600是一款專業(yè)的兩相步進(jìn)電機(jī)驅(qū)動器,兼容Arduino和其他主控器,可實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)控制、旋轉(zhuǎn)角度控制等,具有振動小、噪聲低、速度快等優(yōu)勢[6]。STM32單片機(jī)對通過串口通信接收到的數(shù)據(jù)進(jìn)行處理,控制57步進(jìn)電機(jī)旋轉(zhuǎn)一定角度,選擇有害垃圾垃圾桶、可回收垃圾垃圾桶、廚余垃圾垃圾桶、其他垃圾垃圾桶的其中一個進(jìn)行垃圾自動投放。TB6600控制器、57步進(jìn)電機(jī)以及STM32控制器的接線方式采用共陽極接法,具體如圖5所示。
圖5 步進(jìn)電機(jī)模塊接線圖
智能垃圾分類系統(tǒng)采用2.8寸MCU電阻觸摸屏模塊,該模塊依靠背光LED發(fā)光,每個點(diǎn)電壓可以改變光線的方向,從而改變透光度(0~100%)。每個像素點(diǎn)對應(yīng)紅綠藍(lán)RGB,RGB各自的亮度不同,組成的顏色自然也不同[7]。LCD顯示模塊實(shí)現(xiàn)了智能垃圾分類系統(tǒng)各項參數(shù)的顯示,具體包括投放順序、投放種類、四類垃圾的數(shù)量以及是否投放成功。對紅外對射開關(guān)傳來的數(shù)據(jù)進(jìn)行檢測與處理,實(shí)現(xiàn)垃圾桶的滿載檢測。
智能垃圾分類系統(tǒng)采用紅外對射開關(guān)進(jìn)行垃圾桶的滿載檢測。實(shí)現(xiàn)原理:當(dāng)紅外對射開關(guān)之間無垃圾阻擋時,接收管的信號線輸出0 V低電平;當(dāng)紅外對射開關(guān)之間有垃圾阻擋時,接收管的信號線輸出5 V高電平。為避免垃圾在下降過程中因短時間阻擋紅外光線為滿載檢測帶來干擾,本設(shè)計采用延遲判斷避免此類錯判,類似按鍵消抖原理。該模塊抗干擾能力強(qiáng),價格低廉,應(yīng)用前景廣闊。滿載檢測模塊原理如圖6所示。
圖6 滿載檢測模塊原理
智能垃圾分類系統(tǒng)軟件仿真設(shè)計主要涉及STM32單片機(jī)以及Pytorch。智能垃圾分類系統(tǒng)的整體流程如圖7所示。
圖7 系統(tǒng)整體流程
STM32單片機(jī)程序主要由C語言編寫,包括主程序、舵機(jī)程序以及電機(jī)驅(qū)動程序等各功能模塊子程序。將智能垃圾分類系統(tǒng)的功能模塊化,使得系統(tǒng)具有架構(gòu)靈活、方便單個模塊功能調(diào)試升級以及可維護(hù)性高等優(yōu)點(diǎn)。
Pytorch程序主要由Python語言編寫,Pytorch是Python軟件包,其GPU促進(jìn)了基于磁帶autograd系統(tǒng)構(gòu)建的張量計算[8]。智能垃圾分類系統(tǒng)采用基于Pytorch的深度學(xué)習(xí)框架進(jìn)行垃圾識別,垃圾識別主要分為如下3部分:
(1)攝像頭對垃圾圖像數(shù)據(jù)進(jìn)行采集與獲?。?/p>
(2)將采集的圖像數(shù)據(jù)放進(jìn)預(yù)訓(xùn)練模型進(jìn)行預(yù)處理及加工;
(3)將加工好的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)遵守Pytorch與STM32單片機(jī)的串口通信協(xié)議[9],發(fā)送給STM32單片機(jī)。
系統(tǒng)識別流程如圖8所示。
圖8 系統(tǒng)識別流程
智能垃圾分類系統(tǒng)的功能模塊化可能會導(dǎo)致功能模塊在互通的過程中出現(xiàn)一些不可預(yù)知的問題與故障,因此需要不斷調(diào)試與改進(jìn)。
本論文主要介紹了基于深度學(xué)習(xí)和單片機(jī)的智能垃圾分類系統(tǒng)在硬件和軟件上的設(shè)計,垃圾分類系統(tǒng)搭載基于Pytorch的深度學(xué)習(xí)框架進(jìn)行垃圾識別,同時系統(tǒng)具備的自動投放、滿載檢測報警等技術(shù)可實(shí)現(xiàn)垃圾自動分類,一定程度上削弱了人為垃圾分類的繁瑣性,提高了垃圾分類效率。
在今后的研究當(dāng)中,可以對當(dāng)前智能垃圾分類系統(tǒng)進(jìn)行升級改造。比如,增加語音播報模塊以及上位機(jī),實(shí)現(xiàn)人機(jī)交互,進(jìn)一步提高智能垃圾分類系統(tǒng)的智能化水平;增加大量數(shù)據(jù)集,實(shí)現(xiàn)精準(zhǔn)識別更多種類的垃圾,凸顯智能垃圾分類系統(tǒng)的人性化特點(diǎn)[10]。