Go Down

Topic: Ultrasonic Waves (Read 2109 times) previous topic - next topic

MrMark

In this thread (Using HCSR 04 for communications) I posted some comments about my experiments in communications via ultrasound that you might find of interest.  The issue I see with what you've proposed is that there will be echos from any transmit device that will greatly confuse the interpretation of the received signal at any site.

At least two approaches come to mind.  First would be to perform signal processing on the received signal prior to detection to determine and remove the channel characteristics (the echos).  This would require far more processing power than a typical microcontroller and non-trivial mathematics. 

A second approach that might be workable is to have a known station-dependent delay on each of your receivers that allows the echos from any previous transmission to die out prior to responding.  For example R1 might, upon hearing a pulse, disable listening for 100 milliseconds and respond after 10 milliseconds.  R2 would do the same except it responds after 20 milliseconds and so forth.  T1 then calculates the round trip time to R1 as the time the first pulse is received in the window 10 to 20 milliseconds after its transmission minus 10 milliseconds, and so forth . . .

allanhurst

#16
Jul 08, 2016, 12:46 am Last Edit: Jul 08, 2016, 02:01 am by allanhurst
Hi ..

 Why not do the whole thing with ultrasound? You' need a transmitter/receiver for each of your units, so a premade shield may be appropriate. Code the central transmitter to send an address  such that each outstaton only responds to it's own address . Then time that return.... then on to the next....  ie polling...

The coding could be as simple as morse - made of short/long pulses. Say every transmission signal consists of (eg)  8 pulses of short or long - that allow you to address each of the outstations .
The gap between pulses is big enough for echoes to die away.

Say that the master station always always starts with ( say ) 3 longs and never uses 3 successive longs elsewhere in the signal, and the outstations always respond with a signal  starting with 3 shorts and never use 3 successive longs or shorts elsewhere . That means that outstations don't respond to other outstations and the start of the signal can't be confused with a part of a signal . Leave a decent gap between signals to avoid confusion.


The other 5 pulses contain the station addresses.

The outstations don't respond until they have heard all 8 pulses. The master station knows that the end of the 8 pulses is when to start timing. The start of each pulse is the timing reference - the end may be confused by echoes.

Extend as appropriate.
 
Ce n'est pas facile.... .  Mais c'est possible!

regards

Allan


MrMark

The coding could be as simple as Morse - made of short/long pulses. Say every transmission signal consists of (eg)  8 pulses of short or long - that allow you to address each of the outstations.
The general outline you've presented makes sense, but I think using pulse width ala Morse code is going to be problematic for several reasons.  

One is that multipath echoes may overlap the direct path signal making it appear longer than the intended transmission.  Second, if one uses the HC-SR04 electronics, it only detects the leading edge of the pulse and ignores what follows.   Finally, the piezo transducers are resonant at the transmit frequency (~40 kHz for HC-SR04) so they have an exponentially decaying tail after the driving signal is stopped, thus there's not a clean transmission termination, even if one were operating in an anechoic environment.

Some variant of pulse position modulation is probably dictated by the physical constraints of the problem.  My conclusion in the thread linked in the earlier post was that one could get something on the order of 100 bits per second out of an HC-SR04 based ultrasonic communication system so the position updates for the original poster's scenario are likely to be some small fraction of that.

allanhurst

That's ok - all echoes arrive AFTER the direct path  pulse, so if you time on the leading edge you're OK. Also works  for slow decay at the end. Note I also suggested waiting enough time between pulses for echoes to die away.

regards

Allan

ps the same problems would apply using a radio backlink.

bordeaux270993

Exellent, i wasn't expecting so much answer around here since i switch to the french forum. Thanks guys i will try what you told me if one day my components arrived! (it's been 3weeks since i ordered i'm becoming crasy and i am running out of time! )

I checked the other post, very helpful, i'am just scared that i won't h

bordeaux270993

have enough time!

Thanks any way both of you.

Best regards.

MarkT

The good news is that the point-to-point range ought to be at least twice the reflected wave range, a
consequence of geometry and the lack of absorption from a surface half-way.

The bad news is you need a good RX tuned amplifier to get performance.

You can easily get 10V pk-pk by driving the transducer in a bridge configuration - two output
pins in anti-phase, which is 4 times the transmitted power compared to 5V pk-pk from a single
pin drive.

The transmitter you quote is piezo so can be driven from an Arduino pin via a 150 ohm resistor (piezos
are capacitive loads and need current limiting).
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

allanhurst

The receive transducer is already highly tuned to it's resonant frequency, so that should do most of the filtering by itself.

regards

Allan.

allanhurst

2 quick points..

1/  ( MarkT) the range will be the square of a simple reflective system as it's working as a transponder.  Just like radar the path loss will be inverse 4th for reflection, inverse square for each direct path.

2/ ( bordeaux270993) I'd be very interested to hear how well this works out - could you let us know?

regards

Allan.

Go Up