田江濤,王橋,楊婭婷,張春海,王希望,李光雙
(貴州師范學院 數學與大數據學院,貴州貴陽,550018)
近些年來,社會迅猛發展,很多日常生活用品都朝著智能化的方向發展,傳統的垃圾桶已經不能滿足用戶日常生活的需求,易滋養細菌、傳播疾病、污染環境是垃圾桶發展中常見的一類障礙,能夠抑制病菌的傳播,保護人體健康,防止有機垃圾的腐爛變質就成為了用戶對于新型行垃圾桶的一大需求,對于與用戶針對用戶需要花費時間在自己打開垃圾箱蓋,自己動手套垃圾袋、以及動手打包垃圾袋而言,基于OpenMV的垃圾袋自動封口及換袋裝置在減少用戶精力耗費方面起了很大作用。
本文主要介紹一種基于OpenMV的垃圾袋自動封口及換袋裝置,此產品以STM32F103系列單片機為核心控制器,使用Micro Python語言對人體目標識別與追蹤算法進行研究,捕捉到人體丟垃圾的動作。系統設計基于人機工程學原理,結合人機關系,設計了能實現套袋、自動打包、推袋等主要過程自動化的垃圾桶。將該裝置滿足性價比高、綠色環保等特性要求。
基于OpenMV的垃圾袋自動封口及換袋裝置以單片機為核心控制器,采用STM32F103C8T6為主控芯片,它的串口實時與WTGPS+BD定位模塊交互,系統由電源模塊、OpenMV攝像頭模塊、OLED模塊等組成,OpenMV是一個可編程OpenMV 攝像頭,使用Micro Python語言進行編程,有良好的開源環境,能夠為方便地運用多種圖像處理并進行簡單的圖像分析。此外,此產品以STM32F103系列單片機為核心控制器,使用Micro Python語言對人體目標識別與追蹤算法進行研究,捕捉到人體丟垃圾的動作。系統設計基于人機工程學原理,結合人機關系,設計了能實現套袋、自動打包、推袋等主要過程自動化的垃圾桶。該裝置保護人體健康同時,還抑制病菌的傳播、防止有機垃圾的腐爛變質,給人們帶來極大便利。實現自動封口,力求使用的避免用手接觸垃圾,有效防止細菌通過手傳播。垃圾袋自動封口及換袋裝置的總體框圖如圖1所示。

圖1 硬件總體框架示意圖
本文自動封口及換袋裝置以STM32F103C8T6芯片為核心控制器,能使多功能行李箱的成本降到最低,且實現的功能非常多,還有一個好處就是,它可以直接調用STM32系列的單片機的官方提供的庫文件,對于本文自動封口及換袋裝置的軟件編程非常方便。此外,單片機的工作電壓為2V~3.6V,其工作溫度為零下四十攝氏度至八十五攝氏度,對于極寒天氣和高溫天氣而言,單片機實現的功能不會極端受天氣影響,多功能行李箱可以正常使用。在本文的行李箱中,STM32單片機控制著整個箱體所有的功能模塊,實現本文自動封口及換袋裝置的自動化。圖2為部分主板電路原理圖。

圖2 部分硬件電路原理示意圖
OpenMV是一個開源,低成本,功能強大的機器視覺模塊。以STM32F767CPU為核心,集成了OV7725攝像頭芯片,在小巧的硬件模塊上,用C語言高效地實現了核心機器視覺算法,提供Python編程接口,如圖3所示。

圖3 攝像頭模塊示意圖
OpenMV核心部分就是STM32F767,外加上外圍電路模塊以及攝像頭模塊就組成做基本常見的應用了。在本項目中,我們使用的OpenMV使用了usb接口,其優點在于,usb數據線常見,且原理簡單,容易理解。該攝像頭模塊也外置了I/O口,可以進行為此開發;相應的,也增加了SD卡以及以及LED小燈。在本項目中,該模塊就大大減少了我們的工作量,相應的也節約了我們開發的成本。
OpenMV在本項目中擔任著重要的角色,功能主要是識別不同顏色和形狀的垃圾。IDE使用的是OpenMV IDE,圖像的識別可以采用動態采集的方式,前提是我們預先測量好一組openMV當前可視化的環境,當攝像頭采集到圖片之后呢,再與openMV所測量訓練好的標準作對比,得到相應的信息,之后編輯一個串口發送函數將識別到的信息發送給主控STM32F103C8T6,作相應的垃圾處理:除此之外,該模塊還可以長期開機工作,時時檢測裝置當前的可視范圍內的狀態。
Zigbee模塊 是一個由可多到65000個無線數傳模塊無線數傳模塊組成的一個無線數傳網絡平臺,十分類似現有的移動通信的CDMA網或GSM網,每一個Zigbee模塊網絡數傳模塊類似移動網絡的一個基站,在整個網絡范圍內,它們之間可以進行相互通信;每個網絡節點間的距離可以從標準的75米,到擴展后的幾百米,甚至幾公里;另外整個Zigbee模塊網絡還可以與現有的其它的各種網絡連接。
每個Zigbee網絡由一個協調器,N個路由器或者是N個終端節點構成。所謂協調器就是我們的創建者,這是必須要有的,因為要組成一個網絡,必須得要有一個主節點。路由器的特點就是存儲轉發,當主機發送報文時,先將報文分段,再在每一段前面加上首地址,發送到路由器中,路由器接收到每一個報文段,就查找路由表,查找到目標地址,之后再將報文段進行轉發,因此路由器起的作用就是存儲轉發,終端節點功能主要是用來收發數據。
在本項目中,Zigbee主要的功能時將接收到的數據通過Zigbee協議發送到對應的Zigbee模塊,對應的模塊接收到無線數據之后,進行相應的處理,通俗來說,就是兩塊Zigbee模塊進行透明傳輸,兩個模塊之間相當于就是一條串口線。主要功能路線如圖4所示。

圖4 zigbee通訊原理示意圖
OLED的適用場景特別的廣,在電子手表,還有其他的電子DIY上面也是非常常見。在本次的項目中呢,OLED主要是用來作一個簡單的顯示,目前裝置的運行狀態,比如當每個功能運行時,OLED就會作相應的顯示,當裝置處于空閑狀態時,OLED上面就顯示相應的空閑狀態。
本文多功能行李箱在給STM32及其他一些外部電路和電子元件供電采用的是航模電池,航模電池的本質是鋰離子聚合物電池,而鋰離子聚合物電池是今后二次電池的發展的方向,航模電池的相對優勢是內含能量高、重量輕、型號較多。于形狀方面而言,航模電池輕薄化的一大特征可以迎合用戶的諸多需求,可以制成一些市面上難以見到的電池。在實際應用中,航模電池常用于航模飛機等玩具模型的供電,由此可見它的效率和安全性都高。
該部分主要由運行在OpenMV上的Python算法對各種顏色的垃圾進行識別。攝像頭采集到相應的圖片信息之后,利用算法對采集到的圖片進行分析識別,得到垃圾與OpenMV之間的距離以及垃圾顏色,判斷垃圾的距離是否在程序所設計的范圍內,并打印測量距離的結果以及信息。在OpenMV上編寫串口的Python程序,通過串口通訊的方式將距離信息發送到CPU,CPU進行距離分析,之后CPU控制相應的硬件作出對應的動作。
部分實現程序如下所示:
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為打印距離的函數,uart.write為串口輸出函數。

圖5 軟件實現原理示意圖
在本項目中,Zigbee主要的功能時將接收到的數據通過Zigbee協議發送到對應的Zigbee模塊,對應的模塊接收到無線數據之后,進行相應的處理,通俗來說,就是兩塊Zigbee模塊進行透明傳輸,兩個模塊之間相當于就是一條串口線。
在本項目中,我們將使用兩個zigbee模塊,一個安裝在裝置上作為發射端,一個作為接收端終端顯示。具體功能如下:當我們的垃圾箱垃圾超出了設定的量時,傳感器就會將信息傳遞給單片機,單片機再將信息傳遞給發送端zigbee模塊,發送端就將信息無線傳輸發送給接收端,接收端就進行報警,此時工作人員就可以對相應的垃圾箱作垃圾的清理。
基于OpenMV的垃圾袋自動封口及換袋裝置系統測試主要分為兩個部分:硬件測試和軟件測試。硬件測試從電路開始檢測,首先使用萬用表檢測各個電路是否有短路,之后整體測試。只有保證各個元器件完好,系統才能穩定工作。軟硬協同測試首先,將搭建好的硬件電路協同軟件代碼測試,在(編譯軟件)里編寫代碼,代碼無誤后燒寫代碼,之后便可顯示代碼運行情況。接著測試步進電機和主板電路,將調試好的代碼燒進主板,步進電機能正常工作。
之后測試OpenMV模塊,當將人體手勢的圖片存放在工程里,測試結果:攝像頭采集到圖片之后,與存儲的圖片做對比,利用特征匹配相似度匹配到對應的手勢圖片,之后將識別到的信息發送給主控,這一工作流程無誤。最后測試Zigbee模塊。使用兩個zigbee模塊,一個安裝在裝置上作為發射端,一個作為接收端終端顯示。測試結果:當垃圾箱垃圾超出了設定的量時,傳感器就會將信息傳遞給單片機,單片機再將信息傳遞給發送端zigbee模塊,發送端就將信息無線傳輸發送給接收端,接收端就進行報警,此時工作人員就可以對相應的垃圾箱作垃圾的清理。
目前,本文的自動封口及換袋裝置解決了目前市面上傳統的垃圾桶普遍存在的一些問題,用戶在套袋、打包垃圾的時候更加輕便快捷,同時本文的自動封口及換袋裝置具有自動開關蓋功能,當前本文自動封口及換袋裝置經過多次改進與測試,自動封口及換袋裝置的工作性能非常穩定,而且功能實現的效果良好。在這個生活節奏較快的時代,自動封口及換袋裝置一定是垃圾處理的一大幫手。如果用戶處理垃圾時使用本文的自動封口及換袋裝置,用戶的出行會非常輕松。此外,本文的自動封口及換袋裝置具有很廣闊的市場前景,在未來一定能夠占據市場的一大份。本文的自動封口及換袋裝置能給人們工作和生活中提供便利,減少了用戶因為處理垃圾而產生的的焦慮,給用戶帶來舒心的每一天。