基于STM32 的农田地形与开沟深度测量系统设计

2022-07-05 05:31
南方农机 2022年13期
关键词:高电平开沟串口

王 超

(长安大学工程机械学院,陕西 西安 710064)

0 引言

农田开沟是农田作业的关键环节之一,其深度大小直接决定了施肥深度、种子播种深度和覆盖土量的大小,播种深度过深或过浅都会影响到种子的出苗率,施肥质量[1]及土壤覆盖质量[2]对种子出苗和作物产量也有着重要影响。我国南方多丘陵地形,农田地貌复杂且坡度变化较大[3-4],大型农业自动化机械难以得到广泛应用,故目前仍以小型人工手扶式农机为主,其虽然具有环境适应性强、移动灵活、成本低及效率较高等优点[5-6],但是复杂多变的地形特点使人工难以仅凭经验达到期望的开沟深度,导致开沟深度的一致性较差,农作物的产量及质量难以得到有效提升。因此,实时测量并显示地形高度,进而凭借人工经验调整犁刀高度,对于提高农田作业质量与农作物产量具有重要的现实意义。

目前,许多学者对农田地形与开沟深度测量的方法及技术进行了研究[7-10],并取得了良好的应用效果,但应用对象主要集中在大型开沟机上,其自动化程度较高,将农田地形与开沟深度的测量数据输入至控制系统中可实现犁刀的自适应调整,从而达到期望的开沟深度且保证开沟深度一致。然而,由于小型手扶式开沟机不具备实现自适应调整的硬件资源,难以应用此类方法与技术。鉴于此,笔者将应用对象聚焦于小型手扶式开沟机,所设计的测量系统以STM32单片机为核心,采用超声波传感器测量地形高度,将数据实时发送至OLED 显示屏,可为人工调整犁刀高度提供依据,采用串口通信与ESP8266 WIFI模块[11],将开沟深度数据传输至上位机软件,并实时刷新与保存数据,可为后期调整开沟深度提供依据,助力农业生产。

1 系统总体方案

本系统的总体方案如图1 所示,主要包括数据采集、数据显示与数据保存三部分。数据采集部分采用三个HY-SRF05 超声波传感器,前置传感器安装在耕耘机的前端,用于测量未开沟地形(位于开沟线路上)的高度H;后置与侧置传感器分别安装在耕耘机犁刀的后侧与左侧且两个传感器处于同一横向位置,分别用于测量已开沟地形的高度H1与未开沟地形(非开沟线路上)的高度H2,进而根据公式h=H1-H2计算出开沟深度h,超声波传感器的安装示意图如图2 所示(以小型手扶链轨式耕耘机为例)。数据显示部分采用OLED 显示屏,用于实时显示STM32 采集的未开沟地形高度H,为人工调整犁刀高度提供依据(H数值较大,说明地势较低,需抬升犁刀;H数值较小,说明地势较高,需压低犁刀)。数据保存部分采用串口通信与ESP8266 WIFI 模块将开沟深度h传输至上位机软件(ESP8266 WIFI 模块与上位机处于同一网段),并实时刷新与保存数据,待开沟作业结束后查看保存的数据,可对未达到期望开沟深度的位置进行人工调整。

图1 系统方案框图

图2 超声波传感器安装示意图

2 硬件设计

2.1 单片机模块

本系统采用的单片机以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个串口中断。

2.2 超声波传感器模块

本系统采用的超声波传感器型号为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 引脚的高电平时间。

2.3 ESP8266 WIFI模块

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 协议与上位机软件实现通信,在透传模式下传输数据。

2.4 OLED显示模块

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 通信,可实现英文及汉字等字符的写入。

2.5 系统硬件连接

本系统硬件连接如图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 系统硬件连接实物图

3 软件设计

系统软件部分主要包括软硬件初始化、超声波传感器测距、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 通信将数据传输至上位机软件,实时刷新与保存数据。

4 结论

笔者以STM32 单片机为核心设计了一种用于测量农田地形与开沟深度的测量系统,系统数据采集部分采用了3 个HY-SRF05 超声波传感器,数据显示部分采用了IIC 通信接口方式的OLED 显示屏,数据保存部分采用了ESP8266 WIFI 模块将数据传输至上位机软件,并实时刷新与保存数据。本系统性能稳定,成本较低,适合应用于小型手扶式耕耘机,为人工调整犁刀高度和后期调整开沟深度提供依据。

猜你喜欢
高电平开沟串口
预切种式甘蔗横向种植机开沟器结构优化
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
秋施基肥单、双边开沟对葡萄品质的影响
秸秆捡拾开沟抛撒机的研制
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
船舶电子设备串口数据的软件共享方法
数字电子技术的应用
浅谈物理电路与数字电路