APP下载

基于WinCE的农机导航监控终端软件系统设计与实验

2016-03-23张亚娇张智刚罗锡文单鹏辉

农机化研究 2016年1期

张亚娇,张智刚,罗锡文,单鹏辉

(华南农业大学 a.工程学院;b.南方农业机械与装备关键技术教育部重点实验室,广州 510642)



基于WinCE的农机导航监控终端软件系统设计与实验

张亚娇a,b,张智刚a,b,罗锡文a,b,单鹏辉a,b

(华南农业大学 a.工程学院;b.南方农业机械与装备关键技术教育部重点实验室,广州510642)

摘要:随着农业机械自动导航技术的发展,农机导航监控终端技术已经成为农业机械自动导航技术的重要组成部分。为了满足农业信息化发展的需求,更好地管理控制农机自动导航系统,实现对农机自动导航系统的实时监控与农机作业的控制,开发了农机自动导航监控终端软件系统,可进行农机车辆的导航状态监控、农机具的操纵控制及系统的故障诊断等。通过对农田工作的特点与导航需求分析,采用VS2005开发环境,C++语言,开发基于WinCE嵌入式操作系统的农机车辆自动导航监控终端软件。软件程序的总体功能模块包括:人机交互界面显示、基于RS232的串口通讯模块、路径规划模块、文件读写模块及系统参数调节模块等,并制定导航监控终端与导航控制器之间的数据通讯协议。将该导航监控终端软件系统装在拖拉机上测试运行,结果表明:导航监控终端软件系统可长时间连续稳定的工作,有效实现了对农机车辆导航系统的操作与监控。

关键词:WinCE;监控终端;农机导航系统;MFC ;VS2005

0引言

随着现代农业的发展,农业生产也逐步走向机械化与信息化,农业机械自动导航技术成为现代智能农业的研究重点。目前,基于GPS的农机自动导航技术应用最为广泛,该技术可极大地减轻劳动者的作业强度,提高作业效率[1-3];而导航监控终端技术作为农机自动导航技术的重要组成部分,也是智能化精准农业研究的重点之一。

导航监控终端是实现人机交互的桥梁,通过监控终端软件,用户可以实时地获取和控制车辆的工作状态。在国内,许多学者对此进行了研究。如在道路智能交通领域,武奇生[4]、王琛[5]分别利用LINUX、WinCE平台进行了基于GPS的导航终端软件的设计研究,并取得了很好的应用效果。杨宁[6]提出了一种基于ARM和WinCE的车载智能显示终端的设计方案,满足了机车信息化的需求。然而,在农业领域,由于农业生产的智能化发展较为缓慢,有关农机车辆导航监控终端系统的研究也较少,高校研究大多处于实验室阶段。如罗梦佳等[7]基于GNSS、WebGIS和移动通信等技术,设计和研发了农机移动监控与导航技术体系,并进行实际试验,结果表明:可有效地优化农机资源配置,提高作业效率。国外的农业智能化与信息化技术较为成熟,以美国的Trimble公司为首,在智能化农业终端界面显示方面,已经研发出适用于不同功能需求的完善的监控显示终端,如FmX综合型号、CFX-750型号等显示器,这些监控终端不仅能够实现控制农用车辆的对垄导航,还能实现农作物产量、营养元素等作物状态的监测。日本的Hamada, Yasuyuki等[8]也对农用车辆自动导航监控系统方面进行了研究,并已经进行产品化的实验性销售,具有较高的实用性。本文依据现在高速发展的计算机技术与嵌入式系统,借鉴交通等领域自动导航与监控技术,根据目前中国基于GPS的农机自动导航系统的研究现状与发展[9-12],结合农机导航监控的功能与需求,针对性地设计了应用于农业生产车辆上的车载式导航终端监控的应用程序软件。该监控终端软件采用WinCE嵌入式操作系统,能够实时监控农用车辆状态和绘制田间信息,可完成对农机车辆的导航状态的监控、农机具的操纵控制及系统的故障诊断等,具有良好的实时性、操控性和多任务处理功能。

1监控终端硬件系统

1.1农机导航控制系统的总体结构

自动导航监控终端系统根据农机车辆在田间实际工作需求进行分析设计,可实现农机具的状态监测、位置预测、导航路径规划、文件的导入导出及系统参数调节等功能,进而实现对农机具的电控操作。农机导航控制系统结构框图如图1所示。从图1中可以看出,农机导航监控的过程为:①通过GPS定位系统与姿态传感器获取到农用车辆的各状态信息;②将状态信息数据传送至自动导航控制器,进行数据的融合与分析;③最后将处理结果传送至导航监控终端,呈现给用户。同时,用户也可借助监控终端平台进行农机车辆状态参数的调节,选择农机车辆的工作模式与行驶状态方式等,实现对农机车辆的电控操作。

图1 农机导航控制系统结构图

1.2监控终端硬件平台

导航监控终端的硬件平台选用LILLIPUT的显示器[14],硬件结构以微处理器S3C2416X为核心,基于ARM11内核,主频高达400MHz;配备2G的FLASH处理器和128M的ARM。该微处理器集成度高、功耗低,整机功耗小于10W,包括丰富的外围接口,如SD卡接口、2个USB接口、耳机输出接口、4个RS232接口、12V的电源接口,以及外接一个7寸的TFT LCD显示屏等。RS-232是目前主流的串行通信接口之一,只需3根传输线,配线简单,传送距离较远,完全满足导航监控终端与导航控制器之间的数据通讯。系统硬件结构图如图2所示。

图2 导航监控终端系统硬件结构图

2导航监控终端软件系统设计

导航监控终端软件系统使用嵌入式WinCE操作系统作为终端应用程序的软件开发平台,具有良好的可移植性,占用较少的硬件资源,根据实际需要可方便地增加和减少各项功能模块。WinCE则是微软公司针对嵌入式设备开发的一款基于32位的实时的嵌入式操作系统,具有实时性好、多任务、易操作、通信功能强大及模块化特性等特点,拥有稳定的性能结构。该操作系统为上层应用程序提供了win32应用程序编程接口,可以方便的调用win32API函数[13],缩减了系统软件的开发周期与后期的系统维护。因此,选用WinCE操作系统作为软件的开发平台,可以满足农机车辆导航监控终端的设计功能要求。

2.1总体功能结构

导航监控终端的显示界面是人机交互的窗口,用于显示自动导航过程中农机车辆的状态以及系统参数信息等。自动导航主界面提供各类功能按钮,用户通过选择相应的功能按钮下的子界面完成农机车辆导航路径设置、系统参数调节、数据传送,以及文件的读写等功能。导航监控终端软件可实现的具体功能如图3所示。其中,路径规划功能包括直线跟踪和全区域路径规划[15-17];系统参数调节主要是对农机车辆和农机具的一些参数的调节设置,包括控制GPS导航的控制参数、农机车辆的转向的控制参数及机具调控参数等。

图3 自动导航监控终端功能图

2.2监控终端与导航控制器的通讯协议

为保证监控终端与导航控制器之间进行有效、准确的数据交换,两者间必须制定规范的通讯协议。本文使用的农机自动导航控制系统,数据协议采用了两大类型,分别为导航控制器发往监控终端的报文和监控终端发往导航控制器的报文。串口接收与发送的数据协议为两种不同的语句格式,所有语句格式都以$为帧命令起始位,导航控制器发送导航显示终端的自定义通讯格式为$AGC0x,导航显示终端发送导航控制器的自定义通讯格式为$MT0x。x代表不同的数值,如0,1,2,3…,语句格式形如$AGC05。aaa,aaa…,aaa*gg ,表示导航控制器向导航监控终端发送包含导航控制系统运行状态的数据包,共计27个参数;AGC05表示地址域,前2位为识别符,后1位为语句名;aaa…aaa表示信息数据,*gg表示校验码, 表示结束符。其中,信息数据里可包含当前农用车辆所处的经纬度及导航线上的坐标值,以及农用车辆姿态方向、速度、跟踪误差等参数。语句格式如$MT01,aaa,aaa…,aaa*gg , 则表示用户通过监控终端的路径规划设置界面确定路径规划参数后,作为对收到的导航控制系统状态报文进行应答,发送该报文。当打开导航监控终端系统,监控终端必须先接收到导航控制器发出的数据包,进行初始化工作后,才能正常进行两者间的正常通讯。

2.3软件系统主界面

良好的人机交互界面可使上述功能的实现更加直观且易操作。根据对自动导航监控终端的功能分析,从人机交互界面简洁性、友好型、易操作性等特点出发,采用基于MFC对话框应用程序的框架上进行软件程序设计。

系统软件的主界面如图4所示。

图4 导航监控终端主界面

其中,导航监控终端的核心显示部分,在图4的左侧为农机导航的状态参数显示区域,包括地块名称、经纬度、卫星数目、农机车辆的前进速度及转向轮偏角等信息;右侧上方为系统工作状态显示区域,系统工作状态包括AB直线导航模式、无人驾驶模式等;右侧中间为田间信息动态显示区域,主界面下方为相应的功能按钮,包括AB线设置、作业路径设置、电控操作设置、系统参数调节及开始导航等共5个主功能按钮。通过点击各个功能按钮,进入相应的功能界面。创建窗体界面时,通过调用CDialog::DoModal来显示和主界面相关联的一个子功能对话框界面。通过给窗体添加背景位图、修改显示字体来简单美化界面,通过响应WM_CTLCOLOR消息,并在OnInitDialog函数体里实现其功能。

3基于WinCE的导航监控终端应用程序开发

3.1开发流程

①选用VS2005作为WinCE系统的应用程序开发环境。由于VS2005集成开发环境支持智能设备项目的开发,在VS2005开发环境里就可一体化的完成WinCE操作系统的定制、驱动程序与应用程序的设计。②MFC作为微软开发的一套面向对象的函数库,支持可重用性、自包含性及其他面向对象程序设计的原则,其框架结构设计,与提供的设计好的类库极大地减少了程序代码的编写量[18]。因此,使用MFC与C++编程语言开发导航监控终端的程序。③除此之外,在进行应用软件开发的之前,需要安装支持该操作系统硬件平台的SDK,它是操作系统与应用程序之间的纽带,包含定制的WinCE系统的各种头文件与库文件。④与硬件平台进行在线运行调试时,还需要安装ActiveSync软件,这是一款wince设备与PC机之间进行同步通信的软件,通过此软件可以实现PC机与设备之间进行及时通讯,还可以实现PC机访问WinCE设备上的文件信息[15]。软件程序的开发流程框图如图5所示。

图5 应用程序开发流程

3.2串行通讯模块

导航监控终端系统通过RS-232串口与导航控制器进行数据交换。由于WinCE的串口驱动不支持重叠I/O口,串口程序需采用多线程设计。为简化串口通讯框架编写,本文使用一种适用于WinCE嵌入式平台的多线程串口编程工具CESerialPort类。该类在建立数据的读写操作线程时,通过调用windowsAPI提供的CrateThread函数创建一个新的线程。而串口通讯读取采用事件触发的方式,使用WaitCommEvent函数监视该事件是否发生:当串口输入缓冲区中,该事件在辅助线程中被触发;当缓冲区中收到数据后,就执行ReadFile函数读取串口。

通过调用GetCommTimeouts函数查询和设置串口读写的时间间隔,使用OnTimer定时器每隔1s接收导航控制器传送的数据,并对接收到数据包进行异或校验,判断是否为一个完整数据包;然后再交由数据的处理函数,对导航控制器发送的数据进行分析处理。为保证线程之间的同步,在对串口数据进行写入与读取时,使用互斥类CMutex对象来访问同一个内存空间,其中Lock函数与Unlock函数必须成对出现[19]。

导航监控终端向导航控制器发送消息响应和命令时,利用UpdateData(TURE)函数获取编辑框的内容,按照相应的数据格式,形成完整的通讯协议格式,并调用串口通讯中的WritePort函数将设置参数发送给导航控制器。

3.3动态导航显示模块

为更加直观地在终端显示屏上观测到农用车辆在田间作业时的工作情况、显示车辆在田间的相对位置,可根据从导航控制器接收的车辆位置与状态等信息,在导航主界面上进行农机车辆工作情景的动画绘制。在窗体界面上先定义模拟地块的范围大小,当农机车辆处在直线导航状态时,实际采集的AB导航线坐标点,转换成界面显示AB坐标点,界面车辆图片根据实际车辆导航坐标实时重绘车辆的行驶轨迹。采用双缓冲技术,解决窗体在重绘时引起的闪烁现象,在窗体添加WM_PAINT消息的消息处理函数OnPaint函数,在该函数里实现动态界面显示,具体实现过程:使用封装了Windows(GDI)中画刷的MFC类CBrush,创建画刷对象,通过CreateCompatibleDC函数创建一个设备上下文环境,使用SelectObject函数将位图选入内存设备描述表中;通过FillRect函数实现使用不同画刷在内存设备描述表中绘制动画工作场景,使用BitBlt函数实现将内存设备描述表中的图像拷贝到窗口,显示出来。最后,利用DelectDC函数与DelectObject函数释放资源。

3.4文件读写模块

为后续研究地块作业数据和避免再次在该地块作业时进行重复的导航设置操作,农机车辆作业过的地块信息、车辆状态和系统的参数设置信息,都需进行保存。导航控制器与导航监控终端的传输数据可通过CreateFile函数创建文本文件形式保存。例如,存储导航监控终端系统设置的参数信息,则创建一个WriteSysRecordToFile函数,该函数功能实现过程中包括使用Cfile类通过write函数将内容写入到指定的文件中。通过调用此函数,向文件中保存用户的输入信息。主要代码如下:

Void Cmonitor_emulatorDlg::WriteSysRecordToFile

(char *fmt,...) {

CFile SysRecordFile;

……

CString str(buf);

CopyMemory(buf,str.GetBuffer(str.GetLength()),

(valid_string_length)*2);

SysRecordFile.SeekToEnd();

SysRecordFile.Write(buf,(valid_string_length)*2);}

……

WriteSysRecordToFile("The Parameters was set : %.2f. ", m_xe_coefficient);

// m_xe_coefficient 控制参数变量

对于写入文件的读取,同样创建一个ReadIniParaFromFile函数,利用CFile类中的open函数和read函数,打开数据文件,并读取文件内容。

voidCmonitor_emulatorDlg::ReadIniParaFromFile

(LPCTSTRlpFileName) {

CFile paraFile;

……

paraFile.Open(lpFileName,CFile::modeReadWrite);//打开文件

paraFile.Read(buf,512); //读取文件

……

paraFile.Close();}//关闭文件

4软件系统测试

将完整的应用程序进行编译调试,生成解决方案。编译成功后,通过ActiveSync软件,与硬件设备进行联调,点击调试按钮,则出现导航监控终端主界面,如图6所示。

利用串口助手发送一包模拟的导航信息数据包,模拟测试结果表明:程序运行正常,导航监控终端软件可以稳定准确地接收该数据包。主界面各功能按钮,能正常响应消息函数,界面显示清晰,如图7所示。

图6 导航监控终端工作主界面

图7 系统参数调节界面

将导航监控终端系统软件,装载在拖拉机上进行田间测试。启动监控终端软件,并选择其中的直线导航模式,系统初始化完成后,获取了目前的拖拉机自动导航初始化状态信息;再进行地块、机具等参数设置后,最后启动导航,即可实现对拖拉机自动导航状态的监测。测试过程中,导航监控终端能够很好实现与导航控制器之间的数据传输、数据的读写、导航控制参数的设置及文件的导入导出等功能,能够高效、稳定地处理串口接收的数据。动画显示部分可以实现农用车辆导航跟踪的实时绘制。自动导航终端的显示界面简洁,易操作,界面操作实际体验良好,适合农田工作者使用。实验表明:该导航监控终端软件能够实现自动导航农用车辆的状态监测,软件总体性能良好。

5结论

1)本文从实际需求出发,完成了农用车辆导航监控终端的设计。从系统软件的开发平台选择、开发流程、功能分析、实现过程及系统软件测试等方面进行详细的阐述。

2)基于WinCE的农机导航监控终端软件的开发与设计采用MFC编程框架结构。VS2005的开发环境内也包含了基于WinCE的智能设备开发项目,极大的缩短了监控终端软件的开发周期,能够实现农用车辆的路径规划、系统参数调节及动态导航显示等基本功能,完成对农机导航系统的监控。其中,使用CESerialPort串口类能够实现数据稳定、高效的数据传送。

3)实验结果表明:所开发的监控终端软件系统用户体验良好,可以长期稳定的工作,非常方便用户对自动导航系统进行参数设定和工作状态监控。

4)农机导航监控终端软件系统目前只适用于旱田拖拉机使用,对于水田插秧机等还不具备通用性。使用MFC框架类结构简化了编程难度,但也为界面的美化设计增加了难度,这些都是在以后工作中需要改进的地方。

参考文献:

[1]罗锡文,张泰岭,洪添胜. “精细农业”技术体系及其应用[J].农业机械学报, 2001(2): 103-106.

[2]武宝传,马立萍.浅谈GPS自动导航在农用拖拉机上的推广与应用[J].农业机械, 2012(25): 125-127.

[3]李小兵.GPS自动导航驾驶系统在田间机械作业上的推广应用[J].农业机械, 2012(26): 121-122.

[4]武奇生.车载多媒体导航终端软件设计与实现[J].武汉理工大学学报:交通科学与工程版, 2010(3): 573-576.

[5]王琛.基于WindowsCE的手持GPS导航系统的设计[J].深圳职业技术学院学报, 2009(1): 38-41.

[6]杨宁,王立德,王苏敏,等.基于ARM&WinCE的车载智能显示终端的开发[J].机车电传动,2010(1):45-48.

[7]罗梦佳,吴彩聪,丁连军,等.农机移动监空与导航技术[C]//第三届中国卫星导航学术年会电子文集—S01北斗/GNSS导航应用,2012.

[8]Hamada Y Y A G, Y Matsuo, T Yamashita.Agricultural Vehicle Navigation System: Development of a Guidance Information Display[J].JARQ, 2009,43(3):187-192.

[9]陈威,郭书普.中国农业信息化技术发展现状及存在问题[J].农业工程学报,2013,29(22):196-205.

[10]张智刚,罗锡,周志艳,等.久保田插秧机的GPS导航控制系统设计[J].农业机械学报,2006,37(7):95-97.

[11]高雷,胡静涛,白小平,等.面向精准农业应用的农机自动导航控制系统研究[C]//2010 International Conference on Broadcast Techology and Multimedia Communication,2010:315-322.

[12]杨玮,李明赞,王秀.农田信息传输方式现状及研究进展[J].农业工程学报,2008.24(05):297-301.

[13]王浩,杨正校.Windows CE系统应用程序开发编程[M].北京:中国水利水电出版社,2011.

[14]苗玉彬,王明军.农业车辆导航系统中路径规划策略的研究进展[J]. 农机化研究, 2011,33(5): 12-15.

[15]孟志军.农田作业机械路径优化方法[J].农业机械学报, 2012(6): 147-152.

[16]芦帅, 马蓉,安光辉.基于GIS/GPS拖拉机播种作业路径规划系统的设计与研究[J].石河子大学学报:自然科学版,2011(6):767-771.

[17]Jeff Prosise.MFC Windows 程序设计[M].北京:清华大学出版社,2007.

Design of Navigation Monitoring Software Based on WinCE for Agricultural Vehicle

Zhang Yajiaoa,b, Zhang Zhiganga,b, Luo Xiwena,b, Shan Penghuia,b

(a.Engineering College; b.Key Laboratory of Key Technology on Agricultural Machine and Equipment of Education Ministry, South China Agricultural University, Guangzhou 510642, China)

Abstract:Intelligent navigation monitoring terminal is an important component of automatic navigation technology system for agricultural machinery. In order to meet the needs of agricultural informationization development,and real-time monitor and control the agricultural machinery operation, the navigation monitoring software for agricultural vehicle is developed. The navigation state of the agricultural vehicle can be monitored, controlled, and the fault can be diagnosed with the intelligent monitoring terminal. According to the feature of field work, the automatic navigation monitoring terminal software is designed based on WinCE with embedded touching screen technology. The navigation monitoring terminal software included the following modules : man-machine interaction interface, serial port communication module with RS232, measure control module, path planning module, file read and write module. Besides, data communication protocol between navigation monitoring terminal and navigation controller is formulated. The actual test result showed that navigation monitoring terminal software system could realize the operation and monitoring of the navigation system for agricultural vehicle.

Key words:WinCE; monitoring software system;MFC; VS 2005

文章编号:1003-188X(2016)01-0070-06

中图分类号:S127

文献标识码:A

作者简介:张亚娇(1990-),女,江苏淮安人,硕士研究生,(E-mail)yingguangdog@163.com。通讯作者:张智刚(1977-),男,郑州人,副教授,(E-mail)zzg208@scau.edu.cn。

基金项目:广东省高等学校科技创新重点项目(cxzd1136);国家“863计划”项目(2013AA102307)”

收稿日期:2014-12-23