深松作业信息采集系统设计
2022-06-15白晋,刘宾,刘培,李辉
白 晋, 刘 宾, 刘 培, 李 辉
(1. 中北大学 信息与通信工程学院, 山西 太原 030051;2. 中北大学 省部共建动态测试技术国家重点实验室, 山西 太原 030051)
0 引 言
我国的农业现代化已经经历了三代的演化, 现在正在朝着第四代前进. 所谓的第四代, 是指借助物联网、 互联网、 大数据等现代技术手段和方法使农业现代化呈现出一个全新的面貌[1]. 深松是在翻耕的基础上发展起来的. 深松技术作为旱地保护性耕作技术体系的一项少耕措施, 利用深松机具加深耕层而不翻转土壤, 打破犁底层, 达到调节土壤三相比、 创造虚实并存的耕层结构、 减轻土壤侵蚀、 提高土壤蓄水抗旱能力的目的[2]. 深松有助于增强土壤的通风透气性, 要求松后地表平整, 以利于后续播种作业[3].
目前的农机深松作业远程监测装备大多基于GPS、 北斗信息化系统以及CDMA和TDCDMA等数字蜂窝移动通信平台进行实时监测并传送机器定位、 作业状况等信息, 通过客户端软件进行数据分析, 并对现场机器进行远程控制[4]. 中国农机化协会和中国农机化信息网在2017年联合面向社会开展了农机深松远程监测装备选型活动, 对市场上的大部分产品进行了测试, 发现目前的测试系统受作业区域和地理位置的影响较为严重. 在地块坡度较大及不规则时, 显示的数据有时与实际情况有一定偏差; 在地理位置较偏僻的地块, 有时无线信号较弱, 造成数据无法传输[5-6]; 此外, 在严酷的作业条件下, 监测装备的传感器、 数据线等设备如果只是简单裸露地安装在作业机具上, 而没有安全防护措施, 则不仅设备极易丢失, 而且传感器、 数据线等部件极易损坏[7].
本文设计了一种基于单片机的深松作业信息采集系统, 针对地理位置偏僻导致的数据无法传输问题, 系统增加了断点续传功能; 针对严酷作业环境下传感器以及其他部件易损坏的问题, 系统设计了RS485通信网络以及故障报警, 利用工业传输485线缆以及模块自检来保证系统的实用性. 经过上述设计, 系统可以将农机的作业轨迹实时地发送到服务器上, 并且在发送之前会先将轨迹进行存储, 方便以后调取. 系统根据犁具上的角度传感器将轨迹分类为行驶轨迹、 作业轨迹、 作业未达标轨迹等. 轨迹数据上传到服务器后, 就可以将作业面积计算出来并实时地将作业信息上传到手机端和PC端, 实现对作业质量的监测, 节省了人力物力, 对促进农业信息化发展等有重要意义.
1 系统简介
深松作业面积监测系统框图如图 1 所示. 车载终端负责实时采集角度信息、 图像信息以及农机经纬度信息, 当采集到的数据异常时, 终端将会发出报警, 并通过显示屏提示. 作业中采集到的数据先进行存储备份, 之后通过无线传输模块发送到服务器上, 服务器处理数据后会实时推送到PC端和手机端, 方便农民及时查看作业面积以及作业质量情况.
图 1 系统框架图
2 系统主要硬件设计
监测系统的硬件结构如图 2 所示, 主要包括轨迹信息采集、 角度信息采集、 无线通信模块、 主控STM32、 LCD液晶显示、 TF卡存储等电路模块组成.
图 2 系统硬件结构图
2.1 终端MCU选型
区别于大多数采用STM32F4系列的系统, 本终端采用STM32F103ZET6芯片作为主控芯片, F1系列芯片使用高性能的ARM© CortexTM-M3 32 bit的RISC内核, 工作频率为72 MHz, 内置高速存储器(高达512 K字节的闪存和64 K字节的SRAM), 丰富的增强I/O端口和连接到两条APB总线的外设[8-9]. 此外, F1系列芯片还包含多达2个IIC接口、 3个SPI接口、 5个USART接口、 1个SDIO接口、 FSMC等的标准和先进的通信接口, 同时, 有着丰富的定时器以及中断资源, 可以契合设计需求. 更为重要的是, 在保证系统功能的前提下, F1系列芯片的成本比F4系列减少约50%.
2.2 北斗导航模块
北斗导航授时模块选用了和芯星通UM220-IV N双系统高性能GNSS模块, 支持BDS B1+GPS L1双系统联合定位或单系统独立定位, 可接收QZSS信号.
该模块 VCC引脚上电需具有良好的单调性, 下冲与振铃需保障在 5%VCC 范围内. 若模块掉电后重新上电, 掉电时间须超过10 ms. 若模块供电不能满足这个要求, 模块有一定的概率不能正常启动. 所以, 在电路设计中供电采用LDO(Low Dropout Regulator)保证供电纯净. 为了获得良好的信噪比, 在PCB设计中进行了天线与电磁辐射源的隔离. 天线采用+3 V的有源天线, 通过VCC_RF引脚输出的馈电电感给天线供电.
2.3 无线传输模块
无线传输模块选用SIMCom公司2015年下半年最新生产的SIM800C模块. 该模块价格低廉, 可支持工作频段为GSM850, EGSM900, DCS1800, PCS1900的4频GSM/GPRS, 可以自动搜寻这4个工作频段, 也可以通过AT命令来设置频段, 低功耗实现SMS和数据信息的传输. 同时, 模块内嵌TCP/IP协议来保证数据传输安全[10-11].
模块VBAT的电压输入范围为3.4 V~4 V, 模块以最大功率发射时, 电流峰值瞬间最高可达 2 A, 从而导致在VBAT上有较大的电压跌落. 所以, 需要在VBAT附近设置一个大电容来稳压, 本文电路中使用100 μF的钽电容和一个10 μF的陶瓷电容并联进行稳压, 同时增加并联的33 pF和10 pF电容以有效去除高频干扰. 为防止浪涌对芯片的损坏, 在VBAT引脚上使用了一个齐纳二极管, 并在PCB布局时, 电容和齐纳二极管尽可能靠近模块的VBAT引脚.
2.4 数据存储模块
考虑到需要保证在拖拉机常年工作的情况下记录数据同时要方便取出查看或核实数据, 存储模块选用TF卡. TF卡具有体积小、 数据传输速度快、 可热插拔等优良的特性. 为了保证TF卡的读写速度, 选择用SDIO驱动. 在TF电路设计中由于数据传输速率高, 且TF卡集成度高易损坏, 所以加入了静电防护. 最终设计的终端PCB实物图如图 3 所示.
图 3 PCB实物图
2.5 角度传感器模块
MPU-6050是世界上第一款集成 6 轴Motion Tracking设备, 它集成了3轴MEMS陀螺仪, 3轴 MEMS加速度计, 以及一个可扩展的数字运动处理器DMP(Digital Motion Processor). 该模块可用IIC接口连接一个第三方的数字传感器, 比如磁力计, 扩展之后就可以通过其IIC或SPI接口输出一个9轴的信号.
本模块以STM32F103RCT6作为主控, 通过IIC接口与MPU6050进行通信, 在收到终端角度信息指令后通过RS485串口将角度信息发出. 最终模块实物图如图 4 所示.
图 4 角度传感器模块
2.6 串口通信模块
考虑到农机的实际工作环境, 终端与角度传感器模块、 身份识别模块、 摄像头模块的通信均采用RS485. RS485总线信道是专用的通信信道, 通过使用有较强的抗空间干扰性能的专用通信线缆(加上了屏蔽层), 有效地保证了通信效果; 在同一总线上同时挂接4个结点, 并在通信时采用轮询方式, 可以在较高的通信速率下仍然保持较好的通信效果. 在实际调试过程中采用115 200的波特率进行通信, 可以满足数据的实时性要求.
3 系统软件设计
系统中车载终端主程序的编写是在Keil开发环境下利用C语言实现的.
3.1 系统主程序设计
系统主程序流程图如图 5 所示. 车载终端采用STM32F103ZET6作为主控芯片, 各个功能模块实行的是串行执行的架构. 车载终端在上电后, 先进行系统以及端口初始化, 初始化内容包括主控芯片需要用到的全部外设以及中断资源. 初始化完成之后的具体流程如下:
1) 终端连接服务器. 连接成功后, 车载终端会将主控芯片的36 bit UID读取出来并向服务器发送, 发送完成后等待服务器返回12 bit的车载终端ID号.
2) 犁具ID识别. 车载终端向身份识别模块发送索取ID指令, 等待身份识别模块回传其MCU的36 bit设备号, 收到返回后将其发送到服务器上, 继续等待服务器返回12 bit的犁具ID号.
3) 读取作业信息. 终端继续发送指令读取身份识别模块中存储的基本作业信息, 如果读取不到或者信息需要更改, 则会提示农机手重新开始标定非工作角度和工作角度等信息, 并将重新标定好的作业角度信息存储到身份识别模块中.
4) 数据处理. 完成上述工作后, 终端正式进入数据采集状态, 将经纬度数据、 角度数据进行解算打包之后存储到TF卡中. 在TF卡存储备份完成后, 再将数据从TF卡中读出并通过SIM800C模块发送到服务器上. 定时2 s后, 重复上述过程.
图 5 主程序流程图
在整个程序编写过程中实现了程序模块化, 在单个模块的程序中均有着超时检测以及故障报警与处理. 在系统调试过程中发现, GPRS传输模块可能会由于信号或环境的影响而出现异常, 导致数据无法正常传输. 为了解决这一问题, 在数据传输程序编写时加入了断点续传的功能. 当出现数据发送失败的时候, 终端提示异常, 将TF卡当前的读地址保存之后继续进行数据采集和存储, 但不发送数据. 利用定时器每隔30 s对SIM800C模块进行重新连接服务器的操作, 直到连接成功为止. 一旦成功连接服务器, 就可以从之前断点处继续发送数据. 这样, 即使系统工作过程中出现服务器中断或者SIM卡欠费等异常情况, 农机手依然可以继续正常作业. 这些设计最大程度地保证了系统的实用性.
3.2 系统通信子程序设计
系统的通信子程序设计主要针对485总线上挂载的几个模块. 传感器模块和身份识别模块主要利用串口中断程序对终端不同指令的判断来响应并进行信息的交互, 用结束符0X0D0A作为指令尾以保证指令完整. 身份识别模块利用主控自带的FLASH模拟EEPROM来存储机具自身的基本信息. 串口中断程序指令如表 1 所示.
表 1 中断程序指令表
4 作业面积算法
相较于传统的距离乘作业幅宽的作业面积算法[12], 系统设计了三角剖分与鞋带公式相结合的算法. 先将深松机的作业轨迹点投影到坐标系中, 再利用三角剖分算法将轨迹点构建为Delaunay 三角网. 构建完成后, 三角网最外层的边界形成一个多边形, 这样就得到了作业面积的轮廓, 通过计算构建出的多边形面积即可得到作业面积.
4.1 三角剖分算法
Delaunay三角网是由轨迹点集中最近的3点形成的三角形的集合, 且各线段(三角形的边)皆不相交[13]. Delaunay 三角网具有空外接圆和最小内角最大两个性质: 空外接圆是指任何一个三角形的外接圆均不包含其他轨迹点[14]; 最小内角最大是指在所有可能的三角网中, Delaunay 三角网中的三角形的最小内角最大. 这些性质保证了Delaunay三角网成为最接近等角或等边的最优三角网[15]. 同时, 不论从作业区域何处开始构建, 最终都将得到一致的结果, 新增、 删除某一个轨迹点时只会影响临近的三角形.
逐点插入的Lawson算法是Lawson在1977年提出的[16]. 其基本原理为: 首先建立一个大的三角形或多边形, 把所有数据点包围起来, 向其中插入一点, 将该点与包含它的三角形的3个顶点相连, 形成3个新的三角形; 然后逐个对它们进行空外接圆检测, 同时用Lawson设计的局部优化过程LOP(Local Optimization Procedure)进行优化, 即通过交换对角线的方法来保证所形成的三角网为Delaunay三角网[17].
4.2 多边形面积计算
在得到多边形的轮廓之后, 利用构成多边形的顶点坐标进行恒定的交叉乘积来找到包围多边形的区域, 并从周围的多边形中找到其中的多边形区域[18-19]. 已知多边形顶点坐标分别A1(x1,y1),A2(x2,y2),A3(x3,y3), …,Ai(xi,yi)(i=1,2,3,…,n), 则多边形面积S的计算如式(1)~式(2)所示.
(x2y1+x3y2+…+x1yi)| ,
(1)
式中:i=1,2,3,…,n;xn+1=x1;yn+1=y1.
此时, 多边形的面积可表示为
(2)
式(2)中当下标大于n时, 满足:xn+1=x1,yn+1=y1.
5 系统测试
系统测试主要包括系统报警测试和系统面积精度测试两部分.
5.1 系统报警测试
系统异常报警测试选用深松机作为试验农机. 将其中一个传感器模块作为基准传感器水平固定于拖拉机车身, 将另外一个传感器模块电焊封固到深松铲上. 通过服务器将达标角度标定为30°, 通过深松铲的提升与下放改变两个传感器的相对角度. 当二者的相对角度大于30°时, 系统判定深松铲提升过高作业不达标, 此时声光报警器响起; 当相对角度小于30°时, 系统判定作业达标, 声光报警器停止蜂鸣. 现场测试图如图 6 所示.
图 6 报警测试现场图
在农机正常工作过程中, 突然拔掉终端SIM卡或者断开下属的单个模块, 声光报警器均会正常响应报警, 重新插入SIM卡以及下属模块重新连接成功后报警器停止蜂鸣.
5.2 系统面积精度测量实验
系统面积精度测量分别在大地块、 小地块以及不规则地块进行人工作业. 实验选用了一台小型联合收割机作为试验农机, 在农机上安装系统终端, 作业幅宽为2 m, 坐标点采集频率为2 s/次. 现场测试图如图 7 所示.
图 7 现场测试图
作业完成后分别用本文的面积算法与传统的距离乘幅宽算法进行计算, 并与实际面积进行对比求出两种方法的相对误差. 两种算法数据处理结果如表 2 所示.
由表 2 可知, 农机在大地块作业时, 两种算法的误差率都可以保持在4%以下; 但是, 在小地块以及不规则地块作业时, 本文算法明显优于传统算法. 考虑到农机在实际工作中多以大地块为主, 本文算法的相对误差率可以保持在4%, 基本可以满足实际测量的需求.
表 2 面积测试结果
6 结 论
本文基于主控芯片STM32F103ZET6设计了农机深松作业信息采集系统. 该系统不仅可以完成实时轨迹上传与备份, 而且具有单个模块异常的报警提示功能, 方便及时定位故障, 避免在作业时丢失数据造成不必要的损失. 同时, 利用本文算法计算的面积相对误差率在大块作业时可以保持在4%以下, 在不规则地块作业时面积相对误差率相对较高, 但总体都优于传统的距离乘幅宽的算法. 目前, 该系统已经在大同、 朔州等地区投入使用, 强化了深松作业质量检查, 确保了农机深松整地作业补助资金安全高效.在下一阶段将对地块的面积算法进行优化.