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


von gast (Gast)


Lesenswert?

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?

von Sebastian (Gast)


Lesenswert?

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.

von Dummdödel (Gast)


Lesenswert?

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...

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

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

virtuPIC
/ggadgets for tools & toys

von Frank (Gast)


Lesenswert?

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.

von Frank (Gast)


Lesenswert?

Mist da war wieder einer schneller.

von Kai G. (runtimeterror)


Lesenswert?

>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.

von mr.chip (Gast)


Lesenswert?

> 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.

von gast (Gast)


Lesenswert?

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?

von Andreas W. (Gast)


Lesenswert?

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.

von gast (Gast)


Lesenswert?

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.

von gregor (Gast)


Lesenswert?

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_DAGA_Reko.pdf


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

Gruss Gregor

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von Helmi (Gast)


Lesenswert?

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

von gregor (Gast)


Lesenswert?

@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

von Thomas (kosmos)


Lesenswert?

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.

von Ich (Gast)


Lesenswert?

Allerdings muss man beim Körperschall noch schneller sein, 
Schallgeschwindigkwit in eisen ist 5900m/s

von Thomas (kosmos)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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.

von Achim M. (achimmeyer)


Lesenswert?

Hallo Gast,
ich meine den Fragesteller....
bist Du hier noch am mitlesen?

Gruss,

Achim

von Sebastian S. (amateur)


Lesenswert?

>Hallo Gast,
>ich meine den Fragesteller....
>bist Du hier noch am mitlesen?
Bei dem umwerfenden Trafik der letzten Zeit - bestimmt.

Ich hätte es mit Körperschallsensoren (Glasbruch, Piezo) probiert. Der 
Impuls wird üblicherweise in Metallen schneller transportiert. Die 
Filterung gestaltet sich einfacher.

von Tobias (. (Gast)


Lesenswert?

gast schrieb:
> 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.

Hatten wir diese Aufgabe nicht schon vor 2 Jahren bereist, als jemand 
mit Pfeilen sind Schiesskino betrieben hatte und nach Möglichkeiten 
suchte, die Treffer zu detektieren? Wurde seinerzeit mit einem Arduino 
gelöst, wenn ich mich recht entsinne.

Den Knall in 30us zu erkennen, wenn die Kugeln trifft, ist ein Blösinn, 
wenn die Kugel selber nur mit maximal 300 m/s fliegt. Da geht es eher um 
Millisekunden, meine ich.

Ausserdem könnte man auch schon die Mach-Welle erkennen, bevor es 
einschlägt. Machen die Profis auch so.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.