BP-TWR-30 用户手册
1. 产品介绍
场景介绍
以下所有套件都是标签显示与各基站的距离信息,基站0x0001将距离信息传达到PC中。
测距场景
需要两个模块,通过基站与标签收发信息之间的传播时间换算成两个模块之间的距离。

二维定位场景
基站0、基站1、基站2分别放置到同一平面,且都与标签通信。

三维定位场景
基站0、基站1、基站2分别放置到同一平面,基站3放置Z轴,所有基站与标签通信。

多标签定位场景
多个标签同时与基站通信,二维、三维都支持多标签定位。

产品参数
| 分类 | 参数 |
|---|---|
| 供电 | DC-5v |
| 额定功率 | 500mW |
| 工作温度 | -20℃~80℃ |
| 测距工作频率 | 3hz~4hz,最高40hz |
| 处理器工作频率 | 72Mhz |
| 标签个数 | 10个 |
| 测距精度 | 5cm |
| 定位精度 | 20cm |
| 通信距离 | 30m |
| 固件开发软件 | MDK5 |
| 固件语言 | C |
| 定位上位机 | QT C++ |
硬件介绍
模块外观
标签和基站硬件一样,标签有焊接液晶底座,可插液晶,用于显示距离信息,便于调试测试。

模块接口说明

配件说明


上电测试
模块发货前已预装测距出厂程序,收到货后即可快速进行测试。测试流程如下:
1. 安装液晶屏
确保液晶屏正确安装在标签的排针座上,以便顺利进行后续测试。
2. 供电
通过 USB 口 连接充电宝,为设备提供 5V 电压,确保设备能够正常启动。
3. 检查与观察
上述步骤完成后,检查指示灯和液晶屏的显示,确认设备工作正常。
测试现象
1. 仅标签上电
- 检查指示灯和显示屏:
- 模组上方两个指示灯闪烁。
- 液晶显示:
51UWB Node
Tx Node
www.51uwb.cn
2. 仅基站上电
- 检查指示灯:
- 左上角1个指示灯亮。
3. 标签基站同时上电
- 标签指示灯:同标签单独上电状态。
- 基站指示灯:模组上方两个指示灯闪烁。
- 标签液晶显示:
51UWB Node
Tx Node
RSSI:-xdB //信号强度
Dis: ym //距离
www.51uwb.cn
HEX测试
使用 HEX 测试可以快速对模块进行测试, HEX 测试是一种快速有效的方式,可以对模块进行功能验证和调试。可以快速检查其是否按预期工作。
- HEX 测试需要用到专用软件,程序下载软件ST-Link ;同时会使用串口查看数据,需要安装串口驱动以及串口助手工具。
- 本节内容分为两部分,软件安装以及实操下载测试。首先按需必要的测试软件
软件安装
安装STM32 ST-LINK Utility
STM32 ST-LINK Utility 是由STMicroelectronics提供的一款用于STM32微控制器的开发和调试工具软件。它主要用于通过ST-LINK调试器/编程器与STM32微控制器进行通信,实现程序的下载、调试、读取和配置等功能。
1.在“Keil以及上位机软件”目录下,解压“STM32 ST-LINK Utility”,单击解压后的setup文件。

2.选择“Modify”,单击“Next”。

3.按照界面默认设置,单击“Next”,按照界面提示进行安装。

4.安装完成之后,桌面图标如下所示。

安装ST-Link 驱动
ST-Link 驱动 是一种用于连接 STM32 微控制器与计算机的驱动程序,主要通过 ST-Link 调试器进行程序烧录、调试、读取芯片信息等操作。ST-Link 驱动确保 STM32 微控制器与开发环境(如 STM32CubeIDE、Keil、IAR 等)正常通信。
- 在“Keil以及上位机软件 > STLINK下载器驱动”目录下,解压红框文件,获取安装文件。按照界面提示进行安装。

安装串口驱动
串口驱动的作用是实现对串口硬件的管理,使得数据可以从应用程序传输到串口,或从串口读取传入的数据。本文介绍CH340G串口驱动安装流程
- 在如下路径,根据电脑位数选择驱动,按照界面提示进行安装。

基本工具安装视频
下载实操
1. 连接 ST-Link
- ST-Link 一端通过排针接口连接模块,另一端通过 USB 端口连接到电脑。
- 模块上靠近天线的部分是 ST-Link 底座,请勿连接到串口接口。
- 请将 ST-Link 插头插入第二排接口。
- 模块的各接口与 ST-Link 的接口应一一对应:
- 模块的 3.3V 接口连接 ST-Link 的 3.3V
- CLK 接口连接 SWCLK
- DIO 接口连接 SWDIO
- GND 接口连接 GND
- ST-Link 的线缆颜色没有特定要求,您可以自由选择哪根线连接。

2. 打开 ST-Link Utility
- 启动 STM32 ST-Link Utility 软件,按照以下步骤操作:
- 请根据需要选择对应的 HEX 文件进行加载。

3. 下载 HEX 文件
- 对于每个模块,选择与模块功能匹配的 HEX 文件并进行烧录。根据模块的角色分别选择
- 选择适当的 HEX 文件后,下载完成后,建议在模块背面标注编号(如 1、2、3),以便后续区分模块角色。
测距HEX文件如下:
基站HEX:BP_30_STM32F1_RXNode_LCDDisable_V1.0.hex标签HEX:BP_30_STM32F1_TXNode_LCDEnable_V1.0.hex测距 HEX 测试视频
定位HEX文件如下:
基站1 BP30_STM32F1_RXNode_0x0001_Anthor1_LCDDisable_V1.2.hex基站2 BP30_STM32F1_RXNode_0x0002_Anthor2_LCDDisable_V1.2.hex基站3 BP30_STM32F1_RXNode_0x0003_Anthor3_LCDDisable_V1.2.hex标签HEX:BP30_STM32F1_TXNode_0x0005_LCDEnable_Tag_V1.2.hex定位 HEX 测试视频
3. 查看串口信息
在PC上,按照以下路径点击红框中的选项,打开串口助手。

在串口助手中,点击配置按钮,设置串口波特率为 115200。
可参考 百度经验 ,确认PC连接的实际串口号。

如下图所示,将串口线连接到模块:黑色线连接到 GND,白色线连接到 TX,其他线不需要连接,串口的另一端连接到电脑。
| 串口线 | 模块 |
|---|---|
| 白色 (RXD) | TX |
| 黑色 (GND) | GND |
| 红色 (+5V) | 不连接 |
| 绿色 (TXD) | 不连接 |

点击启动按钮,串口软件界面将显示模块上电初始化信息。如果没有输出信息,请按复位键。如果仍然没有输出,请检查模块是否已上电,确认串口连接和串口软件的端口设置是否正确。
如果显示 init fail,则模块可能存在异常,请联系客服支持,
测距串口信息
单独标签上电正常结果显示如下初始化:
/******************************************************************/
/******** More Information Please Visit Our Website *************/
/************************ www.51uwb.cn **************************/
/********************* FM Version F4-V1.0 ************************/
/******************************************************************/
hello dwm1000!
init pass!
Tx Node
单独基站上电正常结果显示如下初始化:
/******************************************************************/
/******** More Information Please Visit Our Website *************/
/************************ www.51uwb.cn **************************/
/********************* FM Version F4-V1.0 ************************/
/******************************************************************/
hello dwm1000!
init pass!
Rx Node
在测距场景下,标签和基站同时上电,基站的串口信息将显示两个节点之间的距离;标签串口只有初始化信息,距离信息可以通过液晶观察。

测距注意事项:模块之间距离大于20厘米,太近会影响测距精度,且模块之间不要有障碍物,影响模块之间通信。
定位串口信息
在定位场景下,所有模块上电都会有初始化信息, 如果显示 init fail,则模块可能存在异常,请联系客服支持。
- 标签和所有基站上电后,只有基站0(基站地址为0x0001)的设备会有距离信息。
- 定位距离信息为
ASCII码,肉眼不可读,如下图所示,需要选择HEX模式可以查看串口信息。


定位数据格式
| 'm' | 'r' | 0x02 | TAG_ID | Frame_1 | Frame_2 | Dis_0_L | Dis_0_H |
|---|---|---|---|---|---|---|---|
| Dis_1_L | Dis_1_H | Dis_2_L | Dis_2_H | Dis_X_L | Dis_X_H | '\r' | '\n' |
- 'm' 和 'r' 是自定义的数据头。
- 0x02 表示版本号。
- TAG_ID 是标签的唯一标识,多个标签时可通过该ID区分。
- Frame_1 和 Frame_2 为帧的序列号。
- Dis_x_L 和 Dis_x_H 表示基站与标签之间的距离,其中 Dis_x_L 表示低8位,Dis_x_H 表示高8位。
- 当有三个基站时,最后两个数据为基站 0 到标签的距离,与前面 Dis_0_L 和 Dis_0_H 相同。
- 如果有四个基站,最后两个数据为第四个基站与标签的距离。
- '\r' 和 '\n' 为自定义数据的结束符和换行符。
定位操作
模块放置
在进行定位实操之前,请确保完成模块程序的下载。可以使用 ST-Utility 下载 HEX 文件,或者通过 MDK 软件 直接编译并下载程序。下载完成后,务必检查每个模块的串口数据是否符合预期,特别是确保基站 0x0001 上传的距离信息正常。确认无误后,再进行后续步骤。
将已烧录程序的基站放置到指定位置。若使用三个基站,应将其放置成三角形,推荐使用等边三角形布局;若使用四个基站,则应布置成矩形,建议采用正方形布局。
对于 3基站1标签定位,只支持 2D 定位。这意味着所有模块必须位于同一平面上。为了确保准确性,建议使用等高的移动电源为模块供电,并确保所有模块垂直放置于同一水平面。请避免在模块之间放置任何障碍物,因为障碍物会显著影响定位精度。
基站 0 和基站 1 应位于 x 轴上,而基站 2 则位于 y 轴上。举例如下图所示:基站 0 的坐标为 (0, 0),基站 1 放置在 x 轴上,而基站 2 可以放置在 (x, y) 坐标位置,例如 (5, 8),其中 5 为中点,8 为自定义值。
由于在通信和定位计算过程中会有一定误差,因此标签的活动范围应限制在图中所示的实心黄色区域内。

定位显示
-
定位过程,可以通过电脑上位机显示标签实时位置,我们提供windows 下可执行exe程序,用户需要双击打开这个软件
-
如图所示,单击如下软件。

- 注意:打开该软件前,先使用串口工具测试基站0x0001可以正常将标签和三个基站的距离都能从到串口
- 然后关闭串口助手再打开定位软件
定位软件操作:
- 确保串口助手已经上传距离信息
- 关闭串口助手
- 双击 “定位软件.exe" 打开软件
- 点击 软件 右上角 connect按钮连接串口
- 配置左侧红框基站相对坐标(需要米尺量真实数据,然后填入)
标签信息会自动显示在界面上,建议标签在基站包围的范围内运行。

HEX编译
蓝点无限提供UWB测试源码,用户可以自行编译进行测试,或者基于我们的代码进行二次开发。 本文档将详细介绍代码编译的步骤,编译过程需要使用Keil MDK集成开发环境,用户在开始编译前需要先完成该开发环境的安装。 此外,蓝点UWB的测距和定位功能分别对应两套独立的源码,用户应根据实际需求选择相应的源码,并按照本文档中的指导进行编译。
安装MDK
1.在如下路径,使用管理员权限打开红框内容。
按照界面提示进行安装。

2.找到如下桌面图标,使用管理员权限打开MDK。


测距场景
1. 备份源码
在开始编译之前,建议先备份源码。解压源码并将备份文件保存,以便在需要时作为参考文件。选择包含“Distance”字样的目录。

2. 打开工程
进入源码目录,打开工程文件。

3. 目录结构
工程目录结构如下图所示。

4. 配置环境
打开Keil MDK,按照下图中的步骤配置环境。MDK支持多种下载程序的方式,这里介绍的是通过ST-Link的方式进行程序烧录。


5. 选择型号
在MDK中,根据所使用的芯片型号设置。本产品使用的芯片是STM32F1xx系列。如果没有该型号的芯片包,请访问以下目录安装对应的pack,然后重启Keil,重新操作并添加相应芯片型号。

6. 编译工程
在MDK中,单击“Build”按钮或直接按键盘上的F7键进行编译。MDK提供了“编译更改”和“全部编译”两种编译方式。初次编译时,建议选择“全部编译”,后续可以选择“编译更改”,仅编译已修改的部分,从而加快编译速度。系统会在指定目录下生成HEX文件,同时才会出现bphero_uwb.h文件。


7. 配置角色
编译成功后,进入bphero_uwb.h文件进行配置。若需要定义接收节点(RX),可以保留当前设置;若需要定义发送节点(TX),只需去掉注释标记(//)即可。

8. 下载程序
编译完成并无错误后,可以将程序下载到模块中。

定位场景
1. 备份源码
同样,建议先备份源码并解压。选择包含“Location”字样的目录进行操作。

2. 打开工程
进入源码目录,打开工程文件。

3. 目录结构
工程目录结构如下图所示。

4. 配置环境
在MDK中,确保项目已经打开。界面上的按钮会在项目打开后激活。下载程序同样使用ST-Link方式。
- 
5. 选择型号
根据使用的芯片型号设置。在MDK中选择STM32F1xx系列芯片,如果没有该型号的芯片包,按照前述步骤安装并添加对应的芯片类型。
6. 编译工程
在MDK中,单击“Build”按钮或直接按键盘上的F7键进行编译。MDK提供了“编译更改”和“全部编译”两种编译方式。初次编译时,建议选择“全部编译”,后续可以选择“编译更改”,仅编译已修改的部分,从而加快编译速度。系统会在指定目录下生成HEX文件,同时才会出现bphero_uwb.h文件。

7. 角色配置
在bphero_uwb.h文件中,可以定义TX和RX节点。以下是相关的配置说明:
| 参数 | 说明 |
|---|---|
#define RX_NODE |
定义RX节点(基站)。 |
#define TX_NODE |
定义TX节点(标签)。 |
#define MAX_ANTHOR |
设置基站的总个数。 |
#define SHORT_ADDR |
定义RX节点,ID范围为0x0001、0x0002、0x0003、0x0004。 |
#define LCD_ENABLE |
启用显示屏功能。 |
需要注意,TX和RX节点的ID不能重复。

8. 多标签配置
如果需要进行多标签定位,在rx_main.c文件中可以去掉卡尔曼滤波器的相关代码。

9. 下载程序
编译无误后,程序可以被下载到模块中。与测距场景相同,MDK提供“编译更改”和“全部编译”两种编译选项,选择适当的方式加快编译速度。

售后保修
质保期限
- 快递签收起7日内:在质保范围内,包邮保修或更换。
- 7日至15日:在质保范围内,免费保修,运费买卖双方各自负责。
- 15日至1年:在质保范围内,免人工维修费,酌情收取配件更换成本费,来回运费买家负责,无法维修的将原样返回给买家。
质保范围
- 本产品质保及售后只限在中国大陆境内。
- 由于运输途中造成的产品开箱无法正常使用。
- 产品本身元器件损坏造成的无法正常工作。
- 产品设计缺陷造成无法正常使用。
免责范围
包括以下情况但不限于,视可维修情况进行售后,所有费用由买家承担。
- 未经本公司允许,擅自拆解或维修产品。
- 未正确按照说明书安装规范操作,例如连接大于5V的电源供电,造成产品损坏。
- 自然灾害,火灾等不可抗拒的外界力造成的产品损坏。
常见问题
关于模块供电问题
本模块由USB口外接5v移动电源供电,或stlink 3.3v内部供电,不能使用串口供电。
本司配套发货的移动电源为5V、2000mA,包括移动电源的通用注意事项但不限于以下注意事项:
- 充电时不可靠近火源,远离可燃易燃物,严禁将本产品投入火中、水中。
- 不在高温曝晒、雷雨天、或者极冷等极端异常的户外充电。
- 充电过程应始终留意电池安全情况,避免充电过程中长时间。
- 请勿自行拆卸移动电源,本产品一旦发热或有液体漏出、外壳变形、鼓包等异常情况,请立即停止使用。
- 请按国家环保法处理废弃的移动电源。
本司的移动电源充电口为通用口,配套一根白色充电线。
1.什么状态表示在充电,什么状态表示已充满?
电源指示灯闪则表示在充电;电源指示灯常亮则表示已充满,大概3~5小时可充满。
2.充一次电可使用多长时间?
充满之后可使用约9小时。
关于模块摆放安装问题?
模块使用过程需要固定、竖直。不能晃动,不能歪斜,通信区域不能有遮挡,不能在基站通信边缘(如图所示红色边缘区域),否则误差很大。
- 测距:模块之间的间距大于50cm,太近了误差会很大。
- 二维定位:建议基站摆放为等边三角形,间距大于50cm,所有模块高于地面30cm。
- 三维定位:z轴高于xy1米,且z轴基站最好摆放在xy的上方中间位置,x、y轴的摆放和二维一样。
关于模块指示灯意思
指示灯可在调试中作为参考分析。
| 指示灯 | 序号 | 说明 | |
|---|---|---|---|
| 电源指示灯 | 1、2 | 表示模块是否上电,若不亮则表示模块没有供电。 | |
| 模组指示灯 | 3、4 | - 若两个都不亮,则可能模组损坏,或者没有HEX程序。再查看串口若显示init fail则损坏,若没有串口信息,则表示没有HEX程序。 - 若,若标签没有标签距离,则可能程序错误。 |
关于定位数据误差太大
可能有如下原因:
- 模块没有正确摆放:标签在通信边距;模块通信之间有遮挡;模块间距太近。
- 天线延时:参考调节天线延时,可降低误差。参考视频资料里的天线延时或论坛搜天线延时资料即可。
关于串口
1、没有串口信息?
- 模块没有程序或程序错误,查看标签液晶是否有距离或者没有液晶则观察指示灯是否为通信状态。
- 串口软件操作问题,确认串口com是否正确,确认。
2、串口软件无法识别com?
- 若所有模块都无法识别,则是串口驱动问题,重新安装或换个电脑重新安装看看。
- 若仅一个模块无法识别,重新下载我们提供的测试hex,查看指示灯和液晶状态,若还有问题,则可能模块损坏;若下载测试hex无问题,则是程序问题。
3、如何查看串口com?
4、如何查看串口数据,串口数据怎么转换?