蓝点无限 发表于 2020-11-17 08:58:56

【软件资料】BP50 套件新框架定位代码实现

BP50 作为我们第一代产品,为了代码的稳定性,一直没有正式适配新代码框架,近期有越来越多的客户想用bp50 进行二次开发,发现bp50 二次开发难度较大,特地将适配的代码贡献给大家,有任何问题,及时联系我们。附件代码适配硬件版本 蓝点无限bp50 V3.0

2020-11-30 新上Ethernet版本代码:http://51uwb.cn/forum.php?mod=viewthread&tid=300&extra=page%3D1
BP50 NewFrameWork Location Code
本code由 51uwb.cn Release

基于TWR测距,结合上位机三边定位原理可以实现TWR定位。

重要提示
1 模块角色通过软件定义,位置bphero_uwb.h

//rx为基站,tx为标签
#define RX_NODE   // 基站
//#define TX_NODE //标签

//基站节点地址0x0001 0x0002 0x0003
//部署完毕基站0x0001 链接串口
//基站地址必须从0x0001开始!!!
#ifdef RX_NODE
      #define SHORT_ADDR 0x0001
//#define LCD_ENABLE //没有液晶的时候,把这个宏定义注释掉
#endif

//标签和基站地址不能重叠
//标签节点地址 0x0005 0x0006 0x0007
#ifdef TX_NODE
      #define SHORT_ADDR 0x0005
      #define LCD_ENABLE //没有液晶的时候,把这个宏定义注释掉
#endif

2 固件支持多基站多标签测距 (定位属于上位机实现范畴,是否支持取决于上位机)
通过修改tx_main.c 控制多标签多基站

多基站控制
/************************!!!重要宏定义!!!******************************/
/****************多基站只需要修改MAX_ANTHOR即可***************************/
/*****************基站的地址必须是从0x0001 开始***************************/
#define MAX_ANTHOR 4
//anthor range
#define SEPC_ADDRESS 0x0000//规0地址,每次规0后,向基站0x0001发送距离信息
#define DEST_BEGIN_ADDR 0x0001//基站起始地址
#define DEST_END_ADDR   DEST_BEGIN_ADDR + MAX_ANTHOR - 1 //anthro address 0x001 0x002 0x003 for 2D ,0x0001 0x0002 0x0003 0x0004 for 3D

   多标签控制
#define MAX_FREQ_HZ 10 //定位10HZ
#define MAX_TX_Node 2//系统中实际存在最多标签节点
   
其他使用中问题,请在51uwb.cn与我们联系交流




面包能生吃吗 发表于 2020-11-17 18:28:03

你好,这个附件里的项目有错。压缩包里也没有这个文件

蓝点无限 发表于 2020-11-17 23:28:34

面包能生吃吗 发表于 2020-11-17 18:28
你好,这个附件里的项目有错。压缩包里也没有这个文件

已修正并更新

面包能生吃吗 发表于 2020-11-18 20:11:42

你好,今天按照您的帖子修改了下图的两个地方,在测试六基站的过程中出现了以下现象。
1.搭建过程中,前五个基站和标签都能正常通信,但是在给第六个基站上电后,标签立刻掉电。2.根据串口助手显示的结果来看,传输的数据中是有基站六的位置的。

蓝点无限 发表于 2020-11-19 08:51:42

面包能生吃吗 发表于 2020-11-18 20:11
你好,今天按照您的帖子修改了下图的两个地方,在测试六基站的过程中出现了以下现象。
1.搭建过程中,前五 ...

可能原因,你标签地址和基站地址重叠了
//标签和基站地址不能重叠
//标签节点地址 0x0005 0x0006 0x0007
#ifdef TX_NODE
      #define SHORT_ADDR 0x0005
      #define LCD_ENABLE //没有液晶的时候,把这个宏定义注释掉
#endif

建议你把标签地址改为0x001X,保证基站和标签地址不重叠

old丨student 发表于 2020-11-19 14:37:27

蓝点无限 发表于 2020-11-19 08:51
可能原因,你标签地址和基站地址重叠了




请问 标签传给基站0的6D7202051B02 C800640094   01 C8000A0D这串数据,标签自己怎么输出到PC端。如果能直接输出 C80064009401这三个距离信息就更棒了。想把标签装在小车上,然后小车上还有STM32芯片,通过串口相连,让小车的STM32芯片可以显示这三个距离信息,然后通过三边定位的算法就可以得到小车在坐标系的坐标了。

old丨student 发表于 2020-11-19 14:48:10

本帖最后由 old丨student 于 2020-11-19 14:52 编辑

old丨student 发表于 2020-11-19 14:37
请问 标签传给基站0的6D7202051B02C800640094   01C8000A0D这串数据, ...
这里应该就是基站0发送给PC端的代码了,怎样让标签也发送呢。。。

蓝点无限 发表于 2020-11-19 15:55:25

old丨student 发表于 2020-11-19 14:48
这里应该就是基站0发送给PC端的代码了,怎样让标签也发送呢。。。

看标签tx_main.c 部分代码,在发送到基站0前打印出来就行了
后面类似问题,建议重新开贴,不要在这个上面盖楼

ab19971211 发表于 2020-12-10 10:36:10

这代码怎么在老板子上跑不了呀,ledrx和ledtx都不会亮。
最近新买的bp-50就可以,需要改什么配置吗?
file:///C:/Users/AB1997~1/AppData/Local/Temp/WeChat%20Files/75592e7a8b8671de38b31c0f9fc558b.jpg

蓝点无限 发表于 2020-12-10 15:30:51

ab19971211 发表于 2020-12-10 10:36
这代码怎么在老板子上跑不了呀,ledrx和ledtx都不会亮。
最近新买的bp-50就可以,需要改什么配置吗?

初始化reset pin修改过了,老板子应该是init fail了
页: [1] 2
查看完整版本: 【软件资料】BP50 套件新框架定位代码实现