王 超
(長安大學工程機械學院,陜西 西安 710064)
農田開溝是農田作業的關鍵環節之一,其深度大小直接決定了施肥深度、種子播種深度和覆蓋土量的大小,播種深度過深或過淺都會影響到種子的出苗率,施肥質量[1]及土壤覆蓋質量[2]對種子出苗和作物產量也有著重要影響。我國南方多丘陵地形,農田地貌復雜且坡度變化較大[3-4],大型農業自動化機械難以得到廣泛應用,故目前仍以小型人工手扶式農機為主,其雖然具有環境適應性強、移動靈活、成本低及效率較高等優點[5-6],但是復雜多變的地形特點使人工難以僅憑經驗達到期望的開溝深度,導致開溝深度的一致性較差,農作物的產量及質量難以得到有效提升。因此,實時測量并顯示地形高度,進而憑借人工經驗調整犁刀高度,對于提高農田作業質量與農作物產量具有重要的現實意義。
目前,許多學者對農田地形與開溝深度測量的方法及技術進行了研究[7-10],并取得了良好的應用效果,但應用對象主要集中在大型開溝機上,其自動化程度較高,將農田地形與開溝深度的測量數據輸入至控制系統中可實現犁刀的自適應調整,從而達到期望的開溝深度且保證開溝深度一致。然而,由于小型手扶式開溝機不具備實現自適應調整的硬件資源,難以應用此類方法與技術。鑒于此,筆者將應用對象聚焦于小型手扶式開溝機,所設計的測量系統以STM32單片機為核心,采用超聲波傳感器測量地形高度,將數據實時發送至OLED 顯示屏,可為人工調整犁刀高度提供依據,采用串口通信與ESP8266 WIFI模塊[11],將開溝深度數據傳輸至上位機軟件,并實時刷新與保存數據,可為后期調整開溝深度提供依據,助力農業生產。
本系統的總體方案如圖1 所示,主要包括數據采集、數據顯示與數據保存三部分。數據采集部分采用三個HY-SRF05 超聲波傳感器,前置傳感器安裝在耕耘機的前端,用于測量未開溝地形(位于開溝線路上)的高度H;后置與側置傳感器分別安裝在耕耘機犁刀的后側與左側且兩個傳感器處于同一橫向位置,分別用于測量已開溝地形的高度H1與未開溝地形(非開溝線路上)的高度H2,進而根據公式h=H1-H2計算出開溝深度h,超聲波傳感器的安裝示意圖如圖2 所示(以小型手扶鏈軌式耕耘機為例)。數據顯示部分采用OLED 顯示屏,用于實時顯示STM32 采集的未開溝地形高度H,為人工調整犁刀高度提供依據(H數值較大,說明地勢較低,需抬升犁刀;H數值較小,說明地勢較高,需壓低犁刀)。數據保存部分采用串口通信與ESP8266 WIFI 模塊將開溝深度h傳輸至上位機軟件(ESP8266 WIFI 模塊與上位機處于同一網段),并實時刷新與保存數據,待開溝作業結束后查看保存的數據,可對未達到期望開溝深度的位置進行人工調整。

圖1 系統方案框圖

圖2 超聲波傳感器安裝示意圖
本系統采用的單片機以STM32F407ZGT6 芯片為核心,芯片采用Cortex M4 內核,帶FPU 和DSP 指令集,自帶1 M 字節的FLASH,外擴1 M 字節SRAM 和16 M 字節FLASH,可滿足大內存需求和大數據存儲。芯片主頻為168 MHz,含有5 個時鐘源,帶獨立看門狗與窗口看門狗,支持采用SWD、JTAG 及串口的方式下載程序;芯片共144 個引腳,其中包括122 個通用IO(GPIO),可復用映射為外設接口;芯片內置14個定時器,包括2 個高級定時器與10 個通用定時器,可實現定時、PWM 輸出、輸入捕獲與互補輸出;芯片內置3 個ADC 控制器,每個ADC 控制器有16 個外部通道,內置2 個DAC 控制器與2 個DMA,支持采用CAN、485、232、IIC 與SPI 等協議與外設之間傳輸數據。其中,本測量系統用到12 個GPIO、6 個定時器(包括4 個通用定時器與2 個高級定時器)、3 個定時器中斷、IIC通信、1 個串口收發器和1個串口中斷。
本系統采用的超聲波傳感器型號為HY-SRF05,其測距范圍為2 cm~450 cm,精度為3 mm,由超聲波發生器、接收器與控制電路組成,有VCC、Trig、Echo、OUT 與GND 共5 個外部引腳,基本工作原理如圖3 所示。單片機的GPIO 口發送給超聲波傳感器Trig 引腳一個≥10 μs 的高電平,超聲波發生器向外循環發出8 個40 kHz 的脈沖信號,與此同時,超聲波傳感器的Echo 引腳被置為高電平,當發出的聲波信號與被測物體相遇時,聲波返回,最終被接收器接收。Echo 引腳被置為低電平,因此,Echo 引腳被置為高電平的時間即為聲波被發出與聲波被接收之間的時間差,時間差的一半與聲波在空氣中傳播速度的乘積即為超聲波傳感器與被測物體之間的距離。

圖3 超聲波測距原理
本系統利用高級定時器1、通用定時器2 與通用定時器3 的輸出比較功能產生高電平時間為20 μs(≥10 μs)的PWM 方波信號,單片機的3 個GPIO 復用映射為定時器對外接口,將PWM 方波信號分別發送至前置、后置與側置傳感器的Trig 引腳;利用通用定時器4、通用定時器5 與高級定時器8 的輸入捕獲功能分別獲取前置、后置與側置傳感器Echo 引腳的高電平時間。
ESP8266 WIFI 模塊是基于ESP8266 芯片,增加了必要外圍電路、串口FLASH 的UART-WIFI 模塊,其成本低、使用簡單、功能強大,既可獨立運行訪問網絡,也可搭載于其他核心芯片。模塊可在AP(熱點)、STA(客戶端)與AP+STA(既作為熱點也作為客戶端)三種模式下工作,支持TCP 與UDP 協議通信,模塊支持在透傳模式下進行數據傳輸,即將本地串口通信轉換成基于TCP/UDP協議的網絡通信。
在本系統中,STM32 單片機通過串口收發器2向ESP8266 WIFI 模塊發送AT 指令對ESP8266 WIFI模塊進行初始化配置,將模塊配置為STA 工作模式,ESP8266 WIFI 模塊與上位機連接在同一網段中,采用TCP 協議與上位機軟件實現通信,在透傳模式下傳輸數據。
OLED,即有機發光二極管(Organic Light-Emitting Diode),具有自發光、對比度高、厚度薄、視角廣、分辨率高、反應速度快、使用溫度范圍廣、構造較簡單、不需要高壓(+3.3 V 供電)等優點,可采用多種接口方式與STM32 通信,主要包括6800、8080 兩種并行接口方式、4 線SPI 接口方式以及IIC接口方式。
本系統采用的OLED 顯示屏以SSD1306 芯片為核心,屏幕顯存大小為128×64 bit,分為8 頁,每頁128 字節,剛好組成128×64 的點陣大小,模塊與STM32 單片機之間采用IIC 通信,可實現英文及漢字等字符的寫入。
本系統硬件連接如圖4 所示(以連接一個HYSRF05 超聲波傳感器為例)。系統通過ST-Link 仿真器采用SWD 下載方式將程序燒寫入STM32F407ZGT6芯片中,單片機的PA8、PA5 與PA6 引腳分別與前置、后置、側置傳感器的Trig 引腳連接,PB6、PA0 與PC6分別與前置、后置與側置傳感器的Echo 引腳連接,超聲波傳感器的OUT 引腳浮空,VCC 與GND 引腳分別與單片機的+3.3 V 與GND 引腳連接。ESP8266 WIFI模塊的EN 引腳與PB12 連接,RST 引腳與PB13 連接,TX 引腳與單片機串口2 的RX 引腳(PA3)連接,RX引腳與串口2 的TX 引腳(PA2)連接,GND 與Vin 引腳分別與單片機的GND 與+5 V 引腳連接。OLED 顯示屏的SCL 引腳與單片機的PB8 連接,SDA 引腳與PB9 連接,GND 與VCC 引腳分別與單片機的GND 與+3.3 V(不能容忍+5 V)引腳連接。

圖4 系統硬件連接實物圖
系統軟件部分主要包括軟硬件初始化、超聲波傳感器測距、OLED 顯示屏數據寫入與WIFI 數據傳輸,主程序流程如圖5 所示。

圖5 系統主程序流程圖
STM32F407 單片機上電復位后,系統將首先對定時器、IIC、OLED、串口及ESP8266 WIFI 模塊等軟硬件進行初始化,其中,定時器初始化主要包括GPIO 配置、時基配置、輸出比較配置、輸入捕獲配置與定時器中斷配置;IIC 初始化主要包括GPIO 配置、IIC起始信號配置、IIC終止信號配置、IIC等待應答配置與數據讀寫配置,OLED 初始化主要包括SSD1306芯片復位、寄存器復位、清屏顯存及開啟顯示;串口初始化主要包括GPIO 配置、波特率配置與串口中斷配置;ESP8266 WIFI 模塊初始化主要包括GPIO 配置、AT 指令測試、STA 模式設置、TCP 通信協議設置及透傳模式設置。
定時器初始化完成后,高級定時器1、通用定時器3 與通用定時器5 持續產生高電平時間為20 μs 的PWM 方波,在通用定時器2、通用定時器4 與高級定時器8 中斷服務函數中對單片機PB6、PA0 與PC6 引腳處的高電平信號進行計數與溢出判斷。結合定時器頻率計算出聲波被發出與被接收之間的時間差T,由公式d=v×(T/2)(v為聲波在空氣中的傳播速度,取340 m/s)計算出未開溝地形(位于開溝線路上)高度H、已開溝地形高度H1與未開溝地形(非開溝線路上)高度H2,進而由公式h=H1-H2計算出耕深h。隨后,單片機通過IIC 通信將數據寫入OLED 顯示屏,通過串口2 將數據傳輸給ESP8266 WIFI 模塊,WIFI模塊通過TCP 通信將數據傳輸至上位機軟件,實時刷新與保存數據。
筆者以STM32 單片機為核心設計了一種用于測量農田地形與開溝深度的測量系統,系統數據采集部分采用了3 個HY-SRF05 超聲波傳感器,數據顯示部分采用了IIC 通信接口方式的OLED 顯示屏,數據保存部分采用了ESP8266 WIFI 模塊將數據傳輸至上位機軟件,并實時刷新與保存數據。本系統性能穩定,成本較低,適合應用于小型手扶式耕耘機,為人工調整犁刀高度和后期調整開溝深度提供依據。