kaiyun官方注册
您所在的位置: 首页> 测试测量> 设计应用> 白洋淀湿地无人船自主定位监控系统
白洋淀湿地无人船自主定位监控系统
2015年微型机与应用第17期
绳 丹,赵晓军,张红北,王晨康,李 瑞
(河北大学 电子信息工程学院,河北 保定 071002)
摘要:针对白洋淀湿地静态监测节点存在维护困难等问题,提出了一种采用无人船作为动态监测节点的方法。应用GPS技术和GPRS技术实现对无人船的定位监控,系统主要分为船载单元和监控中心两大部分。船载单元采集、传输无人船定位信息以及接收上位机命令控制船体运动。使用C#语言在Visual Studio2010环境下开发监控中心软件,监控中心实现无人船在电子地图中的定位显示和船体控制命令的下发。实验表明,该系统运行稳定可靠,具有使用方便、维护简单等优势。
Abstract:
Key words :

  摘 要: 针对白洋淀湿地静态监测节点存在维护困难等问题,提出了一种采用无人船作为动态监测节点的方法。应用GPS技术和GPRS技术实现对无人船的定位监控,系统主要分为船载单元和监控中心两大部分。船载单元采集、传输无人船定位信息以及接收上位机命令控制船体运动。使用C#语言在Visual Studio2010环境下开发监控中心软件,监控中心实现无人船在电子地图中的定位显示和船体控制命令的下发。实验表明,该系统运行稳定可靠,具有使用方便、维护简单等优势。

关键词: 无人船;定位;电子地图;远程监控系统

0 引言

  白洋淀湿地是华北地区温带湿地的典型代表,对改善华北地区生态环境起着非常重要的作用[1]。由于华北地区持续干旱及近年来淀区经济发展、人口增加,使白洋淀湿地生态系统正受到前所未有的压力,因此在白洋淀湿地建立长期的监测站点就显得尤为重要。目前湿地生态监测节点主要由静态监测节点组成,静态节点覆盖范围小、维护困难,对于一些复杂水域很难利用静态节点监测。无人船可以在水上航行,因此可以利用无人船作为动态节点进入该区域完成任务,无人船扩大了湿地现场监测范围。系统主要对无人船远距离控制技术进行研究,采用全球定位系统GPS(Global Positioning System)技术实现自主定位,为了更直观地显示无人船位置,引入了电子地图进行位置匹配[2];监控中心完成船体位置显示和船体控制命令下发,真正实现了对无人船的远程控制。

1 系统总体设计方案

  系统应用GPS定位技术和GPRS无线通信技术实现对湿地无人船的远程监控。无人船远程监控包括远程监测和远程控制两部分,远程监测实现船体位置定位及实时显示,远程控制则是远距离控制无人船运动方向。

  1.1 系统构成

  无人船监控系统主要由船载单元和监控中心两部分构成。采用无线通信方式实现监控中心和船载单元之间的数据通信,系统结构如图1。

001.jpg

  船载单元主要由GPS模块、GPRS模块、驱动模块和微处理器组成,监控中心由一台可以联网的计算机组成,船载单元利用GPRS模块连入GPRS网络,监控中心连接Internet网络,两者之间采用TCP/IP协议进行信息交换。

  1.2 系统功能分析

  无人船利用装载的GPS模块可以对船体进行定位,微处理器将接收到的GPS数据进行解析,提取出位置信息并通过GPRS模块发送到Internet服务器,监控中心软件通过添加电子地图更直观地显示无人船位置,同时也可以利用SQL数据库对数据进行存储。监控中心可以向船载单元下发控制指令,当微处理器通过GPRS模块接收到控制指令后将其解析为相应控制字并写入驱动模块,然后驱动模块根据控制字控制电机转向,最终达到操控无人船运动的目的。

2 船载单元设计

  2.1 船载单元硬件搭建

  船载单元硬件主要包括微处理器、GPS模块、GPRS模块和驱动模块等。微处理器选择STM32F103增强型系列,其内核是ARM32位的Cortex-M3CPU,工作频率最高可达72 MHz,同时配置128 KB闪存程序存储器、最大64 KB SRAM(静态随机存取存储器)、11个定时器、13个通信接口和2通道12位D/A转换器,该增强型单片机具有功能强、能耗低、可靠性高等特点[3]。采用信号接收器G591作为GPS定位模块,该模块具备多径探测和矫正功能,定位精度可达3 m,具有基准时钟范围大、灵敏度高和抗干扰能力强等特点,因此很适合在湿地环境中应用。采用GTM900无线通信模块作为系统GPRS模块,该模块支持标准的AT指令集,同时配有丰富的头文件资料。系统选择L293D作为船载单元的电机驱动模块,该模块采用ST公司全新的L293D功率型双向驱动芯片,具有易于安装、稳定性高、使用方便等特点。船载单元硬件连接方式如图2。

002.jpg

  G591模块通过串口1向STM32发送无人船定位信息;GTM900模块通过串口2与STM32芯片建立通信,GPRS模块主要完成数据打包发送和接收功能;STM32芯片通过串口3和RS232连接,通过RS232接口与计算机连接实现程序下载;STM32通过I/O口向驱动模块L293D发送控制字,驱动模块根据控制字对电机转向进行控制,从而达到操控无人船运动的目的。

  2.2 船载单元软件设计

  船载单元程序主要包括以下两个部分:GPS定位数据向监控中心的发送和船载单元接收上位机控制命令并执行。其中船载单元与监控中心的数据通信是通过GPRS网络和Internet网络连接实现。

  2.2.1 数据发送

  船载单元程序需要对中断、串口、I/O口进行初始化,当船载单元上电后,各个模块开始工作,STM32微处理器控制程序开始初始化。首先需要建立无线通信,STM32利用GTM900模块向控制中心建立的服务器申请网络连接,建立TCP/IP连接;然后GPS模块开始获取位置信息,当STM32监听到GPS数据到来时开串口1中断,读取GPS数据并提取出经纬度信息;最后单片机通过串口2向GTM900发送数据并启动GTM900模块将数据打包通过TCP/IP协议发送到监控中心[4]。数据发送过程如图3。

003.jpg

  其中GPS数据遵从NMEA-0183协议,GPS数据有多种语句格式,本设计读取GPRMC格式,其内容格式为:$GPRMC,,<定位状态>,<纬度>,<纬度半球>,<经度>,<经度半球>,<地面速率>,<地面航向>,,<磁偏角>,<磁偏角方向>,<模式指示>*hh。STM32芯片依据此协议格式提取出经纬度信息。基本过程为:(1)STM32对读取的语句进行判断,如果开头是GPRMC则进行第二步判断,否则继续监听;(2)判断语句的定位信息段是否为‘A’,若是‘A’则表明GPS定位成功,信息有效;(3)提取出经纬度信息[5]。

  2.2.2 数据接收执行

  GTM900模块通过TCP/IP协议接收来自控制中心的指令,当GTM900接收到控制命令后,单片机利用AT指令集调用GPRS数据并开启串口2中断函数判断收到的数据,如果是控制指令则STM32根据设置好的规则进行指令解析并通过I/O口向L293D写入控制字,L293D根据控制字驱动电机运转完成无人船的运动控制。每个电机需要3个控制信号:EN1(EN2)、IN1(IN3)、IN2(IN4),EN1是电机1的使能位,EN1为1时电机1转动,为0时电机1停止;IN1、IN2控制电机1的转向,当IN1、IN2分别为1、0时,电机1正转;反之,电机1反转。例如,L293D引脚IN1、IN2、IN3、IN4、EN1、EN2分别接STM芯片的P1.0~P1.5口,当接收的数据是控制命令“左转”时,即左侧电机反转、右侧电机正转才能完成无人船左转运动,因此STM32芯片需要向P1.0~P1.5分别写入0、1、1、0、1、1,然后驱动模块根据此控制字完成电机的正反转运动,此过程就是船载单元命令接收执行过程。

3 监控中心软件设计

  监控中心软件采用C#编程语言在Visual Studio 2010环境下开发,并加载Arcgis的二次开发控件MapControl实现电子地图嵌入。监控中心主要实现无人船在电子地图中的定位显示和控制命令的下发。

  3.1 电子地图功能

  电子地图是显示无人船位置的较好方式,这种方法更直观、更容易让人理解。首先由ArcMap编辑制作出设计需要的电子地图图表,然后使用C#语言在Visual Studio2010开发环境中设计监控中心软件,在监控界面拖放二次开发控件MapControl和ToolbarControl,MapControl来显示电子地图,ToolbarControl用来作为电子地图工具栏,可以直接通过属性设置实现添加地图、放大、缩小等功能。值得注意的是,MapControl控件必须同ToolbarControl控件绑定才可以实现地图放大缩小等功能。ToolbarControl和MapControl属于COM组件,一般不在Visual Studio的工具箱中直接显示,但是可以通过右击Visual Studio2010的工具箱进行添加。

  3.2 控制命令的下发

  本文在Visual Studio2010开发环境中使用C#语言编写控制命令。它同时具有Visual Basic的易用性以及C++的低级内存访问性[6]。当上位机软件的某个控制按钮被按下时,该按钮的Click()事件随即被触发,控制中心将相应的控制命令通过Socket建立的服务器使用TCP/IP协议发送到船载单元。在Visual Studio2010开发环境中Socket类被称为“嵌套字”,是一种描述IP地址和端口号的通信语句。Visual Studio为每个服务项目分配一个Socket,并将其与端口号进行绑定,根据端口号识别不同的服务项目。控制命令有“前进”、“倒退”、“左转”、“右转”、“启动”、“结束”等。

4 系统实验

  4.1 实验过程

  将船载单元安装在小车中在河北大学新校区进行现场实验,PC上安装控制中心软件,首先运行监控中心程序,程序开始时即建立Internet服务器并进行监听;然后按下小车的开关按钮,船载单元开始工作。当船载单元和监控中心建立TCP/IP连接之后,按下控制按钮“启动”接收GPS数据,其他控制按钮可以实现对小车的运动控制。

  4.2 实验结果

  船载系统设置GPS的发送时间间隔为2 s,包括经度、纬度和时间信息。小车的运动方向可以通过控制按钮进行改变,表1为小车运动的部分记录。

004.jpg

  通过实验结果可知,系统实现了GPS数据传输、电子地图实时显示和船载单元运动控制,基本达到了设计要求。

5 结束语

  本方案是基于GPS/GPRS的系统软硬件设计方法,系统利用TCP/IP协议实现了Internet网络与GPRS网络的互联,可以很好地完成无人船定位数据采集和传输,最后利用监控中心的电子地图进行显示。多次实验表明,系统具有良好的稳定性和实用性。此外为了对湿地进行更全面的环境监测,还可以添加不同传感器来完成任务,使无人船监测功能更加丰富完善。

 参考文献

  [1] 温志广.建立白洋淀湿地自然保护区刍议[J].河北师范大学学报(自然科学版),2003,27(5):527-530.

  [2] 崔峰,张明路,丁承君,等.基于GPS/GIS/GSM的移动机器人定位技术研究[J].微计算机信息,2005(11):99-100.

  [3] 卜峰,李传江,李欢,等.基于GPS/GPRS的客车远程监控系统设计与实现[J].计算机测量与控制,2014,22(1):79-81.

  [4] 张洋溢,王忠.基于ARM的GPS/GPRS多功能手持终端的设计与实现[J].计算机测量与控制,2011,19(12):50-53.

  [5] 马腾,杨宏业.基于GPS/GPRS的车载监控终端的设计与实现[J].电子测量技术,2009,32(4):71-74.

  [6] 陈文刚,宋述勇,韩启华.用C#编程语言实现变电站GPS远程监控的探讨[J].山西电力,2013(5):54-57.


此内容为AET网站原创,未经授权禁止转载。
Baidu
map