Schnelle Objekterkennung mit Zeiterfassung - funktioniert eine meiner Ideen?

Hallo,

es geht um eine Zeitnahme mit Zwischenzeiten bei einer Modell-Rennbahn.
Die Autos sind etwa 20cm lang und erreichen Geschwindigkeiten bis 25km/h (ca. 7m/s).
Die Fahrzeuge fahren in Spuren, was die Sache etwas erleichtert.

Es ist vorgesehen im Boden der Autos jeweils 4 IR-LEDs SFH409 (3mm) in der Nähe der Führung rechtwinklig zur Fahrtrichtung (also nebeneinander) einzubauen welche in Richtung Fahrbahn leuchten.
Die LEDs leuchten immer (nicht moduliert) und werden aus dem Fahrstrom der Autos versorgt.
Jedes Fahrzeug hat eine Kennung die binärcodiert einstellbar ist.
Mit 4 LED kann man dann 15 Autos (1...15) unterscheiden. Fahrzeug 0 geht nicht, weil dann keine LED leuchtet.
Da die Autos codiert sind, ist auch ein Fahrspurwechsel möglich und es können gleichzeitig auch mehrere Autos pro Spur unterwegs sein.

In der Fahrbahn werden pro Spur an jeder Zeitmessstelle 4 Phototransistoren SFH309FA (3mm) so eingebaut, dass sie beim Überfahren mit einem Auto das Licht der LEDs erkennen.
Ich nehme an, dass eine Phototransistor seine gegenüber befindliche LED beim Überfahren auf einer Fahrstrecke von ca. 1mm erkennt. Für diesen einen Millimeter benötigt das Fahrzeug bei 25km/h ca. 144µs.
Ich habe rein rechnerisch also 144µs Zeit das Fahrzeug zu erkennen.
Wegen der Fahrzeuglänge von 20cm dauert es bis zum nächsten Ereignis auf der gleichen Spur dann mindestens 28,8mS.

An jeder der Messstellen (Start/Ziel + 5 Zwischenzeiten) ist ein ATMEGA328P-PU (mit 16MHz Quarztakt) vorgesehen der dann beide Spuren erfassen soll.
Alle 6 Messstellen sollen dann seriell (RS485) von einem ATMEGA 2560 auf Ereignisse abgefragt werden. Dieser überträgt die Ergebnisse dann über USB an einen PC.

Sorgen mache ich mir wegen der mit 144µs recht kurzen Zeit für die Fahrzeugerkennung.
Ich habe deshalb einen Plan mit zwei Varianten zur Fahrzeugerkennung angehängt.

In Variante 1 wird beim Überfahren einer Messstelle entsprechend der Codierung des Fahrzeugs ein RS-FlipFlop gesetzt.
Gleichzeitig wird am ATMEGA328P-PU über die vier Dioden ein Interrupt ausgelöst.
Nach dem Interrupt habe ich dann recht viel Zeit (28,8ms bis zum nächsten Fahrzeug) das FlipFlop auszulesen und es dann über R0...R3 wieder rückzusetzen. Ich vermute diese Variante wird auf jeden Fall funktionieren.

In Variante 2 entfällt das FlipFlop und somit der Zwischenspeicher. Es wäre aber auch hier möglich über ein Dioden-Oder einen Interrupt zu erzeugen.
Wie schätzt ihr diese Variante ein?
Ist es Softwaretechnisch möglich innerhalb der zur Verfügung stehenden Zeit von 144µs die vier Eingänge sicher zu erfassen, auch wenn die vier einen Zeitversatz haben sollten weil nicht alle Phototransistoren exakt gleichzeitig beleuchtet werden.
Ist das auch noch machbar wenn auf der zweiten Bahn "gleichzeitig" ein Ereignis eintrifft?
Möglicherweise kommt "gleichzeitig" auch noch eine Anfrage vom ATMEGA 2560 der wissen will ob was passiert ist.

Oder hat jemand eine ganz andere Idee die Zeiterfassung zu realisieren?
RFID möchte ich mal ausschließen weil da Erkennungszeiten von 100ms in Spiel kommen und das Fahrzeug in der Zeit bis zu 70cm zurücklegt. Und eine Lichtschranke brauch ich dann auch noch, pro Spur.

Danke
Peter

Hey,

ich kann dir leider nichts zu den Zeiten sagen da ich da keine Ahnung habe, jedoch sehe ich einen mechanisches Problem.

was machst du denn das Fahrzeug nicht richtig auf der Spur fährt? also zu weit Rechts oder Links dann strahlen deine LED`s zwar auf den Boden doch deine Phototransistoren werden Falsch angestrahlt z.B. bei der Codierung

AUTO:

  • LED1 = OFF
  • LED2 = ON
  • LED3 = OFF
  • LED4 = ON
    macht bei mir ID = 10

deine Phototransistoren werden aber mit einen Satz nach Rechts überfahren

Phototransistor1 = (keine LED)
Phototransistor2 = LED1 = OFF
Phototransistor3= LED2 = ON
Phototransistor4 = LED3 = OFF
keine Phototransistor mehr da = LED4 = ON

Erkannte Codierung ID = 4

Somit ist das nicht das Auto was du wolltest.

oder ist die "Modell-Rennbahn" so eine wie die hier?

aber kann man hier Spurwechsel vornehmen?


Jepp

OK dann nehme ich meine Bedenken wider zurück.
kann aber immer noch nichts zu den Zeiten sagen ob das in der Kurzen zeit machbar ist.

was mir dabei gerade einfallen tut, wie wäre es wenn man die Reihe der LED`s 2 oder 3 Fach hintereinander macht? so würde man dann die Doppelte bzw. dreifache zeit haben zum erfassen?

oder werden die Kisten dann zu schwer?

Hallo Muecke,
danke für deinen Beitrag.

Die Bedenken wegen "nicht richtig auf der Spur" fahren hatte ich auch schon.
Ich bin zu dem Ergebnis gekommen, dass auf geraden Teilstücken eigentlich nicht viel schief gehen kann.
In schnellen Kurven ist schon die Gefahr gegeben, dass ein Fahrzeug mal neben der Spur fährt, aber doch nur dann wenn es nicht mehr in der Spurführung "eingerastet" ist. Dann ist es aber auch egal weil das Auto kurz später in einer Ecke liegt.
Zudem gehen bei Verlust des Bodenkontakts, und das ist der Fall wenn es neben der Spur fährt, die Lichter aus.
Es gäbe dann in diesem Fall keine falsche Messung sondern keine Messung.

Es geht um diese Rennbahn.
Derzeit noch ohne "DIGITAL" aber eine Umrüstung ist geplant.

Gruß Peter

Es geht um diese Rennbahn.
Derzeit noch ohne "DIGITAL" aber eine Umrüstung ist geplant.

Meinst du damit den Arduino Umbau oder originale Teile?

Gruß

Der Umbau auf DIGITAL erfolgt mit Originalteilen.
Nur die Zeitmessung, Rundenzählung, evtl. Startampel, ect. soll eine Arduino-Lösung werden.

Gruß Peter

Scherheinz:

Es geht um diese Rennbahn.
Derzeit noch ohne "DIGITAL" aber eine Umrüstung ist geplant.

Meinst du damit den Arduino Umbau oder originale Teile?

Gruß

Muecke:
was mir dabei gerade einfallen tut, wie wäre es wenn man die Reihe der LED`s 2 oder 3 Fach hintereinander macht? so würde man dann die Doppelte bzw. dreifache zeit haben zum erfassen?

Ähnliche Idee:
Wenn die Fahrzeuge in der Führung gehalten werden, können die LEDs Statt quer auch längs eingebaut und der Code dann seriell eingelesen werden. Entweder aktiv mit einer zusätzlichen (fünften) LED vorne die den Beginn markiert oder passiv mit einem Barcode (LED und Phototransistoren in der Fahrbahn). Wenn man die verschiedenen Breiten der Linien für 0 und 1 jeweils sehr stark verschieden macht, sollte die Erkennung bei unterschiedlichen Geschwindigkeiten auch kein Problem sein.

Gruß,
Marv

Hallo,
im Grunde ist die Binäre Erkennung nicht schlecht.
Ich würde aber nicht die Autos verbasteln.
Im rechten Winkel zu Fahrtrichtung würde ich in die Bahnen ReflexLichScharanken setzen.
Am Boden der Autos würde ich mit ReflexFolie die Kodierung anbringen. Das hat zum einem den Vorteil, das die Autos
nicht verbastelt werden, zum anderem ist es sicherer, weil keine undefinierte Stromversorgung.
Diese wird ja über Schleifer bereitgestellt. Das ist eine Möglichkeit...
Man sollte es mal mit einer ReflexLichschranke probieren. Die Fahrbahn ist ja durch die Stromschiene geteilt.
Man könnte rechts von der Stromschiene, in der Mitte der rechten Seite, in Fahrtrichtung eine ReflexLichtschranke anbringen.
Nun klebt man unter das Auto den KodierStreifen (1 Feld 5x5mm) und probiert das mal.
Du mußt ja nur die Impulse (hell,hell, dunkel, hell) zählen. Wenn das nicht funktioniert kann man die KodierFelder
beliebig vergrößern (1 Feld 10x5mm) die Impuse bleiben ja die Gleichen, sind nur länger.
Gruß und Spaß
Andreas

Hallo und danke für die Tipps und Anregungen.

Die Sache mit den Reflexkopplern schau ich mir mal an.
Da die Rennbahn nicht meine ist muss ich erst mal den Abstand zwischen Fahrbahn und Fahrzeugboden in Erfahrung bringen.
2-3 verschiedene IR-Reflexlichtschranken habe ich mal zum Testen bestellt.

Mehr als eine LED pro Bit in das Fahrzeug zu bauen wird wegen Platzproblemen wohl schwierig werden.
Gerade dann wenn die Autos alle verschieden sind, aber die LEDs immer alle an die gleiche Position müssen.

Aber vielleicht kann auch noch jemand eine Aussage zu meiner Variante 2 aus dem Schaltplan machen.
Welche Impulszeiten sind damit noch gut und sicher zu erfassen?

Gruß Peter

Hallo,
"Welche Impulszeiten sind damit noch gut und sicher zu erfassen"
Das kann wohl keiner sagen, weil keiner Deine technischen Spezifikationen der
Bauteile kennt.
Wenn Du meine Variation annimmst, dann würde es ungefähr 0,8/0,9 ms dauern, bis
das 5mm Feld die Lichschranke passiert hätte.
Jetzt müßtest Du in den Datenblättern Deiner Lichtschranken mal nachschauen,
ob die überhaupt in der Lage ist, diese Zeiten zu verarbeiten.
Wenn Du von 0,8ms für ein Feld ausgehst, dann sind 4 Felder 3,2ms.

Jetzt kannst Du Dir ja einmal ganz einfachen Code schreiben.

Wir nehmen einen Wagen mit der Codierung 1010.
Wenn Du den jetzt langsam von Hand über Deine Lichschranke schiebst, dann gibt
der Arduino Dir auf dem LCD "1010" aus. :stuck_out_tongue_closed_eyes:
Nun schiebst Du ihn "schnell" rüber, der Arduino gibt Dir das gleiche Ergebnis
aus. ]:smiley:
Nun fährst Du mit Höchstgeschwindigkeit drüber, der Arduino gibt Dir
wieder das gleiche Ergebnis aus. ]:slight_smile:
Viel Spaß dabei
Andreas

Hallo,

ich warte jetzt mal ab bis die bestellten Bauteile da sind, dann kann ich probieren und Zeiten messen.
Laut Datenblätter sind die langsamsten externen Komponenten mit Schaltzeiten von ca. 15µs immer noch um den Faktor 15 schneller als die 144µs die ein Auto braucht um 1mm zu fahren.

Falls die Idee mit den reflektierenden Streifen am Fahrzeugboden gut funktioniert, kann ich evtl. auch zwei codierte Streifen nebeneinander anbringen und einen davon als Taktsignal für die Fahrzeugcodierung auf dem zweiten Streifen verwenden.
Das spart sicherlich eine Menge zeitaufwendige Software bei der Auswertung des Fahrzeugcodes wenn die Fahrgeschwindigkeiten stark unterschiedlich sind.

Gruß Peter