《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 白洋淀濕地?zé)o人船自主定位監(jiān)控系統(tǒng)
白洋淀濕地?zé)o人船自主定位監(jiān)控系統(tǒng)
2015年微型機(jī)與應(yīng)用第17期
繩 丹,趙曉軍,,張紅北,,王晨康,李 瑞
(河北大學(xué) 電子信息工程學(xué)院,,河北 保定 071002)
摘要: 針對白洋淀濕地靜態(tài)監(jiān)測節(jié)點(diǎn)存在維護(hù)困難等問題,,提出了一種采用無人船作為動態(tài)監(jiān)測節(jié)點(diǎn)的方法。應(yīng)用GPS技術(shù)和GPRS技術(shù)實(shí)現(xiàn)對無人船的定位監(jiān)控,,系統(tǒng)主要分為船載單元和監(jiān)控中心兩大部分,。船載單元采集、傳輸無人船定位信息以及接收上位機(jī)命令控制船體運(yùn)動,。使用C#語言在Visual Studio2010環(huán)境下開發(fā)監(jiān)控中心軟件,,監(jiān)控中心實(shí)現(xiàn)無人船在電子地圖中的定位顯示和船體控制命令的下發(fā)。實(shí)驗(yàn)表明,,該系統(tǒng)運(yùn)行穩(wěn)定可靠,,具有使用方便、維護(hù)簡單等優(yōu)勢,。
Abstract:
Key words :

  摘  要: 針對白洋淀濕地靜態(tài)監(jiān)測節(jié)點(diǎn)存在維護(hù)困難等問題,,提出了一種采用無人船作為動態(tài)監(jiān)測節(jié)點(diǎn)的方法。應(yīng)用GPS技術(shù)和GPRS技術(shù)實(shí)現(xiàn)對無人船的定位監(jiān)控,,系統(tǒng)主要分為船載單元和監(jiān)控中心兩大部分,。船載單元采集、傳輸無人船定位信息以及接收上位機(jī)命令控制船體運(yùn)動,。使用C#語言在Visual Studio2010環(huán)境下開發(fā)監(jiān)控中心軟件,,監(jiān)控中心實(shí)現(xiàn)無人船在電子地圖中的定位顯示和船體控制命令的下發(fā)。實(shí)驗(yàn)表明,,該系統(tǒng)運(yùn)行穩(wěn)定可靠,,具有使用方便、維護(hù)簡單等優(yōu)勢,。

  關(guān)鍵詞: 無人船,;定位,;電子地圖;遠(yuǎn)程監(jiān)控系統(tǒng)

0 引言

  白洋淀濕地是華北地區(qū)溫帶濕地的典型代表,,對改善華北地區(qū)生態(tài)環(huán)境起著非常重要的作用[1],。由于華北地區(qū)持續(xù)干旱及近年來淀區(qū)經(jīng)濟(jì)發(fā)展、人口增加,,使白洋淀濕地生態(tài)系統(tǒng)正受到前所未有的壓力,,因此在白洋淀濕地建立長期的監(jiān)測站點(diǎn)就顯得尤為重要。目前濕地生態(tài)監(jiān)測節(jié)點(diǎn)主要由靜態(tài)監(jiān)測節(jié)點(diǎn)組成,,靜態(tài)節(jié)點(diǎn)覆蓋范圍小,、維護(hù)困難,對于一些復(fù)雜水域很難利用靜態(tài)節(jié)點(diǎn)監(jiān)測,。無人船可以在水上航行,,因此可以利用無人船作為動態(tài)節(jié)點(diǎn)進(jìn)入該區(qū)域完成任務(wù),無人船擴(kuò)大了濕地現(xiàn)場監(jiān)測范圍,。系統(tǒng)主要對無人船遠(yuǎn)距離控制技術(shù)進(jìn)行研究,,采用全球定位系統(tǒng)GPS(Global Positioning System)技術(shù)實(shí)現(xiàn)自主定位,為了更直觀地顯示無人船位置,,引入了電子地圖進(jìn)行位置匹配[2],;監(jiān)控中心完成船體位置顯示和船體控制命令下發(fā),真正實(shí)現(xiàn)了對無人船的遠(yuǎn)程控制,。

1 系統(tǒng)總體設(shè)計(jì)方案

  系統(tǒng)應(yīng)用GPS定位技術(shù)和GPRS無線通信技術(shù)實(shí)現(xiàn)對濕地?zé)o人船的遠(yuǎn)程監(jiān)控,。無人船遠(yuǎn)程監(jiān)控包括遠(yuǎn)程監(jiān)測和遠(yuǎn)程控制兩部分,遠(yuǎn)程監(jiān)測實(shí)現(xiàn)船體位置定位及實(shí)時(shí)顯示,,遠(yuǎn)程控制則是遠(yuǎn)距離控制無人船運(yùn)動方向,。

  1.1 系統(tǒng)構(gòu)成

  無人船監(jiān)控系統(tǒng)主要由船載單元和監(jiān)控中心兩部分構(gòu)成。采用無線通信方式實(shí)現(xiàn)監(jiān)控中心和船載單元之間的數(shù)據(jù)通信,,系統(tǒng)結(jié)構(gòu)如圖1,。

001.jpg

  船載單元主要由GPS模塊、GPRS模塊,、驅(qū)動模塊和微處理器組成,,監(jiān)控中心由一臺可以聯(lián)網(wǎng)的計(jì)算機(jī)組成,船載單元利用GPRS模塊連入GPRS網(wǎng)絡(luò),,監(jiān)控中心連接Internet網(wǎng)絡(luò),,兩者之間采用TCP/IP協(xié)議進(jìn)行信息交換。

  1.2 系統(tǒng)功能分析

  無人船利用裝載的GPS模塊可以對船體進(jìn)行定位,,微處理器將接收到的GPS數(shù)據(jù)進(jìn)行解析,,提取出位置信息并通過GPRS模塊發(fā)送到Internet服務(wù)器,監(jiān)控中心軟件通過添加電子地圖更直觀地顯示無人船位置,同時(shí)也可以利用SQL數(shù)據(jù)庫對數(shù)據(jù)進(jìn)行存儲,。監(jiān)控中心可以向船載單元下發(fā)控制指令,,當(dāng)微處理器通過GPRS模塊接收到控制指令后將其解析為相應(yīng)控制字并寫入驅(qū)動模塊,然后驅(qū)動模塊根據(jù)控制字控制電機(jī)轉(zhuǎn)向,,最終達(dá)到操控?zé)o人船運(yùn)動的目的,。

2 船載單元設(shè)計(jì)

  2.1 船載單元硬件搭建

  船載單元硬件主要包括微處理器、GPS模塊,、GPRS模塊和驅(qū)動模塊等,。微處理器選擇STM32F103增強(qiáng)型系列,其內(nèi)核是ARM32位的Cortex-M3CPU,,工作頻率最高可達(dá)72 MHz,,同時(shí)配置128 KB閃存程序存儲器、最大64 KB SRAM(靜態(tài)隨機(jī)存取存儲器),、11個(gè)定時(shí)器、13個(gè)通信接口和2通道12位D/A轉(zhuǎn)換器,,該增強(qiáng)型單片機(jī)具有功能強(qiáng),、能耗低、可靠性高等特點(diǎn)[3],。采用信號接收器G591作為GPS定位模塊,,該模塊具備多徑探測和矯正功能,定位精度可達(dá)3 m,,具有基準(zhǔn)時(shí)鐘范圍大,、靈敏度高和抗干擾能力強(qiáng)等特點(diǎn),因此很適合在濕地環(huán)境中應(yīng)用,。采用GTM900無線通信模塊作為系統(tǒng)GPRS模塊,,該模塊支持標(biāo)準(zhǔn)的AT指令集,同時(shí)配有豐富的頭文件資料,。系統(tǒng)選擇L293D作為船載單元的電機(jī)驅(qū)動模塊,,該模塊采用ST公司全新的L293D功率型雙向驅(qū)動芯片,具有易于安裝,、穩(wěn)定性高,、使用方便等特點(diǎn)。船載單元硬件連接方式如圖2,。

002.jpg

  G591模塊通過串口1向STM32發(fā)送無人船定位信息,;GTM900模塊通過串口2與STM32芯片建立通信,GPRS模塊主要完成數(shù)據(jù)打包發(fā)送和接收功能,;STM32芯片通過串口3和RS232連接,,通過RS232接口與計(jì)算機(jī)連接實(shí)現(xiàn)程序下載;STM32通過I/O口向驅(qū)動模塊L293D發(fā)送控制字,驅(qū)動模塊根據(jù)控制字對電機(jī)轉(zhuǎn)向進(jìn)行控制,,從而達(dá)到操控?zé)o人船運(yùn)動的目的,。

  2.2 船載單元軟件設(shè)計(jì)

  船載單元程序主要包括以下兩個(gè)部分:GPS定位數(shù)據(jù)向監(jiān)控中心的發(fā)送和船載單元接收上位機(jī)控制命令并執(zhí)行。其中船載單元與監(jiān)控中心的數(shù)據(jù)通信是通過GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)連接實(shí)現(xiàn),。

  2.2.1 數(shù)據(jù)發(fā)送

  船載單元程序需要對中斷,、串口、I/O口進(jìn)行初始化,,當(dāng)船載單元上電后,,各個(gè)模塊開始工作,STM32微處理器控制程序開始初始化,。首先需要建立無線通信,,STM32利用GTM900模塊向控制中心建立的服務(wù)器申請網(wǎng)絡(luò)連接,建立TCP/IP連接,;然后GPS模塊開始獲取位置信息,,當(dāng)STM32監(jiān)聽到GPS數(shù)據(jù)到來時(shí)開串口1中斷,讀取GPS數(shù)據(jù)并提取出經(jīng)緯度信息,;最后單片機(jī)通過串口2向GTM900發(fā)送數(shù)據(jù)并啟動GTM900模塊將數(shù)據(jù)打包通過TCP/IP協(xié)議發(fā)送到監(jiān)控中心[4],。數(shù)據(jù)發(fā)送過程如圖3。

003.jpg

  其中GPS數(shù)據(jù)遵從NMEA-0183協(xié)議,,GPS數(shù)據(jù)有多種語句格式,,本設(shè)計(jì)讀取GPRMC格式,其內(nèi)容格式為:$GPRMC,,<UTC時(shí)間>,,<定位狀態(tài)>,<緯度>,,<緯度半球>,,<經(jīng)度>,<經(jīng)度半球>,,<地面速率>,,<地面航向>,<UTC日期>,,<磁偏角>,,<磁偏角方向>,<模式指示>*hh,。STM32芯片依據(jù)此協(xié)議格式提取出經(jīng)緯度信息,。基本過程為:(1)STM32對讀取的語句進(jìn)行判斷,,如果開頭是GPRMC則進(jìn)行第二步判斷,,否則繼續(xù)監(jiān)聽,;(2)判斷語句的定位信息段是否為‘A’,若是‘A’則表明GPS定位成功,,信息有效,;(3)提取出經(jīng)緯度信息[5]。

  2.2.2 數(shù)據(jù)接收執(zhí)行

  GTM900模塊通過TCP/IP協(xié)議接收來自控制中心的指令,,當(dāng)GTM900接收到控制命令后,,單片機(jī)利用AT指令集調(diào)用GPRS數(shù)據(jù)并開啟串口2中斷函數(shù)判斷收到的數(shù)據(jù),如果是控制指令則STM32根據(jù)設(shè)置好的規(guī)則進(jìn)行指令解析并通過I/O口向L293D寫入控制字,,L293D根據(jù)控制字驅(qū)動電機(jī)運(yùn)轉(zhuǎn)完成無人船的運(yùn)動控制,。每個(gè)電機(jī)需要3個(gè)控制信號:EN1(EN2)、IN1(IN3),、IN2(IN4),,EN1是電機(jī)1的使能位,EN1為1時(shí)電機(jī)1轉(zhuǎn)動,,為0時(shí)電機(jī)1停止,;IN1、IN2控制電機(jī)1的轉(zhuǎn)向,,當(dāng)IN1,、IN2分別為1、0時(shí),,電機(jī)1正轉(zhuǎn);反之,,電機(jī)1反轉(zhuǎn),。例如,L293D引腳IN1,、IN2,、IN3、IN4,、EN1,、EN2分別接STM芯片的P1.0~P1.5口,當(dāng)接收的數(shù)據(jù)是控制命令“左轉(zhuǎn)”時(shí),,即左側(cè)電機(jī)反轉(zhuǎn),、右側(cè)電機(jī)正轉(zhuǎn)才能完成無人船左轉(zhuǎn)運(yùn)動,因此STM32芯片需要向P1.0~P1.5分別寫入0,、1,、1、0,、1,、1,然后驅(qū)動模塊根據(jù)此控制字完成電機(jī)的正反轉(zhuǎn)運(yùn)動,此過程就是船載單元命令接收執(zhí)行過程,。

3 監(jiān)控中心軟件設(shè)計(jì)

  監(jiān)控中心軟件采用C#編程語言在Visual Studio 2010環(huán)境下開發(fā),,并加載Arcgis的二次開發(fā)控件MapControl實(shí)現(xiàn)電子地圖嵌入。監(jiān)控中心主要實(shí)現(xiàn)無人船在電子地圖中的定位顯示和控制命令的下發(fā),。

  3.1 電子地圖功能

  電子地圖是顯示無人船位置的較好方式,,這種方法更直觀、更容易讓人理解,。首先由ArcMap編輯制作出設(shè)計(jì)需要的電子地圖圖表,,然后使用C#語言在Visual Studio2010開發(fā)環(huán)境中設(shè)計(jì)監(jiān)控中心軟件,在監(jiān)控界面拖放二次開發(fā)控件MapControl和ToolbarControl,,MapControl來顯示電子地圖,,ToolbarControl用來作為電子地圖工具欄,可以直接通過屬性設(shè)置實(shí)現(xiàn)添加地圖,、放大,、縮小等功能。值得注意的是,,MapControl控件必須同ToolbarControl控件綁定才可以實(shí)現(xiàn)地圖放大縮小等功能,。ToolbarControl和MapControl屬于COM組件,一般不在Visual Studio的工具箱中直接顯示,,但是可以通過右擊Visual Studio2010的工具箱進(jìn)行添加,。

  3.2 控制命令的下發(fā)

  本文在Visual Studio2010開發(fā)環(huán)境中使用C#語言編寫控制命令。它同時(shí)具有Visual Basic的易用性以及C++的低級內(nèi)存訪問性[6],。當(dāng)上位機(jī)軟件的某個(gè)控制按鈕被按下時(shí),,該按鈕的Click()事件隨即被觸發(fā),控制中心將相應(yīng)的控制命令通過Socket建立的服務(wù)器使用TCP/IP協(xié)議發(fā)送到船載單元,。在Visual Studio2010開發(fā)環(huán)境中Socket類被稱為“嵌套字”,,是一種描述IP地址和端口號的通信語句。Visual Studio為每個(gè)服務(wù)項(xiàng)目分配一個(gè)Socket,,并將其與端口號進(jìn)行綁定,,根據(jù)端口號識別不同的服務(wù)項(xiàng)目??刂泼钣小扒斑M(jìn)”,、“倒退”、“左轉(zhuǎn)”,、“右轉(zhuǎn)”,、“啟動”、“結(jié)束”等,。

4 系統(tǒng)實(shí)驗(yàn)

  4.1 實(shí)驗(yàn)過程

  將船載單元安裝在小車中在河北大學(xué)新校區(qū)進(jìn)行現(xiàn)場實(shí)驗(yàn),,PC上安裝控制中心軟件,,首先運(yùn)行監(jiān)控中心程序,程序開始時(shí)即建立Internet服務(wù)器并進(jìn)行監(jiān)聽,;然后按下小車的開關(guān)按鈕,,船載單元開始工作。當(dāng)船載單元和監(jiān)控中心建立TCP/IP連接之后,,按下控制按鈕“啟動”接收GPS數(shù)據(jù),,其他控制按鈕可以實(shí)現(xiàn)對小車的運(yùn)動控制。

  4.2 實(shí)驗(yàn)結(jié)果

  船載系統(tǒng)設(shè)置GPS的發(fā)送時(shí)間間隔為2 s,,包括經(jīng)度,、緯度和時(shí)間信息。小車的運(yùn)動方向可以通過控制按鈕進(jìn)行改變,,表1為小車運(yùn)動的部分記錄,。

004.jpg

  通過實(shí)驗(yàn)結(jié)果可知,系統(tǒng)實(shí)現(xiàn)了GPS數(shù)據(jù)傳輸,、電子地圖實(shí)時(shí)顯示和船載單元運(yùn)動控制,,基本達(dá)到了設(shè)計(jì)要求。

5 結(jié)束語

  本方案是基于GPS/GPRS的系統(tǒng)軟硬件設(shè)計(jì)方法,,系統(tǒng)利用TCP/IP協(xié)議實(shí)現(xiàn)了Internet網(wǎng)絡(luò)與GPRS網(wǎng)絡(luò)的互聯(lián),,可以很好地完成無人船定位數(shù)據(jù)采集和傳輸,最后利用監(jiān)控中心的電子地圖進(jìn)行顯示,。多次實(shí)驗(yàn)表明,,系統(tǒng)具有良好的穩(wěn)定性和實(shí)用性。此外為了對濕地進(jìn)行更全面的環(huán)境監(jiān)測,,還可以添加不同傳感器來完成任務(wù),,使無人船監(jiān)測功能更加豐富完善。

  參考文獻(xiàn)

  [1] 溫志廣.建立白洋淀濕地自然保護(hù)區(qū)芻議[J].河北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),,2003,,27(5):527-530.

  [2] 崔峰,,張明路,,丁承君,等.基于GPS/GIS/GSM的移動機(jī)器人定位技術(shù)研究[J].微計(jì)算機(jī)信息,,2005(11):99-100.

  [3] 卜峰,,李傳江,李歡,,等.基于GPS/GPRS的客車遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,,2014,22(1):79-81.

  [4] 張洋溢,,王忠.基于ARM的GPS/GPRS多功能手持終端的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,,2011,,19(12):50-53.

  [5] 馬騰,楊宏業(yè).基于GPS/GPRS的車載監(jiān)控終端的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測量技術(shù),,2009,,32(4):71-74.

  [6] 陳文剛,宋述勇,,韓啟華.用C#編程語言實(shí)現(xiàn)變電站GPS遠(yuǎn)程監(jiān)控的探討[J].山西電力,,2013(5):54-57.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。