Slow Sound Radar

There are some projects which seem similar, but this one creates 2D sound image, which can provide X,Y position and approximate dimensions of each obstacle, in two horizontal planes.

There are four pairs of standard ultrasonic range finder speaker/microphone pairs, and they emit short pings, about 100 ms each. Stereo signal is amplified and sampled by MCU in 45 ms period, which covers about 7.6 m diameter. Then the sampled sequence is played at about 20x slower rate, which will last about 900 ms. That gives the 1Hz repeat rate.

If the ultrasonic frequency is 40 KHz, the reproduced tone will be lowered to 40/20=2 KHz, which is unpleasant for permanent listening. Luckily, the reproduced frequency is unique, so it is easy to lower the frequency without affecting timings, by emitting sampled slices in lower sample rate.

User will hear reflected pings at timings which depend on distance (Y position) to the obstacles, and binaural effect of the stereo sound will determine the X position of each obstacle. At the same time the sound volume will roughly depend on the obstacle's dimensions.

There are two equal stereo sets, one of which covers the horizontal plane, and the other one is pointed about 30° downwards, to detect lower objects (stairs, pavement, holes). Those two sequences can be played simultaneously, with different tone frequencies.

I will surely make the prototype and put the results here. The main problem for me will be how to purchase the wide angle ultrasonic speaker/microphone pairs, as most of them are typically quite narrow. The optimal characteristics would be Lembertian, but I wonder is there such ultrasonic transducer on the market.

I shall also add 2- or 3-axis magnetometer, so the MCU will play one more short tone signal (with some other frequency) after every (or every Nth) ping-play sequence. Its stereo position will denote North (or South, with two short tone signals). I think that it might also help a blind person in orientation.

... some very early background of this project ...

About 40 years ago, I was the young licensed ham radio operator, and one of our radio club members was blind. He had the problem of adjusting his transmitter to the peak output, as he couldn't see the instrument dial. We made some very rudimentary voltage controlled oscillator for him, which was squealing and whirring more than producing normal oscillator tone. But he was delighted, as he could also hear some more transmitter parameters in that awful sound. We did our best, but no one of us (except him) could ever hear anything meaningful in that noise.

That makes me think that it is more helpful to give the visually impaired person the raw audio information, than to clean and shape it, like the sonar range finders do.

 

FIRST EXPERIMENTS

I used some old OCR project with PIC24EP512GP806 to build the first prototype. All necessary resources are here - two 10-bit ADCs for sampling, two PWM registers and 52K data memory for sampled sequence. Here it is:

I used two HC_SR04 ultrasonic range finders (two euros each:), removed MCU, modified DC offset from 2.5 to 1.65V (added one more resistor in parallel with R15 on the picture, which is R16 on the schematics) for analog output signal picked from pin 7 of 324 opamp, and replaced the connector, as I needed one more pin for output signal. Driver is still 3232 (U3), driven from my MCU. I planned to use four T/R pairs, for low objects detection, but I gave up. Even with two channels, the audio signal is too confusing.I used two HC_SR04 ultrasonic range finders (two euros each:), removed MCU, modified DC offset from 2.5 to 1.65V (added one more resistor in parallel with R15 on the picture, which is R16 on the schematics) for analog output signal picked from pin 7 of 324 opamp, and replaced the connector, as I needed one more pin for output signal. Driver is still 3232 (U3), driven from my MCU. I planned to use four T/R pairs, for low objects detection, but I gave up. Even with two channels, the audio signal is too confusing.  

Here is the schematics of the older version of HC_SR04, I don't have the new one (there is the new version on the photo). My modifications are in red colour.

And here is my PCB. I rearranged it a little, replaced board-to-board with cable connectors, removed some components and added LDO and two diodes for analog voltage limiting.

I wrote the firmware in assembler, with following parameters (all of them are easily adjustable and will be the subject of additional experiments):

Ultrabeep signal: 40 KHz, total of 1 ms (40 pulses)
Sample rate: 875 KHz, which is 1.14 us
Sampling period: 22.725 ms (20000 left and 20000 right channel samples)
DAC (PWM) rate: 15.5 KHz, total of 1.28 s
Sound slowing factor: 56.3
Audio frequency: 711 Hz (which is 40KHZ lowered by 1/56.3 factor)

Measured total current consumption (MCU and two HC_SR04s) @ 5V is 107 mA.

Then I performed some experiments. Generally it works as expected, but I was disappointed not with the unit, but with me. I can hear sound reflexes (there a lot of them in my room), detect walls and some other flat areas, but it is hard for me to "see" anything more specific. I tried it outside also, I could hear some trees and parked cars, but only in two or three meters range.

There must be some dynamic and MCUcontrolled AGC, and high power transmitter. The amplitude difference in signals reflected from near and far objects is too high.

It was amazing how easy it is to detect stairs - there is the fast tap-tap-tap-tap signal, you can even count them. But it is quite annoying to listen to one frequency for more than half an hour. I must add some filters to get the acceptable sound.

Is it really useful for blind person? I am not sure, at least at this stage. I don't know any visually impaired person, but I shall try to find somebody who wants to join this experiment. I hope that he will not expect too much, I would not like to dissapoint him.

For the next step, I am planning some fine digital signal processing. Signal shaping, filters, AGC, high quality ultrasound transmitters and receivers, more powerfull drivers, low noise preamps, magnetometer, blah, blah...