孫應(yīng),陳岸奇,王振光,賈巍
(湖北文理學院 汽車與交通工程學院,湖北襄陽,441053)
垃圾分類得到大眾的廣泛關(guān)注和積極響應(yīng)。我國垃圾分類處理整體處于高速發(fā)展階段,在國家的大力推行下,垃圾分類制度日趨完善。傳統(tǒng)的垃圾分類步驟繁瑣,消耗人力物力大。我們的項目致力于從基本的分類環(huán)節(jié)解決問題,將智能制造運用于生活當中,節(jié)省人力物力。
本小車系統(tǒng)主要由以下幾部分組成:(1)OpenMV4 H7 plus 智能攝像頭識別模塊;(2)主控STM32F407 單片機最小系統(tǒng);(3)GPS 慣導姿態(tài)檢測定位模塊;(4)通訊模塊;(5)無線充電模塊;(6)攝像頭機械驅(qū)動模塊;(7)行進結(jié)構(gòu)驅(qū)動模塊;(8)機械臂結(jié)構(gòu)驅(qū)動模塊。
本系統(tǒng)以 STM32F407 單片機為控制核心,運行時通過使用多個OpenMV4 H7plus 智能攝像頭識別周圍的垃圾與雜物,與內(nèi)部ROM 存儲的識別數(shù)據(jù)比對,通過用戶自定義權(quán)重來規(guī)劃行進路線來拾取并分類垃圾。整車主要采用機器視覺技術(shù)應(yīng)用圖像智能識別技術(shù),使用多種智能模塊,可實現(xiàn)自動拾取或者遠程操控對垃圾進行識別,拾取,分類,投放。小車安裝了多個攝像頭采集數(shù)據(jù),可進行全方位地識別周圍的物品,并可進行全向行進,自動規(guī)劃路線,靈巧地拾取垃圾并進行分類。
OpenMV 攝像頭是一款小巧,低功耗,低成本的模塊,可以很輕松地完成機器視覺應(yīng)用。通過 MicroPython 很容易在機器視覺算法中處理復雜的輸出。使用外部終端觸發(fā)拍攝或者執(zhí)行算法,也可以把算法的結(jié)果用來控制 IO 引腳。
攝像頭采用ANN 人工神經(jīng)網(wǎng)絡(luò)結(jié)合edgeimpulse 對各類垃圾進行識別訓練,各類垃圾圖片基數(shù)在2000 張以上,通過感光、特征點、色塊等參數(shù)進行判別。
本系統(tǒng)使用 STM32F407單片機作為主控部件,實現(xiàn)對攝像頭,GPS 等數(shù)據(jù)的分析處理,然后完成對電機,機械臂等外設(shè)的控制輸出。STM32F407 單片機最小系統(tǒng)板包含電源電路、復位按鍵、串口下載等模塊,同時將單片機的所有 IO 口通過排針的方式全部引出,便于在做嵌入式開發(fā)時,其他外設(shè)設(shè)備的連接。

圖1 OpenMV 攝像頭模塊
定位模塊采用了組合導航(GPS+慣導)模塊,GPS 采用NEO-7N GPS 模塊,具有高靈敏度、低功耗、小型化、極高追蹤靈敏度等特點。用于車載,手持設(shè)備如 PDA,車輛監(jiān)控、手機、攝像機及其他移動定位系統(tǒng)的應(yīng)用。慣導模塊采用維特智能JY901 姿態(tài)傳感器,該產(chǎn)品是一款專業(yè)的姿態(tài)角度測量模塊,產(chǎn)品通過讀取傳感器的三軸加速度,三軸角速度,三軸磁場等原始數(shù)據(jù),運用姿態(tài)動力學核心算法,結(jié)合卡爾曼濾波融合算法解算出實時穩(wěn)定的三軸姿態(tài)角度。

圖2 NEO-7N 模塊

圖3 J Y901 處理器
通訊模塊采用SIM800C 模塊,SIM800C 是一款四頻GSM/GPRS 模塊,性能穩(wěn)定,外觀小巧,性價比高,能滿足客戶的多種需求。SIM800C 工作頻率為GSM/GPRS 850/900/1800/1900MHz,可以低功耗實現(xiàn)語音,SMS 和數(shù)據(jù)信息的傳輸。SIM800C 尺 寸為17.6mm×15.7mm×2.3mm,能適用各種緊湊型產(chǎn)品的設(shè)計需求。

圖4 電機直流驅(qū)動模塊電路圖

圖5 無線充電接收線圈電路圖
本項目電機采用L298N 驅(qū)動模塊實現(xiàn)對電機進行控制。該驅(qū)動模塊供電電壓范圍為+5V~35V,最大工作功率20W,可以實現(xiàn)同時對兩路直流電機的驅(qū)動控制。使能端口ENA 為高電平時處于有效控制狀態(tài),低電平時無控制信號輸出。在進行電機調(diào)速時我們根據(jù)電機工作狀態(tài)表使設(shè)置 IN1和 IN2,確定電機的轉(zhuǎn)動方向。單片機 輸出 PWM 波對驅(qū)動模塊使能端進行調(diào)速控制。
本項目采用了電池供電+無線充電的組合,在電池電壓不足的時候可以通過自動尋找安裝的無線充電器充電,也可在停機休息時使用無線充電器充電。無線充電模塊由充電線圈和超級電容構(gòu)成。采用半橋方式控制恒功率充電,半橋控制芯片為IR2104s。
本項目機械結(jié)構(gòu)采用3D 打印構(gòu)建。機械結(jié)構(gòu)整體分為驅(qū)動,底盤,機械臂三大部分。車體采用麥克納姆輪進行移動,可在狹小的空間內(nèi)快速旋轉(zhuǎn)和調(diào)頭以及橫向移動,驅(qū)動部分和底盤采用可調(diào)彈簧連接,保證了整車的穩(wěn)定性,底盤采用樹脂材料和鋁合金材料制作,在輕便的基礎(chǔ)上保證了堅固性。機械臂擁有4 自由度,可以實現(xiàn)全方位的抓取,機械爪驅(qū)動使用兩個25Kg 舵機,保證了機械爪抓取時的穩(wěn)定。小車整體拆裝簡單,便于更換損壞零件。
系統(tǒng)采用STM32F407 單片機作為控制核心,引出單片機上的外部IO 連接到其他的傳感器和外圍設(shè)備,并對這些數(shù)據(jù)進行處理。主程序分為以下幾個部分:(1)初始化部分,負責建立單片機對各模塊的控制,確定數(shù)據(jù)傳輸?shù)母袷脚c方式。(2)驅(qū)動控制部分,主要控制電機和舵機,包括整個小車的運行,機械臂的姿態(tài)調(diào)整,機械爪的抓取。(3)姿態(tài)解算部分,此部分主要是處理GPS 和慣導的數(shù)據(jù),主要是用于跟驅(qū)動部分聯(lián)動,調(diào)整小車的姿態(tài),還可以根據(jù)用戶設(shè)定的規(guī)則匯報到上位機。(4)視覺識別部分,視覺處理是程序最重要的一部分之一,通過對多個攝像頭的圖像進行融匯處理,構(gòu)造一份小車周圍的270°左右的全景圖,可以同時對多個目標進行識別歸類。(5)通信部分,主要把各個模塊收集的數(shù)據(jù)和運算的結(jié)果給到上位機和對上位機發(fā)送的指令進行解碼實現(xiàn)對模塊的控制。主程序流程大概如圖所示,開機載入ROM 中的設(shè)置,對硬件分步初始化,狀態(tài)匯報給單片機做處理,攝像頭部分可以直接串流到通信模塊輸出到上位機。硬件模塊初始化有錯誤則停止初始化并匯報。若無錯誤則繼續(xù)初始化下一個設(shè)備,每個設(shè)備都有不同的中斷優(yōu)先級。當所有硬件的初始化都無錯誤完成后,進行軟件初始化,載入ROM 中的用戶配置,根據(jù)用戶配置來進行程序的運行。軟件部分程序的運行流程主要是對攝像頭和單片機數(shù)據(jù)的處理,首先各個攝像頭捕獲圖像,對視野內(nèi)的物品進行分類判斷,與用戶定義的雜物進行比對,采用比例圖像和深度圖像融合處理計算出距離,若目標距離小于機械臂獲取范圍則進入機械臂姿態(tài)處理部分,嘗試獲取物品。如果機械臂無法獲取,則進入車體姿態(tài)處理部分,嘗試移動車體靠近,直到機械臂可以獲取物品為止。當機械臂獲取物品后,將物品放入置物籃中,程序循環(huán)判斷置物籃狀態(tài),當達到一定重量或者超出置物籃高度,進入卸載模式,卸載模式停止底攝像頭掃描雜物,僅判斷障礙物,小車朝著目標卸載點前進。卸載時機械臂循環(huán)抓取置物欄內(nèi)物品,判斷物品類型分類卸載。當置物籃為空時停止卸載,底盤攝像頭回到雜物掃描模式,重新進行裝載。當視野內(nèi)雜物全部清空或者無法獲取時,進入待機模式。電量等狀態(tài)信息會實時反饋通過通信模塊匯報給上位機或者用LED 燈光提示。當電池不足時,小車會嘗試尋找無線充電器進行充電,當在范圍內(nèi)無法尋找到充電器時,會給上位機匯報,當電池耗盡時會自動關(guān)閉停止運行。

圖6 超級電容充電電路圖

圖7 結(jié)構(gòu)模型圖

圖8 系統(tǒng)主程序流程圖

圖9 系統(tǒng)運行狀態(tài)切換流程圖
實行垃圾分類處理既可以有效地改善城鄉(xiāng)環(huán)境,又能讓資源回收利用更有效率,可持續(xù)發(fā)展水平進一步提高。小車具有多種識別方式,默認模式為通過單片機存儲內(nèi)攝像頭學習的數(shù)據(jù)進行分類識別,也可以在上位機設(shè)置對不同物體的分類。小車在工作時會先通過攝像頭判斷目標位置并規(guī)劃接近路徑,再通過多攝像頭實時定位來規(guī)避障礙物,車載智能節(jié)能系統(tǒng),在沒有工作時小車會自動尋找最近的無線充電器自行充電,在工作完成時會自行到角落休眠以節(jié)約電能。