I am currently creating a device that would be able to detect the direction of incoming ultronics sound (detecting ultrasonic sound source). This is just a part of final project, but I am a bit stuck with the concept or method of how to acquire a signal from a bunch of ultrasonic sensors.
Since Arduino usually has up to ADC6 ports it is impossible to gather such amount of data given that sampling frequency for ultrasonic sound will have to be enormous (and since there will be more than one ultrasonic sensor that makes things impossible). So, I was wondering, could you suggest some sort of way of how to combine up 12-16 ultrasonic sensors? I believe I will need some sort of external ADC converter (or one for each ultrasonic sensor), they would (should?) work asynchronously and Arduino would be able just to grab acquired (buffered?) data from these "subsystems" and do the rest of calculations. That acquired data then would be used to calculate phase differences, signal strength etc. to evaluate the direction of incoming ultrasonic sound (those ultrasonic sensors would be placed in a circle). I am planning to use these long range sensors Ultrasonic Sensors (I realize that I will need amps and etc., but now I am stuck at data acquisition).
What do you think about ways of doing this? Maybe there are some sort of commercially available out of the box external ADC circuits?
P.S. any recommendations and suggestions regarding this project are welcome.
I know that ultrasonic modules provide only digital value or distance measure like hc-sr04 etc. But I am thinking about using ultrasonic sensor as a microphone to retrieve analog data (with a lot of gain). I am thinking about building my own mic amp with ultrasonic sensor to retrieve analog signals. And, as far as I know, then I would be able to calculate phases, magnitudes etc. (FFT).
Yes, I fully understand that it is way too complicated for arduino to deal with ultrasonic sensors as pure mics, but I though of using external ADC converters and circuits to run ultrasonic sensors (maybe even asynchronously) and then gather data onto arduino to do the rest of calculations and control. I though that you would be able to suggest some sort of solution to this problem (external ADC readings -> data to arduino)
If you cannot suggest something, what would be the best place to ask for such things? Stackoverflow?
Which are going to have to run at an absolute minimum of 80ksps (12.5us per sample), multiplied by as many sensors as you have.
Then you have to get the samples from the external ADC, which will take time or pins, and put them somewhere, which is going to take a lot of RAM.
Unless your starting point is a Due, I think you're going to run out of I/O bandwidth and RAM very quickly.