張麗慧,尹序臻,江永鑫,荊汝鐸
(廈門理工學(xué)院 電氣工程與自動(dòng)化學(xué)院,福建 廈門 361024)
隨著社會(huì)的快速發(fā)展,使得原本從事農(nóng)業(yè)生產(chǎn)的勞動(dòng)力逐步轉(zhuǎn)向其他行業(yè)[1],加之在我國當(dāng)前階段中農(nóng)村人口老齡化問題逐漸加重,導(dǎo)致農(nóng)村勞動(dòng)力數(shù)量逐漸的減少,對(duì)農(nóng)業(yè)生產(chǎn)正常的進(jìn)行造成了嚴(yán)重影響,不利于我國農(nóng)業(yè)的發(fā)展[2]。另外,采用人工或者除草設(shè)備在農(nóng)田除草,勞動(dòng)成本高且效率低下,不利于農(nóng)業(yè)生產(chǎn)的進(jìn)行。為提高農(nóng)業(yè)的經(jīng)濟(jì)效益,發(fā)展現(xiàn)代化精準(zhǔn)農(nóng)業(yè)是必然選擇的途徑,而農(nóng)業(yè)除草機(jī)器人就是精確農(nóng)業(yè)(Precision Agriculture)在農(nóng)田除草上一個(gè)重要應(yīng)用,也是未來農(nóng)業(yè)發(fā)展的必然途徑[3]。
隨著機(jī)器視覺技術(shù)的發(fā)展及其在農(nóng)業(yè)上定位和識(shí)別領(lǐng)域的應(yīng)用,基于機(jī)器視覺的除草機(jī)器人得到了很大的發(fā)展[4]。但現(xiàn)在國內(nèi)外的大多數(shù)除草機(jī)器人都是采用噴灑除草劑的方式除草,對(duì)環(huán)境造成了一定的污染,也增加了農(nóng)藥殘留。因此,很多國家已經(jīng)頒布法令明令禁止使用化學(xué)除草劑[5]。
為解決以上問題,本文設(shè)計(jì)了一種智能除草機(jī)器人,利用圖像識(shí)別技術(shù)和機(jī)械手準(zhǔn)確定位技術(shù)進(jìn)行除草,綠色環(huán)保,省時(shí)省力;另外,結(jié)合多種傳感器,智能化程度高,保證除草的精度,大大提高田間作業(yè)效率。
本設(shè)計(jì)以STM32單片機(jī)為控制核心。當(dāng)機(jī)器人電源開啟后,灰度傳感器檢測(cè)到路徑發(fā)送信號(hào)給單片機(jī),單片機(jī)輸出指令給電機(jī)驅(qū)動(dòng)模塊,電機(jī)驅(qū)動(dòng)模塊發(fā)送高低電平至電機(jī)控制車輪轉(zhuǎn)向;同時(shí)攝像頭模塊實(shí)時(shí)拍攝并進(jìn)行圖像處理,當(dāng)識(shí)別到雜草并待其進(jìn)入到視野中央時(shí),攝像頭模塊發(fā)送停車信號(hào)給單片機(jī);單片機(jī)通過電機(jī)驅(qū)動(dòng)模塊控制機(jī)器人停止移動(dòng),隨后控制舵機(jī)使機(jī)械臂定距夾取雜草。此外,溫濕度傳感器在除草機(jī)器人工作時(shí)實(shí)時(shí)采集農(nóng)田里的溫濕度信息給單片機(jī)進(jìn)行數(shù)據(jù)處理,并在LCD顯示屏上顯示;最后除草機(jī)器人在農(nóng)田巡邏完畢后單片機(jī)會(huì)控制蜂鳴器發(fā)出警報(bào)。該智能除草機(jī)器人的整體結(jié)構(gòu)如圖1所示。
見表1。
該智能除草機(jī)器人主要包括履帶式底盤和多自由度機(jī)械臂,詳見圖2。
表1 除草機(jī)器人各硬件模塊及其參數(shù)表
如圖2、圖3所示,履帶式底盤包括上下底板、分別安裝于底板兩側(cè)的履帶組件以及驅(qū)動(dòng)履帶組件運(yùn)動(dòng)的電機(jī)。上底板放置有機(jī)械臂,下底板放置有STM32單片機(jī)、電池、電機(jī)驅(qū)動(dòng)模塊、灰度傳感器(2個(gè),并列安裝于下底板前端中央)、溫濕度傳感器和顯示屏。STM32單片機(jī)與機(jī)械臂、攝像頭模塊、電機(jī)驅(qū)動(dòng)模塊、灰度傳感器、溫濕度傳感器和顯示屏有電性連接。履帶組件包括履帶以及設(shè)置在履帶內(nèi)側(cè)的主動(dòng)輪和從動(dòng)輪。
機(jī)械臂包括依次鉸接的云臺(tái)、第一旋臂、第二旋臂、第三旋臂和機(jī)械爪,如圖4所示。第一旋臂通過第一舵機(jī)與云臺(tái)連接。第一舵機(jī)設(shè)置在云臺(tái)上,且云臺(tái)驅(qū)動(dòng)第一舵機(jī)繞豎向軸轉(zhuǎn)動(dòng)。第一舵機(jī)的輸出端與第一旋臂連接,驅(qū)動(dòng)第一旋臂繞水平軸轉(zhuǎn)動(dòng)。第二旋臂鉸接于第一旋臂遠(yuǎn)離云臺(tái)的一端,且二者的鉸接處設(shè)有第二舵機(jī),第二舵機(jī)驅(qū)動(dòng)第二旋臂繞第一旋臂轉(zhuǎn)動(dòng)。第三旋臂鉸接于第二旋臂遠(yuǎn)離第一旋臂的一端,且二者的鉸接處設(shè)有第三舵機(jī),第三舵機(jī)驅(qū)動(dòng)第三旋臂繞第二旋臂轉(zhuǎn)動(dòng)。通過三個(gè)舵機(jī)對(duì)三段旋臂進(jìn)行轉(zhuǎn)動(dòng)控制,使得機(jī)械臂能夠?qū)崿F(xiàn)類似人體關(guān)節(jié)的彎曲或伸展運(yùn)動(dòng),便于控制機(jī)械爪靠近或遠(yuǎn)離目標(biāo)物,動(dòng)作靈活,操作方便。機(jī)械爪安裝于機(jī)械臂端部,第五舵機(jī)可驅(qū)動(dòng)其張開或閉合。機(jī)械臂末端還安裝有攝像頭支撐支架,攝像頭模塊就安裝在支撐架上。
軟件部分主要由主程序、循跡子程序、除草子程序和溫濕度檢測(cè)子程序組成。
程序運(yùn)行,進(jìn)行攝像頭、定時(shí)器中斷與GPIO等模塊的初始化,進(jìn)入一個(gè)主循環(huán)等待中斷的發(fā)生。主程序流程圖如圖5所示。
如圖6所示,使用定時(shí)器中斷,每到給定時(shí)間進(jìn)入中斷。根據(jù)灰度傳感器回傳信號(hào)的變化判斷機(jī)器人行進(jìn)路線是否偏移,若偏移,通過電機(jī)的正反轉(zhuǎn)調(diào)整機(jī)器人行進(jìn)方向,調(diào)整后判斷是否到達(dá)終點(diǎn),是則停車并關(guān)閉中斷,否則本次中斷結(jié)束,等待下次中斷。
如圖7所示,進(jìn)入中斷,初始化攝像頭,進(jìn)行圖像識(shí)別,判斷是否發(fā)現(xiàn)雜草,若未發(fā)現(xiàn)則繼續(xù)進(jìn)行圖像識(shí)別,若發(fā)現(xiàn)則鎖定雜草。此時(shí)機(jī)器人繼續(xù)前進(jìn),待機(jī)器人移動(dòng)到最佳區(qū)域(攝像頭模塊識(shí)別到雜草后鎖定其幾何中心點(diǎn),此點(diǎn)會(huì)隨著機(jī)器人的前進(jìn)移動(dòng),當(dāng)其移動(dòng)至攝像頭所拍攝區(qū)域中央,即表示機(jī)器人移動(dòng)到最佳區(qū)域)時(shí)停車并驅(qū)動(dòng)舵機(jī)控制機(jī)械臂進(jìn)行除草,除草結(jié)束后再次進(jìn)行圖像識(shí)別,若雜草消失則機(jī)器人繼續(xù)行進(jìn)并結(jié)束本次除草,否則再次進(jìn)行除草。
其中,舵機(jī)的控制采用為50 HZ的PWM波。單片機(jī)通過調(diào)整輸出信號(hào)高電平的占空比改變舵機(jī)的姿態(tài)角,多個(gè)舵機(jī)同時(shí)保持不同的姿態(tài)角為機(jī)械臂的一個(gè)姿態(tài)。機(jī)械臂的除草動(dòng)作由不同的機(jī)械臂姿態(tài)連續(xù)變化而成。為此,設(shè)定5個(gè)機(jī)械臂姿態(tài):
⑴ 歸零姿態(tài):抓取前與抓取后的姿態(tài),此時(shí)舵機(jī)上的攝像頭(攝像頭模塊裝于機(jī)械臂末端舵機(jī)上)視角為垂直軌跡看向農(nóng)田。
⑵ 前伸姿態(tài):抓取過程的其中一個(gè)姿態(tài),此時(shí)舵機(jī)前伸,攝像頭視角保持不變,機(jī)械爪狀態(tài)為張開。
⑶ 夾緊姿態(tài):與前伸姿態(tài)相比較,此姿態(tài)保持其余舵機(jī)姿態(tài)角,僅將機(jī)械爪夾緊。
⑷ 拔取姿態(tài):保持機(jī)械爪夾緊,機(jī)械臂由夾緊姿態(tài)向回移動(dòng),此姿態(tài)可將雜草拔出。
⑸ 松開姿態(tài):機(jī)械爪松開,此姿態(tài)可使拔出的草掉落。
如圖8所示,單片機(jī)發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(zhuǎn)換到高速模式。高速模式下,DHT11接收到開始信號(hào)觸發(fā)一次溫濕度采集,如果沒有接收到單片機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集。DHT11等待單片機(jī)開始信號(hào)結(jié)束后,發(fā)送80 us低電平響應(yīng)信號(hào),再發(fā)送出40 bit的數(shù)據(jù)(8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗(yàn)和),單片機(jī)接收到數(shù)據(jù)后進(jìn)行處理,并控制LCD1602顯示溫濕度數(shù)據(jù)。
將程序?qū)懭雴纹瑱C(jī)后并完成除草機(jī)器人的組裝,其實(shí)物如圖9所示。
為了驗(yàn)證本文設(shè)計(jì)的除草機(jī)器人的可靠性,對(duì)其自主除草功能進(jìn)行了測(cè)試:首先,搭載除草環(huán)境。如圖10所示,場(chǎng)地使用多塊60 cm×60 cm泡沫地板拼接,場(chǎng)地中擺放有3D打印的南瓜和蕨類雜草,用于模擬農(nóng)田里的作物和雜草。泡沫板上貼有用于機(jī)器人循跡用的黑色膠帶,用于模擬農(nóng)田里的道路。
其次,調(diào)試機(jī)器人的各功能模塊。將機(jī)器人放置在場(chǎng)地循跡線起始位置,檢查各器件性能正常后開啟電源,觀察機(jī)器人循跡功能,識(shí)別功能,機(jī)械臂的隨動(dòng)、夾取、放置和復(fù)位功能的情況并根據(jù)現(xiàn)象對(duì)機(jī)器人做出調(diào)整,直至其所有功能達(dá)到預(yù)期效果。
最后,進(jìn)行整體測(cè)試。測(cè)試中機(jī)器人按照指定循跡線循跡并能準(zhǔn)確識(shí)別雜草,驅(qū)動(dòng)機(jī)械臂伸向雜草并驅(qū)動(dòng)機(jī)械爪將其夾緊,圖10為夾緊后拔出前時(shí)刻的抓拍。同時(shí),除草機(jī)器人實(shí)時(shí)采集溫濕度信息并顯示在LCD顯示屏上,如圖11所示。
本文設(shè)計(jì)了一種基于STM32的自動(dòng)除草機(jī)器人。該機(jī)器人可運(yùn)用在指定路徑的種植區(qū)中,實(shí)現(xiàn)自動(dòng)除草功能。機(jī)器人通過灰度傳感器來識(shí)別種植區(qū)里的路徑;同時(shí)通過攝像頭模塊進(jìn)行顏色及形狀識(shí)別鎖定雜草,實(shí)現(xiàn)圖像處理功能;機(jī)器人識(shí)別到雜草后STM32單片機(jī)控制機(jī)械爪定距夾取雜草,將其清除。此外,機(jī)器人在工作時(shí)還實(shí)時(shí)顯示溫濕度信息于LCD顯示屏上。相對(duì)于采用化學(xué)除草劑的除草機(jī)器人,本設(shè)計(jì)采用機(jī)械方式除草,減少了環(huán)境污染,綠色環(huán)保。