Hi, I'm working on a "pure tone" controlled mobile robot project. The robot's MCU needs to be able detect the frequency of a specific pure tone (a sine wave) and command its DC motors once that frequency has been recognised.
I'm using an Arduino Uno for this project and am just wondering if you could highlight some pros and cons of using an AVR based MCU like the Atmega328P for DSP, compared to MCUs such as MSP and ARM for example. Just to mention, the mic I'm using is the BOB-12758 Electret.
If it were me I would use a tone detector chip for each tone you need to recognise, it is much more reliable. Something like this http://www.ti.com/product/LM567C but others are available.
stevesy:
Hi, I'm working on a "pure tone" controlled mobile robot project. The robot's MCU needs to be able detect the frequency of a specific pure tone (a sine wave) and command its DC motors once that frequency has been recognised. snip
You could have a look at the Arduino FHT Library, it claims to do a Fast Hartley Transform (like an FFT). That should identify frequencies for you. Have a look at the examples. Using fht_mag_octave() to get relative levels in octaves may work well.
I have not used this library myself, but was recently helping someone else on here who was using it.
I'm using an Arduino Uno for this project and am just wondering if you could highlight some pros and cons of using an AVR based MCU like the Atmega328P for DSP, compared to MCUs such as MSP and ARM for example. Just to mention, the mic I'm using is the BOB-12758 Electret.
Basically you want speed and memory, more of both the better.
The 5v Atmega Arduino Pro Mini runs at 16Mhz, 2kRAM and 32k program space but is limited on I/O pins. I think this is the same as the Uno Rev.3 ?
The Arduino Due is real big and real fast ( 64k RAM, 512k flash, 84MHz clock) but is 3.3v only (which may be a problem for interfacing 5v stuff) and does have some compatibility issues... since it uses a very different CPU several libraries just don't work with it (well, the ones I wanted didn't).
Those are the only 'Arduino' boards I've used.
Might be worth trying the FHT library with your UNO and see if it works and how much CPU time it actually takes.