張麗慧,尹序臻,江永鑫,荊汝鐸
(廈門理工學院 電氣工程與自動化學院,福建 廈門 361024)
隨著社會的快速發展,使得原本從事農業生產的勞動力逐步轉向其他行業[1],加之在我國當前階段中農村人口老齡化問題逐漸加重,導致農村勞動力數量逐漸的減少,對農業生產正常的進行造成了嚴重影響,不利于我國農業的發展[2]。另外,采用人工或者除草設備在農田除草,勞動成本高且效率低下,不利于農業生產的進行。為提高農業的經濟效益,發展現代化精準農業是必然選擇的途徑,而農業除草機器人就是精確農業(Precision Agriculture)在農田除草上一個重要應用,也是未來農業發展的必然途徑[3]。
隨著機器視覺技術的發展及其在農業上定位和識別領域的應用,基于機器視覺的除草機器人得到了很大的發展[4]。但現在國內外的大多數除草機器人都是采用噴灑除草劑的方式除草,對環境造成了一定的污染,也增加了農藥殘留。因此,很多國家已經頒布法令明令禁止使用化學除草劑[5]。
為解決以上問題,本文設計了一種智能除草機器人,利用圖像識別技術和機械手準確定位技術進行除草,綠色環保,省時省力;另外,結合多種傳感器,智能化程度高,保證除草的精度,大大提高田間作業效率。
本設計以STM32單片機為控制核心。當機器人電源開啟后,灰度傳感器檢測到路徑發送信號給單片機,單片機輸出指令給電機驅動模塊,電機驅動模塊發送高低電平至電機控制車輪轉向;同時攝像頭模塊實時拍攝并進行圖像處理,當識別到雜草并待其進入到視野中央時,攝像頭模塊發送停車信號給單片機;單片機通過電機驅動模塊控制機器人停止移動,隨后控制舵機使機械臂定距夾取雜草。此外,溫濕度傳感器在除草機器人工作時實時采集農田里的溫濕度信息給單片機進行數據處理,并在LCD顯示屏上顯示;最后除草機器人在農田巡邏完畢后單片機會控制蜂鳴器發出警報。該智能除草機器人的整體結構如圖1所示。
見表1。
該智能除草機器人主要包括履帶式底盤和多自由度機械臂,詳見圖2。

表1 除草機器人各硬件模塊及其參數表
如圖2、圖3所示,履帶式底盤包括上下底板、分別安裝于底板兩側的履帶組件以及驅動履帶組件運動的電機。上底板放置有機械臂,下底板放置有STM32單片機、電池、電機驅動模塊、灰度傳感器(2個,并列安裝于下底板前端中央)、溫濕度傳感器和顯示屏。STM32單片機與機械臂、攝像頭模塊、電機驅動模塊、灰度傳感器、溫濕度傳感器和顯示屏有電性連接。履帶組件包括履帶以及設置在履帶內側的主動輪和從動輪。
機械臂包括依次鉸接的云臺、第一旋臂、第二旋臂、第三旋臂和機械爪,如圖4所示。第一旋臂通過第一舵機與云臺連接。第一舵機設置在云臺上,且云臺驅動第一舵機繞豎向軸轉動。第一舵機的輸出端與第一旋臂連接,驅動第一旋臂繞水平軸轉動。第二旋臂鉸接于第一旋臂遠離云臺的一端,且二者的鉸接處設有第二舵機,第二舵機驅動第二旋臂繞第一旋臂轉動。第三旋臂鉸接于第二旋臂遠離第一旋臂的一端,且二者的鉸接處設有第三舵機,第三舵機驅動第三旋臂繞第二旋臂轉動。通過三個舵機對三段旋臂進行轉動控制,使得機械臂能夠實現類似人體關節的彎曲或伸展運動,便于控制機械爪靠近或遠離目標物,動作靈活,操作方便。機械爪安裝于機械臂端部,第五舵機可驅動其張開或閉合。機械臂末端還安裝有攝像頭支撐支架,攝像頭模塊就安裝在支撐架上。
軟件部分主要由主程序、循跡子程序、除草子程序和溫濕度檢測子程序組成。
程序運行,進行攝像頭、定時器中斷與GPIO等模塊的初始化,進入一個主循環等待中斷的發生。主程序流程圖如圖5所示。
如圖6所示,使用定時器中斷,每到給定時間進入中斷。根據灰度傳感器回傳信號的變化判斷機器人行進路線是否偏移,若偏移,通過電機的正反轉調整機器人行進方向,調整后判斷是否到達終點,是則停車并關閉中斷,否則本次中斷結束,等待下次中斷。
如圖7所示,進入中斷,初始化攝像頭,進行圖像識別,判斷是否發現雜草,若未發現則繼續進行圖像識別,若發現則鎖定雜草。此時機器人繼續前進,待機器人移動到最佳區域(攝像頭模塊識別到雜草后鎖定其幾何中心點,此點會隨著機器人的前進移動,當其移動至攝像頭所拍攝區域中央,即表示機器人移動到最佳區域)時停車并驅動舵機控制機械臂進行除草,除草結束后再次進行圖像識別,若雜草消失則機器人繼續行進并結束本次除草,否則再次進行除草。
其中,舵機的控制采用為50 HZ的PWM波。單片機通過調整輸出信號高電平的占空比改變舵機的姿態角,多個舵機同時保持不同的姿態角為機械臂的一個姿態。機械臂的除草動作由不同的機械臂姿態連續變化而成。為此,設定5個機械臂姿態:
⑴ 歸零姿態:抓取前與抓取后的姿態,此時舵機上的攝像頭(攝像頭模塊裝于機械臂末端舵機上)視角為垂直軌跡看向農田。
⑵ 前伸姿態:抓取過程的其中一個姿態,此時舵機前伸,攝像頭視角保持不變,機械爪狀態為張開。
⑶ 夾緊姿態:與前伸姿態相比較,此姿態保持其余舵機姿態角,僅將機械爪夾緊。
⑷ 拔取姿態:保持機械爪夾緊,機械臂由夾緊姿態向回移動,此姿態可將雜草拔出。
⑸ 松開姿態:機械爪松開,此姿態可使拔出的草掉落。
如圖8所示,單片機發送一次開始信號后,DHT11從低功耗模式轉換到高速模式。高速模式下,DHT11接收到開始信號觸發一次溫濕度采集,如果沒有接收到單片機發送開始信號,DHT11不會主動進行溫濕度采集。DHT11等待單片機開始信號結束后,發送80 us低電平響應信號,再發送出40 bit的數據(8 bit濕度整數數據+8 bit濕度小數數據+8 bit溫度整數數據+8 bit溫度小數數據+8 bit校驗和),單片機接收到數據后進行處理,并控制LCD1602顯示溫濕度數據。
將程序寫入單片機后并完成除草機器人的組裝,其實物如圖9所示。
為了驗證本文設計的除草機器人的可靠性,對其自主除草功能進行了測試:首先,搭載除草環境。如圖10所示,場地使用多塊60 cm×60 cm泡沫地板拼接,場地中擺放有3D打印的南瓜和蕨類雜草,用于模擬農田里的作物和雜草。泡沫板上貼有用于機器人循跡用的黑色膠帶,用于模擬農田里的道路。
其次,調試機器人的各功能模塊。將機器人放置在場地循跡線起始位置,檢查各器件性能正常后開啟電源,觀察機器人循跡功能,識別功能,機械臂的隨動、夾取、放置和復位功能的情況并根據現象對機器人做出調整,直至其所有功能達到預期效果。
最后,進行整體測試。測試中機器人按照指定循跡線循跡并能準確識別雜草,驅動機械臂伸向雜草并驅動機械爪將其夾緊,圖10為夾緊后拔出前時刻的抓拍。同時,除草機器人實時采集溫濕度信息并顯示在LCD顯示屏上,如圖11所示。
本文設計了一種基于STM32的自動除草機器人。該機器人可運用在指定路徑的種植區中,實現自動除草功能。機器人通過灰度傳感器來識別種植區里的路徑;同時通過攝像頭模塊進行顏色及形狀識別鎖定雜草,實現圖像處理功能;機器人識別到雜草后STM32單片機控制機械爪定距夾取雜草,將其清除。此外,機器人在工作時還實時顯示溫濕度信息于LCD顯示屏上。相對于采用化學除草劑的除草機器人,本設計采用機械方式除草,減少了環境污染,綠色環保。