Frage

I finished an implementation of a bluetooth application for a robot. Server sided I used Windows 7 as OS with the MS-BT-Stack as well as C# as language with the "In the hand"-bluetooth library.
The target was to connect the robot via bluetooth when it's in range.

Just as extension I tried to read the signal strength to determine how far away the robot is (estimated). Okay, while googling (and searching on stackoverflow too^^), I found out that you can't do that with my used BT-stack. Since that I tried to figure out a workaround to calculate or estimate the signal strength (or the distance).
Something like sending a byte over bluetooth and see how long is the answer-time. Although I haven't implemented it due to a lack of time but does anybody think that this is a good idea? Or has some other thoughts about the problem?

I really appreciate any input.

Thanks!

War es hilfreich?

Lösung

No, I don't think it's a good idea. You will not be able to get a meaningful estimate of distance based on response time. There are many factors in MAC layer and software stacks that will introduce variability.

Even using RSSI does not work very well because

1) RSSI indoors at 2.4GHz has significant multipath issues, meaning you could move away and see the signal get stronger

2) Bluetooth has power control feedback where the two sides continuously adjust Tx power to sit within a fixed golden range. So you move away, RSSI goes down for an instant, then the power control loop boosts the Tx power to keep RSSI at a fixed level.

3) Bluetooth hardware typically has low precision RSSI measurements, meaning you only get a coarse measure, not something you could accurately rely on to get good distance metrics.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top