我完成了一个机器人蓝牙应用的实现。在服务器方面,我使用 Windows 7 作为操作系统,使用 MS-BT-Stack 以及 C# 作为语言,使用“In the hand”-bluetooth 库。
目标是在机器人在范围内时通过蓝牙连接机器人。

就像扩展一样,我试图读取信号强度以确定机器人距离(估计)多远。好的,在谷歌搜索(也搜索 stackoverflow ^^)时,我发现你不能用我用过的 BT 堆栈来做到这一点。从那以后,我试图找出一种解决方法来计算或估计信号强度(或距离)。
类似于通过蓝牙发送一个字节,看看应答时间是多长。虽然由于时间不够,我还没有实现,但有人认为这是个好主意吗?或者对这个问题有其他想法?

我真的很感激任何输入。

谢谢!

最佳答案

不,我认为这不是个好主意。您将无法根据响应时间对距离进行有意义的估计。 MAC 层和软件堆栈中有许多因素会引入可变性。

即使使用 RSSI 也不能很好地工作,因为

1) 室内 2.4GHz 的 RSSI 存在严重的多径问题,这意味着您可以移开并看到信号变强

2) 蓝牙有功率控制反馈,两侧不断调整发射功率,使其处于固定的黄金范围内。所以你走开,RSSI 瞬间下降,然后功率控制回路提高 Tx 功率以将 RSSI 保持在固定水平。

3) 蓝牙硬件通常具有低精度的 RSSI 测量值,这意味着您只能获得粗略的测量值,而不是您可以准确依赖以获得良好距离指标的测量值。

关于c# - Microsoft 蓝牙堆栈 RSSI 解决方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10381503/

10-13 04:17