我完成了一个机器人蓝牙应用程序的实现。服务器端我使用Windows 7作为操作系统与MS-BT-Stack以及C#作为语言与“手中” - 蓝牙库。
目标是当它在范围内时通过蓝牙连接机器人。
就像扩展一样,我试图读取信号强度来确定机器人的距离(估计值)。好的,当谷歌搜索(并在stackoverflow上搜索^^)时,我发现你不能用我用过的BT-stack那样做。因为我试图找出一种解决方法来计算或估计信号强度(或距离)
比如通过蓝牙发送一个字节,看看答案时间有多长。虽然由于时间不够而没有实施,但有人认为这是个好主意吗?或者对这个问题有其他想法?
我真的很感激任何意见。
谢谢!
答案 0 :(得分:4)
不,我不认为这是个好主意。根据响应时间,您将无法获得有意义的距离估计。 MAC层和软件堆栈中有许多因素会引入可变性。
即使使用RSSI也不能很好地工作,因为
1)室内2.4GHz的RSSI存在明显的多路径问题,这意味着您可以离开并看到信号变强
2)蓝牙具有功率控制反馈,双方不断调整Tx功率,使其处于固定的黄金范围内。所以你离开了,RSSI瞬间下降,然后功率控制环路提升Tx功率,使RSSI保持固定水平。
3)蓝牙硬件通常具有低精度RSSI测量,这意味着您只能获得粗略的测量,而不是您可以准确依赖的东西来获得良好的距离度量。