馬晗旭,劉忠富,劉子洋,趙宏宇
(大連民族大學(xué) 信息與通信工程學(xué)院,大連116600)
隨著城市化的發(fā)展, 科技技術(shù)的不斷革新,居民的生活垃圾不再是毫無(wú)用處的廢棄物,它擁有巨大的開(kāi)發(fā)價(jià)值。 但是,目前在我國(guó)城市街道上的分類(lèi)垃圾桶大部分只是貼有標(biāo)簽的普通垃圾桶,需要人為去識(shí)別垃圾種類(lèi)。 再加上很多人不知道垃圾分類(lèi)的知識(shí),無(wú)法進(jìn)行正確投放,這使垃圾分類(lèi)沒(méi)有達(dá)到預(yù)期的效果。 因此垃圾分類(lèi)的智能化已然成為必然的趨勢(shì)。
近些年來(lái),國(guó)內(nèi)外的科研技術(shù)人員對(duì)垃圾分類(lèi)進(jìn)行了較多的研究。 文獻(xiàn)[1]對(duì)垃圾回收分類(lèi)進(jìn)行了研究,該系統(tǒng)主要通過(guò)金屬傳感器,紅外對(duì)管傳感器等進(jìn)行垃圾識(shí)別分類(lèi),可以基本實(shí)現(xiàn)一些簡(jiǎn)單的垃圾分類(lèi)。 文獻(xiàn)[2]利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)垃圾分類(lèi)進(jìn)行了研究。
針對(duì)人們不能正確進(jìn)行垃圾分類(lèi),人工分類(lèi)耗時(shí)耗力等問(wèn)題, 本文設(shè)計(jì)了一種智能垃圾分類(lèi)系統(tǒng)。 系統(tǒng)進(jìn)行高效的垃圾分類(lèi),使人們不用考慮所扔垃圾的種類(lèi)。 系統(tǒng)通過(guò)語(yǔ)音交互,能夠普及人們對(duì)垃圾分類(lèi)的認(rèn)識(shí),對(duì)社會(huì)中垃圾分類(lèi)起到促進(jìn)作用,具有一定的實(shí)際意義和研究?jī)r(jià)值。
本系統(tǒng)采用STM32F103RCT6 作為核心控制芯片,此芯片具有高性能、低功耗和造價(jià)低等特點(diǎn)。 在垃圾識(shí)別環(huán)節(jié)使用了OpenMV 模塊,通過(guò)訓(xùn)練垃圾數(shù)據(jù)庫(kù),采用SSD 算法進(jìn)行垃圾的識(shí)別,識(shí)別之后,通過(guò)單片機(jī)串口接收識(shí)別的數(shù)據(jù),進(jìn)行控制語(yǔ)音識(shí)別芯片LD3320 進(jìn)行對(duì)應(yīng)垃圾種類(lèi)的播報(bào), 同時(shí)單片機(jī)驅(qū)動(dòng)電機(jī)旋轉(zhuǎn), 使內(nèi)桶精準(zhǔn)旋轉(zhuǎn)到對(duì)應(yīng)的位置。 旋轉(zhuǎn)完成后,通過(guò)單片機(jī)控制放有垃圾的舵機(jī)板旋轉(zhuǎn),使垃圾落入對(duì)應(yīng)的內(nèi)桶。 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖1 所示。
圖1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖Fig.1 System structure design
本系統(tǒng)主要由STM32 單片機(jī)最小系統(tǒng)電路、OpenMV 垃圾識(shí)別電路、 超聲波測(cè)距電路、 電源電路、語(yǔ)音交互電路及控制電路組成,如圖2 所示。 整個(gè)系統(tǒng)主要以STM32 單片機(jī)最小系統(tǒng)為主要處理器。 垃圾通過(guò)OpenMV 模塊訓(xùn)練數(shù)據(jù)進(jìn)行識(shí)別,將識(shí)別的數(shù)據(jù)信息傳遞給單片機(jī),通過(guò)單片機(jī)控制電機(jī)、舵機(jī)的旋轉(zhuǎn),完成整個(gè)垃圾分類(lèi)系統(tǒng)。
圖2 硬件電路設(shè)計(jì)圖Fig.2 Hardware circuit design
本系統(tǒng)的主控芯片采用STM32F103RCT6 單片機(jī),選用這種芯片組成單片機(jī)最小系統(tǒng)主要由于其構(gòu)成的電路設(shè)計(jì)較為簡(jiǎn)單,并且反應(yīng)速度快,程序存儲(chǔ)量相對(duì)于51 單片機(jī)來(lái)說(shuō)較大。 本文中所設(shè)計(jì)的系統(tǒng)主要以其作為主控芯片,通過(guò)串口接收并處理數(shù)據(jù),從而對(duì)整個(gè)系統(tǒng)功能進(jìn)行實(shí)現(xiàn)。 電路圖如圖3 所示。
OpenMV 攝像頭是一款小巧、低功耗、低成本的電路板, 可以通過(guò)高級(jí)語(yǔ)言Python 實(shí)現(xiàn)處理算法。在小巧的硬件模塊上,用C 語(yǔ)言高效地實(shí)現(xiàn)了核心機(jī)器視覺(jué)算法,提供Python 編程接口。 Python 的高級(jí)數(shù)據(jù)結(jié)構(gòu)很容易在機(jī)器視覺(jué)算法中處理復(fù)雜的輸出。 而且可以完全控制OpenMV,包括IO 引腳。
該部分用于檢測(cè)箱內(nèi)垃圾的高度,判斷是否需要清理桶內(nèi)垃圾。 設(shè)計(jì)的垃圾箱為90 cm,因此根據(jù)人為合理劃定,認(rèn)為當(dāng)R<30 cm 時(shí),為垃圾較少;當(dāng)30 cm 電源電路包括兩部分,一部分是將太陽(yáng)能轉(zhuǎn)化的12 V 直流電轉(zhuǎn)換為5 V 直流電供紅外傳感器和超聲波模塊使用, 另一部分是將5 V 轉(zhuǎn)換為3.3 V供STM32 使用。 2.4.1 12 V 轉(zhuǎn)5 V 電路設(shè)計(jì) 圖3 單片機(jī)最小系統(tǒng)電路Fig.3 Minimum system circuit of single chip microcomputer 圖4 超聲波測(cè)距原理Fig.4 Principle of ultrasonic ranging 該電路采用LM2596-5 芯片進(jìn)行降壓得到5 V,LM2596 屬于常用的開(kāi)關(guān)電源芯片,造價(jià)便宜。 12 V接入IN 端, 在輸出端接一個(gè)470 μF 電解電容和105 電容, 進(jìn)一步濾除紋波得到5 V 穩(wěn)壓電源。 圖中發(fā)光二極管起指示作用, 轉(zhuǎn)換效率可達(dá)80%~90%左右。該電路原理如圖5 所示。 圖5 12 V 轉(zhuǎn)5 V 電路Fig.5 12 V to 5 V circuit 2.4.2 5 V 轉(zhuǎn)3.3 V 電路設(shè)計(jì) STM32 單片機(jī)穩(wěn)定工作需要穩(wěn)定的電壓,因此將5 V 轉(zhuǎn)換為穩(wěn)定的3.3 V 電壓供單片機(jī)使用。 本設(shè)計(jì)采用線性穩(wěn)壓芯片AMS1117-3.3 V,該芯片可以將輸入的5 V 電壓轉(zhuǎn)換為3.3 V 輸出,此部分電路原理如圖6 所示。 VCC5為5 V 電壓,IN 為穩(wěn)壓芯片的輸入引腳,OUT 是3.3 V輸出引腳, 左側(cè)104 電容、220 μF 電容起濾波作用,發(fā)光二極管起指示作用。 圖6 5 V 轉(zhuǎn)3.3 V 電路Fig.6 5 V to 3.3 V circuit 本設(shè)計(jì)采用了語(yǔ)音識(shí)別芯片LD3320,該芯片采用ASR 技術(shù),提供了一種脫離按鍵、鍵盤(pán)、鼠標(biāo)、觸摸屏等GUI 操作方式且基于語(yǔ)音的用戶(hù)界面VUI,使得用戶(hù)對(duì)該系統(tǒng)的操作更簡(jiǎn)單、快速和自然[3-4]。 只需把識(shí)別的關(guān)鍵詞語(yǔ)以字符串的形式傳送進(jìn)芯片,即可以在下次識(shí)別中立即生效。如:使用者問(wèn)“干電池屬于什么垃圾?”,本系統(tǒng)回答“屬于有害垃圾”,或者當(dāng)使用者把干電池放入桶內(nèi),本系統(tǒng)會(huì)播報(bào)“屬于有害垃圾”。 該電路原理圖如圖7所示。 圖7 LD3320 語(yǔ)音識(shí)別模塊原理圖Fig.7 Schematic diagram of LD3320 speech recognition module 2.6.1 舵機(jī)電路設(shè)計(jì) 采用2 個(gè)TD-8120MG 型舵機(jī), 固定在識(shí)別擋板兩側(cè),使識(shí)別擋板可以水平放置和豎直放置。 該種型號(hào)舵機(jī)內(nèi)含先進(jìn)的ASIC IC 來(lái)處理單片機(jī)的信號(hào),具有很強(qiáng)的解析度,扭矩更大,可以完全托住識(shí)別擋板及擋板上面的待識(shí)別垃圾。 兩舵機(jī)采用同一個(gè)單片機(jī)信號(hào),使兩舵機(jī)可以同步進(jìn)行。 2.6.2 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì) 采用A4988 模塊驅(qū)動(dòng)電機(jī)工作,A4988 是一款帶轉(zhuǎn)換器和過(guò)流保護(hù)的DMOS 微步驅(qū)動(dòng)器,該產(chǎn)品可在全、半、1/4、1/8 及1/16 步進(jìn)模式時(shí)操作雙極步進(jìn)電動(dòng)機(jī)。 只要在“步進(jìn)”輸入中輸入一個(gè)脈沖,即可驅(qū)動(dòng)電動(dòng)機(jī)產(chǎn)生微步。 無(wú)須進(jìn)行相位順序表、高頻率控制行或復(fù)雜的界面編程[5]。A4988 界面非常適合復(fù)雜的微處理器不可用或過(guò)載的應(yīng)用。 該電路原理如圖8 所示。 系統(tǒng)使用Keil 和PyCharm 開(kāi)發(fā)軟件作為開(kāi)發(fā)環(huán)境,主要以C 語(yǔ)言和python 語(yǔ)言進(jìn)行設(shè)計(jì)。 整個(gè)系統(tǒng)軟件部分主要分為垃圾識(shí)別和控制電機(jī)、舵機(jī)。 前者使用python 語(yǔ)言,后者使用C 語(yǔ)言。 通過(guò)OpenMV 將識(shí)別到的垃圾傳輸?shù)絾纹瑱C(jī), 然后單片機(jī)進(jìn)行分析數(shù)據(jù),單片機(jī)向語(yǔ)音交互模塊發(fā)送驅(qū)動(dòng)信號(hào)來(lái)播報(bào)垃圾的種類(lèi),并控制電機(jī)、舵機(jī)完成垃圾的自動(dòng)分類(lèi)。 圖8 電機(jī)驅(qū)動(dòng)電路Fig.8 Motor drive circuit 如圖9 所示, 識(shí)別垃圾分類(lèi)部分采用PyCharm進(jìn)行大量垃圾樣本信息的訓(xùn)練和積累,建立垃圾樣本數(shù)據(jù)庫(kù)。 通過(guò)OpenMV 識(shí)別被檢測(cè)垃圾,判斷被檢測(cè)垃圾所屬的種類(lèi),進(jìn)而進(jìn)行垃圾的自動(dòng)分類(lèi)處理。把垃圾放入識(shí)別擋板之上,OpenMV 開(kāi)始識(shí)別垃圾樣本,然后識(shí)別樣本與垃圾樣本庫(kù)進(jìn)行數(shù)據(jù)分析對(duì)比,判斷垃圾所屬種類(lèi)。 若識(shí)別垃圾為可回收垃圾,系統(tǒng)進(jìn)行數(shù)據(jù)的量化,把數(shù)據(jù)“1”,賦值給變量a。 進(jìn)而單片機(jī)與OpenMV 開(kāi)始建立串口通信,OpenMV 開(kāi)始發(fā)送數(shù)據(jù)a 給單片機(jī),直到完成發(fā)送,OpenMV 開(kāi)始繼續(xù)檢測(cè)待測(cè)垃圾的種類(lèi)。 圖9 垃圾檢測(cè)流程Fig.9 Waste detection flow chart 電機(jī)轉(zhuǎn)動(dòng)程序的設(shè)計(jì)主要通過(guò)判斷a 的值,控制產(chǎn)生4 種指定脈沖個(gè)數(shù)的方波。 選擇步距為1.8°的電機(jī),為了精確地進(jìn)行角度控制,采用1/16 步驅(qū)動(dòng)。 角度與脈沖個(gè)數(shù)公式如下: 式中:N 為脈沖個(gè)數(shù);θ 為旋轉(zhuǎn)角度。 根據(jù)公式計(jì)算可得:旋轉(zhuǎn)90°,需要800 個(gè)脈沖;旋轉(zhuǎn)180°,需要1600 個(gè)脈沖;旋轉(zhuǎn)270°,需要2400 個(gè)脈沖。 系統(tǒng)通電之后開(kāi)始進(jìn)行初始化,其他垃圾的內(nèi)桶自動(dòng)旋轉(zhuǎn)至識(shí)別擋板之下,單片機(jī)循環(huán)等待接收OpenMV 即將發(fā)送的數(shù)據(jù), 直到接收OpenMV 發(fā)送的值。 然后單片機(jī)進(jìn)行數(shù)據(jù)判斷處理。 若單片機(jī)接收a=“1”時(shí),連接電機(jī)驅(qū)動(dòng)器的PA0 口,產(chǎn)生800 個(gè)脈沖,使控制內(nèi)桶位置的電機(jī)轉(zhuǎn)動(dòng)90°。 此時(shí),可回收垃圾的內(nèi)桶旋轉(zhuǎn)至識(shí)別擋板之下,進(jìn)行精準(zhǔn)的垃圾分類(lèi)。 該部分流程如圖10 所示。 圖10 電機(jī)轉(zhuǎn)動(dòng)流程Fig.10 Flow chart of motor rotation 給系統(tǒng)供電, 通過(guò)改變?nèi)梭w接近垃圾桶的距離, 檢測(cè)系統(tǒng)是否正確打開(kāi)垃圾桶投放口。 通過(guò)OPenMV 分別訓(xùn)練4 組垃圾樣本,廢紙(可回收垃圾)、菜葉(廚余垃圾)、電池(有害垃圾)、塑料袋(其他垃圾),每組采集50 張圖片存入垃圾樣本庫(kù)中,系統(tǒng)對(duì)每一種垃圾進(jìn)行了100 次識(shí)別,經(jīng)過(guò)實(shí)踐統(tǒng)計(jì)得到下表。 表2 內(nèi)桶旋轉(zhuǎn)統(tǒng)計(jì)表Tab.2 Statistics of inner barrel rotation 由上面的表格可以看出,系統(tǒng)識(shí)別單一垃圾的功能是穩(wěn)定可靠的,識(shí)別成功率均大于90%。 系統(tǒng)正確旋轉(zhuǎn)成功率大于99%,具有可靠精確旋轉(zhuǎn)的能力。 本文所設(shè)計(jì)的太陽(yáng)能供電的智能垃圾分類(lèi)處理系統(tǒng),使用了STM32 單片機(jī)作為主控芯片,實(shí)現(xiàn)了垃圾桶智能識(shí)別垃圾種類(lèi)并自動(dòng)分類(lèi)的功能。 比傳統(tǒng)意義上的分類(lèi)垃圾箱更智能、更便捷。 該系統(tǒng)基本可以滿(mǎn)足單一垃圾的分類(lèi)處理,同時(shí)系統(tǒng)具有語(yǔ)音交互功能,提高系統(tǒng)的實(shí)用性以及普及人們的知識(shí)。所以本系統(tǒng)具有一定的市場(chǎng)研究?jī)r(jià)值和應(yīng)用價(jià)值。2.4 電源電路設(shè)計(jì)
2.5 語(yǔ)音交互電路設(shè)計(jì)
2.6 控制電路設(shè)計(jì)
3 系統(tǒng)軟件設(shè)計(jì)
3.1 OpenMV 垃圾分類(lèi)程序設(shè)計(jì)
3.2 電機(jī)轉(zhuǎn)動(dòng)程序設(shè)計(jì)
4 系統(tǒng)調(diào)試
5 結(jié)語(yǔ)