51uwb.cn

标题: UWB DWM1000 开源项目框架 之 硬件模块混用测距实现 [打印本页]

作者: 蓝点无限    时间: 2022-2-20 19:54
标题: UWB DWM1000 开源项目框架 之 硬件模块混用测距实现
蓝点UWB代码框架推出两年多,目前可以支持STM32F1 STM32F4两种主控,分别对应我们的BP30、BP50 和BP400

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


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

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

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

代码说明:
公共代码

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

(, 下载次数: 553)
包括了
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











作者: HolyDeal    时间: 2022-2-22 16:47
感谢分享!链接失效了,麻烦重新分享一下
作者: lukkulluk    时间: 2022-3-4 15:51
谢谢楼主分享
作者: Xcc333    时间: 2022-7-27 17:40

感谢分享!链接失效了,麻烦重新分享一下
作者: ryanyooo    时间: 2022-8-15 10:06
感谢分享 可以重新补个链接么
作者: 天神笨笨    时间: 2022-8-16 16:26
感谢分享 学习到了
作者: kylinwu    时间: 2022-8-17 22:01
感谢分享 学习到了
作者: 愤怒的小河马    时间: 2023-4-4 10:15
连接过期了




欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3