土壤深松作业智能监测系统
实验题目:土壤深松作业智能监测系统
课程简要信息
课程名称:基于ARM的嵌入式系统设计与应用
授课对象:电子信息类本科生(通信工程、电子信息工程、信息对抗、遥感科学与技术、电磁场与无线技术)
开课时间:第2学年,夏季学期
课程学时:40学时(理论24+实验16)
案例学时:16学时
先修课程:微机与微控制器原理;C语言与数据结构;数字逻辑电路与系统
课程教材:《嵌入式ARM系统原理与实例开发》
实验内容与任务
本项目要求利用倾角传感器、摄像头、具有卫星导航定位和4G网络传输功能的开发板进行土壤深松作业智能监测系统的嵌入式软件算法开发及验证,结合网络平台处理实采数据,设计深松作业合格率监测算法。实验共分为6个阶段,如图1所示,系统所使用的传感器和控制芯片驱动及其外围电路设计均无需学生完成。

图1 实验内容
项目需要完成的具体任务如下:
(1)使用倾角传感器模块测量空间角度;
(2)使用摄像模块采集并存储图像数据;
(3)农机深松作业深度测量:根据几何原理,利用倾角传感器测量农机深松作业深度,并控制摄像模块定时拍摄作业场景;
(4)使用卫星导航定位模块定位并显示当前位置坐标;
(5)使用4G网络模块传输数据到网络平台;
(6)农机深松作业面积测算:在网络平台端,设计农机深松作业面积测量算法,利用深松作业深度数据和轨迹位置坐标测算农机土壤深松作业面积。
**进阶实验任务:**结合系统测量的深松作业深度和面积,测算土壤深松作业的合格率。
实验过程及要求
3.1实验过程
(1)倾角传感器驱动(课内2学时);
(2)摄像头数据驱动(课内2学时);
(3)测量农机深松作业深度,拍摄作业情况(课内4学时);
(4)卫星导航定位模块驱动(课内2学时);
(5)4G网络模块驱动(课内2学时);
(6)深松作业面积及进阶实验任务深松作业合格率的测算(课内4学时)。
3.2理论要求
(1)学习掌握倾角传感器、摄像头、卫星导航定位、4G网络等模块的原理与使用;
(2)学习使用C语言进行嵌入式系统开发,使用python语言进行网络平台算法开发;
(3)学习掌握通过农具工作角度变化的几何原理测量深耕作业深度、通过深松作业轨迹点测量作业面积的算法。
3.3问题分析与总结要求
根据我国农业整地的现实案例,分析总结传统人力土壤深松作业监测方法的问题;研讨我国农机土壤深松作业信息智能测算新方案。
3.4验收答辩与交流要求
以实验小组为单位验收答辩,从系统、创新和工程实践三个角度对彼此作品展开评价。
相关知识及背景

图2 本实验相关工程背景
土壤深松作业可以打破犁底层,提高农业生产能力。我国传统的人力方法,无法满足大面积、高精度的深松作业质量监测需求。受省农业农村厅委托,本团队于2013年研发了全国首个智慧农机作业信息采集智能装备,集多传感器信息融合、网络平台数据分析等技术于一身。经农业部农机鉴定总站实测,其监测合格的土地未来三年产量平均增长20%以上,为全国的脱贫攻坚做出了扎实的贡献。
实验环境条件
本实验源自真实研发项目,实验软硬件平台由教学团队自主研发,包括传感器类实验仪器、车载数据集成平台、网络平台和设计软件工具等,如图3至图10所示。本实验平台可强化学生对嵌入式系统软硬件开发技能的掌握,满足学生定制化设计和调试复杂系统的需求。
(1)传感器类实验仪器
![]() |
![]() |
![]() |
|---|---|---|
| 图3 倾角传感器模块实物图 | 图4摄像头模块实物图 | 图5 定位及传输模块实物图 |
(2)车载数据集成平台

图6 显示作业深度的显示屏
(3)网络平台

图7 网络平台显示农机运行轨迹

图8 平台展示深松作业深度与合格率
(4)设计软件工具

图9 Keil嵌入式开发软件

图10 XCOM串口通信软件
教学目标与目的
本课程授课对象是电子信息类三年级本科生,授课时间是夏季学期,其教学目标主要包含以下四个方面:
(1)提升两性一度:科教融合,依托前沿科研项目成果设计实验内容,创新实验教学模式,开展难度大、挑战度高的开放式、探究性、项目化实验学习。
(2)培养学生能力:培养学生系统性思维、创新性思维、解决复杂工程问题的能力以及团队协作能力。
(3)厚植理想信念:隐性阐释“四个面向”,引导学生将创新成果应用到工程实践中去,服务社会,造福人民。
(4)恪守工程伦理:结合工程实际,阐释利益伦理、环境伦理的内涵,规范工程实践行为。
教学设计与实施进程
- 实验案例来源
我国的农业传统整地以旋耕为主,但其耕深仅为十几厘米,造成了土壤板结严重,肥力下降,水土流失日益加剧。为缓解这一问题,国家自2011年起,鼓励发展大马力拖拉机和配套深松机具,推广开展了土地深松作业,并给予作业补贴。土壤深松作业耕深一般超过25厘米,具有打破犁底层、强化作物根系、增强土壤肥力、建立土壤水库、有效增产、提高农业综合生产能力的功效。

图11 案例背景与实验案例设计思路
传统深松监测方法主要依靠人力,无法满足大面积、高精度作业质量监测需求。受省农业农村厅委托,本团队于2013年研发了全国首个用于深松作业监测的智慧农机作业信息采集智能装备。该智能装备集导航定位、多传感器信息融合、无线通信、人工智能和大数据技术于一身,经农业部农机鉴定总站实测,其监测合格的深松作业土地未来三年产量平均增长20%以上,有效增加了农民收入,为全国的脱贫攻坚做出了扎实的贡献。目前,该装备已经推广至全国28个省,辐射15000个合作社,服务超过300000台农机,累计监测农机作业质量超过6亿亩,市场占有率全国第一。
本实验案例源自该智慧农机作业信息采集智能装备研发项目,如图11所示,案例背景面向国家重大需求,设计内容契合工程应用实际,具有高阶性、创新性和挑战度,实现了知识传授、能力培养和价值塑造的有机融合。
- 教学设计思路
本实验案例采用基于费曼技巧的探究性、项目化团队协作型实验教学模式,通过设计“**课前预习-案例导入 -知识讲解-方案研讨-个人攻关-团队协作-费曼技巧方案展示-生生互评-结果验收”**等环节,锻炼学生的系统思维、创新思维和工程实践能力。
图12 基于费曼技巧的教学设计思路
首先明确实验案例背后的真实项目需求和实验需求,通过课前预习,引导学生查找相应资料,思考可行的解决方案;针对现实案例,提出问题,点名提问和分组研讨,引导所有学生思考,变被动听课为主动思考和费曼技巧讲解;针对重难点知识,进行理论讲解和实际演示;通过设置个人攻关和团队协作实验,锻炼学生针对不同类型问题独立攻关和协作突破的能力;通过生生互评、学生基于费曼技巧的知识展示和答辩,提升课堂学习效果,自然融入思政环节,引导学生掌握嵌入式系统知识,领会工程系统性思维,培养工程伦理道德,树立科学家精神和家国情怀。
- 教学设计目的
(1)知识传授
通过进行实验,使学生深入理解LED显示与接口、RS-232和I^2^C接口技术、ARM处理器开发流程、掌握任务、中断等基本概念和应用,掌握倾角传感器角度测量原理,卫星导航定位的基本原理以及空间与平面坐标变换方法,掌握使用倾角传感器测量农机深耕作业深度和面积的方法,体验通过耕作面积测量算法从算法设计到系统实现的全过程要素,为学生根植解决问题的系统思维。
(2)能力培养
使学生具备参阅技术手册后驱动传感器模块工作的能力,对传感器工作模式有深入的了解,使学生具备有效获取、评估和利用信息的能力。培养学生能够运用物理原理和几何关系测量运动变化,学会运用编程工具实现传感器的控制和信息处理,得出有效的测量结果,能够运用图像算法解决实际生产问题,以此锻炼学生的创新思维和工程实践能力。
(3)价值塑造
结合项目实际应用背景,培养学生具备分析、评估和解决问题的能力,发展创新思维,对信息进行批判性思考,提出有力的论据和观点。面向国际粮食安全战略需求,塑造学生服务社会,造福人民的责任感和使命感。通过“方案研讨和生生互评”引导学生恪守工程伦理,践行工程规范。
- 教学实施进程
(1)倾角传感器驱动(2学时)
课前预习:倾角传感器技术文档、RS-232接口文档、ARM系统设计与应用方法。
案例导入:提出我国农业整地作业的耕深监测问题,为了解决人力监测方案成本过高和质量过低的问题,需要给出一种自动化的智能监测方案。
方案研讨:引导学生讨论,为什么不用激光测距仪或者超声波传感器测距,以及如何用所学的知识和方法解决农机深松作业深度的测量问题。最终确定使用倾角传感器和几何方法,也支持学生采用其它方法。
知识讲解:倾角传感器测角原理、倾角传感器的驱动、Keil等软件的安装、使用和调试。
个人攻关:学生通过听讲和实践,完成Keil等软件的安装和使用;驱动倾角传感器,获得空间角度测量数据。
(2)摄像头驱动(2学时)
课前预习:摄像模块技术文档、摄像头驱动原理和协议框架。
案例导入:提出智慧农机作业信息采集智能装备的现实需求:监测农机整地耕作深度时,需要提供同步的现场作业照片。
方案研讨:引导学生讨论以何种模式提供图像数据,包括但不限于数据的采集方式、保存方式、上传方式以及呈现方式。
知识讲解:摄像头采样原理、I^2^C接口。
个人攻关:掌握摄像头驱动方法;摄像头定时采集图片数据并存储。
(3)农机耕作深度测量(4学时)
课前预习:农机深翻作业的目的和工作场景网络调研、现有的耕深测量技术方法调研。
方案研讨:引导学生讨论如何设计实现农机深松作业深度测量,需要从系统功能角度考虑哪些要素。
团队协作:在教师引导下,学生以小组合作的方式,讨论形成一套农机深松作业深度测量,并通过实验室提供的ARM系统控制板和传感器进行实现,在实验室环境下搭建测试平台,实现农机深松作业深度的测量。
(4)导航定位模块驱动(2学时)
课前预习:卫星导航定位原理,导航定位模块技术文档。
案例导入:继续分析我国农业整地作业的耕深监测需求,国家需要从宏观层面监控作业数据,农机耕深数据需要上传至网络,同时需要体现地理位置信息和面积信息。此时的智慧农机作业信息采集智能装备需要具有导航定位、数据上传和作业面积测算等功能。
方案研讨:引导学生根据现实需求的增加,在已有方案的基础上,设计新的智慧农机作业信息采集智能装备。
知识讲解:简介卫星导航定位基本原理。通过驱动导航定位设备、获取卫星导航定位坐标并进行数据处理与存储的实践。
个人攻关:驱动导航定位设备获取卫星导航定位坐标;离线保存运动轨迹坐标。
(5)4G网络模块驱动(2学时)
课前预习:了解移动通信链路的基本构成,4G网络模块的技术文档。
方案研讨:引导学生设计合适的数据采集和上传流程,包括农机深耕作业数据、图像数据、农机轨迹信息等数据。总结数据的网络传输机制需要注意的事项,以及备份机制。
知识讲解:通过驱动4G网络模块进行数据上传,培养学生的实际操作能力。指导学生应用网络通信相关的技术和协议,培养学生对网络通信的理解和应用能力。
个人攻关:驱动4G网络模块;上传数据至已有网络平台。
(6)农机耕作面积测量(4学时)
课前预习:调研农机深松作业面积测量的研究近况。
案例导入:实际工程需求中,需要使用农机耕作耕深和面积来衡量农机整地作业质量。提问学生思考,除了单纯的耕作作业面积之外,是否还需要其它指标来衡量深耕作业质量,提出实际作业中的漏耕和重耕问题。
方案研讨:引导学生设计耕作面积测量算法,引导学生讨论是否需要增加新的数据样式。如何在平台端利用耕作深度数据和轨迹坐标实现农机耕作面积计算。
知识讲解:python程序设计方法,漏耕和重耕含义。
团队协作:在教师提供的网络平台,运用之前开发设备上传的数据,开发测算农机耕作面积的算法。
进阶任务:在测算农机耕作面积的基础上,测算单一农机的漏耕面积和重耕面积,计算漏耕率和重耕率。
生生互评:引导学生评价彼此系统的优缺点,包括但不限于:网络传输数据流程的可靠性、导航定位轨迹呈现的效果、农机耕作面积测算的复杂性和精度、漏耕和重耕测算方法的合理性等。
- 课程思政设计
本校电子信息类专业的人才培养目标为:面向国际学术前沿和国家重大需求,着力培养引领未来电子信息领域发展的领军型创新人才。电子信息产业是国家战略性、基础性和先导性产业,本课程作为电子信息类重要的实践课,具有实践性强、创新成果应用广泛、对经济社会贡献大的特点,承担着培养学生科技报国的家国情怀和使命担当的育人责任。本课程的课程思政建设目标设定为:
(1)发挥课程育人主渠道作用,重构课程教学资源和育人环节,实现价值引领和两性一度的深度融合,培养学生“爱国、创新、求实、奉献、协同、育人”的科学家精神,筑牢学生“科学报国、创新强国、服务社会、造福人民”和解决国家重大需求、振兴我国电子信息产业的理想信念。
(2)以“两性一度”的一流课程建设标准构建了课程思政内容供给模式。将知识传授问题化,能力培养项目化,从知识点的历史回顾、前沿发展和工程应用三个维度挖掘问题和项目,问题和项目的创设统筹考虑价值引领、高阶性、创新性和挑战度,实现知识传授、能力培养和价值塑造的有机融合。
实验原理及方案
- 实验知识点、理论与方法
(1)倾角传感器原理
倾角传感器用于测量传感器所处空间角度,在水平面内的水平角(或称方位角),在垂直面内的垂直角(或倾斜角),空间角是水平角和垂直角的合成。农业信息采集中,我们所测量的是在水平面内的水平角。使用6轴陀螺仪进行测量。陀螺仪测量空间角度的原理是基础是牛顿第二定律:根据基本的物理原理,在一个系统内部,速度是无法测量的,但却可以测量其加速度。如果初速度已知,就可以通过积分算出线速度,进而可以计算出直线位移。
当倾角传感器静止时也就是侧面和垂直方向没有加速度作用,那么作用在它上面的只有重力加速度。重力垂直轴与加速度传感器灵敏轴之间的夹角就是倾斜角了。一般意义上的倾角传感器是静态测量或者准静态测量,一旦有外界加速度,那么加速度芯片测出来的加速度就包含外界加速度,故而计算出来的角度就不准确了,因此,6轴传感器增加了mems陀螺芯片,并采用优先的卡尔曼滤波算法。
(2)摄像头基本组成及驱动原理
本系统采用基于OV7725的串口摄像机作为摄像头模块,通过串口进行数据交互。OV7725具有30万像素,可以工作在-40°C~80°C的环境下,具有自动白平衡、曝光、增益,拥有120度的视角范围。以下是OV7725摄像头的工作原理:
光学成像原理:当光线通过镜头进入摄像头时,会被透镜组件聚焦到CMOS芯片上。CMOS芯片上的感光元件会将光线转换为电信号,并将其传递给图像处理电路进行处理。
模拟前端电路原理:模拟前端电路主要由增益放大器、滤波器和采样电路等部分组成。增益放大器负责将感光元件输出的微弱信号放大到合适的幅度;滤波器则对信号进行滤波处理,去除噪声和干扰;采样电路则对信号进行采样,并将其转换为数字信号。
数字信号处理原理:数字信号处理主要由A/D转换器、数字信号处理单元和压缩编码单元等部分组成。A/D转换器将模拟信号转换为数字信号;数字信号处理单元对数字信号进行去噪、增强等处理;压缩编码单元则将处理后的数字信号进行压缩和编码,以便传输和存储。
时钟电路原理:时钟电路主要负责提供摄像头所需的各种时序信号。它包括振荡器、分频器、锁相环等部分,能够提供稳定可靠的时序信号,确保整个摄像头正常工作。
控制电路原理:控制电路主要由控制单元和接口单元组成。控制单元负责控制图像采集、图像处理等各个部分的工作;接口单元则提供与外部设备通信的接口,如USB接口、I^2^C接口等。
以下是OV7725摄像头的部分原理图
OV7725 CMOS Sensor内部功能模块的框架,如下所示:

图13 OV7725内部框架
从框图中可见,在XCLK时钟的驱动下,感光元件阵列的进行图像的采样,接着输出640*480阵列的模拟数据(最初的原始数据)。在通过12Bit的AD的转换后,输入的模拟数据转换成数字信号(原始数字信号RAW RGB),并且通过DSP进行相关图像处理,最终输出所配置格式的10Bit视频流数据。
(3)深松作业深度测量
农机在进行翻压作业时,通常是使用拖拉机对农具进行牵引,农具会和拖拉机的液压悬挂系统进行连接,该悬挂系统主要作用是利用液压装置控制农具的上升和下降,从而控制农具作业的深度。拖拉机牵引深松农具的结构如图14所示。

图14 农机牵引深松农具结构图
其中1为液压臂,2为上拉杆,3为倾角传感器,4为下拉杆,5为耕具铲。
农机操作员通过农机驾驶室的操作杆控制液压臂的伸缩调整耕具姿态,在工作状态下,操作员会使耕具下降,使耕具铲入土地中,在农机行驶到地头时,操作员会使耕具提升,使耕具铲离开土层来方便农机拐弯或者调头。通过分析深松铲上升和下降的运动,可知当耕具铲插入土地时,通过测量下拉杆对水平地面的倾斜角度,结合下拉杆的长度以及耕具铲放在水平地面上的倾斜角度可以得到耕具铲深入土地的深度,倾角传感器安装在下拉杆上,测量下拉杆的倾斜角度。
图15是农机进行翻压工作时的状态图,未工作状态下倾角传感器测量的角度是
,农机相对于地面是水平状态,因此倾角传感器测量的角度是0。农机工作时的状态,倾角传感器测量的角度为
,下拉杆的长度为
。通过分析农具的上升和下降时液压悬挂系统的变化状态,可以得到在水平地面时的作业深度计算公式:
(1)
其中
为作业的深度。

图15 水平地面翻压作业工作状态图
(4)卫星导航定位模块驱动
农机导航定位导航主要依赖于全球导航卫星定位系统技术,它需要在农机安装导航定位模块,当农机在农田中工作时,导航卫星会不断的向农机导航定位模块发送农机导航定位导航时通过在农机上安装导航定位导航模块来接收导航卫星发送的信息,该信息会包含导航卫星发送信息的时间,导航定位模块接收到信息后会记录下接收信号的时间,通过发送时间和接收时间的时间差以及电磁波的传播速度就可以得到农机距离卫星的距离,如果想测量得到农机的三维坐标就需要至少3个卫星之间相互配合,但是,实际上因为卫星和农机距离是通过信号的传播时间差
乘以信号的传播速度
而得到的,由于信号传播数值非常的大,
的准确性对卫星和农机距离影响非常大,卫星上安置的原子钟,稳定度很高,接收机处所使用的时钟通常是稳定性一般的石英钟,因此接收机的时钟时间与卫星的时钟时间存在时间同步误差,再加上信号在实际传播过程中由于电离层、天气等影响因素也会产生一定的延时误差,将这种误差作为一个待定参数,因此至少需要四颗卫星才能得到准确的定位信息,这种定位的方法叫做伪距定位法,也是目前定位中比较常用的定位方法之一。
农机与卫星定位的三维位置图如图16所示,图中
表示为第
颗卫星的坐标值,
表示为第
颗卫星距离农机的距离,伪距定位方程可以表示为:
(2)
上面四个方程中的
为接收机时钟时间与卫星时钟时间的误差,也称为钟差,
为电磁波传播速度,
是由第
颗卫星发送时间与接收机接收时间的时间差乘以信号传播速度得到,即
。通过联立求解上述方程,可以得到农机的坐标,将坐标转换可以得到农机的经纬度点。

图16 农机与卫星导航定位的三维位置图
导航定位模块采用的是EC20模块,该模块支持4G网络以及多种GNSS导航定位系统。在导航定位方面,该模块内置了高精度的导航定位芯片,可以同时支持多种全球卫星定位系统,包括美国的GPS、俄罗斯的GLONASS等。这些卫星系统覆盖面积广,可以提供高精度的位置信息。本次设计选用该模块既可以实现数据上传的功能,而且也实现了导航定位的功能,在简化硬件设计的同时也控制了硬件的制作成本。
(5)4G网络模块驱动
信息采集终端采集的作业信息会上传至服务器终端,对于数据上传模块的选择至关重要,它涉及到农机数据采集和传输的可靠性和稳定性。在实际应用中,农机信息采集终端需要在复杂的环境中高效收集农机相关数据并及时上传,这就要求上传模块的性能必须要优秀。如果上传模块性能较差,会导致上传数据过程中出现中断、数据传输出错等问题,从而影响农机的实际使用效果。综合考虑数据上传的可靠性、稳定性以及成本,最终选用的是导航定位功能与4G通信功能二合一的EC20模块。该模块在移动数据传输方面,支持4G和3G网络,具有高速的数据传输速度和稳定的网络连接性能。
本次设计数据上传采用的通信协议为TCP协议,TCP协议是一种用于保证数据在网络中可靠传输的协议。TCP协议是基于连接的、面向数据流的传输协议,它通过确认应答机制、重传控制和流量控制等技术,确保数据在传输过程中的可靠性、完整性和顺序性。TCP协议面向应用层提供服务,应用层通过调用TCP协议提供的API接口来发送和接收数据。TCP协议用来控制两个网络设备之间的点对点通信,两端设备按作用分为客户端和服务器端。在本文中,信息采集终端为客户端,服务器端为客户端提供服务,通常等待客户端的请求信息,有客户端请求到达之后,及时提供服务和返回响应消息,客户端向服务器主动发送请求,并接收响应消息。服务器端与客户端 TCP 通信的流程图如图17所示。TCP通信通常是使用 Socket 套接字实现的,在 TCP 协议中,Socket API提供了一组用于建立、连接、发送和接收数据的函数,这些函数可以直接调用底层的网络通信接口,实现对网络通信的控制。

图17 TCP通信流程图
(6)深松作业面积测量
农机在实际工作过程中,由于驾驶员的习惯或者地形原因,农机不一定能保持稳定速度工作,扩充轨迹点可以更好地反映出农机的作业区域,而且可以通过扩充提高面积测算的精度。横向扩充方向是指农具幅宽的方向,径向扩充是指行驶轨迹点的方向。
假设每个数据点的经度和纬度分别用Lat和Lon表示,通过米勒投影转换为平面坐标系下的二维笛卡尔坐标公式为:
(3)
(4)
其中
是地球半径6371393,
为米勒投影常数2.3,
为圆周率。
在进行轨迹点扩充之前需要设置相关的参数,农具的宽度
和最大扩充距离
。假设在轨迹点
和
之间进行扩充,根据以下公式可以得到横向插值点
和径向插值点
:
(5)
(6)
(7)
对径向扩充后的轨迹点进行横向扩充,轨迹点位于农具幅宽的中心,对轨迹点进行横向扩充时,需要对轨迹点左边和右边都进行扩充,用
和
分别表示轨迹点两边横向扩充的第
个点,横向扩充的轨迹点坐标为:
(8)
(9)
(10)
(11)

图18 轨迹点扩充示意图
对轨迹点进行扩充示意图如图18所示,其中实心点为经过坐标转换的原始的农机作业路径轨迹点,空心点为进行横向和径向扩充的轨迹点。
轨迹点量化的示意图如图19所示,首先对扩充后的轨迹点进行遍历,找到最小的X坐标和Y坐标,并以最小的X坐标和Y坐标作为原点建立新的坐标系,设置单元格系数
,以最大扩充距离乘以单元格系数为一个单元长度,其中坐标
则表示为关于
的倍数。

图19 轨迹点量化的示意图
对所有轨迹点向下取整,然后统计每个单元格里的轨迹点的个数,最终可以得到每个单元格的权重,单元格的权重则为每个单元格中轨迹点的个数,单元格的权重也反映了周围原始点的密度。结合坐标(X,Y,Z)的量化过程,可以认为当权重为
时,该点所反应的面积从概率上是完全的。
因此对于每个量化后的坐标点(X,Y,Z),可以方便地计算出相应的点面积:
(12)
假设总点数为
,对每个点的面积进行求和得到总的面积:
(13)
- 实验方法及步骤
实验教师仅提供参考的实验方案,作为启发引导,各小组需根据课堂学习的理论知识,进行自主研究、讨论,确定最终方案后制定实验步骤,最终论证、验证方案。实验中间过程和最终结果作为实验方法的验证结果。
(1)倾角传感器驱动步骤
本实验使用STM32芯片,首先是针对于Keil的安装。分为两部分,一是MDK软件的安装,二是芯片支持包的安装。
首先点击:mdk_xxx.exe,安装MDK软件。

图20 软件安装包

图21 MDK-ARM安装截图
然后点击:Keil.STM32FXxx_DFP.x.x.x.pack,安装芯片支持包。

图22 Keil STM安装过程
本实验具体方案为:配合6轴螺旋仪,在已知初速度的情况下,通过积分算出线速度,进而计算出直线位移。将ARM芯片内部程序设定为监听模式,收到上位机的测量命令后,读取各轴的加速度对应的电压值,换算为当前的空间角度,并同校准后的补偿角度进行核算,得到校准后的水平角,分为三个字节,分别表示符号位,角度值小数点前两位,角度值小数点后两位。
考虑设备本身的测量误差,倾角传感器使用前需要进行水平矫正,并将补偿误差写入flash中记录,所以STM32中的程序功能主要分为两块:水平校准功能和倾角数据测量功能。
程序内部逻辑框图如图23所示。

图23 倾角传感器内部程序
程序本身存在擦除功能,发送擦除命令后,flash中之前写入的校准数据被擦除,程序可以进行重新校准。
(2)耕深测量方法
程序在解析完导航定位信息后,微控制器会通过串口向倾角传感器发送十六进制指令获取倾角数据,发送命令是长度为5个字节的数据帧,倾角传感器会向微控制器返回应答命令,应答命令的帧头为0x68,帧尾为0xf5。微控制器通过判断应答命令是否正确从而判断倾角数据是否有效,同理,当多次获取无效倾角数据,则认定倾角传感器出现异常,微处理器会利用倾角数据计算得出作业的深度信息。
表1 上传数据帧格式
| 序号 | 数据长度 | 描述 |
|---|---|---|
| (1) | 2 Byte | 帧头,<0x68><0x64> |
| (2) | 2 Byte | 主机号,用来对农机进行身份验证 |
| (3) | 2 Byte | 机具号,用来识别机具类型和机具尺寸 |
| (4) | 6 Byte | 深度,单位是cm,保留两位有效数字 |
| (5) | 14 Byte | 时间,年月日时分秒格式 |
| (6) | 1 Byte | 纬度半球,N表示北半球,S表示南半球 |
| (7) | 11 Byte | 纬度dd.ddddddd(度分)格式 |
| (8) | 1 Byte | 经度半球,E表示东经,W表示西经 |
| (9) | 11 Byte | 经度dd.ddddddd(度分)格式 |
| (10) | 4 Byte | 地面航向(000.0~359.9 度) |
| (11) | 4 Byte | 地面速率(000.0~999.9 节) |
| (12) | 2 Byte | 帧尾,<0x65><0x64> |
当数据帧上传到微处理器和平台端后,分别进行显示和记录数据。屏上显示为图24(a),平台端结果为图24(b)。
![]() |
![]() |
|---|---|
| (a) 屏上显示 | (b) 平台显示 |
| 图24 耕深数据显示 | |
(3)导航定位模块驱动
首先获取导航与定位模块接收到的定位信息,微控制器会通过串口向导航定位模块发送"AT+QGPSGNMEA=\042RMC\042\r\n"命令获取定位信息,定位信息的数据格式是$GPRMC 格式,该信息格式每行以字符“$”开头,以<CR><LF>为结尾,定位信息的数据帧格式如表2所示,在定位信息中包含有时间、维度半球、经纬度、地面速率、地面航向等信息。在获取到定位数据帧后,程序会通过判断定位数据帧的定位状态字符判断定位信息是否有效,如果连续 N 次无效,则认定此时无定位信号,N 是设定的无效次数阈值。
表2 $GPRMC数据帧格式
| 序号 | 描述 |
|---|---|
| (1) | UTC 时间,hhmmss(时分秒)格式 |
| (2) | 定位状态,A 表示有效定位,V 表示无效定位 |
| (3) | 纬度 ddmm.mmmm(度分)格式 |
| (4) | 纬度半球,N 表示北半球,S 表示南半球 |
| (5) | 经度 dddmm.mmmm(度分)格式 |
| (6) | 经度半球,E 表示东经,W 表示西经 |
| (7) | 地面速率(000.0~999.9 节) |
| (8) | 地面航向(000.0~359.9 度) |
| (9) | UTC 日期,ddmmyy(日月年)格式 |
| (10) | 磁偏角(000.0~180.0 度) |
| (11) | 磁偏角方向,E 表示东,W 表示西 |
| (12) | 模式指示,A 表示自主定位,D 表示差分,E 表示估算,N 表示数据无效 |
| (13) | 校验和,本条语句从'$'到'*'之间的所有字符进行异或得到的 16 进制数 |
为了更直观的看到信息采集终端接收到的定位信息,将信息采集终端的串口1连接到电脑,将信息采集终端程序运行过程中的中间变量通过串口传输给电脑,利用串口调试助手可以直观的看到程序运行过程中的一些变量值,如图25所示,图中打印出的是导航与定位模块定位得到的$GPRMC 格式的数据帧,其中包括经纬度,时间信息以及航速航向信息。平台轨迹显示如图26所示。

图25 串口实验图片

图26 平台轨迹显示
(4)4G网络驱动模块驱动
数据的上传软件设计流程图如27所示。在数据上传的过程中我们充分考虑了系统在实际应用的一些突发情况,比如如果所在地的信号不好,则系统可能会断开与服务器的连接,从而造成了数据的丢失,为了应对这种情况,我们在软件设计的过程中充分保证了数据的可靠传输,当系统与服务器连接正常情况下,会对数据是否上传成功进行判断,当系统接收到服务器发送的正确回执,则表示数据上传成功,当数据上传失败时,在TF卡进行存储时会进行标记,表示该数据上传失败,等到下次发送会将该数据重新发送。如果系统出现与服务器连接中断的时,系统不会频繁地进行重连服务器,频繁的重连服务器会占用微处理器从而影响数据的采集,此时,只需要每间隔几分钟进行一次重连,当重新连接后,将未上传的数据进行上传即可。

图27 数据上传逻辑框图
服务器端的信息接收程序首先会指定一个端口来创建SeverSocket,并使用accept方法进行监听,这将阻塞服务器线程,等待用户请求。在客户端指定服务的主机IP和端口号来创建Socket,并请求连接服务端SeverSocket,这也是TCP建立连接的第一次握手,此时服务器accept方法被唤醒,同时返回一个和客户端通信的Socket,这是第二次握手。客户端接收到服务器端发送的接收连接的回应会请求服务器的服务,并发送数据,这是第三次握手。客户端和服务器端建立连接,在客户端和服务端分别使用 Socket 来获取网络通信输入输出流,并按照一定的通信协议对 Socket 进行读写操作。通信完成后,在客户端和服务器中分别关闭 Socket。(5)利用耕深数据和位置信息计算耕作面积
图28(a)为地图中显示的农机作业轨迹,图28(b)为原始经纬度点,图28(c)为经过转化的二维笛卡尔坐标。
![]() |
|
|---|---|
| (a) 地图显示 | |
![]() |
![]() |
| (b) 原始轨迹点 | (c) 平面坐标系转化后轨迹 |
| 图28 轨迹点图 | |
对作业面积算法进行算法仿真得到如图29所示结果,在试验田中使用终端进行实际作业采集农机作业的轨迹点,将采集的轨迹点输入到作业面积算法中进行作业面积计算。
![]() |
![]() |
|---|---|
| (a) 轨迹点扩充图 | (b) 作业地形栅格化图 |
| 图29 仿真结果图 | |
根据作业面积测算算法,将农机轨迹点上传至网页平台端,将在平台进行作业面积的计算和轨迹展示,具体如图30所示。

图30 农机作业详情
实验报告要求
(1)实验报告应包括实验目的、实验内容、实验平台、实验方案设计、实验过程、实验结果、实验总结与展望等内容。
(2)实验方案包括总体设计方案、各模块试验方案,建议用流程图展示,突出程序化、过程化思考过程。
(3)实验过程应给出每个模块的关键步骤和代码。
(4)实验结果应给出每个模块的实验结果、最终实验结果,并要求对结果进行分析。
(5)实验总结与展望应分析当前试验方案和结果的创新点及不足,论述将来的发展方向。
考核要求与方法
实验案例总共包含6个必做实验任务和1个选做的进阶实验任务,必做实验每项分数表示为
,满分为100分,选做实验分数表示为
,作为附加分,满分为10分。本门实验课程的最终分数表示为
,为6个必做实验的平均分加上选做实验的附加分,若总分超过100分,则按满分计。

具体评价内容如下表所示
| 实验内容 | 评价内容 | 分数 |
|---|---|---|
| 实验1:倾角传感器数据采集 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
实验验收结果:
|
50 | |
| 实验2:摄像头驱动 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
实验验收结果:
|
50 | |
| 实验3:农机耕作深度测量 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
费曼技巧方案展示
|
10 | |
生生互评
|
10 | |
实验验收结果:
|
30 | |
| 实验4:导航定位模块驱动 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
实验验收结果:
|
50 | |
| 实验5:4G网络模块驱动 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
实验验收结果:
|
50 | |
| 实验6:农机耕作面积测量 | 课前预习情况:
|
20 |
方案讨论表现:
|
30 | |
费曼技巧方案展示
|
10 | |
生生互评
|
10 | |
实验验收结果:
|
30 | |
进阶任务评价:
|
10 |
项目特色或创新
(1)**科教融合:将前沿科研项目成果转换为实验教学案例。**采用三维科教融合育人途径,从知识的历史回顾、前沿发展和工程应用三个维度挖掘问题和项目,将科研团队高水平创新成果通过分解、简化和移植等方式融入实验案例项目,提升了实验内容和学习过程的价值性、高阶性、创新性、前沿性和挑战度。
(2)**思政融入:知识传授问题化,能力培养项目化,问题和项目的创设统筹考虑两性一度和价值引领。**采用了“融合价值引领于两性一度”的实验案例内容供给模式,并注重阶梯化、探究性,实现了知识传授、能力培养和价值塑造的有机融合。
(3)**教学模式:基于费曼技巧的探究性、项目化团队协作型实验。**通过“课前预习-案例导入-知识讲解-方案研讨-个人攻关-团队协作-费曼技巧方案展示-生生互评-结果验收”等环节的学习和锻炼,有效提升了学生的系统思维、创新思维和工程实践能力。







