• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How to GIVE 12 AUDIO Inputs to Computer Simulataneously through Micro controller/PIC

Status
Not open for further replies.
HI...
I am Working on My PROJECT NAMED
GUN FIRE DETECTION SYSTEM
or SPOT FINDER SYSTEM

In This Project, I Find the Spot, where the Gun has been fired....
So i have to get a AUDIO from 12/16 mics simultaneously to give to COmputer and then Calculate the SPOT via MATLAB or LAB VIEW with the help of ALGORITHM...
well i getting trouble to give 12/16 multiple sound Inputs to COMPUTER at the same time, as it have only 1 input module
so i work on this, and gues that i can be possible with the help of MICROCONTROLLER/ PIC/ FPGA etc
but i am unable to find the model Number, or PROGRAMMING GUIDE
so if any one can help me about this, i shall be THANK FULL to him, that HOW can i GIVE 12 or 16 inputs(audio signal) to computer simultaneously????
waiting

Reply at
[email protected]
 

MikeMl

Well-Known Member
Most Helpful Member
The information you are trying to extract from the microphone signals requires that you preserve the "phase" of all of the signals up to the point where you apply the numerical algorithm. To do that, you will need 12 ADCs, one for each channel, each with a sampling rate sufficient to follow the rise time of the audio signals.

A super-fast ADC with a 12:1 multiplexor could do it too, but I'm guessing that you would need a video ADC that samples at tens of MHz.

None of this falls into the relm of what PICs do. Even the so-called DSPics might not be up to it.

Don't forget that you will need 12 anti-aliasing filters, too.

If these terms don't make sense to you, you are looking at a long-learning curve... You might want to hire a consultant that knows DSP (sampled data systems).
 
Last edited:

Sceadwian

Banned
Mike that's one way of making it incredibly complicated.

All he needs to do is record a single synchronized timestamp of each peak signal event. Using an opamp as a bandpass in the interested frequency range to filter out as much garbage as possible just record each event that's over the volume detection threshold that's chosen. The hard part is the algorithm that does the triangulation, triangulating a signal location from that many possible points wouldn't be easy because not every microphone is guaranteed to have heard the shot, there's also echo's.
 
Last edited:

ronsimpson

Well-Known Member
Most Helpful Member
I do not like the 12:1 multiplexor idea. Because the phase is very important I would use 12 ADC and sample at the same time.
 

ronsimpson

Well-Known Member
Most Helpful Member
Sceadwian, I like your idea for a very simple approach.
But:
Last time I did this type of project, I got much information form the shape of the ‘gun shot’. We looked at the height, rising edge slope and falling edge slope and could got more resolution.
Because the data stream is too high for a PC, I could build a 1 second buffer memory that would hold 16 channels of sound for 1 second. Upon detecting a gun shot I would continue recording for 0.9 sec then hold and send to the PC. That way you will have 0.1 sec before the shot and 0.9 after.
 

MikeMl

Well-Known Member
Most Helpful Member
Mike that's one way of making it incredibly complicated.

All he needs to do is record a single synchronized timestamp of each peak signal event. Using an opamp as a bandpass in the interested frequency range to filter out as much garbage as possible just record each event that's over the volume detection threshold that's chosen. The hard part is the algorithm that does the triangulation, triangulating a signal location from that many possible points wouldn't be easy because not every microphone is guaranteed to have heard the shot, there's also echo's.
I think that the OP has the right idea in preserving all of the information in all 12 channels up to the point of applying DSP. I would do it once that way to learn all there is about sorting out all of the possible correlations between the channels. It might be possible to reduce the complexity after the fact, but I wouldn't start out that way.
 

Sceadwian

Banned
If you want to analyze the actual signal you could do that with a small DSP chip. Do whatever categorization routines you want on the DSP itself, one for each channel, then you could send just the simple timestamp and processed data rather than all the raw analog data to be processed on the PC, best of both worlds then.
 

ronsimpson

Well-Known Member
Most Helpful Member
Just for the prototype, use a data acquisition board. I have used 16 channel boards with mega bytes of memory. OR I have a 4 channel digital O-scope with mega memory that talks to a PC. It is not 16 channel but will give you 4 channels and that is a start.
 
Tayyab farooq

RON SIPSON i like ur IDEA
well, one more thng that i want to mention that, i don't use GUNFIRE for sound source in my project...
i just put 12 mics at different position in 25ftx25ft area...
and i use FIRE CRACKERfor producing sound...
i have idea in my mind that i use PIC or micro controlller or FPGA, that i PROGRAMMED, which take 12 values, store in it and choose the MOST HIGHEST 4 values, and send to computer via SERIAL or MIC PORT...
so i am asking about a PIC or FPGA TYPE Via wihich i can do that above task....
 

ronsimpson

Well-Known Member
Most Helpful Member
OK---I thought you want to use phase to get distance. In that case you can find distance and direction to 1cm.

If you just want MOST HIGHEST value, then use a peak detecker to hold the highest value. Then a simple PIC with ADC to measure which is highest. Then send data out to computer.
 

Sceadwian

Banned
Phase is nothing more than the time the signature is detected.
If you can program a DSP to characterize the signature of the audio blip you can time stamp it and only send the characterization information rather than the raw samples it'd be several orders of magnitude less data to transmit.
 

ronsimpson

Well-Known Member
Most Helpful Member
TAYYAB,
The sound is very fast! The ADC in a PIC is too slow. It will only capture one MIC input.
Find out about analog peak detector, using op-amp + diodes + capacitor. This will find highest voltage and hold for a time period. This will give time for the slow PIC to read all 16 voltages.
 
RONSIMPSON, ur idea is very nice
well i m still checking for ATMEL,MAXIM PIC/CONTROLLER, so that i find out the better one which hold and store data and then transmitted..
wel i have one question more from you, that is there any more POSSIBILITY to send 12 signal to computer simultaneously?????
 

ronsimpson

Well-Known Member
Most Helpful Member
Sound Card=good idea
I think it only has 2 MIC inputs. The other inputs are line level so you will need a pre-amp.
 
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top