徐必利,儲健,林曦,胡山,王鵬丞,蘇東升,胡明輝
(天津職業(yè)技術(shù)師范大學(xué),天津 300222)
本系統(tǒng)以STM32 單片機(jī)作為主控終端,通過連接步進(jìn)電機(jī)、舵機(jī)、ESP8266WIFI 模塊、K210 攝像頭AI 設(shè)備以及觸摸屏構(gòu)建整個垃圾分類系統(tǒng),采用手機(jī)作為遠(yuǎn)程控制APP 的智能生活垃圾分類系統(tǒng)。該設(shè)計通過自己開發(fā)的手機(jī)APP 可以在Wi-Fi 范圍內(nèi)控制垃圾分類裝置進(jìn)行垃圾分類[1]。
系統(tǒng)硬件裝置主要由K210、STM32 單片機(jī)、ESP8266WIFI 模塊、鋰電池、步進(jìn)電機(jī)、舵機(jī)組成,系統(tǒng)如圖1 所示,手機(jī)APP 如圖2 所示。
圖2 垃圾分類手機(jī)APP
本系統(tǒng)使用的是K210 人工智能開發(fā)板和MaixPy IDE 開發(fā)環(huán)境,編程語言使用Python 讓編程更加簡單快捷,使用了K210 自帶的1TOPS 算力的KPU 對圖片模型進(jìn)行算法的處理,使攝像頭準(zhǔn)確地識別出各種垃圾,相應(yīng)的垃圾分別發(fā)送相應(yīng)的串口程序給STM32 單片機(jī),使用單片機(jī)進(jìn)行處理[2]。
智能生活垃圾分類系統(tǒng)采用的單片機(jī)是STM32F103C8T6,用到了1 個步進(jìn)電機(jī)驅(qū)動模塊來控制步進(jìn)電機(jī)、1 個K210 模塊、1 個ESP8266WIFI 模塊、1 個舵機(jī)。電源采用的是12 Ⅴ電源供電,用了2 個降壓模塊給單片機(jī)、ESP8266WIFI 模塊、觸摸屏、舵機(jī)及K210 攝像頭提供電源。STM32F103C8T6 用了2 個引腳分別控制1 個步進(jìn)電機(jī)的脈沖和方向。K210 攝像頭的數(shù)值返回到單片機(jī)的串口來判斷相應(yīng)的連接分類從而執(zhí)行相應(yīng)的操作。ESP8266WIFI 控制模塊由2 部分組成,一個是使用小程序通過MQTT 協(xié)議接入云平臺,另一個接在單片機(jī)。通過小程序給Wi-Fi 模塊發(fā)送指令,單片機(jī)接受到指令從而執(zhí)行相應(yīng)的垃圾分類的操作,達(dá)到了遠(yuǎn)程軟件控制的功能,本系統(tǒng)遠(yuǎn)程控制范圍在Wi-Fi 范圍內(nèi),當(dāng)然可以通過5G 網(wǎng)絡(luò)開啟熱點(diǎn)建立相應(yīng)的Wi-Fi 進(jìn)行控制[3]。
執(zhí)行機(jī)構(gòu)模塊包括步進(jìn)電機(jī)(旋轉(zhuǎn)機(jī)構(gòu))、舵機(jī)(倒放垃圾)。通過識別傳感器將垃圾圖像識別出來發(fā)送相應(yīng)的數(shù)值給STM32F103C8T6 單片機(jī)。例如,識別傳感器檢測到香蕉,發(fā)送數(shù)字1,單片機(jī)接收到1這個數(shù)字,步進(jìn)電機(jī)旋轉(zhuǎn)到廚余垃圾位置,舵機(jī)動作將垃圾倒入廚余垃圾桶里,垃圾投入以后將步進(jìn)電機(jī)和舵機(jī)復(fù)位[4]。
2.3.1 步進(jìn)電機(jī)工作原理
步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換成相應(yīng)角位移或線位移的電動機(jī)。每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度或前進(jìn)一步,其輸出的角位移或線位移與輸入的脈沖數(shù)成正比,轉(zhuǎn)速與脈沖頻率成正比。通過STM32F103C8T6 單片機(jī)發(fā)送PWM 波來控制步進(jìn)電機(jī)轉(zhuǎn)動的角度,每輸入一個脈沖信號,轉(zhuǎn)子就轉(zhuǎn)動一個角度,輸入3 000 次脈沖信號,步進(jìn)電機(jī)就會旋轉(zhuǎn)90°,轉(zhuǎn)速與脈沖時間成反比,通過控制輸入脈沖次數(shù)來控制電機(jī)的旋轉(zhuǎn)角度,通過控制延時的時間可以控制步進(jìn)電機(jī)旋轉(zhuǎn)速度。
2.3.2 舵機(jī)工作原理
伺服電機(jī)通常被稱為舵機(jī),它是一種帶有輸出軸的小裝置。當(dāng)向伺服器發(fā)送一個控制信號時,輸出軸就可以轉(zhuǎn)到特定的位置。主要控制信號持續(xù)不變,伺服機(jī)構(gòu)就會保持軸的角度位置不改變。如果控制信號發(fā)送變化,輸出軸也會相應(yīng)發(fā)生變化。例如給舵機(jī)通上5 Ⅴ的電壓,通過單片機(jī)發(fā)送20 ms 的時基脈沖,1 ms保持高電平,其他19 ms 保持低電平,舵機(jī)就旋轉(zhuǎn)45°。
本生活智能垃圾分類系統(tǒng)使用Yolo 軟件進(jìn)行相應(yīng)垃圾圖片訓(xùn)練,將訓(xùn)練出來的模型導(dǎo)入K210 通過相應(yīng)的算法進(jìn)行人工智能垃圾分類。K210 與STM32 單片機(jī)進(jìn)行串口通信,K210 串口發(fā)送相應(yīng)的數(shù)據(jù)來控制單片機(jī)執(zhí)行相應(yīng)的程序,單片機(jī)控制步進(jìn)電機(jī)和舵機(jī)完成相應(yīng)的垃圾分類。訓(xùn)練模型如圖3 所示,訓(xùn)練結(jié)果如圖4 所示[5]。
圖3 完成相應(yīng)的垃圾模型
圖4 訓(xùn)練結(jié)果顯示
3.1.1 對當(dāng)前垃圾數(shù)據(jù)圖片訓(xùn)練
通過K210 的拍照程序捕獲照片數(shù)據(jù),將數(shù)據(jù)存儲到SD 卡中,每種垃圾不同位置的照片100 張,本系統(tǒng)共訓(xùn)練10 種不同垃圾,因此需要采集1 000 張照片,完成照片的采集后對照片進(jìn)行打標(biāo)簽操作,即把每一種圖片的名字寫入分好組,上傳到Y(jié)olov3 訓(xùn)練軟件進(jìn)行圖片識別。
3.1.2 導(dǎo)入完成訓(xùn)練模型文件進(jìn)行識別
K210 開發(fā)板使用minimum 版本固件,將訓(xùn)練好的模型文件導(dǎo)入到K210 中,使用kflash_gui 燒錄模型文件到Flash,這個模型文件會自動燒錄到地址0x300000 上,不需要手動選擇地址,保存標(biāo)簽文件labels.txt 到文件系統(tǒng),最簡單的是放到SD 卡中;之后是使用K210 開發(fā)工具進(jìn)行寫代碼,將模型加載到程序中,將SD 卡中的標(biāo)簽文件讀取到程序中,調(diào)用一些攝像頭、LCD、神經(jīng)網(wǎng)絡(luò)處理器的程序。
3.1.3 神經(jīng)網(wǎng)絡(luò)處理器KPU 介紹
神經(jīng)網(wǎng)絡(luò)處理器KPU 可以在低功耗的情況下實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)計算,實時獲取被檢測目標(biāo)的大小、坐標(biāo)和種類,對人臉或者物體進(jìn)行檢測和分類。電池實物識別如圖5 所示,橘子實物識別如圖6 所示。
圖5 電池實物識別
圖6 橘子實物識別
百度智能云IoT 物管理,提供用戶在云端管理設(shè)備的能力。用戶能夠獲取并控制設(shè)備狀態(tài)、進(jìn)行設(shè)備的批量操作以及設(shè)備診斷。一方面,設(shè)備主動向物管理中心更新狀態(tài)信息;另一方面,控制端也可以通過和設(shè)備管理中心交互反控設(shè)備的行為,比如設(shè)備狀態(tài)更新、OTA 遠(yuǎn)程設(shè)備升級等。因此,設(shè)備管理中心既需要負(fù)責(zé)和設(shè)備端交互,又要負(fù)責(zé)和控制端交互。設(shè)備端的交互主要基于MQTT 協(xié)議,而控制端通過HTTP通信。IoT Device Management API 主要包括控制端的相關(guān)功能,以Restful API 的形式提供。
通過ESP8266 模塊和百度云天工物接入進(jìn)行連接,通過MQTT 協(xié)議進(jìn)行通信,將APP 段數(shù)據(jù)傳送到ESP8266 模塊上,然后ESP8266 通過串口發(fā)送給單片機(jī)數(shù)據(jù)進(jìn)行相應(yīng)的垃圾分類操控[6]。物聯(lián)網(wǎng)系統(tǒng)如圖7所示。
圖7 物聯(lián)網(wǎng)系統(tǒng)
3.3.1 APP Inventor 平臺介紹
APP Inventor 原是Google Lab 的一個子計劃,由一群工程師和Google 使用者共同設(shè)計完成。Google APP Inventor 是一個完全在線開發(fā)的Android 編程環(huán)境,拋棄復(fù)雜的程式代碼而使用積木式的堆疊法來完成Android 程式。對于Android 初學(xué)者或是機(jī)器人開發(fā)者來說是一大福音。因為對于想要手機(jī)和機(jī)器人交互的使用者而言,他們不太需要太華麗的界面,只要使用基本元件列如按鈕、文字輸入輸出即可。MIT APP Inventor 組件設(shè)計界面如圖8 所示,MIT APP Inventor邏輯設(shè)計界面如圖9 所示。
圖8 MIT APP Inventor 組件設(shè)計界面
圖9 MIT APP Inventor 邏輯設(shè)計界面
3.3.2 手機(jī)APP 和Wi-Fi 模塊交互原理
使用APP Inventor 軟件編程調(diào)用MQTT 的通信工具獲取百度云物聯(lián)網(wǎng)的IP 地址、port 端口、idDevice、userName、password,使用MqttTCP 的接收topic 消息程序和發(fā)送消息程序來和Wi-Fi 模塊進(jìn)行交互。
通過K210 人工智能開發(fā)板進(jìn)行垃圾分類,AI 垃圾識別及分類精準(zhǔn)地完成垃圾分類任務(wù),具有精度高、處理快的特點(diǎn),能夠高效代替人工,提高處理垃圾的效率。這個產(chǎn)品并不僅僅是替換人工,而且能在惡劣環(huán)境下工作,大大減去了垃圾回收成本,提高了垃圾回收率[7]。