【UWB定位】 - DWM1000模塊調試簡單心得 - 1

記錄下調試UWB模塊遇到的問題及解決方法以及個人對UWB模塊的一些見解,目前本人調試的官方demo實現了一標籤對三基站的測距通信以及分基站基站的數據彙總到總基站,室內40米內總體平均誤差在30cm左右。旨在拋磚引玉,希望對大家有幫助。

DWM1000模塊,採用納秒至微微秒級的非正弦波窄脈衝傳輸數據。想要了解更多可以去百度。本質其實就是利用脈衝信號來計算到達時間或者到達時間差,不同的計算方法(TOA 亦或是TDOA)的目的都是測距。

1、準備材料:

(1)stm32F103C8T6開發板   入門可以直接調試的官方demo,(附贈下載地址:https://download.csdn.net/download/qq_37967635/10546057)(很不好意思賺1個積分,哈哈。)官方demo採用stm32作爲主控MCU,可以自行移植到其他板子(看個人需要)。

(2)DWM1000模塊(淘寶購買大約150左右一塊)模塊內有內置天線(信號源),模塊與stm32通過spi通信,其實官方demo大部分都已經幫我們定義好了。只需要將模塊與stm32引腳正確連接即可。

2、1標籤1基站環境

(1)軟件環境(標籤與基站)代碼搭建

找到下載的壓縮包解壓,官方給的例程都存放 在examples裏

   主要用到這倆套例子(圖中圈到的第一個紅圈是 TWR --SS 的測距方法、第二個是TWR -DS方法,相同的是都採用TOF雙向飛行測距,即 測量脈衝飛行的時間 * 光速 = 標籤與模塊的距離。不同是04a & 04b  採用的是單邊雙向飛行測距,05a & 05b  採用的是手雙邊雙向飛行測距,當然雙邊更加準確,這裏採用雙邊測距。),如不理解跳轉  地址:https://blog.csdn.net/qq_37967635/article/details/82459656 

繼續點擊去05a 把main.c 文件複製到\Keil工程\MDK-ARM中的project 當中即可。copy 一份在複製05b的代碼。 05A即標籤的代碼,05即基站的代碼。好了代碼環境就搭建完了(稍後需要調試參數)。對於裏邊的各種函數還需要自己去稍加理解,壓縮包裏有帶API接口引導手冊,名字爲《DW1000_Software_API_Guide_rev2p0》。

(2)硬件模塊搭建

引腳圖如下: ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

其實,這裏DWM1000模塊就是一個外接模塊,內部通過SPI通信。只需要stm32和模塊連接即可。SPI接口信息定義在port.h

簡單的來說就是:

SPI_CLK      ——    stm32 A5

SPI_MISO    ——    stm32 A6

SPI_MISI      ——    stm32 A7         

SPI_Csn       ——    stm32 A4            

IRQ               ——    stm32 B5

RESET        ——    stm32 B15 

VSS(負)        ——   stm32 GND

VDD3V3(正)  ——   stm32 3.3V

夠簡單的了吧。。天線模塊儘量不要和stm32重疊(標記UWBXX的一側即天線),不然信號還是會有點影響。

 

先喫飯,下一篇開始調試。

【UWB定位】 - DWM1000模塊調試簡單心得 - 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章