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

  摘  要: 針對白洋淀濕地靜態(tài)監(jiān)測節(jié)點存在維護(hù)困難等問題,提出了一種采用無人船作為動態(tài)監(jiān)測節(jié)點的方法。應(yīng)用GPS技術(shù)和GPRS技術(shù)實現(xiàn)對無人船的定位監(jiān)控,系統(tǒng)主要分為船載單元和監(jiān)控中心兩大部分。船載單元采集、傳輸無人船定位信息以及接收上位機(jī)命令控制船體運(yùn)動。使用C#語言在Visual Studio2010環(huán)境下開發(fā)監(jiān)控中心軟件,監(jiān)控中心實現(xiàn)無人船在電子地圖中的定位顯示和船體控制命令的下發(fā)。實驗表明,該系統(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)測站點就顯得尤為重要。目前濕地生態(tài)監(jiān)測節(jié)點主要由靜態(tài)監(jiān)測節(jié)點組成,靜態(tài)節(jié)點覆蓋范圍小、維護(hù)困難,對于一些復(fù)雜水域很難利用靜態(tài)節(jié)點監(jiān)測。無人船可以在水上航行,因此可以利用無人船作為動態(tài)節(jié)點進(jìn)入該區(qū)域完成任務(wù),無人船擴(kuò)大了濕地現(xiàn)場監(jiān)測范圍。系統(tǒng)主要對無人船遠(yuǎn)距離控制技術(shù)進(jìn)行研究,采用全球定位系統(tǒng)GPS(Global Positioning System)技術(shù)實現(xiàn)自主定位,為了更直觀地顯示無人船位置,引入了電子地圖進(jìn)行位置匹配[2];監(jiān)控中心完成船體位置顯示和船體控制命令下發(fā),真正實現(xiàn)了對無人船的遠(yuǎn)程控制。

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

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

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

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

001.jpg

  船載單元主要由GPS模塊、GPRS模塊、驅(qū)動模塊和微處理器組成,監(jiān)控中心由一臺可以聯(lián)網(wǎng)的計算機(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)控中心軟件通過添加電子地圖更直觀地顯示無人船位置,同時也可以利用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è)計

  2.1 船載單元硬件搭建

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

002.jpg

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

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

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

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

  船載單元程序需要對中斷、串口、I/O口進(jìn)行初始化,當(dāng)船載單元上電后,各個模塊開始工作,STM32微處理器控制程序開始初始化。首先需要建立無線通信,STM32利用GTM900模塊向控制中心建立的服務(wù)器申請網(wǎng)絡(luò)連接,建立TCP/IP連接;然后GPS模塊開始獲取位置信息,當(dāng)STM32監(jiān)聽到GPS數(shù)據(jù)到來時開串口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è)計讀取GPRMC格式,其內(nèi)容格式為:$GPRMC,<UTC時間>,<定位狀態(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)動控制。每個電機(jī)需要3個控制信號:EN1(EN2)、IN1(IN3)、IN2(IN4),EN1是電機(jī)1的使能位,EN1為1時電機(jī)1轉(zhuǎn)動,為0時電機(jī)1停止;IN1、IN2控制電機(jī)1的轉(zhuǎn)向,當(dāng)IN1、IN2分別為1、0時,電機(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)”時,即左側(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è)計

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

  3.1 電子地圖功能

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

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

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

4 系統(tǒng)實驗

  4.1 實驗過程

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

  4.2 實驗結(jié)果

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

004.jpg

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

5 結(jié)束語

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

  參考文獻(xiàn)

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

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

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

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

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

  [6] 陳文剛,宋述勇,韓啟華.用C#編程語言實現(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)載。