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
可以麻烦给一个详细一点的代码修改方案吗,只给修改思路的话我还是不太会,谢谢!
之前有回复,基站和标签测距,基站会先算距离。 代码如下
poll_rx_ts_32 = (uint32)poll_rx_ts;
resp_tx_ts_32 = (uint32)resp_tx_ts;
final_rx_ts_32 = (uint32)final_rx_ts;
Ra = (double)(resp_rx_ts - poll_tx_ts);
Rb = (double)(final_rx_ts_32 - resp_tx_ts_32);
Da = (double)(final_tx_ts - resp_rx_ts);
Db = (double)(resp_tx_ts_32 - poll_rx_ts_32);
tof_dtu = (int64)((Ra * Rb - Da * Db) / (Ra + Rb + Da + Db));
tof = tof_dtu * DWT_TIME_UNITS;
distance = tof * SPEED_OF_LIGHT;
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