DWM1000模組除錯簡單心得
記錄下除錯UWB模組遇到的問題及解決方法以及個人對UWB模組的一些見解,目前本人除錯的官方demo實現了一標籤對三基站的測距通訊以及分基站基站的資料彙總到總基站,室內40米內總體平均誤差在30cm左右。旨在拋磚引玉,希望對大家有幫助。
DWM1000模組,採用納秒至微微秒級的非正弦波窄脈衝傳輸資料。想要了解更多可以去百度。本質其實就是利用脈衝訊號來計算到達時間或者到達時間差,不同的計算方法(TOA 亦或是TDOA)的目的都是測距。
1、準備材料:
(1)stm32F103C8T6開發板 入門可以直接除錯的官方demo,(附贈下載地址:https://download.csdn.net/download/qq_37967635/10546057
(2)DWM1000模組(淘寶購買大約150左右一塊)模組內有內建天線(訊號源),模組與stm32通過spi通訊,其實官方demo大部分都已經幫我們定義好了。只需要將模組與stm32引腳正確連線即可。
2、1標籤1基站環境
(1)軟體環境(標籤與基站)程式碼搭建
找到下載的壓縮包解壓,官方給的例程都存放 在examples裡
主要用到這倆套例子(圖中圈到的第一個紅圈是 TWR --SS 的測距方法、第二個是TWR -DS方法,相同的是都採用TOF雙向飛行測距,即 測量脈衝飛行的時間 * 光速 = 標籤與模組的距離。不同是04a & 04b 採用的是單邊雙向飛行測距,05a & 05b 採用的是手雙邊雙向飛行測距,當然雙邊更加準確,這裡採用雙邊測距。
繼續點選去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的一側即天線),不然訊號還是會有點影響。
先吃飯,下一篇開始除錯。