毕业设计—除草机运行状态监控系统设计(案例分析)

摘 要

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对除草机运行状态监控等问题,对如何通过计算机除草机运行状态监控进行研究分析,然后开发设计出除草机运行状态监控系统已解决问题。

除草机运行状态监控系统主要功能模块包括监控页面、方向、档位、速度、温度、湿度、运行状态,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,本系统的前端界面涉及的技术主要有HBuilder X和Uniapp,通过这些技术可以实现前端页面的美观和动态效果使之符合广大群众的审美观,后台主要使用的技术主要有Java编程语言,根据Ajax异步模式的除草机运行状态监控系统解决了传统管理方式所带来的人力、物力和时间上的虚耗和交流深度的限定,这让除草机运行的过程更快捷、准确、便利。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对除草机运行状态监控系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现除草机运行状态监控系统和部署运行使用它。

关键词:除草机运行状态监控;Java编程语言;

Design of a monitoring system for the operation

 status of weeding machines

Abstract

In the information society, there is a need for targeted information acquisition channels, but the expansion of channels is basically the direction of people's efforts. Due to the deviation in perspective, people often can obtain different types of information, which is also the most difficult topic for technology to overcome. In response to issues such as monitoring the operation status of weeding machines, research and analysis were conducted on how to monitor the operation status of weeding machines through computers, and a monitoring system for the operation status of weeding machines was developed and designed to solve the problem.

The main functional modules of the lawn mower operation status monitoring system include monitoring page, direction, gear, speed, temperature, humidity, and operation status. It adopts an object-oriented development mode for software development and hardware installation, which can effectively meet the actual needs of use and improve the corresponding software installation and program coding work. The front-end interface of this system mainly involves HBuilder X and Uniapp technologies, Through these technologies, the aesthetics and dynamic effects of the front-end page can be achieved to meet the aesthetic standards of the general public. The main technologies used in the backend are Java programming language, and the Ajax asynchronous mode based weed control machine operation status monitoring system solves the waste of manpower, material resources, and time brought by traditional management methods, as well as the limitations of communication depth. This makes the process of weed control machine operation faster, more accurate, and convenient. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. An analysis was conducted on the various requirements and technical issues of the weeding machine operation status monitoring system, demonstrating the necessity and technical feasibility of the system. Then, a basic introduction was made to the technical software and design ideas required for designing the system. Finally, the implementation and deployment of the weeding machine operation status monitoring system were carried out.

Keywords: monitoring the operation status of weeding machines; Java programming language;

目   录

第1章 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 本文主要研究

第2章 除草机运行状态监控系统总体设计

2.1 除草机运行状态介绍

2.2 自主作业流程分析

2.3 管控系统整体结构与功能框架

2.4 可行性分析

2.4.1 技术可行性

2.4.2 经济可行性

2.4.3 操作可行性

2.5 系统开发流程

2.6 非功能需求分析

2.7 安全性需求分析

第3章 系统移动客户端设计与实现

3.1 Web端总体设计

3.1.1 运行原理

3.2 功能框架

3.3 客户端实现

3.4 作业数据统计管理

3.5 登陆模块

3.6 地图定位显示

3.7 状态数据监测

3.8 作业方案创建与管理

第4章 系统测试

4.1 系统测试的意义

4.2 测试方法

4.3 测试分析

第5章 总结与展望

参考文献

致谢

第1章 绪论

1.1 研究背景与意义

状态监控是国内外研究的前沿课题,世界第一台除草机由英国人普拉克内特于1805年发明,它有收割谷物、切割杂草的功能,由人力驱动,通过齿轮传动带动旋刀割草,是一种简单的手动工具。随着内燃机的普及应用,英国工程师伦敦恩斯于1902年发明了世界第一台由内燃发动机为动力的除草机,为现代除草机奠定了机械基础。随着自动化农机的迅速发展,除草机的发展也迅速崛起,在19世纪70年代之后,随着欧美等地区的经济水平迅速提升,越来越多的小型除草机进入欧美人的家庭,在90年代后随着西方技术能力的提升,农业的机械化种植也越来越普遍,除草机作为农机的一种,在此时技术水平也得到极大的提升,到今天,种类和品牌也变得繁杂多样,但在除草机的状态监控上仍存在一定的研究缺口。

1.2 国内外研究现状

我国的草坪机械设备起步较晚,70年代改革开放后才缓慢发展,直至90年代后期国内市场受到西方资本的青睐,开始对华投资建厂,因此开始着手割草机的设计加工,由此也开辟了国内除草机的市场,除草机的需求被逐渐开拓出来。目前中国生产制造的除草机已出口至世界各地,家庭消费级除草机占全球总销量的30%以上。

我国作为世界第一大农业国,用不足世界10%的土地资源养活了世界20%的人口,在这个寸土寸金的时代,去除田间杂草是对农作物产量的有力保障,现有的除草方式主要有化学药剂除草、人工除草、机械除草等方式。使用除草剂除草必然破坏田间的生态系统,对环境造成污染。而人工除草劳动强度大、作业效率低、成本高等缺点也不可大面积推广。机械除草不但可以有效去除杂草,而且不会造成环境污染、作业效率高,运用机械技术进行除草作业已成为必然趋势。实现农用机械的远程监控可以提升其自动化程度,减轻农业工作者的劳动压力,提升农业机械的作业效率等。

随着市场对除草机需求的加强,各种类型的割草机也应运而生。目前有大型除草机、中型除草机、小型除草机,有全自动除草机、半自动除草机、手动除草机等等,随着用户对设备的智能化程度要求越来越高,这种户外设备缺乏远程监控的措施,对设备的运行状态需要监控,有利于用户对设备本身的工作情况了解,及时发现并处理设备的异常情况。

1.3 本文主要研究

本文以团队自主研发出的林地除草机作为研究对象,将通过蓝牙与除草机连接,收集状态信息并手机显示状态,实现启停控制。

(1)首先分析除草机运行状态自主工作流程与功能需求,设计管控系统的整体方案;自主作业管控需要监控除草机运行状态的管控需求可分为四个部分:运行状态监控、作业控制、作业数据统计和用户与设备分配。Web端平台设计服务器与除草机运行状态的数据同步功能,状态数据监控功能,用户数据与设备数据以及作业数据的云端存储和管理功能。Android平台设计通过蓝牙获取除草机运行状态实时数据、发送任务数据、指令数据和监测除草机运行状态功能,同时设计不规则多边形航迹规划功能。

(2)设计开发管控系统Web端权限管理软件与作业监控软件。权限管理软件设计开发基于RBAC的用户权限管理功能和管理公司管理员用户数据和除草机运行状态设备数据等功能,实现高效且安全的用户权限分配;作业监控软件设计开发除草机运行状态远程监控、除草机运行状态分配和任务数据管理等功能。

(3))设计开发管控系统移动客户端调参软件和作业软件。在调参软件设计方面,开发查验除草机控制系统状态;设置除草机运行状态航向运动参数、航点参数、搁浅脱出参数和充电参数;修改维护时间和校准地磁等功能;在作业软件设计方面,开发除草机运行状态运行状态数据监控,实时轨迹绘制,智能作业航迹规划,除草作业任务管理和作业控制等功能,并通过Web端提供的API接口实现远程下发任务数据和控制指令等功能。

第2章 除草机运行状态监控系统总体设计

本章首先分析除草机运行状态自主作业运行逻辑提出除草机运行状态自主除草作业管控需求点,分析除草机运行状态监控系统功能需求,设计管控系统整体结构和功能设计方案,为后续章节开发设计打下基础。

2.1 除草机运行状态介绍

本文的研究对象是自主研发的除草机运行状态监控系统。实物图如图2.1所示。除草机运行状态包含控制系统、太阳能充电板、悬浮板、斡旋滚轮。控制系统包含控制模块、GNSS模块、蓝牙模块以及其他传感器模块。控制模块是除草机运行状态的核心,其直接影响除草机运行状态作业性能。除草机运行状态可以通过4G蓝牙通信模块与管控系统进行数据交互。利用搭载的太阳能电池板供电系统进行持续充电,为持续作业提供了有利保障。除草机运行状态搭载了特制的可调节悬浮泡沫板,保证除草机运行状态在不同的水体中都能保持悬浮状态,使得除草作业安全有效的进行。同时除草机运行状态使用斡旋轮式结构搅动水体使得水体浑浊,阳光无法直射到水底同时水体上下流动导致水底温度变化从而无法满足杂草种子的生长需求,有效地完成除草作业。

图2.1除草机运行状态实物图

2.2 自主作业流程分析

除草机自主作业流程分析意在明确水田除草机管控系统功能性需求。作业管理人员在进行除草作业前首先检测除草机各个模块的状态,确保除草机可以正常运行:然后通过在地图上选择需要除草的地块,在此地块中规划除草作业路径;再将任务数据发送给除草机,并发送开始作业指令;最后通过管控系统监控除草机运行状态。由于水田除草机数量多、作业区域分散,管理人员需要对各个区域除草机工作状态进行监控,提升管控效果。水田除草机的管控需求可分为四个部分:运行状态监控、作业控制、作业数据统计和用户与设备分配。

运行状态监控:即水田除草机运行状态实时监控。现场作业人员在进行除草作业时,需要了解每台除草机所处位置和运行状态,对出现异常的机器进行检查。当前形势下,农场主名下具有多台水田除草机,并雇佣多名现场作业人员进行除草作业。对于地块和作业人员较多的情况,增加作业管理人员对现场作业人员和设备进行合理分配。农场主、作业管理员和现在作业人员可监控所属除草机的运行状态。

作业控制:即用户可远程向水田除草机发送控制指令,使其进入自动作业、停止、返航等模式。在进行水田除草作业时,现场作业人员最为关心的就是除草作业的路径覆盖率,因为这直接影响除草作业的除草效果。针对不同形状的地块设计作业路径,通过对比规划任务路径与实际运行路径覆盖情况衡量自主作业质量。

 作业统计:即现场作业人员作业数据统计。水田除草机作业后,农场主和现场管理人员最为关心的就是除草作业情况。机械除草作业需要在泡田期和插秧期内完成。现场管理人员需要根据每天的作业情况进行合理的调配。

用户与设备分配:即将设备与用户进行绑定。水田除草机的运行状态只提供给农场主和所属管理员用户和所属现场作业人员用户。有绑定关系的用户才能对水田除草机下发除草任务和控制指令。

2.3 管控系统整体结构与功能框架

本系统由Web端软件和Android端软件构成。整体结构设计如图2.2所示。根据用户实际管理需求,将管控系统Web端软件分为权限管理软件和作业监控软件两部分,实现权限管理与作业监控操作独立。使用MySQL关系型数据库保存用户数据和作业数据并实现权限管理软件与作业监控软件之间的数据交互。使用Redis非关系型数据库存储水田除草机上传的实时运行数据。

图2.2管控系统整体结构图

Android端软件分为作业软件与调参软件。作业软件设计蓝牙连接与作业监控软件服务端和水田除草机交互。以HTTP请求的方式与作业监控软件服务端进行数据交互,实现获取除草任务数据、管理除草机作业任务、发送作业指令和修改控制参数等功能。以蓝牙通信方式与水田除草机内置蓝牙模块进行数据交互。调参软件与水田除草机的交互也是通过蓝牙通信,实现获取水田除草机运动参数设置和传感器状态信息监测。

根据除草机管控系统功能开发需求,设计管控系统功能框架如图2.3所示。将多种除草作业场景进行业务整合,通过网络通信或蓝牙通信水田除草机进行数据交互。功能单元根据水田除草机自主作业流程、操作人员管理等业务逻辑,梳理整合出服务器作业数据管理、作业软件作业管控、调参软件运行参数管理三大核心功能模块。

管控系统功能主要包含设备及任务数据处理、运行状态监控、作业管控和除草机运行参数管控。

图2.3系统功能框架图

2.4 可行性分析

在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。除草机运行状态监控系统的可行性分析如下所示:

2.4.1 技术可行性

除草机运行状态监控系统采用的是Java编程语言并于Android的模式,数本系统多处采用了Ajax的异步操作,Ajax技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是Myeclipse编辑器,而Myeclipse里面有自带的Tomcat服务器和JDK环境,因此不需要我们在重新配置。

2.4.2 经济可行性

除草机运行状态监控系统是在Java和Android的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。除草机运行状态监控系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。

2.4.3 操作可行性

本系统是基于浏览器和服务器的除草机运行状态监控系统,系统开发完成之后用户只需要在手机上即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑或手机在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。

2.5 系统开发流程

除草机运行状态自主作业流程分析意在明确除草机运行状态监控系统功能性需求。作业管理人员在进行除草作业前首先检测除草机运行状态各个模块的状态,确保除草机运行状态可以正常运行﹔然后通过在地图上选择需要除草的地块,在此地块中规划除草作业路径;再将任务数据发送给除草机运行状态,并发送开始作业指令;最后通过管控系统监控除草机运行状态运行状态。由于除草机运行状态数量多、作业区域分散,管理人员需要对各个区域除草机运行状态工作状态进行监控,提升管控效果。除草机运行状态的管控需求可分为四个部分:运行状态监控、作业控制、作业数据统计和用户与设备分配运行状态监控:即除草机运行状态运行状态实时监控。现场作业人员在进行除草作业时,需要了解每台除草机运行状态所处位置和运行状态,对出现异常的机器进行检查。当前形势下,农场主名下具有多台除草机运行状态,并雇佣多名现场作业人员进行除草作业。对于地块和作业人员较多的情况,增加作业管理人员对现场作业人员和设备进行合理分配。农场主、作业管理员和现在作业人员可监控所属除草机运行状态的运行状态。

作业控制:即用户可远程向除草机运行状态发送控制指令,使其进入自动作业、停止、返航等模式。在进行水田除草作业时,现场作业人员最为关心的就是除草作业的路径覆盖率,因为这直接影响除草作业的除草效果。针对不同形状的地块设计作业路径,通过对比规划任务路径与实际运行路径覆盖情况衡量自主作业质量。

作业统计:即现场作业人员作业数据统计。除草机运行状态作业后,农场主和现场管理人员最为关心的就是除草作业情况。机械除草作业需要在泡田期和插秧期内完成。现场管理人员需要根据每天的作业情况进行合理的调配。

用户与设备分配:即将设备与用户进行绑定。除草机运行状态的运行状态只提供给农场主和所属管理员用户和所属现场作业人员用户。有绑定关系的用户才能对除草机运行状态下发除草任务和控制指令。

2.6 非功能需求分析

首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对除草机运行状态监控系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。

2.7 安全性需求分析

安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护企业的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对企业的负责。尤其针对于除草机运行状态监控系统来说,必须要有很好的安全性来保障整个系统。

系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。

第3章 系统移动客户端设计与实现

在除草机运行状态监控系统中,管理人员需要对作业人员和设备进行管理,同时对作业区域内所有的除草机运行状态运行状态进行监控。本章首先对管控系统Web端软件运行原理和功能框架进行设计。然后根据设计方案分别对权限管理软件和作业监控软件的各个功能模块进行设计开发。

3.1 Web端总体设计

管控系统Web端使用java语言进行功能开发设计,采用基于角色的权限管理实现作业权限管理和用户与设备的分配;利用数据库设计作业数据监控和作业数据管理。

3.1.1 运行原理

管控系统Web端软件架构设计分为前端界面操作和服务器端数据处理。用户通过浏览器进入Web端软件进行操作,通过发出HTTP请求向服务器端请求指定数据,服务器端收到HTTP请求后查找相应的数据,并将请求结果反馈到前端界面。管控系统Web端运行原理图如图3.1所示。

图3.1运行原理图

(1)权限管理软件将角色资源、作业管理员账号和除草机运行状态设备信息等数据存入关系型数据库中。作业监控软件通过判断登陆账户的角色ID并从数据库中读取此角色拥有的资源。作业监控软件服务端处理的除草机运行状态作业及用户操作记录等数据也存入在此数据库中。

(2)作业监控软件服务通过蓝牙连接实现对无人除草机运行状态作业管理,并将实时运行数据发送至作业监控软件客户端界面进行展示。通信网关使用Gateway Worker 长连接通信框架,通信网关与除草机运行状态之间使用SOCKET通信机制,可以实现用户与除草机运行状态一对一或者一对多的长连接通信。

(3)作业监控软件设计统一的API接口供Android端调用。在接口设计中除了遵循相关接口设计规范,还需要提供不同的鉴权方式,以保证系统资源的安全。Android端软件通过调用API接口实现除草机运行状态状态数据监控和作业管理。

3.2 功能框架

权限管理软件功能主要分为基于RBAC的权限管理和公司管理员与除草机运行状态设备管理两类功能。权限管理软件与作业监控软件各功能实现需通过多个应用程序、组件的相互配合。

综上所述,系统功能结构图如下图所示。

图3-1 系统功能结构图

3.3 客户端实现

客户端的结构与服务器端相似,都是通过多线程的方式实现输入输出的异步客户端在Windows系统上实现,集成在控制系统中作为一个独立的进程运行,该进程又包括三个线程:接收线程、发送线程、定时控制线程,其具体结构如图所示:

                    

图3-2 程序结构图

发送与接收的异步

为了实现全双工通信,客户端的通信采用接收与发送异步的方式,用两个线程来分别执行发送和接收的任务。接收线程用来接收服务器端图像处理模块得到的植株位置数据并将其存入数据库中以方便控制系统对其进行调用、接收服务器端发送的心跳包数据、在网络断开时尝试重新连接。定时控制线程是为了控制服务器端图像处理模块运行的时机,使其与除草机的行进动作保持协调。发送线程的目的在于向服务器端发送心跳反馈和控制信号。

考虑到winsock API的强大和应用的便利性,客户端采用TCP传输层心跳检测机制,使用setsockopt 函数开启保活定时器,并利用WSAIoctl 函数将保活信息绑定到套接字,启动winsocket 下 TCP传输层的心跳检测机制。TCP传输层的心跳检测机制与前文所述的服务器端应用层心跳检测机制基本类似,如果通信双方之间无数据交互的时间超过设置的心跳延时时间,就发送心跳包,若在设置的心跳时间间隔内未收到心跳反馈则再次发送心跳包,如果发送心跳包的次数超过设置的心跳次数后仍未收到心跳反馈,则表明连接出现异常,这时recv函数超时并且返回异常状态码。当客户端与服务器端的连接出现中断时,客户端会尝试重新向服务器发送连返回异常状态码。

当客户端与服务器端的连接出现中断时,客户端会尝试重新向服务器发送连接请求,具体操作流程为:先使用closesocket 函数关闭现有套接字,然后使用socket函数重新创建套接字,最后使用connect函数重新连接服务器。这有效的保证了通信双方之间连接的稳定性,为控制系统控制执行机构准确动作提供了保障。

图3-3客户端网络通信流程

3.4 作业数据统计管理

在实际作业中,作业管理员需要监控本账户下所有除草机的作业数据情况,查看每台除草机的作业时间,因此在作业监控软件中设计除草作业数据统计功能。

(1)按设备统计功能设计statistics_device()方法,根据指定的设备编号及时间区间,利用GROUPBY方法在数据库中将作业数据按日进行分组查询,从而实现统计所指定的除草机在某段时间的作业情况。

(2)按区间统计功能设计statistics_day()方法,根据指定时间区间,利用GROUPBY方法在数据库中将作业数据按设备编号进行分组查询,从而实现统计所指定时间区间内所有除草机的作业情况。

将查询到的作业数据推送到作业统计界面,利用ECharts数据可视化图表库将查询到的作业数据以柱状图和表格的方式进行展示。在按设备统计功能中显示指定设备在指定区间内每天的作业次数和作业时间。

3.5 状态数据监测

状态数据监测包含状态数据显示、后台异常数据的监控和警报。在作业软件主界面上除了添加地图还添加多个PercentLinearLayout百分比线性布局便于指定状态数据显示位置和功能按钮的位置。成功连接到除草机后,将设备连接状态、异常提醒、设备编号、运行模式、GNSS卫星数、电池电量和通信信号强度等重要状态数据显示在主界面上方便于用户观察。将此重要信息如GNSS状态、地磁状态、CPU温度、通信质量、作业启动电压和作业停止电压等数据放在菜单栏的状态信息模块。在界面左侧添加指南针显示地图旋转角度、用户位置显示功能和除草定位显示功能。点击指南针就能将地图和其他图层的旋转至初始化位置,即旋转角度为0。点击用户位置显示按钮后将用户位置移动到主界面中心并放大地图。点击除草机位置按钮后将除草机位置移动到界面中心。在主界面下方显示除草机的运动航向、经纬度信息、运行速度、作业间隔、作业安全距离等数据。

(1)状态异常报警

接收到来自蓝牙或者网络的运行数据后,需要对运行数据进行监测,判断地磁和GNSS模块是否异常,电量、星数等参数是否过低从而影响除草机的正常运行。因此对于这些重要的数据需要进行监控,若出现异常则需要立即提醒用户排查异常情况确保设备能正常作业。数据异常时的提醒方式有异常数据的文字显示为红色,异常信息滚动显示、弹窗提醒和铃声提醒。通过将状态数据文字TextView 的 lextCOlor属仕仅且.八View.RED 的方式实现状态数据文字显示为红色。在主界面添加VerticallextVview垂直文字控件实现滚动栏效果,将提醒用户的文字添加到字符数组中,滚动栏将不停的获取数组中的数据进行显示。警告弹窗则是通过创建AlertDialog 非阻塞式对话框,在显示警告的同时后台还能处理数据接收等功能。在dialog弹窗中添加警报信息文字和确认按钮,用户点击确认按钮后弹窗消失。此交互设计是为了警告用户设备已出现无法作业的情况。Android对音频、视频的开发都需要使用 MediaPlayer。开发过程中通过手机系统音频资源的Uri地址创建MediaPlayer '实例mMediaPlayer,将 setLooping重复播放属性设置为true。调用start方法播放铃声,用户点击确认按钮后调用stop方法关闭铃声的同时调用release方法释放资源。

(2)语音播报

Android开发API中自带了Google语音识别系统,但此系统不支持中文语音。因此本设计选用科大讯飞语音识别SDK进行开发。首先在科大讯飞官网注册并申请

APPID,然后下载Android SDK,将其libs目录下的资源加人到本地项日中进1SN能置,并在AndroidManifest.xml 文件中申请手机录音机、连接网络等权限。在开发中注册语音对象,然后初始化语音合成器对象,通过调用setParameter方法设置语音的发声人、音调、音量等属性。最后通过调用startSpeaking方法和 stopSpeaking方法实现文字语音播报和停止播报。语音播报功能开启后将定时播报除草机的运行状态,例如除草机电源电压、GNSS星数、运行速度等信息和作业指令操作提示。

3.6 作业方案创建与管理

路径规划是作业软件一项重要的功能。通过对除草机作业路径的规划,实现轨迹完全覆盖地块内部区域。本节设计适用于简单凸多边形地块和简单凹多边形的横向及纵向全覆盖作业路径规划算法及用路径规划算法设计路径规划模块。路径规划算法利用等间距平行线填充算法设计横向和纵向等间距路径。

(1)除草机作业路径规划

除草机路径规划是作业软件的核心模块,水田除草机根据此模块设计除草任务路径进行自主作业。根据除草作业需求以及研究文献中对水田除草机除草作业的设计方案,提出本系统除草任务执行逻辑和执行方案。针对不同形状水田的除草需求分别设计横向作业、纵向作业和田字作业。作业方案创建与管理界面布局中新增方案为Button按钮控件,已保存的方案列表通过PullToRefreshMenuView下拉刷新控件填充任务列表实现。

在生成作业路径时,根据用户选择的边界点、作业方案类型、作业路径间隔、作业安全距离利用多边形地块路径规划算法make_PlanBTCac计算航点位置,生成轨迹时运用drawPlan_polyLine方法根据用户添加的边界点经纬度、间隔、安全距离计算航点,然后通过DrawPlanTrackLine方法在路径规划线图层添加方案路径,并在生成的路点的第一个点位置添加Marker用于提醒用户起始点位置。生成轨迹后的轨迹规划界面。选取作业区域时需要按照作业地块边界顺时针或者逆时针选取边界点。边界点 Marker 设置了长按事件,长按可进行拖动边界点Marker修改边界点位置。作业区域边界点选取错误时可通过点击重绘路径按钮清除地图上地块边界点、边界线、地块区域和已经生成的路径。图层对象drawGraphic将调用removeAllGraphics方法移除作业区域相关图层,再调用removeAllGraphicsData方法删除图层中边界点数据。

返回按钮,用于就能返回主界面。完成作业区域地块选取后返回至主界面进行其他作业设置。地图上有任务后,主界面布局中添加任务设置和方案微调按钮。当设备连接成功并且地图上加载了任务后,主界面布局中添加方案上传按钮,在添加了返航点后,还将显示返航点上传按钮。

(2)任务微调整

为了便于用户调整地块位置,操作地块移动方向是在当前地图旋转角度下朝着上下左右移动。利用spinner控件滑动选择地块移动步进距离,轨迹移动实现过程如下。

1)根据ImageView对象所表示的方向对所有边界点统进行加减经纬度操作,经纬度调整的大小就是用户通过spinner控件选择的步进大小。

2)清除地图上所有边界点Marker、边界线及距离标注、地块区域和作业路径,根据新的边界点数组重新计算航点位置并绘制出路径以及新边界点 Marker、地块区域、边界线及距离标注。

若用户点击复位按钮,则以原边界点数据重复上述第二步操作,将地块恢复至原位置。滑动调整方案安全距离,可实时显示修改后的路径。该效果保留了边界点和地块区域,清除了路径图层,然后根据安全距离重新计算路径并绘制在地图上。根据滑动设置的作业间隔,删除原轨迹进行并绘制新轨迹,最终实现轨迹内缩的效果。为满足用户更改作业区域内轨迹的需求,在微调界面点击边界点Marker将边界点顺序进行转换,选取的点为第一个点顺时针绘制边界点并重新绘制路径。由于第一个边界点和第二个边界点连接的线段为路径基准线,因此改变了边界点顺序后基准线改变。

(3)任务参数设置

任务参数包含作业运行次数、下次启动间隔时间、每天工作开始时间和停止时间。任务设置界面设置作业循环次数范围为0~99,循环休息时间范围为0~99,电源管理系统的开启时间和关闭时间为0~24。任务循环次数大于1时,除草机在到达最后一个航点后将再次运行至第一个航点,执行相同的作业任务。任务循环次数达到设定次数后,除草机将停止作业进入循环休息。直到休息时间满足后再次开始任务循环作业。循环作业参数的使用避免了任务重复上传的操作,同时循环休息时除草机处于充电状态为下次任务循环做准备。设置电源管理系统开启和关闭时间可控制除草机自主控制电源开关无需人工上电与断电,实现化作业。

(4)任务列表管理

为了实现重复作业管理,在完成作业路径规划、任务参数设置后,用户可将作业任务的边界点经纬度、作业间隔、安全距离、作业类型等数据保存在本地内存或者上传到云端服务器。用户在侧边的方案操作栏中可获取本地方案列表和云端方案列表,点击任务名称,将在地图上加载对应任务的地块位置和任务路径。实现作业方案重复利用。

方案保存功能分为本地保存和云端保存。本地保存时将规划好的任务数据保存到本地内存中,首先判断本地内存中是否有任务文件夹,若没有则创建新的本地任务文件夹,将任务数据以用户输入的文件名保存为后缀是.txt的文本文件。

3.7 基础参数设置模块

水田除草机作业前,需要检查控制系统中基本参数是否符合作业,调参软件用于管理水田除草机的运动参数、传感器校准和传感器状态校验。在调参界面可查验控制分配参数、航向控制参数、航点参数等。

在调参设置界面添加三个PercentRelativeLayout百分比布局相对布局,在布局中的子View 的宽高和位置可以通过其与父布局的百分占比进行设置。为软件与不同手机的兼容性打下基础,此界面将根据手机屏幕的大小进行位置调整。

在每个PercentRelativeLayou百分比布局添加一个Button按钮和一个ImageView。将按钮高度属性layout_height和宽度属性 layout_width 设置为“0dp”,同时使用layout_heightPercent和layout_widthPercent属性设置高和宽为100%h和100%w,即 Button 按钮的高度和宽度是父布局的100%。通过布局的background属性设置ImageView设置背景,并将其宽高属性设置为80%h和 20%w,同时利用layout_marginLeftPercent属性设置 ImageView在整个布局中的位置。每个按钮添加点击监听函数,一旦出现点击触发事件,完成例如界面跳转动作,跳转到对应项的参数管理界面。

(1)控制分配参数设置

控制分配参数是用于设定电机输出动力相关参数。用户可设置除草机在直线行驶和转向行驶时的电机输出动力大小。电机动力参数范围为0~100,输入参数不在指定范围,软件会提示用户所设参数超出指定范围。

控制分配设置界面中在EditText控件中将hint属性设置为“输入0~100”用于提示用户参数范围为0~100,将digits属性设置为“0123456789”用于限制输入的数据类型只能是0~9之间的数字。在控制分配设置界面最下方添加2个按钮,将layout_alignParentBottom属性设置为“true”使按钮所在布局与父布局的下方对齐。这两个按钮分别用于获取和设置除草机中的控制分配参数。

(2)航向控制参数设置

航向控制参数是用于设定除草机运动时航向使用的PID参数和阈值。用户可通过修改航向控制参数控制除草机直线或转向时快速到达指定航向的速度。若航向控制参数不匹配,除草机在形式过程中一直以波浪形运动轨迹前进。航点参数是用于设定除草机处于自动作业模式时的运动参数。用户可调整除草机自主作业时航线运行时加速度和转弯时的角度以及航点到达阈值等参数使得自主作业的航线符合作业需求。

(3)搁浅脱出参数设置

由于水田中可能发生搁浅导致自主任务无法继续。除草机控制程序中设计了搁浅脱出策略。搁浅时进行脱出动作,脱出动作运行完成后判断是否逃脱搁浅地带。用户可以设置搁浅后脱出动作时间、脱出动作保持时间、动作休息时间、脱出循环次数、脱出失败重启时间。根据实际需求将脱出动作时间与脱出动作保持时间分为前后运动的脱出动作时间和保持时间以及转向运动的脱出动作时间和保持时间,原则上动作保持时间应当小于脱出动作时间。由于水田的唯一性,需要根据不同水田设置相对应的搁浅脱出参数。

(4)充电参数设置

除草机中搭载了BMS电池管理系统,用于控制除草机每天的作业时间和充电时间。用户可以设置工作停止电压、工作启动电压和充电等待时间。当除草机当前电压低于工作停止电压时,设备将会暂停作业开始充电,等到设备电压高于工作启动电压时进入充电等待时间。当充电等待时间结束后除草机继续进行作业。

(5)维护时间设置

用户在使用除草机前需要检查维护时间是否到期,设备维护时间到期后需要进行售后维护,以便最大程度的延长除草机使用寿命。设置维护时间功能仅提供给管理人员。管理人员通过日历控件选择维护日期。维护时间的设置范围为从当前日往后的一年内。在维护时间设置界面中添加日历控件。日历控件有两种类型一种是数字滑动日历,另一种是选择时间日历。通过calendarViewShown属性可以设置日历显示类型。同时为选择日期田间限制区间使得用户可以选择正确的时间。维护时间界面如图所示。

第4章 系统测试

系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。客户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。

近年来,软件包含测试从现在的检验当中来看,系统接近预期目标可能出现的问题,并对这些错误做出相应的修正,假如我们不进行早期的测试错误就会延续下去,最后所做出的成品就会有很大的困难。

我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试。

4.1 系统测试的意义

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6-1 测试与纠错信息流程

4.2 测试方法

具体测试方法包括:黑盒测试和白盒测试。

黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。

白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。

具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。

4.3 测试分析

本除草机运行状态监控系统满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。

(2)该除草机运行状态监控系统内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进健康指标预警的发展,发展前景广阔。

第5章 总结与展望

随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。该课题是除草机运行状态监控系统为核心展开的,主要是为了实现考试信息化管理和用户在线考试的需求。

本次毕业论文的主要是利java开发一个安全可靠,操作简易,同时具备业务可扩展的除草机运行状态监控系统。本文详细的论述了基于Android系统的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的,系统有普通用户和系统管理员两种角色,本系统多处采用了Ajax的异步交互技术,同时它也叫异步交互技术,利用它我们可以让网页的局部进行数据刷新操作,Ajax和传统的数据更新技术大大增加了客户的体验程度,由于是对局部进行操作那么就减少了一些繁琐而又不必要的操作,减轻了服务器对页面解析的负担。系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好。整个系统的各个功能设计合理,体现了人性化。

但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。

参考文献

[1]Jun Luo1,Pengcheng Cao2,Zijun Yu2. Online examination anti-cheating system and method based on multiple mixing algorithm[J]. Computer Informatization and Mechanical System,2023,6(2).

[2]孙昕,刘红根,张海,唐盼盼.基于B/S架构的在线考试系统设计与实现[J].中国信息化,2023(03):48-50.

[3]李娟,边玲,李海瑛,张东圆.基于微信小程序的手机在线考试系统设计[J].无线互联科技,2023,20(04):58-61+89.

[4]谭添,马晓星,许畅,马春燕,李樾.Java指针分析综述[J].计算机研究与发展,2023,60(02):274-293.

[5]Paul Krill. JavaScript, Java, and Python skills top demand[J]. InfoWorld.com,2023.

[6]. Research and Mobile Releases Report: Online Exam Proctoring Global Market[J]. Manufacturing Close - Up,2023.

[7]常祖政.在线考试系统中同卷异序的设计与实现[J].电脑编程技巧与维护,2022(11):40-42.DOI:10.16184/j.cnki.comprg.2022.11.047.

[8]任浩然,刘丹,景永强.JAVA在计算机软件开发中的应用研究[J].信息记录材料,2022,23(11):83-85.DOI:10.16009/j.cnki.cn13-1295/tq.2022.11.072.

[9]蒋金涛.基于Web的高校在线考试系统设计[J].无线互联科技,2022,19(19):88-90.

[10]张勇飞,陈艳君.基于微信小程序的线上学习平台设计[J].信息与电脑(理论版),2022,34(18):254-256.

[11]朱华汉.在线考试系统APP的设计与开发研究[J].现代信息科技,2022,6(15):1-5+10.DOI:10.19850/j.cnki.2096-4706.2022.15.001.

[12]宣子娇.基于学习通平台的大学数学过程性考核研究[J].办公自动化,2022,27(08):35-37.

[13]肖迎红,严文志.全方位提升过程性考核教学质量研究[J].化工设计通讯,2021,47(07):124-125.

[14]Fuyuan Cheng. Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J]. Advances in Educational Technology and Psychology,2021,5(2).

[15]王福环,葛田.基于“双平台”的线上教学的设计和实施——以“动态网页开发”课程为例[J].山东广播电视大学学报,2021(01):42-44.

[16]管小卫.基于Andriod平台的在线考试系统设计——以“专转本”计算机基础统考为例[J].科学技术创新,2019(36):93-94.

[17]兰明菊,蒋能记,郑金风.基于移动应用的在线考试系统研究与应用[J].信息系统工程,2019(06):111-112.

[18]李杰,张建国,施建朝,沈栩竹.微信小程序实现高等数学在线考试[J].数码世界,2019(02):137.

[19]张彤芳.基于云班课平台的过程性考核评价体系探索与实践[J].陕西青年职业学院学报,2019(01):20-22.

[20]张沈梅,孙昊,王玲,成甜甜,祖兆研.基于微信小程序的课程在线测试系统[J].电脑知识与技术,2018,14(32):82-84+88.DOI:10.14004/j.cnki.ckt.2018.3755.

致  谢

本次设计历时3个月。在这个毕业设计中,它离不开指导教师的指导,使事情基本顺利。指导老师无论是在毕业设计历经中,还是在论文做完中都给了了我特别大的助益。另1个方面,教师认真负责的工作姿态,谨慎的教学精神厚重的理论水准都使我获益匪浅。他勤恳谨慎的教学育人学习姿态也给我留下了特别特别深的感觉。我从老师那里学到了很多东西。在理论和实践中,我的技能得到了特别大的提高。在此,特向教师表示由衷的感激。

经过对该毕业设计的全部研究和开发,我的系统研发经历了从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了更深层次的认识。如今我的动手本领单独处理疑惑的本领也获取到了特别大的演练学习增多,这是这次毕业设计最好的收获。

最后,在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值