以
wifi遠(yuǎn)距離模塊為基礎(chǔ)的智能垃圾箱系統(tǒng)設(shè)計(jì),隨著人們對(duì)生活質(zhì)量的提高,科技的高速發(fā)展,環(huán)境問(wèn)題也將逐步惡化,有關(guān)資料顯示,垃圾生產(chǎn)與GDP緊密相關(guān),隨著GDP的增長(zhǎng),垃圾產(chǎn)量將進(jìn)一步增加。特別是我國(guó)人口數(shù)量基數(shù)大,平均垃圾產(chǎn)生量非常大,城市的環(huán)境問(wèn)題也成為一個(gè)巨大的問(wèn)題,因此,為了更好地處理垃圾,國(guó)家開(kāi)始提出垃圾分類,以便更好地處理。人生中,并非每一件垃圾都是完全無(wú)價(jià)值的,飲料瓶收集后,可以再熔化鋁,制成鋁制品。怎樣有效地分類處理這類垃圾,是當(dāng)前治理城市環(huán)境問(wèn)題的首要任務(wù)。于是分類處理垃圾,誕生了一種用不同垃圾箱來(lái)分類的垃圾,在大街上放置不同的垃圾箱來(lái)收集不同的垃圾,現(xiàn)在街上的主流垃圾箱分為“可回收垃圾”桶和“不可回收垃圾”垃圾箱。如今是高科技智能時(shí)代,在垃圾分類中采用人工智能,當(dāng)不知道具體垃圾的具體分類時(shí),垃圾箱自動(dòng)幫助選擇。
討論了智能垃圾箱,在OpenMV的基礎(chǔ)上,利用OpenMV技術(shù),串口通訊把信息傳送到Arduino單片機(jī),經(jīng)過(guò)單片機(jī)的處理后,控制舵機(jī)旋轉(zhuǎn),打開(kāi)相應(yīng)的垃圾箱,自動(dòng)分類垃圾。通過(guò)與Arduino的通訊,可實(shí)時(shí)觀察垃圾桶當(dāng)前狀況,及時(shí)更換垃圾袋。該系統(tǒng)主要依靠模塊間的
wifi串口通訊來(lái)實(shí)現(xiàn),利用OpenMV采集圖像信息,發(fā)送到Arduino單片機(jī)處理相應(yīng)的數(shù)據(jù),然后控制舵機(jī)選擇對(duì)應(yīng)的垃圾槽。
其硬件結(jié)構(gòu)主要包括:OpenMV采集模塊、分類模塊、微處理器、通訊模塊、舵機(jī)、電源模塊。在該系統(tǒng)中,OpenMV對(duì)垃圾顏色進(jìn)行采集,提取顏色信息,通過(guò)串口通訊傳輸?shù)紸rduino單片機(jī),并與舵機(jī)連接,控制垃圾箱的轉(zhuǎn)動(dòng)。
設(shè)計(jì)的圖像采集模塊主要采用OpenMV攝像機(jī),以串口通訊方式與Arduino單片機(jī)相連接,并傳送相應(yīng)的顏色參數(shù),以控制舵機(jī)的轉(zhuǎn)動(dòng)并開(kāi)啟相應(yīng)的分類垃圾槽。為OpenMV與圖像采集模塊之間的通訊結(jié)構(gòu)。OpenMV4H7是本文選用的攝像機(jī)模塊,采用STM32H743集成,主頻為400M,內(nèi)存2M,運(yùn)行速度較快,而且與OpenMV3相比,具有更多可選鏡頭,并且易于更換。
系統(tǒng)選型出cv520wifi遠(yuǎn)距離模塊,硬件接口豐富,可滿足本設(shè)計(jì)所需的數(shù)據(jù)傳輸需求。可以接受串口數(shù)據(jù),WiFi輸出數(shù)據(jù),實(shí)時(shí)顯示當(dāng)前垃圾箱的具體狀況。CV520采用三種模式,即STA、AP和STA+AP模式。使用ArduinoIDE,可以輕松地添加CV520庫(kù)模塊。在添加庫(kù)之后,使用Arduino與CV520wifi遠(yuǎn)距離模塊針腳實(shí)現(xiàn)串行通訊,數(shù)據(jù)無(wú)線傳輸,實(shí)現(xiàn)實(shí)時(shí)存儲(chǔ),監(jiān)控垃圾箱內(nèi)情況。
轉(zhuǎn)向機(jī)構(gòu)通過(guò)PWM波形控制電動(dòng)機(jī)轉(zhuǎn)動(dòng),并利用Arduino控制轉(zhuǎn)動(dòng)角。轉(zhuǎn)向機(jī)構(gòu)力矩大,滿足系統(tǒng)設(shè)計(jì)要求,且易于操縱舵機(jī),編程簡(jiǎn)單,可操作性強(qiáng)。轉(zhuǎn)向裝置也包括伺服電機(jī)(電機(jī)、傳感器和控制器)的整體系統(tǒng),價(jià)格低廉,節(jié)省智能垃圾箱的成本。
為便于分類,設(shè)計(jì)選擇了環(huán)形回轉(zhuǎn)式垃圾桶,將垃圾桶分成3個(gè)槽,每個(gè)槽套上不同的垃圾袋。如果垃圾經(jīng)過(guò)OpenMV攝像頭檢測(cè)到,對(duì)顏色信息進(jìn)行處理,再將處理好的信息送至Arduino單片機(jī),Arduino單片機(jī)接收數(shù)據(jù),控制帶動(dòng)舵機(jī)轉(zhuǎn)動(dòng)相應(yīng)角度,使槽到達(dá)垃圾箱入口,這樣就循環(huán)利用了垃圾,根據(jù)生活規(guī)律還可以劃分大小不同的垃圾區(qū)域,使空間更加適用,不造成空間浪費(fèi)。
智能垃圾圖像分類算法。系統(tǒng)主要由三部分組成,一部分是圖像的采集與獲取,其中以O(shè)penMV搭載的攝像機(jī)為主體,能夠?qū)鴪D像進(jìn)行提取;其次是信息的加工與預(yù)處理,是圖像處理的核心。這個(gè)部分也由OpenMV處理,向Arduino傳遞信息,為隨后的垃圾箱工作提供基礎(chǔ),是圖像處理的核心;第三部分是識(shí)別分類的過(guò)程,把前一步的信號(hào)轉(zhuǎn)化為垃圾箱能夠識(shí)別的信號(hào)。
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用廣泛的人工神經(jīng)網(wǎng)絡(luò),它由輸入層、隱層和輸出層組成,各層間的連接用權(quán)值表示。BP網(wǎng)絡(luò)需要解決的主要問(wèn)題是算法,傳統(tǒng)的BP學(xué)習(xí)算法是小二乘方法。在設(shè)計(jì)過(guò)程中,需要對(duì)灰度像素進(jìn)行識(shí)別,通常由BP神經(jīng)網(wǎng)絡(luò)的輸入層、隱藏層和輸出層開(kāi)始。輸入層設(shè)計(jì):BP神經(jīng)網(wǎng)絡(luò)輸入層中的節(jié)點(diǎn)數(shù)量通常取決于問(wèn)題求解的影響因素。在圖象識(shí)別中,影響系數(shù)是圖象識(shí)別的特點(diǎn)。這樣,設(shè)計(jì)網(wǎng)中的輸入節(jié)點(diǎn)數(shù)就等于使用了圖像識(shí)別功能。
輸出層設(shè)計(jì):輸出層結(jié)點(diǎn)數(shù)目由輸出值表示方式?jīng)Q定,本文要確定輸出層的神經(jīng)元,必須設(shè)定目標(biāo)的分類。隱層設(shè)計(jì):在每個(gè)節(jié)點(diǎn)都使用S型函數(shù)的情況下,如果節(jié)點(diǎn)為隱含層,就可以解決決策分類問(wèn)題。增大屏幕層數(shù)可以進(jìn)一步減少誤差和提高準(zhǔn)確度,但是也會(huì)使網(wǎng)絡(luò)更復(fù)雜,同時(shí)也增加了訓(xùn)練網(wǎng)絡(luò)權(quán)值的時(shí)間。所以,在沒(méi)有特殊要求的情況下,本文選擇單隱層。
利用OpenMV軟件,可通過(guò)攝像機(jī)自帶相機(jī)對(duì)色塊進(jìn)行識(shí)別,經(jīng)過(guò)多次訓(xùn)練,將色塊記錄下來(lái)。在OpenMVIDE中,通過(guò)串口向Arduino單片機(jī)進(jìn)行后續(xù)處理,其中有很多程序可以查找色塊,文章舉一個(gè)尋找單色塊的例子。
該功能主要用于設(shè)計(jì)find_blobs函數(shù),可通過(guò)find_blobs函數(shù)查找。設(shè)定色彩閾值,可定義多種顏色列表或單色,并根據(jù)情況選擇相應(yīng)的閾值。假定填充的是紅色色塊的閾值,程序運(yùn)行后,會(huì)發(fā)現(xiàn)跟蹤到的紅色色塊已被識(shí)別,紅色區(qū)域全部被框出,可通過(guò)IDE自帶顏色門(mén)限工具將其計(jì)算出門(mén)限,并將其輸入thresholds函數(shù)。如:需要觀察紅色旁的綠色色塊,只需進(jìn)入閾值工具,拖動(dòng)滑塊將除綠以外的所有顏色全部變?yōu)楹谏旅娴腖AB閾值是需要填充的參數(shù)。填入?yún)?shù)后,再次運(yùn)行程序,即可找到所需的顏色塊,綠色部分已選定。經(jīng)多次訓(xùn)練后,可得到由多個(gè)色塊代表的垃圾閾值,統(tǒng)計(jì)出顏色閾值,通過(guò)串口發(fā)送到Arduino微控制器。當(dāng)門(mén)限信息被Arduino單片機(jī)接收后,通過(guò)串口通訊,使舵機(jī)旋轉(zhuǎn),打開(kāi)不同的分類箱。
Arduino的編程方式類似于C語(yǔ)言,就是舵機(jī)操作程序,當(dāng)串口收到數(shù)據(jù)時(shí),就可以控制舵機(jī)轉(zhuǎn)動(dòng)一定角度,開(kāi)啟相應(yīng)的回收器。
OpenMV與Arduino通訊非常簡(jiǎn)單,采用串口3的方式。在OpenMV觀測(cè)到色塊信息時(shí),Arduino接收信息到計(jì)算機(jī),并通過(guò)發(fā)送色塊中間坐標(biāo)進(jìn)行顯示。因此,ArduinoMega的邏輯是:讀取softSerial的數(shù)據(jù)(json),然后將其解析為數(shù)組,發(fā)送到Serial(計(jì)算機(jī))。舉例來(lái)說(shuō):要查找黃色色塊,發(fā)送中心坐標(biāo)給Arduino以用于數(shù)組處理和顯示。當(dāng)Arduino接收到的數(shù)據(jù)與設(shè)定的閾值相等時(shí),控制舵機(jī)旋轉(zhuǎn)相應(yīng)的度數(shù),就能完成串口通信,從而實(shí)現(xiàn)對(duì)不同的垃圾桶的通信。COM口會(huì)顯示發(fā)送的數(shù)值。
利用wifi遠(yuǎn)距離模塊,可以遠(yuǎn)程監(jiān)測(cè)垃圾箱的當(dāng)前狀況。當(dāng)垃圾箱滿了或出現(xiàn)故障時(shí),報(bào)警燈就會(huì)亮起來(lái),同時(shí)將信息傳送到APP。由于Arduino的串口需要接入主機(jī)的Labview顯示,所以選擇了軟串口將wifi遠(yuǎn)距離模塊連接起來(lái)。
利用VISA串口,與單片機(jī)相連獲取數(shù)據(jù)顯示,接收到OpenMV跟蹤圖像信息,利用Labview上位機(jī)上顯示的數(shù)據(jù),可遠(yuǎn)程監(jiān)測(cè)垃圾箱的運(yùn)行情況和狀態(tài)。從Labview觀察OpenMV串口當(dāng)前傳輸數(shù)據(jù)的情況。
在OpenMV垃圾分類的基礎(chǔ)上,采用BP神經(jīng)網(wǎng)絡(luò)建立垃圾分類模型,OpenMV對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,再由Labview顯示與調(diào)整,實(shí)現(xiàn)對(duì)垃圾進(jìn)行分類。研究了垃圾分類技術(shù),分析了目前智能垃圾箱的現(xiàn)狀,建立了一種基于OpenMV技術(shù)的垃圾分類垃圾箱,改造垃圾箱內(nèi)部結(jié)構(gòu),設(shè)計(jì)硬件控制電路,采用OpenMV實(shí)現(xiàn)圖像處理,對(duì)垃圾進(jìn)行特征提取,利用BP神經(jīng)網(wǎng)絡(luò)算法對(duì)樣本進(jìn)行輸入,完成BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。采用wifi遠(yuǎn)距離模塊串口通訊方式,將系統(tǒng)串聯(lián)起來(lái),完成智能分類垃圾桶的設(shè)計(jì)。