Hallo,
folgendes Projekt versuche ich gerade zu realisieren.
Auf einer Dartscheibe soll die Position des geworfenen Darts über
akustische Triangulation bestimmt werden. Dazu sollen 3-4 Mikrofone über
den Umfang verteilt werden und auf einen starken Anstieg also einem
plötzlichen Geräusch, wie dem Aufprall des Dartpfeils triggern.
Über die Zeit, die vergeht, bis alle Mikrofone den Peak empfangen haben
könnte man dann die Position ermitteln. Bei einer Schallgeschwindigkeit
von 300 m/s würde 1 mm Weg 3,3 µs entsprechen. Über eine Schaltung
sollen die Mikrofone bereits ihr analoges Signal in ein digitales Signal
für einen Peak umwandeln. Das bedeutet der Microcontroller muss nurnoch
auf einen Peak an einem der vier Eingänge warten und dann die Zeit bis
zu den anderen drei Signalen messen.
Meine Frage ist nun wie ich diese Zeitmessung am besten realisieren
kann. Je genauer die Zeitmessung ist, umso besser kann die Position
bestimmt werden. Da ich mich nicht so gut in dem Thema auskenne hoffe
ich auf eure Anregungen und Ideen. Über mögliche Probleme die ihr in
diesem Ansatz seht wäre ich auch dankbar.
Vielen Dank.
Spontan würde ich einen langsam laufenden Timer regelmäßig einen
Interrupt auslösen lassen (z.B. alle 250 ms), der als Timeout
funktioniert und ein Array zurücksetzt.
Dann würde ich einen schnell und frei laufenden Timer nehmen und sofort
bei Ankunft eines Mikrofonsignals auslesen (entweder in einer Schleife
oder mit Interrupts) und den langsamen Timer zurücksetzt. Da die
absoluten Werte dieses Timers egal sind (wichtig sind die Differenzen),
spielen Überläufe keine Rolle.
Wenn alle N Mikrofone ihr Signal erhalten haben, wertest du das Array
mit den Messwerten aus und setzt das Array dann zurück.
Die Zählgeschwindigkeit des schnellen Timers gibt an, wie genau deine
Messung ist, wird aber dadurch begrenzt, dass du maximal einen Überlauf
pro Messperiode haben darfst. In deinem Fall ist die Rechenzeit eher
irrelevant, weil du nach einer Messphase relativ viel Zeit hast, bis der
nächste Pfeil eintrifft.
pegel schrieb:> Das klingt gut.> Ein Capture Register sollte das schaffen.>> Als Schaltung könnte das gehen:
Hm. Und wenn der Pfeil in der Mitte auftrifft, dann kommen an allen drei
bis vier Pins gleichzeitig Capture-pulse. Ich zweifle, dass man das mit
einem uC so ohne weiteres aufnehmen kann ohne ein Event zu verpassen
oder zu verspäten. Vorausgesetzt, er hat nicht vier einzelne, synchron
laufende Zähler.
Ich würde das mit je einem einzelnen Zähler-IC pro Mikrofon machen und
die Zähler synchron takten. Ein Schmitt-Trigger würde dann ein
Halt-Signal (verlängert über ein FlipFlop oder Monoflop) auf die Zähler
geben. Über den uC kann man dann ganz gemütlich pollen, ob alle vier
Zähler ausgelöst haben und dann alle Zähler auslesen und zurücksetzen.
So verpasst man garantiert keinen Puls, wenn sie (quasi) zeitgleich
kommen.
> Bei einer Schallgeschwindigkeit von 300 m/s würde 1 mm Weg 3,3 µs entsprechen.
Das setzt voraus, dass ein Mikrofon 3.3 µs als Impulsantwort auflösen
kann. Ist das realistisch?
ich würdle mit dem 1. Eintreffen eines Signal einen Timer starten, und
den Zählerstand bei jedem folgenden Impuls auslesen.
Aus den 2 Werten kann man dann die Position berechnen.
Sind wir also bei 4 Mikros - richtig?
... bleibt bei der Einschätzung, ob eine Zeitauflösung, die über dem
10-fachen der Grenzfrequenz eines "normalen" Mikrofons liegt, in der
Impolsantwort realistisch ist. Abgesehen davon: Wenn ich es richtig
sehe, soll das Signal digitalisert werden. Die Amplitude bei der
erwähnten Zeitauflösung ist aber um Zehnerpotenzen gegenüber dem
Bereich, ist sagen wir 20 kHz, gefallen. Oder?
Guck dir mal die XMOS microphone arrays an. Die nutzen PDM Mikrofone, da
ist die gefordete zeitliche Auflösung kein Thema.
Ansonsten mit 384 KHz samplen.
Das Mikrofon ist nicht das Problem, die Herausforderung ist die
zeitliche Verschiebung der eintreffenden Signale so akkurat wie möglich
zu ermitteln.
> Das setzt voraus, dass ein Mikrofon 3.3 µs als Impulsantwort> auflösen kann.
Die bewegte Masse muss so ausgelegt sein, dass sie 100kHz Sinus folgen
kann. So etwas gibt es für ein paar Cent.
Aber welche Frequenzen enthält der Knall? Sind die Flanken überhaupt
steil genug?
Dann noch ein Problem. In Holz ist die Schallgeschwindigkeit 10 mal so
hoch, wie in der Luft.
Erster Schritt wäre wohl, zwei Mikrofone an ein Speicheroszi
anschliessen und die Signale mal anschauen.
> Guck dir mal die XMOS microphone arrays an. Die nutzen PDM Mikrofone, da
ist die zeitliche Auflösung kein Thema.
Ja. Das sind aber keine Piezos, von denen hier ja bisher die Rede war,
oder?
Bedenken schrieb:> Ja. Das sind aber keine Piezos, von denen hier ja bisher die Rede war,> oder?
1. Post vom TO: Mikrofone.
SMD MEMS Mikrofone - z.b. von Knowles - eignen sich ja auch für
Körperschall, und sind in der Regeln sogar im Ultraschallbereich sehr
brauchbar.
> 1. Post vom TO: Mikrofone
... wie auch immer. Die Schallgeschwindigkeit von über 3km/s, die 'Noch
einer' angesprochen hat, ist ein ein Thema.
Als Idee: Lässt sich mit Phasendifferenzen anstelle von
Zeitunterschieden etwas sinnvolles berechnen?
Habe gerade keinen einzelnen Piezo da, hatte aber schon mal einen auf
das Regal gelegt und ans Oszi geschlossen.
Die Kurve beim klopfen erinnert mich an das erste Oszi Bild.
https://www.megadrum.info/forums/viewtopic.php?f=3&t=2549
Am Anfang war immer eine Flanke wie im Bild.
Wenn man den Komparator wie oben im link benutzt, wird bei verschiedener
Lautstärke natürlich auch die Zeit stark schwanken.
Da ist leider nichts mehr mit Mikrosekunden.
Bedenken schrieb:> Als Idee: Lässt sich mit Phasendifferenzen anstelle von> Zeitunterschieden etwas sinnvolles berechnen?
Ganz genau.
Man nimmt es als Audiostreams auf, triggert bei Überschreitung einer
gewissen Signalstärke, und verschiebt dann die Signal solange, bis sie
maximal korellieren.
Je höher die Abtastrate (daher PDM sehr geeignet), desto genauer das
Ergebnis.
Im Grunde ist es eine Zeitdifferenz die man detektiert. "Phase" setzt
eine feste Frequenz voraus, die ja hier nicht vorhanden ist...
Ich geben mal noch folgendes zu bedenken :
bei einer Dartscheibe gibt es zwischen den Feldern die Trenner (aus
Draht).
Wenn der Pfeil da drauf trifft, detektiert man (ausreichende Auflösung
vorausgesetzt) eine Position genau auf dem Draht.
Ob man dann noch feststellen kann in welches Feld der Pfeil danach
abgelenkt wurde kann ich mir spontan nicht vorstellen.
Bei Zielscheiben für Sportwaffen funktioniert das Prinzip wesentlich
besser, da das Projektil nach dem ersten Aufprall nicht mehr abgelenkt
wird.
Vielen Dank schonmal, für die vielen Antworten, ich versuche auf so viel
wie möglich davon einzugehen.
Zur besseren Verständlichkeit hier ein Beispiel, wie ich vorhatte die
Mikrofon Schaltung zu realisieren:
http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2013/agw39_mag338/agw39_mag338/agw39_mag338/agw39_mag338.html
Der Analog Filter circuit sorgt schon dafür, dass nurnoch ein digitales
Signal aus den Mikrofonen kommt, zwischen denen gezählt werden muss. Die
Herausforderung ist wohl auch noch die Schaltungen für alle Mikrofone so
genau wie möglich hinzubekommen, damit die Bauteiltoleranzen
ausgeglichen werden.
S. R. schrieb:> Dann würde ich einen schnell und frei laufenden Timer nehmen und sofort> bei Ankunft eines Mikrofonsignals auslesen (entweder in einer Schleife> oder mit Interrupts) und den langsamen Timer zurücksetzt. Da die> absoluten Werte dieses Timers egal sind (wichtig sind die Differenzen),> spielen Überläufe keine Rolle.
Was wären Hardwaremäßig Beispiele für diese Timer? Wenn ich dich richtig
verstanden habe, dient der langsame Timer nur zum reset des Arrays und
sobald ich ein Mikrofon Signal habe schreibe ich den Wert des schnellen
Timers in das Array, setze den langsamen Timer zurück und habe dann 250
ms um das Array zu verarbeiten, bzw anderweitig zu speichern?
Genau die Rechenzeit ist egal, dafür ist genug Zeit danach.
pegel schrieb:> Das klingt gut.> Ein Capture Register sollte das schaffen.
An sich hatte ich erstmal an Mikrofone gedacht. Da ich nicht weiß, wie
gut Piezo Sensoren funktionieren. Interessant wären da die Vor- und
Nachteile der beiden Systeme.
Aber ein Capture Register scheint trotzdem eine mögliche Variante zu
sein. Mit welcher Genauigkeit arbeiten die denn?
Stefan S. schrieb:> Ich würde das mit je einem einzelnen Zähler-IC pro Mikrofon machen und> die Zähler synchron takten. Ein Schmitt-Trigger würde dann ein> Halt-Signal (verlängert über ein FlipFlop oder Monoflop) auf die Zähler> geben. Über den uC kann man dann ganz gemütlich pollen, ob alle vier> Zähler ausgelöst haben und dann alle Zähler auslesen und zurücksetzen.
Was wären Beispiele für solche Schaltungen? Das Problem ist, dass ich
mit Mikroelektronik bisher nicht viel mehr zu tun hatte als ein paar
Arduino/Raspberry Pi Projekte.
Ich würde es wohl hinbekommen die Schaltungen aufzubauen, nur habe ich
keine Erfahrung was Bauteile angeht.
Bedenken schrieb:> Das setzt voraus, dass ein Mikrofon 3.3 µs als Impulsantwort auflösen> kann. Ist das realistisch?
Jedes Mikrofon muss mir ja nur einen Peak liefern, die Auflösung des
Mikrofons sollte an sich in der Anordnung nicht zu wichtig sein. Sobald
der Ton ankommt kommt das Signal und die Differenz zwischen den
Mikrofonen reicht um die Position zu bestimmen.
pegel schrieb:> Bei 3 klar, bei 4 nicht.> Man kann dann mit 2 Dreiecken rechnen.> Erhöht damit auch die Genauigkeit.
Ja, ich denke auch 4 Mikrofone sind besser geeignet, man hat zur
Sicherheit auch noch ein Mikrofon um eventuelle Fehler abzufangen.
Bedenken schrieb:> ... bleibt bei der Einschätzung, ob eine Zeitauflösung, die über dem> 10-fachen der Grenzfrequenz eines "normalen" Mikrofons liegt, in der> Impolsantwort realistisch ist. Abgesehen davon: Wenn ich es richtig> sehe, soll das Signal digitalisert werden. Die Amplitude bei der> erwähnten Zeitauflösung ist aber um Zehnerpotenzen gegenüber dem> Bereich, ist sagen wir 20 kHz, gefallen. Oder?
Woher nimmst du die Grenzfrequenz? Ich weiß nicht, ob ich in den Fall
falsch denke, aber selbst wenn zum Digitalisieren etwas Zeit benötigt
wird, ist die doch für alle Mikrofone gleich und somit bleibt die
Differenz doch unverändert oder?
Joe F. schrieb:> Guck dir mal die XMOS microphone arrays an. Die nutzen PDM Mikrofone, da> ist die gefordete zeitliche Auflösung kein Thema.> Ansonsten mit 384 KHz samplen.> Das Mikrofon ist nicht das Problem, die Herausforderung ist die> zeitliche Verschiebung der eintreffenden Signale so akkurat wie möglich> zu ermitteln.
Sehen auf den ersten Blick sehr teuer aus. Hatte an normale Elektret
Mikrofone gedacht. Sehe das bisher auch so, dass neben der vernünftigen
Signalübertragung mit möglichst wenig Störgrößen die genaue Zeitmessung
zwische nden Impulsen am wichtigsten ist.
Noch einer schrieb:> Aber welche Frequenzen enthält der Knall? Sind die Flanken überhaupt> steil genug?>> Dann noch ein Problem. In Holz ist die Schallgeschwindigkeit 10 mal so> hoch, wie in der Luft.
Die Frequenz der Flanken bzw. die Auswertung der Rampen des Aufpralls
wäre ja eine Sache der Digitalisierungsschaltung und sollte durch etwas
Feintuning kein Problem darstellen. Die Dartscheibe besteht aus Sisal,
keine Ahnung wie da die Geschwindigkeit ist. Allerdings sollte diese,
wenn ich nicht falsch denke zur Berechnung der Position irrelevant sein.
weil die Differenzen gleich bleiben.
Joe F. schrieb:> SMD MEMS Mikrofone - z.b. von Knowles - eignen sich ja auch für> Körperschall, und sind in der Regeln sogar im Ultraschallbereich sehr> brauchbar.
Von MEMS Mikrofonen wusste ich bisher nichts, werde ich mir mal genauer
durchlesen.
Joe F. schrieb:> Ganz genau.> Man nimmt es als Audiostreams auf, triggert bei Überschreitung einer> gewissen Signalstärke, und verschiebt dann die Signal solange, bis sie> maximal korellieren.> Je höher die Abtastrate (daher PDM sehr geeignet), desto genauer das> Ergebnis.> Im Grunde ist es eine Zeitdifferenz die man detektiert. "Phase" setzt> eine feste Frequenz voraus, die ja hier nicht vorhanden ist...
Interessante Variante, dafür wäre allerdings wirklich eine hohe
Abtastrate und etwas Rechenaufwand erforderlich. Ich denke einfach nur
den Peak zu betrachten müsste ausreichend sein für die Anwendung.
Joe F. schrieb:> bei einer Dartscheibe gibt es zwischen den Feldern die Trenner (aus> Draht).> Wenn der Pfeil da drauf trifft, detektiert man (ausreichende Auflösung> vorausgesetzt) eine Position genau auf dem Draht.> Ob man dann noch feststellen kann in welches Feld der Pfeil danach> abgelenkt wurde kann ich mir spontan nicht vorstellen.> Bei Zielscheiben für Sportwaffen funktioniert das Prinzip wesentlich> besser, da das Projektil nach dem ersten Aufprall nicht mehr abgelenkt> wird.
Der Fall kann natürlich eintreten, wäre natürlich ein Sonderfall. Ich
habe bisher eine Variante gefunden, die diese Ortung mit Mikrophonen
gemacht hat bei denen ist eine Auflösung von 2,5 cm herausgekommen,
allerdings habe ich vor einige Änderungen am Aufbau vorzunehmen.
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0ahUKEwjO0_iL0MfXAhXHVRoKHZ2OCjEQFghoMAk&url=http%3A%2F%2Fweb.mit.edu%2F6.111%2Fwww%2Ff2005%2Fprojects%2Fmje_Project_Final_Report.pdf&usg=AOvVaw2e1Mmixt9LnmGWK95admnE
Bedenken schrieb:> Und wieder Bedenken:> In einer dreieckigen Anordnung gibt es immer einen Schwerpunkt, so dass> ein 'gleichzeitiges' Eintreffen immer möglich ist.Bedenken schrieb:> Korrektur: streiche Schwerpunkt; ersetze durch Schnittpunkt der> Mittelsenkrechten.
Theoretiker :-(
Praktisch lässt sich das ganz einfach vermeiden, indem der Schnittpunkt
der Mittelsenkrechten der Anordnung außerhalb der - hoffentlich nicht
unendlich großen - Dartscheibe liegt
pegel schrieb:> Bei 3 klar, bei 4 nicht.
So klar ist das nun wieder auch nicht. Ein vierter Sensor könnte sich
allerdings günstig auf die Genauigkeit auswirken, wenn man immer nur
drei Sensoren mit der günstigsten Lösungsgeometrie auswertet.
Marcel schrieb:> Bei einer Schallgeschwindigkeit von 300 m/s würde 1 mm Weg 3,3 µs> entsprechen.Bedenken schrieb:>> 1. Post vom TO: Mikrofone> ... wie auch immer. Die Schallgeschwindigkeit von über 3km/s, die 'Noch> einer' angesprochen hat, ist ein ein Thema.
Dann wird die Anforderung an die Messgenauigkeit wohl einen Faktor 10
höher sein, um auf gleiche Positionsgenauigkeit zu kommen.
> Als Idee: Lässt sich mit Phasendifferenzen anstelle von> Zeitunterschieden etwas sinnvolles berechnen?
Dafür müsste der Pfeil nach dem Auftreffen schön nachschwingt, so dass
sich eine hübsche, abklingede Schwingung in der Scheibe ausbreitet.
Problem könnten dann allerdings Reflektionen vom Rand sein.
Marcel schrieb:> Zur besseren Verständlichkeit hier ein Beispiel, wie ich vorhatte die> Mikrofon Schaltung zu realisieren:> http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2013/agw39_mag338/agw39_mag338/agw39_mag338/agw39_mag338.html> Der Analog Filter circuit sorgt schon dafür, dass nurnoch ein digitales> Signal aus den Mikrofonen kommt, zwischen denen gezählt werden muss. Die> Herausforderung ist wohl auch noch die Schaltungen für alle Mikrofone so> genau wie möglich hinzubekommen, damit die Bauteiltoleranzen> ausgeglichen werden.
Schau dir mal die Zeitskalen der Oszimessungen in dem Link an. Das sind
50ms/Kästchen. Du willst einzelne µs auflösen (oder Bruchteile davon,
wenn du den Körperschall und nicht den Luftschall auswerten willst). Du
wirst daher wahrscheinlich weniger ein Problem mit der Genauigkeit der
einzelnen Verstärker haben sondern viel mehr ein Problem mit deren
Geschwindigkeit.
Der 500Hz-Tiefpass am Eingang der Verstärkerschaltung dürfte z.B. für
deine Anwendung eher kontraproduktiv sein: du benötigst hohe
Frequenzanteile im Schallsignal, wenn du einfach den Amplitudenanstieg
auf µs genau feststellen willst. Das ist nicht nur ein Problem deines
Mikros und deiner Verstärker, sondern wie noch einer schon schrieb:
Noch einer schrieb:> Aber welche Frequenzen enthält der Knall? Sind die Flanken überhaupt> steil genug?
Ich würde dir die selben Empfehlung geben wie er, bevor du in eine
falsche Richtung entwickelst:
Noch einer schrieb:> Erster Schritt wäre wohl, zwei Mikrofone an ein Speicheroszi> anschliessen und die Signale mal anschauen.
Du musst erst mal ein Gefühl dafür kriegen, welches Signal du
tatsächlich erwarten kannst, ehe du dich für die Auswertemethode
festlegst.
> Auf einer Dartscheibe soll die Position des geworfenen Darts über> akustische Triangulation bestimmt werden.
Alles klar, es ist wieder Freitag.
Gerade fuhr ein Auto vorüber, dass offensichtlich durch akustische Stöße
angetrieben wurde.
> Jedes Mikrofon muss mir ja nur einen Peak liefern> und sollte durch etwas Feintuning kein Problem darstellen.
Den Aufwand für das Finetuning hast du gewaltig unterschätzt.
Auch wenn die Scheibe aus dämpfendem Geflecht besteht, hast du ein
Gemisch aus direktem Schall und Körperschall, der von anderen Bereichen
der Scheibe abgestrahlt wird. Der indirekte kommt vor dem direkten
Schall an.
Dann ändert sich die Lautstärke mit dem Abstand. Die Mischung von
Signalen unterschiedlicher Lautstärke ergeben ganz andere Peaks.
Wahrscheinlich ist das Signal aus dem Körperschall so gering - du kannst
es nicht auswerten. Aber es macht die Peaks des direkten Schalls kaputt.
Wenn du mit einem Tiefpass die Grundfrequenz herausfilterst, wird dein
Peak zu breit, du kannst nicht mehr genau sagen, wo der Peak liegt und
bekommst eine Auflösung von mehreren cm.
> und verschiebt dann die Signal solange, bis sie> maximal korellieren.
Mal schauen, ob sich der Abstand einfach aus dem Signalgemisch berechnen
lässt. Um die Metriken zur Signalverarbeitung überhaupt zu verstehen,
braucht man erst mal ein Mathe-Studium.
Noch einer schrieb:> Auch wenn die Scheibe aus dämpfendem Geflecht besteht, hast du ein> Gemisch aus direktem Schall und Körperschall, der von anderen Bereichen> der Scheibe abgestrahlt wird.
Der direkte Schall braucht grob einen Faktor 10 länger. Das wurde oben
schon genannt. Ansonsten wird man für so eine Frage wohl immer
Kontaktmikrophone verwenden, die so-gut-wie nur den Körperschall
aufnehmen.
Bin erst jetzt dazu gekommen, weiterzulesen.
Das stimmt der Körperschall wird auf jedenfall ein Problem werden.
Es macht auch am meisten Sinn, wie vorgeschlagen, sich zuerst einmal die
Signale vom Mikrofon am Oszi anzusehen. Bis ich die Möglichkeiten dazu
habe dauert es aber noch ein paar Tage und ich würde gerne nochmal auf
das eigentliche Ziel dieses Threads hinaus.
Angenommen es gibt ein vernünftiges digitales Signal durch eine
Schaltung aus den Mikrofonen. Wie würde ich jetzt diese kurze Zeit von
µS oder sogar Zehntel µS am besten messen?
Also wie könnte konkret so eine Schaltung aussehen, welche IC und µC
könnte man dazu einsetzen?
Das Problem mit der Peak-Erkennung kann dann erst fortgeführt werden,
wenn ich tatsächliche Signale gemessen habe.
Marcel schrieb:> Wie würde ich jetzt diese kurze Zeit von µS oder sogar Zehntel µS am> besten messen?
Laufzeitmessung hat nichts mit Leitfähigkeit zu tun ;-)
https://de.wikipedia.org/wiki/Siemens_(Einheit)
Für die Zeitmessung lässt du einen Hardware-Zähler laufen und liest beim
Eintreffen des Pulses den Zählerstand ab, z.B. innerhalb des µCs mit
einem Timer und Capture.
In dem oben erwähnten BlueCoin Starter Kit gibt es tatsächlich eine Lib
die hier nützlich sein könnte:
"AcousticSL library <provides an implementation for a real-time sound
source
localization algorithm: using 2 or 4 signals acquired from digital MEMS
microphones, it can estimate the arrival direction of the audio source."
Kennt sich jemand mit so etwas aus?
Soo, hat zwar etwas gedauert aber habe die ersten Messergebnisse.
Hoffe es ist in Ordnung, dass ich diesen Thread wiederbelebe, hier ist
bereits einiges darüber geschrieben worden und so muss ich nicht alles
neu erzählen.
Wir haben für einen "Machbarkeitsversuch" 2 Mikrofone mit
Verstärkerschaltungen an ein Labornetzteil angeschlossen und die
Ausgangssignale ans Oszilloskop gehängt. Dann wurde zwischen die
Mikrofone die Dartscheibe gelegt (Mikrofone lagen nicht auf, evtl.
störender Schall durch die Scheibe fehlt in diesem Versuch).
Der Dartpfeil wurde auf die Scheibe geworfen und das Ausgangssignal
gemessen.
In den Bildern ist die Messung zu sehen. In der einen Ansicht ist ein
größerer Ausschnitt des Signals zu sehen um einen Eindruck zu bekommen
und in dem zweiten Bild ist der Ausschnitt näher herangezoomt um die
genaue Zeit zwischen den Signalen abzulesen.
Zwischen den ersten beiden Hochpunkten kann eine Zeitdifferenz von ca.
700 µs abgelesen werden. Umgerechnet bedeutet das eine zurückgelegte
Strecke von 240 mm was auch nach groben Messungen der Position des
Aufpralls entspricht.
Heißt also, mit diesem Aufbau könnte man die Position des Pfeiles
bestimmen. Wichtig hierzu noch, dass alles erstmal nur unter
Laborbedingungen funktionieren muss. Also kann man davon ausgehen, dass
es komplett ruhig ist und es relativ wenig Störungen gibt.
Der nächste Schritt ist neben dem Befestigen der 4 Mikrofone an der
Scheibe. Die Interpretation des Signals über einen Mikrocontroller. Mein
Ansatz war eine Analoge Schaltung, die die Peaks erkennen kann und dann
auf meinen Mikrocontroller nurnoch ein digitales Signal auf 4 Eingänge
gibt, zwischen denen ich die Zeit messe. Dafür habe ich eine Anleitung
für den ESP8266 gefunden, die einen sehr schnellen Timer erlaubt.
Leider kenne ich mich nicht sehr gut in Analogelektronik aus und hoffe
hier auf Anregungen, wie ich dieses Problem lösen könnte.
Als Idee wäre, erstmal etwas Filterung der Signale und dann einen
Schwellwerttrigger, der ab einer bestimmten Spannung das digitale Signal
sendet. Nachteil dieser Umsetzung wäre, dass die Analogsignale
unterschiedlich hohe Spannungen haben, je nach Lautstärke des Aufpralls.
Speziell der Fall, wenn der eine Pfeil ganz nah bei einem und weit weg
von den anderen Mikrofonen auftrifft, ist ein Unterschied in den
Spannungen zu erkennen.
Ist die Schwelle niedrig genug, würde es trotzdem funktionieren,
allerdings würde der Trigger bei dem nahesten Mikrofon schneller
auslösen, was etwas mehr Ungenauigkeit hereinbringt.
Vielleicht fällt euch aber auch noch ein weiterer Weg ein, wie ich das
Problem angehen kann, bin für jede Anregung dankbar.
Kann es sein, daß dies hier dasselbe Thema ist?
Beitrag "Re: Sound erkennen mit Mikrocontroller"
Wir betreiben Objekterkennung mit Ultraschallsensoren und arbeiten mit
DSPS von Analog Devices. Mit Arduino und RaspBerry ist da nichts zu
erreichen.
Wahrscheinlich würde es schon reichen einen Hochpassfilter mit einen
einfachen Schwellwert zu koppeln.
Das System Dart/Dartscheibe/Mikrofon kann man vereinfacht als einen
kausalen Filter ansehen. Sprich jedes Signal wird erst mit dem
Eintreffen des Darts beginnen. Ein Dart kündigt sich nicht schon im
Vorfeld an.
Dieser erste Impuls ist auch der zuverlässigste für die
Positionsbestimmung, da danach quasi eine Kette von "Echos" kommt, wenn
die Schallwelle an den Rändern der Scheibe reflektiert wird.
Sprich ich würde da mal einen Hochpassfilter probieren, der das erste
Auftreffen noch mitbekommt. Man sieht ja auf dem Oszilogram, dass diese
Spitze recht steil und somit mit starken hochfrequenten Anteilen sein
wird. Die Richtung dieser Spitze sollte eigentlich immer gleich sein, da
ja die Scheibe immer nach "hinten" gestoßen wird.
Ich denke, das müsste mit Hochpassfiltern, Komparatoren und Flip-Flops
gehen. Der Komparator triggert das Flip-Flop, welches dann entweder
gleich einen Zähler startet, oder auf einen Port eines Mikrocontrollers
geht. Bei den niedrigen Anforderungen an das Echtzeitverhalten (3,3µs)
kann das quasi jeder Mikrocontroller.
Das Auftreten bekommt man sicher einfach in den Griff. Notfalls auch mit
einem Arduino. Aber der TE will ja die Position ermitteln. Der Schall
macht 330m/s und so eine Dartposition muss mit 1mm genau ermittelt
werden können. Das sind die genannten 3us.
Der Aufprall wird ein "Plopp" im unteren Frequenzbereich auslösen und
die Wellenlänge beträgt da bis zu einem Meter! Bei 100Hz hat das Signal
einen Anstieg von 0,001%/us. Den Hub kriegst Du im Zeitbereich nicht
erkannt, oder nur, wenn das Signal extrem genau und störfrei ist.
Und das reicht ja nicht einmal: Wenn die Position über einen Kreis
bestimmt werden muss, dann verursachen auch größere Positionsänderungen
in der Querachse nur Bruchteile von Verschiebungen in den ankommenden
Signalphasen und somit große Kalkulationsfehler.
Wir arbeiten bei der Positionserkennung mit Ultraschall und können mit
längeren Messzeiten im ersten Versuch gerade 1cm Auflösung erreichen,
wenn wir das Objekt längere Zeit verfolgen. Erst nach mehren Messungen
über einige Sekunden ist die Position auf etwa 0,1mm bekannt und die
Annäherungsgeschwindigkeit kann zuverlässig berechnet werden.
Hallo ! Ein Problem das Du auch beachten solltest : Woherkommt das
Schallsignal ? Bei Auftreffen des Pfeils auf der Scheibe erfährt diese
eine Verformung , die sich über die Scheibe ausbreitet . Aber nicht mit
330 m/ s sondern mit der , dem scheibenmaterial innewohnenden
Ausbreitungsgeschwindigkeit . Die ganze Scheide straht Schall ab . Da
bin ich mir nicht sicher , ob es möglich sein wird den Auftreffort aus
den Schallsignalen zu erkennen .
Es ist immer wieder interessant, dass "pegel" zu jedem, aber auch
wirklich jedem Thema was zu sagen und null Ahnung hat, und das schon
seit Jahren.
Wer glaubt, über die Schallausbreitung in verarbeitetem Holz oder
Plastik mit Oberflächenstrukturen, die zudem bevorzugte Richtungen
aufweisen, den Ausgangspunkt einer Schallquelle im mm-Bereicht
detektieren zu können, sollte erst mal ein Studium der Geophysik und
Seismologie mit Schwerkpunkt auf Inversmodellierung inhomogener
anisotroper Medien abschließen.
So, pegel, und jetzt kommst du...
Ohoh, mal eben schnell ein mobiles Bodenradar im Kleinformat für
Objektlokalisation nachbauen. Ob das was wird?
pegeltrinker schrieb:> Wer glaubt, über die Schallausbreitung in verarbeitetem Holz oder> Plastik mit Oberflächenstrukturen, die zudem bevorzugte Richtungen> aufweisen, den Ausgangspunkt einer Schallquelle im mm-Bereicht> detektieren zu können, sollte erst mal ein Studium der Geophysik
Das ist doch in diesem Forum die tägliche Realität:
Unwissender 1 fragt, wie sich etwas Komplexes ganz einfach machen lasst,
weil er die versteckten Details der Aufgabe nicht sieht, und ...
Unwissender 2 tut sich mit einer scheinintelligenten Lösung hervor, weil
auch er die versteckten Probleme möglicher Umsetzungen nicht sieht.
Das Ganze krankt also an 2 Stellen: Am Konzept und der Realisation.
Trotzdem soll es mit einem Smartphone in einer kostenlosen APP
realisierbar sein.
>akustische Triangulation
Habe Ich in einer Anwendung einer Akustikkamera gemacht und erfordert
Detailwissen auf dem Gebiet der Elektronik, Elektromechanik und der
Signalverarbeitung, welche über das Level der Bastler hier im Forum
deutlich hinaus geht. Allein schon die Auswertung und Korrektur der
Mikrofonsignale ist eine größere Aktion. Nicht umsonst haben
professionelle Firmen Experten im Team, die sich nur darum kümmern.
pegeltrinker schrieb:> null Ahnung hat, und das schon seit Jahren.
Ah, ein treuer Fan. Keine Angst ich werde meinen Namen auch nicht
ändern.
Prost!
Zum Thema: Anfang der 80er war ich in einer Schallmess Einheit.
Allerdings ging es dort um Schallausbreitung in der Luft im Meter
Bereich.
Die Berechnung der Koordinaten der Schallquelle im Bezug auf drei
bekannte Punkte müsste ich sogar noch hin kriegen.
pegel schrieb:> Zum Thema: Anfang der 80er war ich in einer Schallmess Einheit.> Allerdings ging es dort um Schallausbreitung in der Luft im Meter> Bereich.
Wow, vor fast 40 Jahren hast du also mal mit Schall zu tun gehabt,
seitdem alles vergessen und nichts dazugelernt, und das qualifiziert
dich jetzt, zu jedem Beitrag, in dem das Wort "Schall" auftaucht, deinen
unqualifizierten Senf abzugeben?
> Die Berechnung der Koordinaten der Schallquelle im Bezug auf drei> bekannte Punkte müsste ich sogar noch hin kriegen.
Ja, mit idealisierenden Annahmen kann das auch meine 16jährige Tochter,
und sie kann im Gegensatz zu dir sogar denken, aber eine Dartscheibe ist
nunmal keine Luft.
Kümmer dich lieber um deinen Pegel.
pegel schrieb:> Die Berechnung der Koordinaten der Schallquelle im Bezug auf drei> bekannte Punkte müsste ich sogar noch hin kriegen.
Das kriegt jeder hin. Das Problem ist das Erkennen der Punkte. Das sind
nämlich Zeitpunkte, die sehr exakt bekannt sein müssen und man muss
3dimensional Denken. Schall wird gebeugt, reflektiert, frequenzabhängig
gestreut und gedämpft.
Mar. W. schrieb:> Das kriegt jeder hin. Das Problem ist das Erkennen der Punkte. Das sind> nämlich Zeitpunkte, die sehr exakt bekannt sein müssen und man muss> 3dimensional Denken. Schall wird gebeugt, reflektiert, frequenzabhängig> gestreut und gedämpft.
Und genau das bestreite ich. Wenn man hier die Signale der Mikrofone
kreuz-korelliert findet man wahrscheinlich immer so ziemlich die gleiche
Korellation heraus die die Unterschiede des "Plops" an unterschiedlichen
Stellen der Scheibe beschreibt, bzw wahrscheinlich nur die
Autokorellation des "Plops", deren Mittelpunktspeak wohl viel breiter
ist als die Mikrosekunden die benötigt werden.
Christian B. schrieb:> Und genau das bestreite ich.
Bestreitest Du, dass es geht, oder dass es nicht geht?
Ich kann aus Erfahrung mit dem damaligen Projekt nur sagen, dass es
eigentlich immer irgendwie geht und es einfach eine Frage des Aufwandes
ist, den man treiben will. Je dichter die Mikrofone sitzen und je mehr
es sind, desto besser ist die Auflösung. Mit einer AK von 128x128 lässt
sich ein Dartpfeil bestimmt einem Feld zuordnen. Wahrscheinlich muss man
aber von der Seite reinkucken und entzerren.
Ich bin kein Dartexperte, somit weiß Ich nicht, wie genau das sein muss.
Möglich, dass es auch reicht, nur den Umfang des dart boards mit
Sensoren zuzupflastern und zu mitteln.
Ist jemandem bekannt, wie das diese professionellen dart boards machen?
Ich habe eine elektronische Dartscheibe, allerdings keine
professionelle, sondern eher ein Billigteil. Ist sowas ähnliches wie auf
dme Bild in Beitrag "Re: Microcontroller für akustische Triangulation" zu
sehen.
Die macht es so, allerdings wäre "Sensoren" da etwas übertrieben. Ich
habe das Teil zwar noch nicht von innnen inspiziert, aber es scheint so
zu funktionieren, dass jedes Segment einzeln beweglich angebracht ist
und einen Kontakt an der Rückseite hat. Dahinter dürfte ein Gegenkontakt
oder einfach eine Blechplatte sein. Die Segmente werden durch Federn
davon getrennt gehalten. Schlägt ein Pfeil ein, wird durch den Druck
kurzzeitig der Kontakt des Treffersegments geschlossen.
Das geht aber nur deshalb, weil die vordefinierte Löcher haben, in
welche die Dart-Pfeile einsortiert werden, oder? Ist das bei den
professionellen Wettkampf-baords auch so? Meines Erachtens sind das doch
frei treffbare Felder, die "analog" also an jeder Stelle berührt werden
können.
Oder wird da feldweise gezählt?
Edi M. schrieb:> Das geht aber nur deshalb, weil die vordefinierte Löcher haben, in> welche die Dart-Pfeile einsortiert werden, oder?
Die haben vordefinierte Löcher, aber die sind glaub ich deshalb
vorhanden, weil man dann die Spitzen aus Kunststoff machen kann, was
weniger gefährlich ist.
> Ist das bei den professionellen Wettkampf-baords auch so? Meines Erachtens> sind das doch frei treffbare Felder, die "analog" also an jeder Stelle> berührt werden können.
Ich denke, ja. Da wird auch nicht elektronisch gezählt.
So wie hier: https://youtu.be/K0HvEH7o8A0> Oder wird da feldweise gezählt?
Ja, wird es.
Hallo,
ja, Idee und Prototypen dafür gab's auch schon, aber das war in der
Praxis einfach nicht tauglich und wurde von Spielern (und "Markt")
letztlich abgelehnt.
Es läuft am Ende darauf raus, dass die jetzige E-Dart Lösung mit den
Segmenten und Löchern praktisch gut genug ist. Ausserdem besticht sie
durch die Einfachheit und gute Wartbarkeit. Man lebt halt damit, das
manche Pfeile nicht zählen und manche falsch. Manche Abpraller zählen
vermeintlich seltsame Dinge, vieles lässt sich aber technisch erklären,
den es ist halt das, was die Sensoren im Automaten registrieren. Eine
Hochgeschwindigkeitskamera kann das deutlich machen, aber die hohe Kunst
ist dann, rein aus den Sensordaten diese Spezielfall zu erkennen. Eine
einfache Korrektur-Funktion würden sich viele sicher wünschen, bei den
Herstellen ist das aber bisher nicht angekommen oder ggf. auch zu
Aufwendig in der Umsetzung. Praktisch wird ein Spiel halt neu gestartet,
wenn der Automat zu falsch zählt. Manchmal muss er dann einfach mal
"sauber gemacht" werden bzw mache Dinge ausgetauscht werden. In den
letzten 20 Jahren ist die Mechanik vom Konzept her scheinbar ziemlich
gleich geblieben, und das hat sich bewährt, weil: gut, einfach und
schnell wartbar. Nur die Sensoren, die Elektronik und die Auswertung
wurde halt etwas besser.
Es scheint wohl keinen einfachen Weg zu geben um mechanisch oder optisch
zu erkennen, wo/ob der Pfeil steckt oder nicht. Vielleicht hat sich auch
jeder Verbesserung hier praktisch nur so minimal ausgewirkt, so dass die
Spieler keinen wirklichen Vorteil bemerken und das damit
unwirtschaftlich ist - im schlimmsten Fall nehmen sogar die
Fehlerquellen zu und das kann der Technik-Laie nicht mehr so einfach
kontrollieren und warten.
Im Steel-Dart wollte viele Spieler meiner Meinung nach einfach keine
abgehobene Lösung haben. Es soll das bekannte, bewährte und bezahlbare
(Sisal-)Board zum Einsatz kommen, das ggf auch mal ganz ohne Technik
benutzt werden kann - sei es nur, um einfach das "Rechnen" zu lernen
(bzw. warum man wann welche Zahlen werfen sollte) oder um diverse
Trainingsspiele zu machen (die die Elektronik oft nicht kann, weil die
Entwickler diese Spiele garnicht kennen)
Bei der Scheibe gibt es ausserdem den praktischen Aspekt, dass sie sich
unterschiedlich schnell je Zahlen-Segment" abnutzt, denn auf einige
Felder wird tatsächlich öfter geworfen als auf andere. Es ist also gut,
wenn der Zahlenring gelegentlich unabhängig vom Board drehbar und die
Zahlen nicht aufgedruckt sind. So kann man die Abnutzung insgesamt in
Grenzen halten, bevor die Scheibe dann doch ausgetauscht mal werden
muss.
Bei Dartboards gibt es auf dem aktuellen Stand der Fertigungstechnik
ausserdem einige Feinheiten und Kniffe, die teurere von billigeren
Boards unterscheiden. Leider berücksichtigen das aber vielen
elektronische Lösungen nicht und benutzen dann irgendein Board - das
kommt bei den Spielern aber nicht gut an, die ziehen eben ein
höherwertiges Board vor, weil es "besser" zu spielen ist.
Unterm Strich schein eine elektronische Steel-Dartscheibe vielleicht nur
kann Sinn zu machen, wenn die Elektronik quasi unsichtbar ist. Und
idealerweise ganz von der Scheibe unabhängig ist. Studenten-Projekte mit
optischer oder akustischer Erkennung gibt es immer wieder, wobei die
akkustische Lösung alleine scheinbar nie die gewünschte Präzision
bringt. Auch spezielle Board tauschen immer wieder auf, aber die
scheinen einfach zu teuer zu sein. Insbesondere eine Scheibe mit
einzelnen unabhängigen Sisal-Segmenten wie im E-Dart hat bisher niemand
in akzeptabler Qualität, Wartbarkeit und Preis hinbekommen.
Optische Lösungen zusammen mit Erschütterungsssensoren Sensoren scheinen
ein praktikabler Weg zu sein. Aber ich habe den Eindruck, dass das
Kalibrieren bisher zu aufwendig oder komplex ist. Oder das ganze System
ist am Ende zu komplex wird, so dass die praktische Erkennungsrate eher
wie beim beim E-Dart ist. Dann schauen die Spieler lieber gleich selber,
wo der Pfeil steckt und tippen das nach drei Würfen in eines der vielen
Zählprogramme/Apps ein - das ist eine praktikable Lösung und gut genug.
Die Zählprogramme haben sogar alle eine gute Korrektur-Funktion, falls
man sich vertippt oder verzählt.
Ich würde jedem, der hier ernsthaft ein (ggf vermarktbares) Projekt
plant, raten, das Problem nicht nur von der technischen Seite anzugehen.
Mit (massivem) Einsatz von Technik ist das ganze lösbar und auch schon
zig mal (fast) gelöst worden. Aber das vermarktet sich halt nicht und
ist ggf viel zu teuer. Und manche vermeintlich tollen technische
Lösungen funktionieren dann doch nicht so einfach. Da lohnt es sich dann
auch, einmal im Detail zu verstehen, warum das so bisher nicht geklappt
hat.
Interessanter wäre es, eine Lösung zu finden, die die Zielgruppe (oft
Technik-Laien!) tatsächlich nutzen (und bezahlen) könnte. Und die auch
tatsächliche jemand nutzen würde, da manche Reize des Steel-Dart Spiels
dann eben nicht durch vermeintliche Verbesserungen schlicht kaputt
gemacht werden.
Axel H. schrieb:> Eine Hochgeschwindigkeitskamera kann das deutlich machen
Mit einigen USB-Kameras sollte das kein Problem sein, einen Pfeil zu
erkennen. Man muss nur warten, bis sich im Bild was bewegt und dann Ruhe
herrscht, weil der Pfeil steckt. Dann durch Bildvergleich feststellt, wo
sich was geändert hat, dort nach der Pfeilspitze suchen.
> Mit einigen USB-Kameras sollte das kein Problem sein, einen Pfeil zu> erkennen. Man muss nur warten, bis sich im Bild was bewegt und dann Ruhe> herrscht, weil der Pfeil steckt. Dann durch Bildvergleich feststellt, wo> sich was geändert hat, dort nach der Pfeilspitze suchen.
Ja, so die Theorie - und im Labor unter Idealbedingungen klappt das
natürlich meistens. Jetzt mal zur Praxis am Spielort:
- Hardware
* welche Platform und Rechenleistung ist nötig?
* welche Kameras und wie viele USB Bandbreite?) und wo müssen die
hängen?
* welche Beleuchtung der Scheibe ist mindestens nötig?
* Setup, Kalibrierung
- User
* Technik soll den Spielfluss nicht stören
* mache haben einen recht schnellen Wurf-Rythmus
* bei manchen stecken dei darts ziemlich schief
* mache treffen die Scheibe auch garnicht
* und dann gibt viele verschiedene Pfeile
* irgendwas kann immer wackeln, manchmal auch das Board
* manchmal fällt der Dart später raus
- Software/Dart-Regeln
* muss zumindest mal gut funktionieren
* muss letztlich "einfach" (= "DAU-Kompatibel") sein
* Auto-(Nach-)Kalibrierung?
* "der Dart zählt dann, wenn die Dartspitze das Board berührt .... ".
* ... und noch mehr Feinheiten - brauch manuelle Korrektur-Funktion!
* darf nicht schlechter sein als das, was momentan verwendet wird
Ich möchte das ganze wirklich nicht schlecht reden, aber da steckt dann
scheinbar ein Haufen Arbeit drinnen, um das Projekt aus dem Labor zu
bringen oder gar dort praktisch zufriedenstellende Ergebnisse zu
liefern. Ich habe bisher halt etliche Projekte gesehen, die es scheinbar
nie aus dem Labor raus geschafft haben. Und bei vielen wurde dann leider
auch recht wenig veröffentlicht, wo zwischen Labor und Praxis es
wirklich gescheitert ist. Vieles ist auch leider nicht als open source
verfügbar, so das jemand da weiter machen könnte. Und so poppt die Idee
alle Jahre wieder auf ... evtl würde es sich echt mal lohnen, alle
bekannten Versionen hier im Wiki zu sammeln, damit das nicht immer
wieder an den selben praktischen Problemen scheitert.
EDIT: Wiki-Seite Dartscheibe angelegt.
Ein Wiki für die Entwicklung einer Dartscheibe? Du erwartest nicht im
Ernst, dass es da Beteiligung gibt. In dem parallele thread wurde schon
ausgeführt, wie umfangreich das werden kann.
Ja, du hast natürlich recht. Ich werde den Artikel wieder löschen, denn
so eine Linksammlung braucht keiner. Findet man ja alle eh mit den
gängigen Suchmaschinen und wenn nicht dann ist halt Pech. Alle halbe
Jahr kauen wir das dann wieder in einem neuen Thread durch...