www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Geschossknall erkennen in weniger als 30µs

Autor: gast (Gast)
Datum: 08.05.2008 10:37

Hallo

Ich möchte den Aufprall eines Diabolo-Geschosses auf einen Kugelfang mit
einem Mikrofon elektronisch erkennen.
Der Knall muss in weniger als 30µs erkannt sein.

Bisher fällt mir nur ein, den Frequenzgang zu analysieren. AD-Wandler
und FFT sind wohl viel zu langsam.
Könnte man analog mit OPAMPs o.ä. charakteristische Frequenzen und damit
den Knall detektieren?


Gibt es andere Vorschläge oder Ideen dazu?
Autor: Sebastian (Gast)
Datum: 08.05.2008 10:45

Ich denke, ein relativ einfacher Ansatz wäre tatsächlich, das analog mit
Filtern zu lösen. Vielleicht ist auch einfach die Lautstärke des
Geschoßaufpralls im Mikrofon so groß, daß man lediglich den Impuls
erkennen muß, z.B. über Komparator.
Autor: Dummdödel (Gast)
Datum: 08.05.2008 10:59

Bei einem uP mit 100Mhz haste also höchsten 3000 Takte um
sicherzustellen dass es wirklich ein Aufprall ist. Diese Anzahl
verzögert sich natürlich noch um die analogen Baugruppen...
Autor: Thomas Bremer (Firma Druckerei Beste) (virtupic)
Datum: 08.05.2008 11:00

Du hast daran gedacht, dass der Schall auch Zeit braucht, um zum
Mikrofon zu kommen?

virtuPIC
/ggadgets for tools & toys
Autor: Frank (Gast)
Datum: 08.05.2008 11:04

Mal als Denkansatz:
Schallgeschwindigkeit in Luft ist ungefähr 340m/s. Die Reaktionszeit
soll 30µs betragen.

s = v*t = 0,0102m

Das Mikrofon müsste also etwa 1cm neben der Aufprallstelle positioniert
werden. Das ist sicherlich nicht gerade trivial.
Autor: Frank (Gast)
Datum: 08.05.2008 11:05

Mist da war wieder einer schneller.
Autor: Kai Giebeler (runtimeterror)
Datum: 08.05.2008 11:30

>Der Knall muss in weniger als 30µs erkannt sein.
>Bisher fällt mir nur ein, den Frequenzgang zu analysieren. AD-Wandler
>und FFT sind wohl viel zu langsam.

Schonmal überlegt, welche Frequenzen das sein müssten? Ich komme bei
einer Wellenlänge von 30 µs PI mal Daumen auf 11 MHz...

Also auch eine Laufzeit von 0 s bis zum Mikro würde dir nichts bringen.

Womit sich mal wieder die Frage aufdrängt, warum muss es so genau sein?

Für mich hört sich das alles eher nach Lichtschranke an - oder du
rechnest die Laufzeiten bis zum Mikro und für die Analyse einfach wieder
raus.
Autor: mr.chip (Gast)
Datum: 08.05.2008 11:37

> oder du
> rechnest die Laufzeiten bis zum Mikro und für die Analyse einfach wieder
> raus.

Und woher kennst du den Aufprallpunkt des Geschosses so genau? Wie oben
bereits errechnet, bedeuten 30 Mikrosekunden (Das ist übrigens eine
Millionstel-Sekunde, könnte hier das Problem liegen?) einen
Positionsabweichung von gerade mal einem Zentimeter.
Autor: gast (Gast)
Datum: 08.05.2008 11:38

Das Ganze dreht sich um ein solches Schießkino:
http://www.luftgewehr-schiesskino.de/

Es wird mittels Beamer ein Bild auf eine Papierleinwand geworfen, hinter
der sich ein Kugelfang befindet. Der Beamer wirft ein Bild auf die
Leinwand, die man mit der Pistole o.ä. treffen muss. Der Einschlagpunkt
des Geschosses wird erkannt und der Beamer stellt daraufhin ein neues
Bild mit getroffenem Ziel her.

Es gibt an den vier Ecken jeweils ein Mikrofon. Das erste Mikrofon
erkennt irgendwann das Aufprallgeräusch. Danach werden die Zeiten
genommen, die es braucht, bis die drei anderen Mikrofone auslösen. Aus
diesen drei Zeiten habe ich rechnerisch bereits die Koordinaten des
Aufpralls errechnet.
Genauigkeit hängt hier von der Schnelligkeit der Messung ab. 10cm ist
schon ein Muss. Das waren irgendwie die 30µs. Dass man nicht ganz an den
Rand schießen muss, habe ich nicht bedacht. War irgendwie
WorstCase-Denken. Es bleibt also etwas mehr Zeit. Viel mehr Zeit bleibt,
wenn man die Mikrofone weiter weg montiert.

Die Lautstärke (Impuls von Sebastian) selber kann ich vielleicht nicht
verwenden, da ich auch mit CO2-Pistolen darauf schießen möchte. Deren
Müdnungsknall ist deutlich lauter als der Einschlag in den Kugelfang.
Wenn man allerdings fertig mit der Lautstärkemessung ist bevor der
Mündungsknall am Mikrofon ist und das ist ja der Fall, könnte das
vielleicht wirklich einfacher sein.

Im Endeffekt muss ich erst einmal das Mikrofon an mein Oszilloskop
anschließen und den Aufprall messen. Habe dafür nur diesen 150 Euro
Bausatz von ELV. Der kann aber auch einen Frequenzgang darstellen.
Ich werde das über das Wochenende einmal versuchen.

Was bleibt dann prinzipiell?
- analoge Filter für ein paar charaktieristische Frequenzen?
- wie schnell wandeln denn erhältliche normalpreisige DSPs AD und
erkennen die charaktieristischen Frequenzen?
Das Ganze soll auch nicht zu teuer werden bzgl. DSP-Boards und Brenner
usw.
Würde analoge Lösung vorziehen.

Und reicht es aus, wenn man irgendwie durch Messung später Filter weiß,
dass jetzt z.b. 100Hz, 200 Hz und 456khz stark ausgeprägt sind, um auf
den Einschlag im Kugelfang zu schließen?
Autor: Andreas W. (Gast)
Datum: 08.05.2008 11:58

Wenn die verzögerung bei allen 4 mikrophonen gleich ist, kannst du diese
einfach rausrechnen. selbst die schallgeschwindigkeit spielt keine so
große Rolle mehr. Diese muss nur für den "Raum" um das Geschoss nur
gleich sein.

vieleicht solltest du nur 3 Mikrophone verwenden, wenn der knall nur am
Geschossfang erzeugt wird, reicht das doch locker aus. Wenn du einen
vierten verwendest kannst du sogar noch den knall im Raum orten. dann
muss er nurnoch auf den Geschossfang sein und kannst sicher sein das es
nicht der CO2-Knall war.

die 30 µs die du meinst sind nur die Auflösung die du brauchst. ab das
10 ms früher oder später passiert ist relativ egal, wichtig nur das es
immer die gleiche zeit ist. diesen offset kannst du dann konstant
abziehen.
Autor: gast (Gast)
Datum: 08.05.2008 12:10

Hm. das mit der verzögerung ist einleuchtend.
die schallgeschwingikeit würde ich errechnen über die zeit, die der
schall braucht, um von einem zum anderen mirkofon zu kommen. den abstand
kennt man ja. gerade weil die sich mit der temperatur ändert und ich
abstände über diese geschwindkeit berechnen muss.

problematisch wird es aber dann, wenn die filter nicht alle gleich
schnell sind. on man das gewährleisten kann mit analoger elektronik?
Mit welchen charteristischen Frequenzen muss ich beim aufprall rechnen?
die sollen recht hoch sein.
Wenn diese zwischen 333khz und 500khz liegen, könnte ich den ne567
bemühen. solche fertigen frequenzerkenner haben sicher den vorteil, dass
die filter recht ähnlich sind und so kaum unterschiede auftreten würden.
kann mir nicht vorstellen, dass die laufzeit durch opamp-bandpässe immer
gleich ist.
Autor: gregor (Gast)
Datum: 08.05.2008 20:53

Hallo
Wie schnell du erkennst, ob ein Aufprall stattgefunden hat und wo dieser
war ist nicht sehr kritisch. Wichtig ist ja nur den Zeitunterschied
zwischen den Aufprallsignalen der 4 Mikrofonsignale zu ermitteln und
daraus die Position zu  berechnen.

Wichtiges Stichwort hierzu: BEAMFORMING.
(Evt. auch akkustische Kameras).Mach dich darüber mal schlau. Wenn dus
ganz wissenschaftlich willst: hier ein paar Links:

http://www.gfai.de/~heinz/publications/papers/2007...


http://www.bksv.com/pdf/bv0056.pdf

Gruss Gregor
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite
Datum: 08.05.2008 21:05

Na mal nicht komplizierter machen als nötig. Wenn das Aufprallgeräusch
halbwegs charakteristisch und laut genug ist, dann sollte es reichen ein
aufgenommenes Referenzsignal mit allen Mikrofonen zu korrelieren und aus
den Positionen der Maxima die Laufzeiten zu bestimmen.
Autor: Helmi (Gast)
Datum: 08.05.2008 21:18

Meinst du das ein Filter von der Güte b.z.w. Bandbreite so schnell
einschwingt ?  Je höher die Güte kleiner die Bandbreite wird um so
länger braucht das Filter um einzuschwingen.  Auch beim  Tondekoder mit
dem PLL IC NE567 ist das so je kleiner die Loop Bandbreite ist desto
länger braucht die PLL um einzuschwingen.  Auch ist die Frage wo du
Mikros herbekommst mit 500KHz Bandbreite.

Gruss Helmi
Autor: gregor (Gast)
Datum: 08.05.2008 22:59

@Andreas Schwarz
Das Beamforming ist ja fast eine Korrelation nur dass die einzelnen
Abtastwerte addiert statt multipliziert werden und danach über den
Betrag aufsummiert wird. Also eher weniger Rechenaufwand und vorallem
bleibt der Wertebereich einigermassen klein (Fixkomma).
Mit einem PC und Matlab würde ich wohl auch eher korrelieren.

Hast schon recht, die Infos unter den angegebenen links sind schon zu
kompliziert für diese Aufgabe, aber trotzdem könnte es "gast" vielleicht
interessieren.

Gruss Gregor
Autor: Thomas O. (kosmos)
Datum: 08.05.2008 23:15

Wie hoch ist eigentlich die Geschoßgeschwindikgeit ich habe mal früher
was von 100-150 m/s bei CO-Wachen gelesen da der Schall aber schneller
ist könnte man doch einfach den ersten Schallimpuls ignorieren und erst
den 2ten auswerten.

Oder man arbeitet mit Körperschall, das wird sicher unempfindlicher
sein, also 4 Klopfsensoren jeweils in die Ecke einer Metallplatte
festschrauben.
Autor: Ich (Gast)
Datum: 08.05.2008 23:26

Allerdings muss man beim Körperschall noch schneller sein,
Schallgeschwindigkwit in eisen ist 5900m/s
Autor: Thomas O. (kosmos)
Datum: 09.05.2008 09:13

das wären dann 5,9 Meter / 1 mSek ; 59 Zentimeter pro 100µSek ; 5,9
Zentimeter / 10 µSek ; 5,9 Millimeter / 1µSek bischen knapp auch für nen
20 MHz AVR.

Vielleicht ein Material nehmen das Körperschall nicht ganz so gut
leitet, welches das ist habe ich aber keine Ahnung könnte mir vorstellen
das Alu oder Kupfer in Frage komt weil das weicher als Stahl ist.

3 Sensoren  werden bestimmt auch ausreichen wird ja bei der Funkpeilung
auch nur mit 3 Antennen gemacht. Das Zeitkritische ist ja nur das
starten des Timers beim ersten detektieren und das Stoppen oder
abspeichern der Timerwerte bei den nächsten 3 Impulsen für die
Berechnung kann man sich dann natürlich wieder mehr Zeit lassen.
Autor: Michael U. (amiga)
Datum: 11.05.2008 21:57

Hallo,

Körperschall fände ich machbar, irgendwelche Sensoren oder
Körperschallmikrofone sollte es doch geben?

Analog aufbereiten, um einen Impuls zu bekommen, müßte auch machbar
sein.

Dann etwas schnelle Logik (ACT-Serie?), der erste eintreffende Impuls
startet für jeden Sensor einen schnell getakteten Zähler duch setzen je
eines Flip-Flops, die legen gleichzeitig ihren Reset an die Sensoren und
stoppen so, wenn die Impulse an den anderen ankommen. Der startende
Zähler läuft logischerweise dabei durch und stoppt z.B. beim Übertrag.

Dann in Ruhe die Zählerstände einlesen und den AVR darüber nachdenken
lassen.

Irgendwer wird jetzt einen FPGA o.ä. aus dem Hut zaubern, da habe ich
aber keine Ahnung von. ;-)

Gruß aus Berlin
Michael
Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum: 12.05.2008 14:22

Mit 4 Mikrofonen ist es einfacher, da man bei geeigneter anordnung
direkt eine art Koordinaten hat.

Mit 3 Mikrofonen müsste man das erst ausrechnen, aber ich denke das
sollte bei normaler Schussfrequenz auch von nem AVR zu erledigen sein ;)

Das Problem wird nur das exakte erfassen sein.

Ich würde so vorgehen:

Ein paar testaufnahmen machen und so charakteristische Frequenzen
raussuchen (hängt wohl vom Geschoss und von der größe der Platte ab.

Dann einen analogen bandpass aufbauen, der nur eine (oder mehrere) der
spezifischen Frequenzen durchlässt. Optimalerweise diese, die nicht
durch die Waffe selbst erzeugt werden. Jetzt das signal zu einem
einzelnen Puls umformen (gleichrichter, komparator).  Jetzt muss die
Zeitdifferenz noch möglichst genau bestimmt werden. Es gibt einige AVRs
die schnelle Timer haben (64MHz), ich weiß aber gerade nicht, ob die
sich auch per Input Capture triggern lassen. Sonst müsste man das wie
oben beschrieben mit externen Zählerbausteinen aufbauen.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net