秦學珍,劉 萍
(河南開放大學,河南 鄭州 450046)
我國是一個農業大國,但當前國內農業信息化、智能化的程度總體不高。對于人口眾多的中國而言,對糧食的需求較大。為了降低農民的勞動強度、提高勞動的生產率、降低生產成本、提高農作物的產量、解決勞動力不足,實現農業智能化迫在眉睫[1]。隨著傳感器技術、電子技術和微電子技術的發展,農業生產的智能化、精細化已成為現實。傳統的農業生產自動化設備體積龐大,無法實現小面積土地的自動化操作,導致很多丘陵地、山區地依然采用最原始的農業生產方式[2]。為此,本文提出了基于STM32 智能耕種機器人的系統,此系統引進了先進的傳感器采集技術。在克服傳統農業自動化設備環境適應性差的同時,此系統能夠保證農業操作的準確性和實時性。同時,系統設計增加WiFi 模塊,實現了遠程終端設備對機器人的操作,最大程度地方便了新型農民的工作需求[3]。
美國、日本、德國等國家對農業機器人的研究起步較早,發展較為完善,但其研發的農業機器人一般結構復雜,體積龐大[4]。在國內,南京農業大學、華南農業大學、中國農業大學等多所高校都對農業耕種機器人技術及其應用進行了深入的研究[5]?;r業設備裝有各種傳感器,不僅可以監視作業過程,而且可以避開不良的工作環境,使其始終處于最佳技術狀態,提高農業操作的安全性和操作的可靠性。
本文所研究的智能耕種機器人是基于STM32 微處理器。此處理器擁有多個GPIO(輸入輸出)接口,主要用來連接各種傳感器、通信模塊、顯示模塊等外設。微處理的作用是搜集傳感器采集到的實際農田數據,接收圖像采集設備采集到的圖像信息和導航模塊采集到的地理位置信息,并對采集到的眾多信息進行計算、處理和分析,接著將后續的實施指令傳達到各外設處,從而保證整個控制系統指令的完整性和傳輸判斷的準確性,保障耕種機器人的正常運行。
為保證本系統微處理器平穩工作,整個系統主要在系統時鐘電路和復位電路兩部分硬件上進行了重點研究。整個系統的供電是由電源模塊實現,保證了系統正常工作。智能耕種機器人是通過電機驅動模塊驅使前、后、左、右4 個車輪前進、后退、轉彎等功能。傳感器部分主要由紅外傳感器、超聲波傳感器、溫濕度傳感器等組成,本系統通信模塊采用的是WiFi 模塊。智能耕種機器人通過傳感器模塊、語音交互模塊對播種的路徑進行規劃。耕種機器人和障礙物之間的距離信息主要通過紅外傳感器和超聲波傳感器進行判斷,避開障礙物的操作是由上位機通過通信模塊對機器人的速度和方向進行調整來實現的。土壤的溫濕度信息由溫濕度傳感器采集獲得,從而決定播種深度和松土程度。智能耕種機器人控制系統結構圖如圖1 所示。

圖1 智能耕種機器人控制系統結構
機器人感知系統的運行是由各種傳感器采集外界的信息來實現的,并對采集到的信息作相應的處理。耕種機器人電路主要包括單片機(MCU)系統電路、電機驅動電路、傳感器電路、WiFi 模塊電路等。下面將對這些電路進行具體分析。
智能耕種機器人中單片機核心芯片選用的是STM32F103VET6,該款芯片屬于增強型系列,可用資源豐富、功能強大,擁有定時器、串行通信接口、多種總線、ADC 模數轉換,并且可外接多種外設。單片機擁有功耗低,集成程度高、易于開發等特點,所以它通常被用于智能嵌入式控制。
由于單片機自身的IO 口驅動能力有限,不足以直接驅動電機,所以本系統采用TB6612FNG 電機驅動模塊來連接電機和單片機。TB6612 驅動芯片可以同時驅動兩個電機。此驅動以總線通信為核心,一條指令就能完成電機的速度、轉動時間以及轉動方向的設置。系統可通過單片機上的USART 串行通行接口發送指令信息,控制電機驅動。
紅外傳感器對環境光線適應能力較強。發射管發射出一定頻率的紅外波,當檢測到前方障礙物時,紅外波會反射回來被接收管接收,經過比較器處理后,信號輸出低電平信號并傳送到單片機的I/O 端口。通過單片機對距離進行分析,檢測的距離可以通過電位器進行調節。溫濕度傳感器的工作電壓是3.3~3.5V,該傳感器的特點是體積小、測量準確,信號傳輸距離相對較遠,輸出為單總線數字信號,可以實現雙向傳輸,與單片機進行同步通信。溫濕度傳感器對土壤進行溫濕度的檢測,將采集到的數據傳至單片機進行分析,從而對耕種的深度進行調節,智能地選擇最佳的耕種深度。超聲波傳感器主要利用傳感器發出的超聲波進行探測,即耕種前方一段距離的土地信息,從而保證機器人平穩運行。超聲波傳感器上既有接收信號端,又有發射信號端,可以通過發射和接收來計算詳細的耕種距離。
本系統所需要設計的軟件程序有主程序、傳感器系統程序、電機驅動程序、語音交互模塊程序、通信模塊程序等。本系統采用程序模塊化的設計,可以確保各個部分正常工作。下面對傳感器系統模塊和語音交互模塊進行重點介紹。
紅外傳感器接口電壓可選擇5V 或3.3V,傳感器接口有復位功能,紅外接口可接入紅外接頭,用來控制紅外傳感器。當紅外傳感器檢測到障礙物時,就將與紅外傳感器相連的引腳置位。通過相應的引腳狀態讀取函數,讀出此時紅外傳感器的狀態信息。在STM32中常用的引腳狀態讀取函數是:uint8 _t GPIO _ReadInputDataBit(GPIO _ TypeDef * GPIOx,uint16 _tGPIO_Pin)。
電機驅動模塊以總線的方式來驅動電機,通過發送指令來進行電機的速度、轉動時間以及轉動方向等方面的操作,比如:
#idPpwmTtime! 指令用來控制電機,其中,id 相當于每個總電機的“名字”,其范圍是000-254,必須為三位數,不足的位數補0;pwm 的范圍是0500-2500,必須為四位數,不足的位數補0;Time 表示旋轉時間(單位s),必須為四位數,范圍:0000-9999。
#000PID! 讀取ID 指令,讀取當前電機的ID 號,#000PID! 為一般讀取指令,#255PID! 為廣播讀取指令。
農業耕種機器人控制核心是采用STM32F103VE系列的單片機,以電機驅動、傳感器、語音交互、串口通信等電路作為外圍電路。超聲波傳感器和紅外傳感器共同為機器人提供避開前方障礙物服務。WiFi 模塊可以與手機相連,實現手機遠程控制;通信模塊與上位機相連,實現采集的數據上傳至上位機。該機器人的特點是:體積小、性能穩定、成本低、操作簡單,具有廣闊的發展和應用場景。