I need to capture and process audio data on an LM4F based system.
The first step of the project is very simple and consists of:
-connecting a piezo microphone to either the ADC or one if the GPIO pins. If GPIO is used, then the resolution is obviously only 1 bit. Otherwise, 8 bits.
-writing code to capture the data on the microcontroller
-for testing purposes, streaming the data to the development system (via the UART over USB for example)
-capturing the data on the PC in a file.
You can decide whether to use 1 bit or 8 bit. Please specify in your proposal what's easier. I imagine that in the 1 bit case an additional amplifier step may be required, please also specify how you would do that.
The system should self adjust sensitivity. In the 1 bit case, that is obviously not a problem, you can just set the amplifier gain to virtually infinite. Sample frequency should be adjustable, defaulting to 44kHz. (which is the highest rate that needs to be supported). One channel only.
The data capture has to be fully automatic. That is, I want to be able to write some code on the PC that will initiate the capture process, and receive the data (streaming). This could mean that the microcontroller just continuously blasts the data stream at the PC and the PC can choose to listen in on it whenever it wants.
You need to procure:
-Stellaris Launchpad ($10 or so)
-a piezo microphone ($0.10 or so)
-other prototype components as you see fit (op amp ic?)
-hand-drawn (or better) schematic on how to hook up the microphone to the Stellaris LaunchPad
-CCS project code to run on the device
-simple command line utility written in C or Java that runs on the PC and captures the data into a file.
With the deliverables, I should be able to program my Launchpad board, rebuild the simple microphone circuit you designed, and type "audio_capture <filename>", and the system should capture the audio coming to the microphone into the specified file.
audio_capture should run on Windows.
In your offer, please specify any limitations and other parameters that indicate how you;d do it. ("1 bit, using UART, audio_capture written in Java")
Obviously this is only a first step towards building our product so if this goes well, we have more work for you.