田江濤,王橋,楊婭婷,張春海,王希望,李光雙
(貴州師范學(xué)院 數(shù)學(xué)與大數(shù)據(jù)學(xué)院,貴州貴陽,550018)
近些年來,社會迅猛發(fā)展,很多日常生活用品都朝著智能化的方向發(fā)展,傳統(tǒng)的垃圾桶已經(jīng)不能滿足用戶日常生活的需求,易滋養(yǎng)細(xì)菌、傳播疾病、污染環(huán)境是垃圾桶發(fā)展中常見的一類障礙,能夠抑制病菌的傳播,保護(hù)人體健康,防止有機(jī)垃圾的腐爛變質(zhì)就成為了用戶對于新型行垃圾桶的一大需求,對于與用戶針對用戶需要花費(fèi)時間在自己打開垃圾箱蓋,自己動手套垃圾袋、以及動手打包垃圾袋而言,基于OpenMV的垃圾袋自動封口及換袋裝置在減少用戶精力耗費(fèi)方面起了很大作用。
本文主要介紹一種基于OpenMV的垃圾袋自動封口及換袋裝置,此產(chǎn)品以STM32F103系列單片機(jī)為核心控制器,使用Micro Python語言對人體目標(biāo)識別與追蹤算法進(jìn)行研究,捕捉到人體丟垃圾的動作。系統(tǒng)設(shè)計基于人機(jī)工程學(xué)原理,結(jié)合人機(jī)關(guān)系,設(shè)計了能實現(xiàn)套袋、自動打包、推袋等主要過程自動化的垃圾桶。將該裝置滿足性價比高、綠色環(huán)保等特性要求。
基于OpenMV的垃圾袋自動封口及換袋裝置以單片機(jī)為核心控制器,采用STM32F103C8T6為主控芯片,它的串口實時與WTGPS+BD定位模塊交互,系統(tǒng)由電源模塊、OpenMV攝像頭模塊、OLED模塊等組成,OpenMV是一個可編程OpenMV 攝像頭,使用Micro Python語言進(jìn)行編程,有良好的開源環(huán)境,能夠為方便地運(yùn)用多種圖像處理并進(jìn)行簡單的圖像分析。此外,此產(chǎn)品以STM32F103系列單片機(jī)為核心控制器,使用Micro Python語言對人體目標(biāo)識別與追蹤算法進(jìn)行研究,捕捉到人體丟垃圾的動作。系統(tǒng)設(shè)計基于人機(jī)工程學(xué)原理,結(jié)合人機(jī)關(guān)系,設(shè)計了能實現(xiàn)套袋、自動打包、推袋等主要過程自動化的垃圾桶。該裝置保護(hù)人體健康同時,還抑制病菌的傳播、防止有機(jī)垃圾的腐爛變質(zhì),給人們帶來極大便利。實現(xiàn)自動封口,力求使用的避免用手接觸垃圾,有效防止細(xì)菌通過手傳播。垃圾袋自動封口及換袋裝置的總體框圖如圖1所示。
圖1 硬件總體框架示意圖
本文自動封口及換袋裝置以STM32F103C8T6芯片為核心控制器,能使多功能行李箱的成本降到最低,且實現(xiàn)的功能非常多,還有一個好處就是,它可以直接調(diào)用STM32系列的單片機(jī)的官方提供的庫文件,對于本文自動封口及換袋裝置的軟件編程非常方便。此外,單片機(jī)的工作電壓為2V~3.6V,其工作溫度為零下四十?dāng)z氏度至八十五攝氏度,對于極寒天氣和高溫天氣而言,單片機(jī)實現(xiàn)的功能不會極端受天氣影響,多功能行李箱可以正常使用。在本文的行李箱中,STM32單片機(jī)控制著整個箱體所有的功能模塊,實現(xiàn)本文自動封口及換袋裝置的自動化。圖2為部分主板電路原理圖。
圖2 部分硬件電路原理示意圖
OpenMV是一個開源,低成本,功能強(qiáng)大的機(jī)器視覺模塊。以STM32F767CPU為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上,用C語言高效地實現(xiàn)了核心機(jī)器視覺算法,提供Python編程接口,如圖3所示。
圖3 攝像頭模塊示意圖
OpenMV核心部分就是STM32F767,外加上外圍電路模塊以及攝像頭模塊就組成做基本常見的應(yīng)用了。在本項目中,我們使用的OpenMV使用了usb接口,其優(yōu)點在于,usb數(shù)據(jù)線常見,且原理簡單,容易理解。該攝像頭模塊也外置了I/O口,可以進(jìn)行為此開發(fā);相應(yīng)的,也增加了SD卡以及以及LED小燈。在本項目中,該模塊就大大減少了我們的工作量,相應(yīng)的也節(jié)約了我們開發(fā)的成本。
OpenMV在本項目中擔(dān)任著重要的角色,功能主要是識別不同顏色和形狀的垃圾。IDE使用的是OpenMV IDE,圖像的識別可以采用動態(tài)采集的方式,前提是我們預(yù)先測量好一組openMV當(dāng)前可視化的環(huán)境,當(dāng)攝像頭采集到圖片之后呢,再與openMV所測量訓(xùn)練好的標(biāo)準(zhǔn)作對比,得到相應(yīng)的信息,之后編輯一個串口發(fā)送函數(shù)將識別到的信息發(fā)送給主控STM32F103C8T6,作相應(yīng)的垃圾處理:除此之外,該模塊還可以長期開機(jī)工作,時時檢測裝置當(dāng)前的可視范圍內(nèi)的狀態(tài)。
Zigbee模塊 是一個由可多到65000個無線數(shù)傳模塊無線數(shù)傳模塊組成的一個無線數(shù)傳網(wǎng)絡(luò)平臺,十分類似現(xiàn)有的移動通信的CDMA網(wǎng)或GSM網(wǎng),每一個Zigbee模塊網(wǎng)絡(luò)數(shù)傳模塊類似移動網(wǎng)絡(luò)的一個基站,在整個網(wǎng)絡(luò)范圍內(nèi),它們之間可以進(jìn)行相互通信;每個網(wǎng)絡(luò)節(jié)點間的距離可以從標(biāo)準(zhǔn)的75米,到擴(kuò)展后的幾百米,甚至幾公里;另外整個Zigbee模塊網(wǎng)絡(luò)還可以與現(xiàn)有的其它的各種網(wǎng)絡(luò)連接。
每個Zigbee網(wǎng)絡(luò)由一個協(xié)調(diào)器,N個路由器或者是N個終端節(jié)點構(gòu)成。所謂協(xié)調(diào)器就是我們的創(chuàng)建者,這是必須要有的,因為要組成一個網(wǎng)絡(luò),必須得要有一個主節(jié)點。路由器的特點就是存儲轉(zhuǎn)發(fā),當(dāng)主機(jī)發(fā)送報文時,先將報文分段,再在每一段前面加上首地址,發(fā)送到路由器中,路由器接收到每一個報文段,就查找路由表,查找到目標(biāo)地址,之后再將報文段進(jìn)行轉(zhuǎn)發(fā),因此路由器起的作用就是存儲轉(zhuǎn)發(fā),終端節(jié)點功能主要是用來收發(fā)數(shù)據(jù)。
在本項目中,Zigbee主要的功能時將接收到的數(shù)據(jù)通過Zigbee協(xié)議發(fā)送到對應(yīng)的Zigbee模塊,對應(yīng)的模塊接收到無線數(shù)據(jù)之后,進(jìn)行相應(yīng)的處理,通俗來說,就是兩塊Zigbee模塊進(jìn)行透明傳輸,兩個模塊之間相當(dāng)于就是一條串口線。主要功能路線如圖4所示。
圖4 zigbee通訊原理示意圖
OLED的適用場景特別的廣,在電子手表,還有其他的電子DIY上面也是非常常見。在本次的項目中呢,OLED主要是用來作一個簡單的顯示,目前裝置的運(yùn)行狀態(tài),比如當(dāng)每個功能運(yùn)行時,OLED就會作相應(yīng)的顯示,當(dāng)裝置處于空閑狀態(tài)時,OLED上面就顯示相應(yīng)的空閑狀態(tài)。
本文多功能行李箱在給STM32及其他一些外部電路和電子元件供電采用的是航模電池,航模電池的本質(zhì)是鋰離子聚合物電池,而鋰離子聚合物電池是今后二次電池的發(fā)展的方向,航模電池的相對優(yōu)勢是內(nèi)含能量高、重量輕、型號較多。于形狀方面而言,航模電池輕薄化的一大特征可以迎合用戶的諸多需求,可以制成一些市面上難以見到的電池。在實際應(yīng)用中,航模電池常用于航模飛機(jī)等玩具模型的供電,由此可見它的效率和安全性都高。
該部分主要由運(yùn)行在OpenMV上的Python算法對各種顏色的垃圾進(jìn)行識別。攝像頭采集到相應(yīng)的圖片信息之后,利用算法對采集到的圖片進(jìn)行分析識別,得到垃圾與OpenMV之間的距離以及垃圾顏色,判斷垃圾的距離是否在程序所設(shè)計的范圍內(nèi),并打印測量距離的結(jié)果以及信息。在OpenMV上編寫串口的Python程序,通過串口通訊的方式將距離信息發(fā)送到CPU,CPU進(jìn)行距離分析,之后CPU控制相應(yīng)的硬件作出對應(yīng)的動作。
部分實現(xiàn)程序如下所示:
Lm = (b[2]+b[3])/2
length = K/Lm
if length <= 17:
print(length)
uart.write(“1 ”)
if length>17:
print(length)
uart.write(“2 ”)
length為測量的距離,print為打印距離的函數(shù),uart.write為串口輸出函數(shù)。
圖5 軟件實現(xiàn)原理示意圖
在本項目中,Zigbee主要的功能時將接收到的數(shù)據(jù)通過Zigbee協(xié)議發(fā)送到對應(yīng)的Zigbee模塊,對應(yīng)的模塊接收到無線數(shù)據(jù)之后,進(jìn)行相應(yīng)的處理,通俗來說,就是兩塊Zigbee模塊進(jìn)行透明傳輸,兩個模塊之間相當(dāng)于就是一條串口線。
在本項目中,我們將使用兩個zigbee模塊,一個安裝在裝置上作為發(fā)射端,一個作為接收端終端顯示。具體功能如下:當(dāng)我們的垃圾箱垃圾超出了設(shè)定的量時,傳感器就會將信息傳遞給單片機(jī),單片機(jī)再將信息傳遞給發(fā)送端zigbee模塊,發(fā)送端就將信息無線傳輸發(fā)送給接收端,接收端就進(jìn)行報警,此時工作人員就可以對相應(yīng)的垃圾箱作垃圾的清理。
基于OpenMV的垃圾袋自動封口及換袋裝置系統(tǒng)測試主要分為兩個部分:硬件測試和軟件測試。硬件測試從電路開始檢測,首先使用萬用表檢測各個電路是否有短路,之后整體測試。只有保證各個元器件完好,系統(tǒng)才能穩(wěn)定工作。軟硬協(xié)同測試首先,將搭建好的硬件電路協(xié)同軟件代碼測試,在(編譯軟件)里編寫代碼,代碼無誤后燒寫代碼,之后便可顯示代碼運(yùn)行情況。接著測試步進(jìn)電機(jī)和主板電路,將調(diào)試好的代碼燒進(jìn)主板,步進(jìn)電機(jī)能正常工作。
之后測試OpenMV模塊,當(dāng)將人體手勢的圖片存放在工程里,測試結(jié)果:攝像頭采集到圖片之后,與存儲的圖片做對比,利用特征匹配相似度匹配到對應(yīng)的手勢圖片,之后將識別到的信息發(fā)送給主控,這一工作流程無誤。最后測試Zigbee模塊。使用兩個zigbee模塊,一個安裝在裝置上作為發(fā)射端,一個作為接收端終端顯示。測試結(jié)果:當(dāng)垃圾箱垃圾超出了設(shè)定的量時,傳感器就會將信息傳遞給單片機(jī),單片機(jī)再將信息傳遞給發(fā)送端zigbee模塊,發(fā)送端就將信息無線傳輸發(fā)送給接收端,接收端就進(jìn)行報警,此時工作人員就可以對相應(yīng)的垃圾箱作垃圾的清理。
目前,本文的自動封口及換袋裝置解決了目前市面上傳統(tǒng)的垃圾桶普遍存在的一些問題,用戶在套袋、打包垃圾的時候更加輕便快捷,同時本文的自動封口及換袋裝置具有自動開關(guān)蓋功能,當(dāng)前本文自動封口及換袋裝置經(jīng)過多次改進(jìn)與測試,自動封口及換袋裝置的工作性能非常穩(wěn)定,而且功能實現(xiàn)的效果良好。在這個生活節(jié)奏較快的時代,自動封口及換袋裝置一定是垃圾處理的一大幫手。如果用戶處理垃圾時使用本文的自動封口及換袋裝置,用戶的出行會非常輕松。此外,本文的自動封口及換袋裝置具有很廣闊的市場前景,在未來一定能夠占據(jù)市場的一大份。本文的自動封口及換袋裝置能給人們工作和生活中提供便利,減少了用戶因為處理垃圾而產(chǎn)生的的焦慮,給用戶帶來舒心的每一天。