www.mikrocontroller.net

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


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dummdödel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

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

virtuPIC
/ggadgets for tools & toys

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist da war wieder einer schneller.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...


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

Gruss Gregor

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Helmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ich (Gast)
Datum:

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

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.