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