摘 要:系統(tǒng)主要對室內(nèi)進行二維定位,能實時定位出目標的相對位置并對其運動軌跡進行繪制。系統(tǒng)以STM32F411單片機作為核心處理單元,通過3個錨點建立直角坐標系,可用TOF算法與光速的乘積算出標簽與錨點之間的距離差,標簽用三邊定位算法可得到位置坐標值,最后標簽將位置坐標值傳送到計算機的上位機中。實際測試結果表明:系統(tǒng)最終能夠定位到的位置與實際位置的偏差很小,具有較高的實時性、穩(wěn)定性以及抗干擾性。
關鍵詞:超寬帶定位;TOF算法;室內(nèi)定位系統(tǒng)
0 引言
在當今社會,去一個陌生的地方都會使用地圖軟件進行導航,它會提供一個最便捷的路線,但是由于GPS信號在室內(nèi)環(huán)境中衰減得很嚴重,甚至有時候會出現(xiàn)搜索不到信號的情況,導致室內(nèi)定位不能直接采用室外定位的方法[1]。
1 室內(nèi)定位的方法
室內(nèi)定位主要有以下幾種方法:藍牙定位、超聲波定位、WiFi定位等。
1.1 藍牙定位技術
藍牙可以發(fā)送和接收2.4 GHz的藍牙信號,藍牙定位主要是靠檢測附近基站的接收信號強度指示(Received Signal Strength Indication,RSSI),獲取被定位用戶的位置信息。雖然藍牙有著體積小、價格便宜、容易集成到應用設備的特點,但由于藍牙通信距離較近以及藍牙基站的不普及,而且藍牙信號易受噪聲信號的干擾,其穩(wěn)定性較差,所以該技術只適用于小范圍內(nèi)定位,并且誤差也很大。其定位誤差范圍一般在2~5 m,所以現(xiàn)在很少把藍牙運用于定位系統(tǒng)。
1.2 超聲波定位技術
超聲波定位一般由1個發(fā)生設備和3個接收設備構成,當整個系統(tǒng)開始啟動時,發(fā)生設備先發(fā)送同步信號,然后再開始發(fā)送超聲波脈沖信號,當接收設備收到同步信號后開啟定時器進行計數(shù),再記錄下此刻接收設備收到脈沖信號時的計數(shù)器值,然后可以分別得到發(fā)生設備與接收設備之間的距離差,實現(xiàn)室內(nèi)定位。
1.3 WiFi定位技術
WiFi定位主要靠檢測周圍WiFi信號強度,然后與室內(nèi)位置建立一一對應的關系,這種關系被稱為指紋庫。被定位的標簽只需要與指紋庫中的參考點進行比對,就可實現(xiàn)目標物體的定位。
2 系統(tǒng)方案設計
2.1 系統(tǒng)整體方案設計
本設計的主要目標是設計一套成本比較低廉的室內(nèi)定位系統(tǒng),目的是獲取標簽相對精確的位置信息,并能實時把定位到的坐標值通過無線數(shù)傳模塊傳送到計算機上,然后在自主開發(fā)的上位機軟件中對標簽進行實時定位和軌跡繪制,通過觀察PC端就能準確知道標簽在什么位置。整個系統(tǒng)由硬件電路和上位機軟件組成,第一部分由錨點與標簽上的DWM1000模塊用TOF算法算出距離值,然后標簽對距離值通過求平均值處理。第二部分由微處理器STM32F411用三邊定位算法算出標簽的坐標值并及時顯示到標簽的OLED上,最后通過數(shù)據(jù)傳輸模塊與計算機通信。上位機軟件可及時更新坐標位置信息,繪制標簽的軌跡。系統(tǒng)如圖1所示。
2.2 系統(tǒng)設計指標
為了讓室內(nèi)定位更加準確,減小誤差,文章提出了以下的設計指標。
(1)標簽需配有OLED顯示屏。如果沒有OLED顯示屏,佩帶標簽的人無法立即知道自己的位置信息,而只能通過PC端的上位機才知道自己的位置信息,所以這樣會非常不方便。
(2)在放置錨點位置時,盡量避免與大地和金屬接觸,因為發(fā)送出去的一部分脈沖信號很容易被它們吸收掉,從而影響定位的精度。
(3)標簽與錨點的供電最好采用鋰電池,并且在測試的時候要將電池充滿電,這樣才能使DWM1000模塊發(fā)射的功率一樣,從而保證定位的精度。
(4)由于一般遮擋會影響定位的精度,所以在放置基站的時候盡量避免遮擋物。
3 系統(tǒng)的硬件電路設計
3.1 單片機整體電路的設計
3.1.1 微控制單元的電路設計
標簽和錨點上的MCU使用的是一款32位單片機STM32F411,完成了電源濾波電路的設計、16 MHz的高速晶體振蕩器的設計、復位電路的設計[2]。
電源濾波電路的設計:電容C34和C35,選用的是容值為100 pF的貼片電容,將它們分別與5 V電源和3.3 V電源串聯(lián),對電源進行濾波處理。
16 MHz的高速晶體振蕩器的設計:需要將大小為16 MHz的晶振接到STM32F411的XIN和XOUT的引腳上,兩端的電容主要作用是輔助起振。
復位電路的設計:復位電路的工作模式是上電后馬上進行復位和手動進行復位。后者是當單片機程序跑飛后,為了讓其繼續(xù)正常工作,需要進行手動復位。電容的容值是 10?μF,電阻的阻值為10 kΩ,起分壓的作用。手動按下復位開關后,C1會進行放電,此時電阻R40兩端產(chǎn)生壓降,導致單片機復位。
3.1.2 電源模塊電路的設計
本系統(tǒng)有兩種供電方案:一種是用USB供電,另一種是用3.6 V的鋰電池供電。采取第一種供電方案,需要將USB的輸出直接與LM1117-3.3模塊的輸入端相連,目的是使5 V的電壓變成3.3 V。電容用來濾除電源中含有的高頻和低頻分量。選擇USB還是鋰電池供電是通過一個波動開關PW1控制的,這可以防止兩種不同的方式同時進行供電時將系統(tǒng)燒壞。LED燈常亮則表示系統(tǒng)供電正常,通過電阻分壓,防止通過LED的電流過大,燒壞LED燈。
3.1.3 DWM1000模塊驅(qū)動電路的設計
發(fā)送超寬帶脈沖信號的裝置使用的是DecaWave公司生產(chǎn)的DWM1000模塊,該模塊符合IEEE802.15.4-2011標準,DWM1000模塊主要完成收發(fā)時間戳的記錄,通過循環(huán)的方式于各個錨點之間完成通信,從而得到標簽與錨點之間的距離[3]。下面對電路進行分析,電容C28起電源濾波作用,D7,D8,D9,D10這些LED燈亮了分別代表接收成功、供電正常、模塊處于接收模式、模塊處于發(fā)送模式。R26和R27的作用是配置SPI的操作模式。
3.1.4 無線數(shù)傳收發(fā)電路的設計
無線數(shù)傳模塊的工作頻段為433 MHz,傳輸速率為 19 200 bps,該模塊的功能相當于通信距離增強版的藍牙模塊。之前采用的是藍牙模塊,但在系統(tǒng)測試時發(fā)現(xiàn)藍牙模塊對DWM1000模塊干擾很大,而且不適合遠距離傳輸,所以就替換成了無限數(shù)傳模塊[4]。PC端的USB口接上一個無線數(shù)傳模塊的接收端,用來接收標簽傳過來的位置值。下面對電路進行分析,模塊上4,5引腳給數(shù)傳模塊進行供電,LED1常亮說明無線數(shù)傳模塊供電正常。
3.1.5 OLED顯示電路設計
本部分的功能主要是實時顯示位置信息,且在調(diào)試期間非常方便,所以電路采用了OLED顯示屏。OLED屏幕與單片機之間的通信采用的是I2C協(xié)議,由一根SCL和一根SDA構成。在進行文字顯示時還要通過漢字提取軟件將漢字轉換成對應的數(shù)組。
3.2 系統(tǒng)PCB設計
電路板設計使用的是 Altium Designer軟件。對元器件進行合理布局和布線,在確保電路能夠正常工作的前提下,盡量使元器件擺放美觀、整齊,減小走線。
4 系統(tǒng)的軟件設計
在系統(tǒng)硬件設計完成之后,制作PCB電路板,在焊接時,一定要確保焊接到電路板上的元器件型號準確,不出現(xiàn)短路、虛焊、漏焊等情況,這樣才能開始進行系統(tǒng)軟件的設計。系統(tǒng)軟件的設計主要由兩個部分組成:一是下位機系統(tǒng)程序的設計;二是電腦上位機系統(tǒng)程序的設計。
4.1 下位機系統(tǒng)程序的設計
標簽的程序設計:標簽上的STM32F411單片機主要的功能是循環(huán)發(fā)送數(shù)據(jù)包給各個錨點,每個錨點收到數(shù)據(jù)包后產(chǎn)生一個應答信號返送給標簽,標簽與錨點之間的距離差可用TOF算法與光速的乘積算出,標簽用三邊定位算法可得到位置坐標值[5]。標簽用無線數(shù)傳模塊把坐標值傳給上位機,以供上位機后續(xù)對數(shù)據(jù)的處理。錨點的程序設計:錨點工作在接收模式,當錨點收到標簽發(fā)送的數(shù)據(jù)包后產(chǎn)生一個應答信號返送給標簽。
4.1.1 開發(fā)環(huán)境
對下位機程序的開發(fā),筆者選用的是 Keil5軟件,因為它更簡潔,集成了官方提供的庫函數(shù)。
4.1.2 TOF算法
由于每一個DWM1000一上電就會馬上產(chǎn)生一條獨立的時間戳,此時標簽發(fā)射超寬帶脈沖的時刻為TB1,錨點在TB2時刻接收到,然后錨點再在TA1時刻發(fā)送應答信號給標簽,此時標簽收到應答信號的時刻為TA2。其中標簽和錨點之間的距離差可以用下列公式算出:D1=C×[(TA2-TA1)+(TB2-TB1)](C為光速)[6]。
4.1.3 三邊定位算法
在放置錨點時,將3個錨點分別放置在坐標系(0,0)(0,5)(5,0)的位置上,建立笛卡爾坐標系,這樣可以減少單片機的計算量。通過TOF算法可以分別得到D1,D2,D3的值,再用三邊定位算法得到的位置信息是相對于這個坐標系而言的。在標簽上的單片機通過最小二乘法得到一個矩陣,矩陣里面存儲著X,Y的值。
4.1.4 平均值濾波算法
標簽在移動的時候距離差會發(fā)生變化,為了減小定位的誤差,提高定位的精度,所以本系統(tǒng)采用平均值濾波算法,該算法主要是將TOF算法得到的距離差求平均值。通過幾組數(shù)據(jù)測試后,最后得出了每8次求一次平均值效果最好。
4.2 上位機程序設計
在確保下位機程序能夠準確得到位置信息后,還需要將定位到的位置信息傳送給計算機,然后在計算機上進行相關數(shù)據(jù)的處理。在滿足上述這些設計的前提下,需要自行編寫一個上位機軟件,由于人們基本上使用的是Windows操作系統(tǒng),故編寫的軟件能在Windows平臺上運行。
4.2.1 串口通信程序的設計
在進行串口通信時,使用的是微軟提供的MSComm控件,直接使用這種控件的好處就是不用花費大量的時間去了解串口通信的詳細過程,縮短了軟件的開發(fā)周期。首先要在項目工程中插入MSComm控件,再為其添加成員變量[7]。
4.2.2 數(shù)據(jù)處理流程
標簽發(fā)送數(shù)據(jù)給電腦時是將位置信息先進行數(shù)據(jù)處理,打包后再進行發(fā)送,這樣可以減小誤碼率,方便計算機對數(shù)據(jù)的處理。數(shù)據(jù)包的格式為:幀頭+數(shù)據(jù)+幀尾。設置“A”作為幀頭,“Z”作為幀尾。因為單片機發(fā)送的位置信息都是由數(shù)字構成的,所以利用幀頭和幀尾可以將每個坐標值進行區(qū)分。
5 試驗與測試
按下標簽和錨點的電源開關按鈕,確保供電正常,然后將3個標簽分別放置在預先建立的坐標系(0,0)(0,5) (5,0)位置上,將標簽佩戴在身上進行移動行走。
在上述步驟完成之后,打開上位機軟件。上位機主要的功能是接收標簽位置的坐標信息,對標簽運動軌跡進行實時繪制。經(jīng)過測試,當基站與標簽之間的距離在30 m之內(nèi)時,定位精度誤差在5~15 cm;當超過30 m之后,室內(nèi)定位的誤差就會比較大。
6 結語
對基于UWB的超高精度室內(nèi)定位系統(tǒng)的反復試驗、修改標簽的程序、修改上位機程序,進一步提高了定位的精度。本系統(tǒng)最終可以穩(wěn)定地運行,能夠滿足最初的設計要求。
[參考文獻]
[1]徐小龍.物聯(lián)網(wǎng)室內(nèi)定位技術[M].北京:電子工業(yè)出版社,2017.
[2]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南:基于STM32F4 [M].北京:機械工業(yè)出版社,2017.
[3]王金龍.無線超寬帶(UWB)通信原理與運用[M].北京:人民郵電出版社,2005.
[4]鄔正義,徐惠鋼.現(xiàn)代無線通信技術[M].北京:高等教育出版社,2008.
[5]朱剛.超寬帶(UWB)原理與干擾[M].北京:北京交通大學出版社,清華大學出版社,2009.
[6]王江舟.高速無線通信—UWB、LTE與4G[M].北京:人民郵電出版社,2010.
[7]林立軍,程斌,翁迪恩縞.Microsoft Visual Studio 2005 6.0 數(shù)據(jù)庫開發(fā)指南[M].西安:西安電子科技大學出版社,2000.
(編輯?王雪芬)
Ultra-high precision indoor positioning system based on UWB
Hao Qingqing
(School of Electeical Engineering and Automation, Henan Polythchnic University, Jiaozuo 454000, China)
Abstract:The system can locate the relative position of the target in real time and draw the trajectory of the target. The system takes STM32F411 MCU as the core processing unit. The system establishes a cartesian coordinate system through three anchor points. The distance difference between the tag and the anchor points can be calculated by the product of TOF algorithm and the speed of light. The tag can get the position coordinate value by using the trilateral positioning algorithm. The actual test results show that the deviation between the final location and the actual location is small, and it has high real-time performance, stability and anti-interference.
Key words:UWB positioning; TOF algorithm; indoor positioning system
作者簡介:郝晴晴(2000— ),女,河南南陽人,本科生;研究方向:電氣工程及其自動化。