51uwb.cn

标题: UWB标签基站识别上,数据出现错误 [打印本页]

作者: qingtengshu    时间: 2019-8-26 16:41
标题: UWB标签基站识别上,数据出现错误
开发UWB多基站对多标签项目上,发现一个bug,现在有俩个不同ID的标签连接一个基站,基站串口把测量数据打印出来,结果显示出俩个距离 ,但是我移动一个标签,基站发出的数据,却显示俩个标签距离都变化,是什么原因导致的呢?希望大师可以指点一下,谢谢!
作者: tuzhuke    时间: 2019-8-26 21:49
你是基于什么开发的?蓝点的源码吗?方便的话贴出代码吧,这样说没人懂什么意思
作者: qingtengshu    时间: 2019-8-27 15:00
tuzhuke 发表于 2019-8-26 21:49
你是基于什么开发的?蓝点的源码吗?方便的话贴出代码吧,这样说没人懂什么意思

您好!我基于stm32f103单片机开发,代码是移植的DW1000官方例程,对于上面出现的bug,我在标签与基站通信数据包,是这样定义的,目的将两标签的距离数据区别开,基站方面识别标签发来的数据包,进行相应距离的测算,但是上面的问题还是没有解决,其他代码与官方例程相似,只是main.c部分参数进行了修改,数据输出改为串口输出,还希望您看一下,对于多标签与多基站的通信,您是否遇到过类似问题呢?是如何解决的?非常感谢

  1. /* Frames used in the ranging process. See NOTE 2 below.2a¾à1y3ìÖDê1óÃμÄÖ¡ */
  2.         /*标签0*/
  3. //static uint8 tx_poll_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'W', 'A', 'V', 'E', 0x21, 0, 0};
  4. //static uint8 rx_resp_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'V', 'E', 'W', 'A', 0x10, 0x02, 0, 0, 0, 0};
  5. //static ui        `nt8 tx_final_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'W', 'A', 'V', 'E', 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  6.         /*标签1*/
  7. static uint8 tx_poll_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'T', 'I', 'O', 'N', 0x22, 0, 0};
  8. static uint8 rx_resp_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'O', 'N', 'T', 'I', 0x10, 0x02, 0, 0, 0, 0};
  9. static uint8 tx_final_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE,'T', 'I', 'O', 'N', 0x24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  10. /*基站数据包*/
  11. static uint8 rx_poll_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'W', 'A', 'V', 'E', 0x21, 0, 0};
  12. static uint8 tx_resp_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'V', 'E', 'W', 'A', 0x10, 0x02, 0, 0, 0, 0};
  13. static uint8 rx_final_msg[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'W', 'A', 'V', 'E', 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

  14. static uint8 rx_poll_msg2[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'T', 'I', 'O', 'N', 0x22, 0, 0};
  15. static uint8 tx_resp_msg2[] = {0x41, 0x88, 0, 0xCA, 0xDE, 'O', 'N', 'T', 'I', 0x10, 0x02, 0, 0, 0, 0};
  16. static uint8 rx_final_msg2[] = {0x41, 0x88, 0, 0xCA, 0xDE,'T', 'I', 'O', 'N', 0x24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
复制代码


作者: tuzhuke    时间: 2019-8-27 17:55
qingtengshu 发表于 2019-8-27 15:00
您好!我基于stm32f103单片机开发,代码是移植的DW1000官方例程,对于上面出现的bug,我在标签与基站通信 ...

你两个标签一个基站,保持不动,测距正常吗?

我觉得内部乱掉了,基站 标签之间的数据相互干扰。

比如标签1给基站发送的数据,标签2也收到了,标签2 就会退出接收模式。

多基站多标签需要考虑相互干扰问题
作者: qingtengshu    时间: 2019-8-28 17:30
首先非常感谢您的回帖,我测试了一下,当二标签对一基站时,保持不动,测距也不正常,只有一对一的时候,测距才会正常,估计确实是数据相互干扰了,您那边的程序考虑到相互干扰的情况了吗?是如何解决的呢,能给我一个方向性的指点吗?谢谢!
作者: tuzhuke    时间: 2019-8-28 20:30
qingtengshu 发表于 2019-8-28 17:30
首先非常感谢您的回帖,我测试了一下,当二标签对一基站时,保持不动,测距也不正常,只有一对一的时候,测 ...

分时复用,可以参考我们的代码,我们完整资料论坛有,你可以找下
作者: qingtengshu    时间: 2019-8-29 17:31
tuzhuke 发表于 2019-8-28 20:30
分时复用,可以参考我们的代码,我们完整资料论坛有,你可以找下

BPhero-UWB 资料免费公开了,欢迎交流讨论
http://bphero.com.cn/forum.php?m ... 104&fromuid=261
(出处: bphero)
您好!请问你们的代码,是这个main.c文件吗?(下面是main.c的部分代码)

  1. /* Frames used in the ranging process. See NOTE 2 below. */
  2. static uint8 rx_poll_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x21, 0, 0};
  3. static uint8 tx_resp_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'V', 'E', 'W', 'A', 0x10, 0x02, 0, 0, 0, 0};
  4. static uint8 rx_final_msg[] = {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

  5. static uint8 distance_msg[] = {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xAA, 0, 0,0, 0, 0};

  6. static uint8 tx_poll_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x21, 0, 0};
  7. static uint8 rx_resp_msg[] =  {0x41, 0x88, 0, 0x0, 0xDE, 'V', 'E', 'W', 'A', 0x10, 0x02, 0, 0, 0, 0};
  8. static uint8 tx_final_msg[] = {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

  9. static uint8 angle_msg[] =    {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xFE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  10. static uint8 Semaphore_Release[] =    {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xE0, 0, 0, 0};
  11. static uint8 Tag_Statistics[] =                      {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xE1, 0, 0, 0};
  12. static uint8 Master_Release_Semaphore[] =            {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xE2, 0, 0, 0};
  13. static uint8 Tag_Statistics_response[] =             {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xE3, 0, 0, 0};
  14. static uint8 Master_Release_Semaphore_comfirm[] =    {0x41, 0x88, 0, 0x0, 0xDE, 'W', 'A', 'V', 'E', 0xE4, 0, 0, 0};
复制代码

作者: tuzhuke    时间: 2019-8-29 21:42
qingtengshu 发表于 2019-8-29 17:31
BPhero-UWB 资料免费公开了,欢迎交流讨论
http://bphero.com.cn/forum.php?mod=viewthread&tid=104&fro ...

是的,并不是所有上述信息在测距定位过程中都用到了
作者: qingtengshu    时间: 2019-8-30 09:05
tuzhuke 发表于 2019-8-29 21:42
是的,并不是所有上述信息在测距定位过程中都用到了

非常感谢!!!
作者: qingtengshu    时间: 2019-9-4 16:05
tuzhuke 发表于 2019-8-29 21:42
是的,并不是所有上述信息在测距定位过程中都用到了

您好!我现在想要实现3基站对3标签的功能,(每个基站都获取三个标签的距离,然后总单片机接收三个基站的数据,再进行下一步处理),我用stm32f103单片机,一开始移植官方1对1的代码,结果有bug,听取您的意见,是多基站和多标签相互影响造成的,现在我有你们的俩个代码,一是BPhero-UWB免费资料里的测距定位源码,还有基础知识里的多标签代码,我想参考或者修改一下,看能不能实现我需要的功能,您看我可以去参考哪个代码呢?谢谢!
作者: gardenTED    时间: 2021-4-27 23:06
混一块金比




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