51uwb.cn

 找回密码
 立即注册
查看: 123962|回复: 514
打印 上一主题 下一主题

【独家框架】UWB DWM1000 开源项目框架

  [复制链接]

73

主题

249

帖子

7064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7064
跳转到指定楼层
楼主
发表于 2019-12-15 09:59:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前基于这个框架做了如下几个开发,后面逐步将每个项目代码放到git上共享给大家
1 dwm1000远程温度采集
代码实现:已经实现,后期整理

2 RSSI信号强度
cnblogs.com/tuzhuke/p/12169538.html
代码实现:已经实现,后期整理

3 单周期测距
代码说明:cnblogs.com/tuzhuke/p/12431115.html
这个basecode 是基于STM32F401 的

4 TWR测距

5 TWR 定位
代码实现:https://bitbucket.org/tuzhuke/twr_location_v1
代码说明:cnblogs.com/tuzhuke/p/12431115.html
这个basecode 是基于STM32F401 的

6 单周期定位升级版
基于3单周期测距,支持多标签,更快刷新频率
代码实现:敬请期待

7 TDOA定位源码(终极目标)
原理说明:cnblogs.com/tuzhuke/p/11638221.html 系列文章
代码实现:敬请期待

帖子正文

UWB 目前比较火热,不论国内还是国外目前都掀起一股热潮。 但是实际工程代码很少,开源代码更少。
目前代码主要有
1 DecaWave Release的定位源码,代码基于TWR,一个非常大的状态机。 之前在博客进行过分析,对于初学者来说门槛太高。
2 淘宝商家Release的定位源码,大多基于官方基本例程去修改,实现测距,进而实现定位,这样的代码通常涉及的东西dwm1000 功能较少,易于初学者学习使用,但是在实际工程中应用比较困。
这里开源一个uwb 框架,姑且命名为51uwb_base,介于二者之间,作为一个工程的base code,希望uwb 工程开发者少走一些弯路。base code 并非实际工程完整代码,只是进行模块化,功能化的一个框架,可以实现UWB无线收发。 开发者可以基于此代码进行测距,传输甚至实现TDOA定位。base code 为项目工程提供,不适合初学者以及学生。base code 本身是从完整工程中提取,去掉了项目细节。
51uwb_base 特点:
A . 代码模块化
  将代码根据功能不同,进行模块化区分,不同模块尽量放置不同文件或函数(项目代码基本要求)
B 帧过滤功能
  多节点工程必然给每个模块分配地址,基于dwm1000 实现配置帧过滤功能
C dwm1000 硬件中断
  使用dwm1000 中断信号,可以提供更高的实时性。同时后期可以根据空闲状态情况进入低功耗休眠
D 移植目前我已知最为牛X的串口代码。
E 硬件环境,蓝点无限科技 BHPERO-UWB Location Node
51uwb_base code使用说明:
1 框架完成数据收发,有TX 节点和 RX节点,通过main函数选择,如下代码为TX节点,反之为RX节点。
  1. int main(void)
  2. {
  3.     peripherals_init();
  4.     BPhero_UWB_Message_Init();
  5.     BPhero_UWB_Init();
  6.     tx_main();
  7.      //rx_main();
  8. }
复制代码
2 每个节点需要配置不同短地址,在bphero_uwb.h中指定
  1. #ifndef SHORT_ADDR
  2. #define SHORT_ADDR 0x0032
  3. #endif
复制代码
配置以上两步编译下载即可。  
注意:
1由于嵌入式代码与硬件有着天然紧密联系,我的代码基于蓝点无限开发板,如果使用其它开发板,需要进行底层匹配,主要代码在port.c中,主要修改dwm1000 与主控的连线引脚配置以及主控的串口配置。
2代码中目前TX发送信息,对应接收信息RX节点地址为TX节点地址+1,故设置RX节点时需要考虑这个不然无法实现测试功能。
  1. void BPhero_Distance_Measure_Specail_TAG(void)
  2. {
  3.     // dest address  = SHORT_ADDR+1,only for test!!
  4.     msg_f_send.destAddr[0] =(SHORT_ADDR+1) &0xFF;
  5.     msg_f_send.destAddr[1] =  ((SHORT_ADDR+1)>>8) &0xFF;
复制代码
51uwb_base讨论:
所有与这个basecode 相关的问题请在论坛发帖讨论,讨论只限于base code 本身。欢迎各位改进优化,更欢迎开源基于改basecode 的工程项目。
游客,如果您要查看本帖隐藏内容请回复
  



回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2019-12-17 17:27:21 | 只看该作者
感谢,感谢
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
板凳
发表于 2019-12-17 17:32:40 | 只看该作者
这个学习成本高吗?以前写Java的
回复

使用道具 举报

0

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
地板
发表于 2019-12-17 19:28:44 | 只看该作者
谢谢分享!
回复

使用道具 举报

73

主题

249

帖子

7064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7064
5#
 楼主| 发表于 2019-12-18 08:08:48 | 只看该作者
yangjh 发表于 2019-12-17 17:32
这个学习成本高吗?以前写Java的

没有嵌入式基础,还真有点难,不过加油!
回复

使用道具 举报

0

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
6#
发表于 2019-12-21 20:11:49 | 只看该作者
代码哪里可以看鸭
回复

使用道具 举报

0

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
7#
发表于 2019-12-23 14:29:26 | 只看该作者
谢谢分享 哈哈哈哈哈哈哈哈哈哈或或或
回复

使用道具 举报

0

主题

5

帖子

12

积分

新手上路

Rank: 1

积分
12
8#
发表于 2019-12-23 20:20:29 | 只看该作者
分享学习,不错,顶一个先。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
9#
发表于 2019-12-24 10:57:03 | 只看该作者
谢谢分享!
回复

使用道具 举报

1

主题

5

帖子

46

积分

新手上路

Rank: 1

积分
46
10#
发表于 2019-12-25 10:38:02 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-11-22 10:24 , Processed in 0.017438 second(s), 4 queries , File On.

Powered by Discuz! X3.3

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

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