Electronic – Arduino bot that can find a specific sound signal


I am working on my senior design project. It is an Arduino controlled robot. I am trying to figure out the best way to implement sound localization. It seems straight forward, at least two mic's, Fourier Transform the signal, calculate the phase difference.

My problem is that I would like to be able to focus in on one particular frequency, so it isn't just trying to find the source with the biggest amplitude. Does anyone have any recommendations on how to do something like this. I have not used microphones ever, can someone recommend a good one?

I would like it to have a pretty decent range, like a small living room or bedroom. I am thinking of using a very low frequency so I don't have to worry about such a high sampling rate.

I am using an Arduino Uno for anyone familiar with it. I am doing Computer Engineering so I am pretty familiar with EE terms, but I am still learning about signal processing this semester, I know that I should use a bandpass filtering of some kind, but what would be the best way of doing it?

If you know of any examples other people have done, or schematics it would be very helpful.

Best Answer

The "Goertzel algorithm" requires fewer resources (RAM, codespace) and less CPU cycles for a single specific frequency.

Wiki has a good set of links to delve through.

I have used Goertzel on ATMega328P and P8X32A with great results. Good luck with your project.