51uwb.cn

标题: 关于uwb数据输出 [打印本页]

作者: 布鲁斯    时间: 2021-5-21 01:14
标题: 关于uwb数据输出
本人新手,买的uwb小车跟随模块,想请教一下如果想让基站输出具体的距离数值(用单片机接收)该怎么修改代码呢?
可以不需要角度,比如基站0输出标签和基站0的距离,基站1输出标签和基站1的距离,请问这样怎么修改代码呢
谢谢!


作者: 蓝点无限    时间: 2021-5-21 15:01
跟随的代码结构是,标签和基站测距,各个基站把距离汇总给标签,标签计算角度,再返回给基站0.

如果你用基站输出距离,那最开始截留就行。

可以简单梳理下代码
作者: 布鲁斯    时间: 2021-5-21 17:32
呜呜  因为我是新手所以代码不太看得明白  我看到它返回值是用了putchar函数?但是我试着把rx_buffer里的值换成距离值,但是无法输出正常的距离信息
我干脆改用测距模式的话(就是 978行写成if 0),输出的字符串很长,我也不知道分别是出了什么信息
实在抱歉,因为本人基础薄弱,能否烦请您讲的详细一些,谢谢!
作者: 布鲁斯    时间: 2021-5-21 19:15
可以麻烦给一个详细一点的代码修改方案吗,只给修改思路的话我还是不太会,谢谢!
作者: 蓝点无限    时间: 2021-5-22 08:23
布鲁斯 发表于 2021-5-21 19:15
可以麻烦给一个详细一点的代码修改方案吗,只给修改思路的话我还是不太会,谢谢!

之前有回复,基站和标签测距,基站会先算距离。 代码如下
  1.                         poll_rx_ts_32 = (uint32)poll_rx_ts;
  2.                         resp_tx_ts_32 = (uint32)resp_tx_ts;
  3.                         final_rx_ts_32 = (uint32)final_rx_ts;
  4.                         Ra = (double)(resp_rx_ts - poll_tx_ts);
  5.                         Rb = (double)(final_rx_ts_32 - resp_tx_ts_32);
  6.                         Da = (double)(final_tx_ts - resp_rx_ts);
  7.                         Db = (double)(resp_tx_ts_32 - poll_rx_ts_32);
  8.                         tof_dtu = (int64)((Ra * Rb - Da * Db) / (Ra + Rb + Da + Db));

  9.                         tof = tof_dtu * DWT_TIME_UNITS;
  10.                         distance = tof * SPEED_OF_LIGHT;
  11.                         distance = distance - dwt_getrangebias(config.chan,(float)distance, config.prf);
复制代码

上面代码的distance就是基站和标签的距离,如果每个基站都要输出距离信息,那直接把distance这个变量的内容打印出来就好了
作者: 布鲁斯    时间: 2021-5-22 12:04
好好把代码啃了一啃,终于明白啦!谢谢!




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