Perimeter Startlinienerkennung

marc

New member
Hallo Ardumower Community,

ich hoffe, dass ich hier in diesem Forum eine nicht Ardumower Frage stellen kann.

Ich bin daran, eine Rundenzeitmessung für eine Autocrossfahrzeug zu entwickeln. Da IR oder RFID in einer Umgebung mit Schlamm und Wasser nicht funktionieren würden, bin ich auf die Perimeterschleife und euer wahnsinns Projekt gestoßen. Echt mega was ihr hier schon geschafft habt.
Ich würde gerne mit Hilfe Empfängers eine Überfahrt über die Perimeterschleife detektieren. Da der Transponder voraussichtlich in der Nähe der Lichtmaschine positioniert wird, ist der Einsatz des Matchfilters wahrscheinlich zwingend. Jedoch habe ich bei Rolands Thema: "Ein DUE zur Auswertung des Schleifensignals" gelesen, dass er 104us zwischen den einzelen Flanken benötigt. Kann man diesen Flankenwechsel auch schneller vollziehen? Ich dachte bei der Zeitnahme auf eine Genauigkeit von 1/100 s.
Des weiteren konnte ich hier im Forum nichts über die Reichweite des Sensors entnehmen. Der Ardumower hat wahrscheinlich nur wenige Zentimeter zwischen der Perimeterschleife und dem Empfänger. Glaubt ihr es ist mir diesem Aufbau eine Distanz von 60 cm zu erreichen? Wenn nicht, glaubt ihr man kann die Perimeterschleife bzw. den Empfänger so trimmen, dass eine Entfernung von 60 cm erreicht werden kann?

Im Voraus schon einmal vielen Dank für eure großartige Hilfe. Falls ich mit meinem Projekt erfolg habe, werde ich es natürlich der Allgemeinheit zur Verfügung stellen. Ganz im Sinne des Erfinders.

Grüße,
Marc
 
Hallo Marc,

die Schleife kann bei beliebigem Abstand mit der Spule detektiert werden, wenn Spule und Schleife allerdings 90 Grad zueinander benutzt werden wie beim Ardumower Perimeter v2 ist für den Fall "Feldlinienvektor annähernd 90 Grad zueinander" (Spule genau über Schleife) kein Signal zu detektieren. Abgesehen von diesem Spezialfall ist das Signal bei jedem Radius um ide Schleife detektierbar.
http://wiki.ardumower.de/images/6/68/Fluxdirections.png
Das Signal sollte sich innerhalb von 10ms detektieren lassen (ggf. mit einem leistungsfähigen Mikrocontroller mit DSP z.B. STM32F4).

Frage: musst Du denn nicht unterscheiden können welches Fahrzeug die Schleife überquert hat?

Gruss,
Alexander
 
Hallo Alexander,

vielen Dank für die schnelle Nachricht.

Theoretisch sollte ich das Fahrzeug als Sender verwenden und die Schleife als Empfänder, da hast du recht. So machen es auch Systeme wie in der F1. Jedoch sind meine Ideen größer als meine Talent ;). Daher möchte ich mit dem Fahrzeug die Schleife erkennen, was ich mich als einfacher vorstelle und dann mit einer Sendemodul die IP des Fahrzeuges an eine Zentrale schicken. Ist vielleicht ein bisschen diletantisch jedoch möchte ich was einfaches, was praktikabel ist. Alles was zu kompliziert ist verstehe ich sonst wahrscheinlich nicht und das ist ja auch nicht zielführend.

Grüße,
Marc
 
Bluetooth/WLAN-Beacons wären keine Alternative? Die Beacons können kontinuierlich senden, man könnte also alle Beacons zentral aufzeichnen. Wenn jetzt ein Fahrzeug kommt, steigt die Feldstärke, hinter dem Empfänger sinkt sie wieder - man zeichnet also alle Daten auf und der "Peak" signalisiert den Zeitpunkt wo das Fahrzeug beim Empfänger vorbeigefahren ist - Wäre auch ein Ansatz?
 
Hallo Alexander,
da ich nicht das tolle Forum mit meinen Fragen vollspamen möchte, schreib ich dir einmal so.
weiß so ungefähr wie eine WLAN Modul arbeitet, aber wie kann ich für einen Arduino die Feldstärke visoalisieren? Benötige ich dann für jeden Transponder ein eigenes WLAN Modul?

Das Problem ist, dass ich an einem Event bis zu 300 Fahrzeuge haben, die alle mit einem Transponder aufgestattet sind. Natürlich fahren nicht alle Fahrzeuge gleichzeigig aber sobald ein Fahrzeug die Zündung startet, sendet das Modul?!

Ich habe mir jetzt überlegt, dass ich versuche das Perimetersystem, welches ihr verwendet umzudrehen und mit der Perimeterschleife das Signal einer Spule zu empfangen. Ich habe ehrlich gesagt noch keine Ahnung wie aber ich werde mal herumprobieren.

Ich finde es toll, wie hilfbereit Leute wie du in solchen Foren sind! Daher möchte ich mein Projekt bei Erfolg auch auf jeden falls Veröffentlichen, da es dazu leider nix gibt.

Grüße,
Marc

So ein Forum ist doch gerade da zum diskutieren (oder habe ich da etwas falsch verstanden ;)) - Ich dachte z.B. an ein 2.4 Ghz Modul (nrf24l01) für jedes Fahrzeug - jedes Modul sendet im Datenpaket eine eigene ID und beim Empfanger kann die Feldstärke (RSSI) des empfangenen Paketes dann ausgelesen werden. Bei mehreren Fahrzeugen dürfte das allerdings anfällig werden.
Wie Du das Perimetersignal einer Spule mit der Schleife empfangen willst ist mir nicht ganz klar.

Eine Lösung für Dein Vorhaben scheint in der Tat gar nicht so einfach auf den zweiten Blick ;)
 
Hallo Marc,
ganz verstehe ich deine Frage nicht und ich glaube du bringst da einige Sachen durcheinander.

"104us zwischen den einzelen Flanken benötigt. Kann man diesen Flankenwechsel auch schneller vollziehen? Ich dachte bei der Zeitnahme auf eine Genauigkeit von 1/100 s."
104 us bedeutet, dass das Sendersignal einen Flankenwechsel von 104us hat. Die Erkennungsgeschwindigkeit hängt vom verwendeten Sigal ab. Das von mir in dem Artikel verwendete Signal benötigt auf einem Nucleo 446RE bei 4 fachem Oversampling ca. 17 ms zur Erkennung mit dem matched filter und 19 ms zum Empfang. Bei 8 fachem Oversampling wie ich es aktuell benutze ca. 67 ms zur Erkennung mit zusätzlicher eindeuteiger Signalerkennung ohne Amlitude wie bei dem Ardumower. Wenn du das Ardumowersignal nimmst, wirst du vermutlich unter deinen 10ms kommen mit einem Nucleo 446RE. Mit anderem Boards habe ich es nicht ausprobiert.

Die Reichweite der Sensoren sind Abhängig von der Stärke des Schleifensignals und dem Durchmesser/Wicklungen der Empfangsspule. 60cm zum Abstand zu Spule zu messen sollte das kleinste Problem sein. Aktuell kann ich nicht erkennen, was du wirklich vorhast.

Wenn du STM verwenden möchstest beschäftige dich mit der CUBE HAL welche von STM forciert wird. Dies hat den Vorteil, das du leichter zwischen STM CPUs wechseln kannst. Wenn du direkt die Register mit CMIS ansprichst hast du bei einem Board wechsel verloren.


Was mir gerade noch nachträglich einfällt, warum willst du den Empfänger an die Lichtmaschine anbringen oder was meinst du mit Transponder?
 
Hallo ihr beiden,

vielen Dank für die schnelle Antwort.

Alexander:Wie Du das Perimetersignal einer Spule mit der Schleife empfangen willst ist mir nicht ganz klar.
Kommertielle Zeitmessanlangen arbeiten mit einem Transponder und eine Detektionsschleife, wie die ID des Transponders erkennt. Hierbei schickt der Transponder meiners Wissens seine ID über eine angeregte Spule. Die Detektionsschleife nimmt das Signal auf und verarbeitet es in einem Decoder (siehe Bild). Somit ist es ja eigentlich die gleiche Applikation wie sie beim Ardumower verwendet wird, nur anders herum. Und dass jeder Transponder eine andere Zahlenfolge schickt.

4-Moto_Sport-SprintHill-Climb_Transponder_Solution_472.jpg

Quelle: http://www.tagheuer-timing.com/de/zeitmessung-racing-cars-transponder
Das Porblem: Solche Anlagen kosten für 300 Fahrzeuge ca 60000€. Ich hatte fokusiert, dass ich auf einen Endpreis pro Transponder von 5€ komme. Was immernoch einem Preis von mindestens 1500 € entspricht.

Das mit den WLAN Modulen hört sich eigentlich echt super an. Jedoch habe ich bei einem Event bis zu 300 Fahrzeuge. Die staren in verschiedenen Klassen, so dass nicht alle Fahrzeuge gleichzeitig gemessen werden müssen. In manchen Klassen starten jedoch bis zu 30 Fahrzeuge, die in 2 Gruppen an den Start gehen. Also müsste ich Software seitig irgendwie verhindern, dass die restlichen Fahrzeuge, die nicht fahren, bei der Messung berücksichtigt werden.
Was mir noch nicht ganz klar ist, kann eine Wlan Modul, welches den Empfänger mimt, mit 15 verschieden Wlan Modulen kommunizieren?

Roland:Was mir gerade noch nachträglich einfällt, warum willst du den Empfänger an die Lichtmaschine anbringen oder was meinst du mit Transponder?
Die Transponder sollten bestenfalls an der Vorderachse befestigt werden. Dies ist zumindest der Standard im Motorsport. Da das System für alle Fahrzeuge eingesetzt werden können soll, kann es gut möglich sein, dass in der Nähe des Transponders die Lichtmaschine positioniert ist. Ich könnte mir vorstellen, dass diese das Siganl stark verfälschen könnte, wenn es nicht über einen Filter gejagt wird.

Des Weiteren würde ich gerne versuchen das ganze mit 16 Mhz zu realisieren, da ich dann auf einen Arduino Nano oder Mini zurückgreifen kann, da diese recht kostengünstig sind -> Gesamtkosten des Transponder ca. 5€.

Grüße,
Marc
Attachment: https://forum.ardumower.de/data/med...printHill-Climb_Transponder_Solution_472.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Eine Möglichkeit wäre, wenn man erkennt, dass die Schleife überfahren wurde, die Uhrzeit und ID vom Transponder zum Steuerrechner zu schicken mir einer hochfrequenten Sendetechnik. Wenn das Auto öfter über die Ziellinie fährt, könnte der Steuerrechner die Zeit richtig berechnen ansonsten müsste diese vor Zieleinlauf synchronisiert werden.

Wo ich aktuell aber bedenken habe ist, das die Elektronik und das Metall des Autos das Schleifensignal erheblich Stört. Die Ströme zur Zündkerze werde vermutlich ziemliche Magnetfelder verursachen, genauso wie die Lichtmaschine. Unter diesen Voraussetzungen ist das Arbeiten mit Schwingkreisen, die durch eine Frequenz in der Schleife angeregt werden möglicherweise effizienter.
 
Eine Möglichkeit wäre, wenn man erkennt, dass die Schleife überfahren wurde, die Uhrzeit und ID vom Transponder zum Steuerrechner zu schicken mir einer hochfrequenten Sendetechnik.

Das war auch der ursprüngliche Plan. Würde mit dem Transponder gerne die Schleife detektieren und dann über eine 433 MHz Verbindung die ID an einen zentralen Empfänger schicken. Dabei ist halt die Frage, ob es möglich ist die Schleife bei einer Überfahr mit ca. 60 km/h (die Start- und Ziellinie liegt in einem Fall hinter einer Kurvenkombination, daher sind die Fahrzeuge nicht so schnell unterwegs) mit einer günstigen Arduino Mini mit 16 MHz zu erkennen und dann die ID zu versenden. Wenn sich das Fahrzeug mit 60 km/h bewegt und ich einen empfangbaren Bereich der Schleife von 50 mm habe (oder wie hoch breit ist die Streuung der Schleife wirklich?), komme ich auf eine Zeit von 3 ms, bei der ich das Siganl erfassen muss. Ist wahrschneinlcih ein bisschen kurz :unsure:


Wo ich aktuell aber bedenken habe ist, das die Elektronik und das Metall des Autos das Schleifensignal erheblich Stört. Die Ströme zur Zündkerze werde vermutlich ziemliche Magnetfelder verursachen, genauso wie die Lichtmaschine. Unter diesen Voraussetzungen ist das Arbeiten mit Schwingkreisen, die durch eine Frequenz in der Schleife angeregt werden möglicherweise effizienter.

Meinst du damit das Verfahren, welches im Ardumower verwendet wird? Oder ist das kein Schwingkreis?
 
Ich meine die Perimeterversion V2 welche aktuell im Ardumower verwendet wird. Sobald die ein sich änderndes Magnetfeld empfängt, erzeugt diese ein Signal. Der Schwingkreis reagiert nur, wenn dieser mit der entsprechenden Frequenz angesprochen wird. Dieser kann aber nicht erkennen ob außerhalb der Schleife oder Innerhalb.
 
Dieser kann aber nicht erkennen ob außerhalb der Schleife oder Innerhalb.

Eine Erkennung für ob wann sich innerhalb der Schleife befindet oder außerhalb, ist ja eher uninteressant. Entscheidend wäre ja nur der Wechsel des Magentfeldes.

Der Schwingkreis reagiert nur, wenn dieser mit der entsprechenden Frequenz angesprochen wird.

In diesem Fall muss ich also ausschleißen, dann die Lichtmaschine oder irgendein anderes Bauteil in der gleichen Frequenz sendet.
Zum Verständnis, hierbei wird dann nur eine Frequenz detektiert und nicht mehr eine "Zahlenfolge" wie sonst beim Ardumower


Matched_filter_principle.png

Attachment: https://forum.ardumower.de/data/media/kunena/attachments/4008/Matched_filter_principle.png/
 
Zuletzt bearbeitet von einem Moderator:
Ardumower Perimeter v2 verwendet ein Pseudo Random Code (PRC) Signal. Vorteil von diesem Pseudo-Zufallscode ist man benutzt das gesamte Frequenzspektrum und je länger der Code umso geringer kann die Amplitude ausfallen (Reduktion der Sendeleistung mit steigender Codelänge) um dasselbe Signal-zu-Rausch Verhältnis (SNR) zu bekommen. Weiterer Vorteil dieses Codes ist dass man auch die Polarität bei der Korrelation detektieren kann. Je länger der Code umso geringer kann die Sendeleistung ausfallen aber umso mehr Rechenleistung muss der Empfänger aufwenden. Oder anders ausgedrückt, je länger der Code umso besser wird das SNR.

Nimm GPS als Beispiel: die Entfernung zwischen Sender und Empfänger ist sehr groß und die Störungen sind ebenfalls sehr hoch, der Code ist aber so lang (1023 Bits) dass man ein gutes SNR erhalten kann.

Mit einem Arduino Nano o.ä. wird man bei 1024 Bits aber nicht weiter kommen ;-)

Perimeter v1 (http://www.ardumower.de/index.php/de/2014-09-11-11-52-24/anleitungen/2013-11-23-19-50-19/induktion) verwendet den Schwingkreis (Festfrequenz), man kann zwar keine Daten übertragen (der Schwingkreis will weiterschwingen) aber die Amplitude im Empfänger ist sehr hoch aufgrund des Schwingkreises.
 
Hier sind die verschiedenen Funktionsweisen von Lap Timern schön zusammengefasst:
http://www.me-mo-tec.de/de/Service/Allgemeine-Informationen/AIM-Laptimer
 
Um nochmal kurz auf die Methode mit den NRF24L01 2.4 Ghz Modulen zu kommen, könnte es so nicht funktionieren?

Jedes Fahrzeug wird mit einem Modul augestattet (Fahrzeug-ID). Die Ziellinie ebenfalls (Messung). Viele Meter vor der Ziellinie kommt ebenfalls ein Modul (Trigger). Das Trigger-Modul sendet eine Trigger-ID. Die Fahrzeuge (Fahrzeug-ID) selber fangen erst an zu senden nachdem sie das Trigger-Modul empfangen haben. An der Ziellinie (Messung) speichert das Ziel-Modul die Kombination aus (ID, Zeitpunkt, Feldstärke) der einzelnen Fahrzeuge. Das Fahrzeug-Modul stoppt selbständig das Senden nach einem Timeout (z.B. 10 Sekunden) und fängt erst wieder beim Emfpang des Trigger-Moduls an zu senden.

Mit den Modulen sollte eine Messgenauigkeit von 1 ms machbar sein.
 
Hallo Alexander,

Danke, für die tolle Hilfe. Mit den Arten der Zeiterfasszng habe ich mich schon auseinander gesetzt.

GPS ist aus Erfahrung einfach viel zu ungenau. Lichtschranken kannst du nur einsetzten, wenn sich ein Fahrzeug auf der Strecke befindet oder die Fahrzeuge sich nicht überholen (aber das wäre ja langweilig ;) ). IR ist bei GT Fahrzeugen gut zu verwenden, aber bei Autocrossfahrzeuge eher schlecht,da es sehr oft vorkommt das das Auto unter Schlamm nicht mehr zu erkennen ist. Magnetschleife wird vor allem im Kartsport eingesetzt. Karts haben jedoch kaum Elektronik oder eine Lichtmaschine an Bord, die das Signal stören könnte.
Daher würde ich gerne eine Magnetschleife verwenden, welche ein einmaliges Signal erzeugt. So wie die v2 der Perimeterschleife.

V1 der Perimeterschleife kannte ich bis jetzt noch garnicht. Werde ich mich die Tage mal einlesen!!

Was ich bis jetzt zu den 2,4 GHz Modulen gelesen habe ist ein Multireciev nur mit bis zu 6 Modulen möglich. Und so viel ich gelesen habe gibt es auch nur begrenzte Anzahl von Kanälen. Natürlich fahren nicht alle 300 Fahrzeuge gleichzeitig aber es gibt Veranstaltungen bei denen die verschiedenen Klassen an Fahrzeugen gegeneinander fahren, also kann nicht von Anfang der Veranstaltungen gesagt werden, welche Fahrzeuge gleichzeitig auf der Strecke sein werden. Wenn ich jetzt nur eine begrenzte Anzahl von Kanälen habe,könnte es ja fann vorkommen, dass Fahrzeuge auf dem gleichen Kanal senden.
 
Hab mir jetzt mal die V1 der Perimeterschleife durchgelesen. Das ist für einen Maschinenbauer schon deutlich verständlicher als die V2 ;)

Jetzt noch ein paar Verständnisfragen.

Die Perimeterschleife schwingt mir einer Frequenz von 7,8 kHz. Das bedeutet ja, dass eine Schwingung 128 us dauert, das ist klar. Wieviele Schwingungsdurchgänge benötigte ich um die Frequenz mit der FFT zu erkennen?

In der Dokumentation wird für die Filterung ein Nano verwendet, reicht dass dann auch noch, wenn das Signal nur wenige Sekunden vorhanden ist? In meiner Anwendung muss ich ja nur das Siganl innerhalb der ca. 3 ms erfassen. (Bei einer Schleifendetektionsbreite von 5 mm (oder habt ihr genauere Angaben wie weit die Schleife seitlich erkennbar ist). Diess Maß verdoppelt sich wenn über die gegenüberliegende Seite der Schleife gefahren wird). Das Senden der ID des Fahrzeuges und der Rundenzeit, also die Verarbeitung im Nano kann dann länger dauern, da der Zentralrechner das Signal ja nicht sofort benötigt.

Wenn ich mehrere Windungen der Schleife legen, also nicht nur eine wie beim Ardumower, sondern 3 oder sogar 10, verstärkt sich dann das gesendete Signal?
 
Ich habe den Perimeter v1 Code mal angehängt. Für den FFT muss der ADC muss mit mindestens doppelte Frequenz arbeiten, also mindestens 15600 Hz. Die Anzahl der FFT Bins legt dann fest wie fein die Filter-Auflösung wird (z.B. ergeben 256 Bins eine 60 Hz Filter-Auflösung bei 15600 kHz). Der FFT wird am Nano schon ein paar Millisekunden an Zeit brauchen (3ms dürfte sehr knapp werden).

Eigentlich brauchst Du aber gar keinen FFT denke ich - Durch einen Schwingkreis ebenfalls auf Empfangsseite wird meines Erachtens hauptsächlich diese Frequenz verstärkt. Du müsstest nur das Maximum der Schwingung ermitteln (analoge Tiefpass-Schaltung?). Ich würde einfach mal die Ampltiude des Schwingkreises mit einem Oszi messen.
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/receiver2.zip/
 
Zuletzt bearbeitet von einem Moderator:
Ich hab mir gerade auch mal den Code des Senders V1 runtergeladen. Um auf eine Frquenz von 7800 Hz zu kommen werden ja künstlich sehr viele Schleifen und Delays eingebaut. Könnte man die Frquenz mit zusätzlicher Anfassung des Kondensators und der Spule erhöhen? Oder gibt es hier technische Grenzen wegen anderen Bauteilen?
Somit könnten ja mehrere Bins in kürzerer Zeit erkannt werden.

Ich habe mir grad eben noch ein Oszi bestellt, dann werde ich mal einen Aufbau machen.

Würden mehrere Perimeterschleifenwindungen einer Verstärkung des Signal bewirken?
 
Oben