51uwb.cn

 找回密码
 立即注册
查看: 2989|回复: 7

UWB DWM1000 开源项目框架 之 硬件模块混用测距实现

[复制链接]

35

主题

941

帖子

3912

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3912
发表于 2022-2-20 19:54:29 | 显示全部楼层 |阅读模式
蓝点UWB代码框架推出两年多,目前可以支持STM32F1 STM32F4两种主控,分别对应我们的BP30、BP50 和BP400

近期我们将代码进行融合,将UWB使用的库单独剥离。重新整合后,代码实现更高层次的复用


实现用“一套代码”适配我们目前所有型号硬件,实现了“硬件自由”,可以理解为测距的时候,两个模块可以自由组合,例如一个是BP30一个是BP400.
同样,定位的时候,模块之间也可以自由组合。

同时,我们的工程使用了STM32 Cube 对硬件做初始化,简化编程,方便后期移植。

本帖分享STM32F1 和 STM32F4工程,后期逐步分享STM32G0和STM32L0工程。
Cube.drawio.png
整体目录结构:
Image 1.png
其中文件夹“BP-UWB_LIB”为UWB公共库文件,而其他每个文件夹则对应一种硬件。在每个硬件MDK工程中都会去引用BP-UWB_LIB内所有文件。

代码说明:
公共代码

BP-UWB_LIB 公共为项目公共代码,主要代码

Image 2.png
包括了
Decawave 芯片初始化代码
卡拉曼滤波
OLED液晶显示(如果某个板子没有液晶,需要配置的时候讲宏注释掉)
platform 硬件(spi api包装)
Src(发送(tx) 和接收(rx)的主函数以及uwb顶层初始化和配置文件)

特别注意:不同硬件板子工程使用的配置文件是共享的。

私有代码
每个板子对应的工程文件夹为私有代码,这部分代码主要是使用STM32Cube对硬件做初始化,同时对硬件做抽象(port.h文件)
每个板子必须定义的外设
1. SPI
2 Timer
3 USART
4 LED

代码使用
如果不做“硬件自由”模块混用,使用代码和之前工程并无差别,只需打开工程文件夹内的MDK工程,修改配置文件bphero_uwb.h 定义设备角色和短地址编译即可。
如果要模块混用,需要打开多个工程(因为每个工程对应一种硬件设计),例如打开STM32F1_UWB_BP50 使用BP50硬件编译基站,然后使用STM32F4_UWB工程将BP400 编译为标签。

  1. //!!!!重要说明!!!!
  2. //RX_NODE 和 TX_NODE 编译的时候只能有且只有一个打开
  3. //RX_NODE  接收节点,通常称作为基站
  4. //TX_NODE  发送节点,通常称作为标签
  5. #define RX_NODE
  6. //#define TX_NODE
  7. //通过MAX_ANTHOR 定义系统中基站个数,2D定位3个基站,3D定位4个基站
  8. //MAX_ANTHOR 3 --> 2D
  9. //MAX_ANTHOR 4 --> 3D
  10. #define MAX_ANTHOR 3
  11. //!!!!重要说明!!!!
  12. //天线延时校正,如果测得距离和实际距离有稳定偏差,可以适当调整这个参数修正
  13. //参考视频:https://www.bilibili.com/video/BV1154y1q7Qp/
  14. #ifndef RX_ANT_DLY
  15. #define RX_ANT_DLY 32900
  16. #endif
  17. //TX 天线延时,设置为0即可,只用RX 天线延时即可
  18. #ifndef TX_ANT_DLY
  19. #define TX_ANT_DLY 0
  20. #endif

  21. //如果是RX节点,定义短地址为0x0002
  22. #ifdef RX_NODE
  23. #define SHORT_ADDR 0x0002
  24. #endif

  25. //如果是TX节点,定义短地址为0x0001并且使能LCD
  26. #ifdef TX_NODE
  27. #define SHORT_ADDR 0x0005
  28. //#define LCD_ENABLE
  29. #endif

  30. //网络ID,如果同一个区域有多套设备存在,可以修改这个参数,每一套一个虚拟网络ID
  31. #define NET_PANID 0xF0F2

复制代码



代码链接:
下面这个代码支持BP50 和 BP400 混用测距
链接:https://pan.baidu.com/s/1iUUXBfyoWPKKyavbSIzFiw
提取码:6666










回复

使用道具 举报

1

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-2-22 16:47:51 | 显示全部楼层
感谢分享!链接失效了,麻烦重新分享一下
回复

使用道具 举报

0

主题

12

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2022-3-4 15:51:34 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

1

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-7-27 17:40:20 | 显示全部楼层

感谢分享!链接失效了,麻烦重新分享一下
回复

使用道具 举报

4

主题

13

帖子

129

积分

官方会员

Rank: 8Rank: 8

积分
129
发表于 2022-8-15 10:06:26 | 显示全部楼层
感谢分享 可以重新补个链接么
回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-8-16 16:26:12 | 显示全部楼层
感谢分享 学习到了
回复

使用道具 举报

0

主题

4

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-8-17 22:01:07 | 显示全部楼层
感谢分享 学习到了
回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-4-4 10:15:43 | 显示全部楼层
连接过期了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-3-29 20:45 , Processed in 0.021319 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表