Forum: Mikrocontroller und Digitale Elektronik Carrera Digital 132 Zeitmessung / Rundenzähler


von Sascha D. (plutoonline)


Lesenswert?

Hallo, ich möchte für einen Rundenzähler und Zeitmessung für eine 
Carrera-Digita132 Autorennbahn mit einem Atmega8 ein Programm Schreiben 
das mir über die Serielelle Schnitstelle die die folgenden Daten 
schickt:
-Autokennung
-Rundenzeit
-Anzahl der Runden

Ich habe mir das so vorgestellt:
Jedes Auto hat eine IR-LED die je nach Fahrzeug-ID mit einer bestimmten 
Frequenz angesteuert wird.
-Auto 1 15625Hz
-Auto 2 7812Hz
-Auto 3 5208Jz
usw...

Ich müsste also in jedem Slot der Rennbahn ein IR-Transistor einbauen 
und dann über den Input Capture Pin am Atmega die Frequenz
des Autos messen, so kann ich feststellen um welches Auto es sich 
handelt das gerade den Transistor überquert hat.
Dann müsste ich einen 2ten Timer nehmen der jede Millisekunde eine 
Variable für das entsprechende Auto hochzählt.
Beim zweiten überqueren des Transistors müsste die entsprechede Variable 
über die Serielle Schnittstelle übertragen werden und die
Variable auf 0 gesetzt werden.

Könnte das so funktionieren oder bin ich Total auf dem Holzweg?
Vielleicht hat ja jemand schonmal sowas gebaut, oder hat damit 
Erfahrung.

Vielen Dank schonmal!

von Christian R. (cradi)


Lesenswert?

Hallo Sascha,

gebaut habe ich sowas noch nicht, habe aber letzten Winter auch so 
einige Tests gemacht.
Es müsste eigentlich gehen. Es gibt eine interessante Seite, die sich 
mit D132 beschäftigt.

www. slotbaer.de

Dort wurde auch ein Rundenzähler gebaut, jedoch sind keine SourceCodes 
verfügbar. Aber das D132 Protokoll ist dort erklärt. Die von die 
geschriebenen Frequenzen stimmen meines Wissens nicht, aber ich kan mich 
auch täuschen.

Gruß
Christian

von Sascha D. (plutoonline)


Lesenswert?

Christian Radermacher schrieb:
>Die von die
> geschriebenen Frequenzen stimmen meines Wissens nicht, aber ich kan mich
> auch täuschen.

Hallo Christian,
die Frequenzen sind von www.slotbaer.de sollten also stimmen.

Ich bin noch am Überlegen wie ich die Fahrzeuge sicher detektieren kann, 
ich muss ja im prinzip 2 Frequenzen am Fototransistor messen um zu 
wissen welches Fahrzeug gerade die Lichtschranke passiert hat.

Das soll ein Weihnachtsgeschenk für meinen Schwiegervater werden.
Mal gespannt ob ich das bis Weihnachten gebaut bekomme.
Die PC-Software steht schon als Grundgerüst, jetzt fehlt halt noch die 
Hardware die die Daten an den PC schickt.

von Christian R. (cradi)


Lesenswert?

Hallo,

sorry, dann hatte ich die falsch in Erinnerung. Aber wieso musst Du zwei 
Frequenzen messen? Jedes Auto hat durch seine LED genau eine Frequenz.
Du musst nur die Zeit seit dem letten Überfahren messen, die Runden 
zählen, usw. und es kann natürlich passieren, dass auf beiden Spuren 
gleichzeitig Autos über die beiden Messtransitoren fahren.

Aber ich könnts eh nicht programmieren.

Ich wollte damals meine Scalextric Bahn auf Carrera Digital umbauen. Bin 
aber an dem Protokollleser erstmal gescheitert. Den hätte ich gebraucht, 
um zu wissen welches Auto eine Taste zum Spurwechsel gedrückt hat, und 
dann eine Scalex Weiche zu schalten.

Aber derzeit ist mir ein anderes Projekt wichtiger. Vielleicht nehme ich 
das wieder in Angriff, wenn das andere Projekt fertig ist.

Gruß
Christian

von Olli (Gast)


Lesenswert?

Hallo Christian,

ich bin auch gerade dabei einen Protokollleser zu bauen. Mir gehen
jedoch immer ein paar Datenpakete verloren. Woran ist Dein Projekt
gescheitert, welche Hardware benutzt Du ?

Schöne Grüße

Olli

von ATMac (Gast)


Lesenswert?

Hallo!
Das gibt es schon.
Sucht mal nach: Slotrun USB4x4 oder slotrun.de
Das System habe ich und es funktioniert SUPER!
Gruß
Marc

von kollimann (Gast)


Lesenswert?

Ja an dem Rundenzähler bastel ich auch gerade.
Hatte es mir auch etwas einfacher vorgestellt, naja was solls.

Auf jeden Fall hab ich schonmal 98% saubere auswertbare Daten der 
einzelnen Fahrzeuge, sprich ich kann die Autos unterscheiden auch wenn 
sie Stoßstange an Stoßstange über den Sensor fahren.
Die Fehlmessungen müssen natürlich noch weg sonst bringt es nix.

Ich hab mir 2 versch. Codes aus dem Inet gesucht zum Thema 
Frequenzmessung, all die anderen Codes die man findet sind recht ähnlich 
zu meinen.

Tjo ich kann nur bissel Bascom daher wird nich einfach da sehr viele in 
C proggen.

Mal sehen was rauskommt dabei, ich würd mich auch über Hinweise und Tips 
freuen die weiterhelfen könnten

Gruß kollimann

von I. E. (anfaenger69)


Lesenswert?

Könnte es so gehen?

Man nimmt bei allen Autos und beim Empfänger den UART Port dafür her und 
schaltet als erste Sicherheitsinstanz das EVEN Parity ein. Somit bekommt 
der Empfänger halbwegs richtige Daten oder im Störfall fast gar keine 
Daten.

Ein Auto sendet mit 10ms Abstand ständig die Daten 0x10101010. Das 
andere Auto sendet z.B. mit 13ms Abstand ständig die Daten 0b11110000. 
Wenn sie beide gleichzeitig passieren sollten, dann könnten sie sich 
zwar bei einer Sendung stören, aber nicht bei allen, da ja beide nicht 
syncron senden. Somit hast Du in ca 55 Milisekunden 2-4 Messungen, die 
ungestört sind, und evtl 1-2 Messungen, die gestört sind.

Das funktioniert aber nur mit wenigen Autos, Du musst ja Sendepausen 
berechnen, wie sie sich so wenig wie möglich überschneiden.

von kollimann (Gast)


Lesenswert?

Hm Igor, ich glaube du hast da was falsch verstanden.
Die Autos sind vom Hersteller fertig geproggt bzw in jedem Auto steckt 
ein Mega8 mit der Herstellersoft. Die IR LED ist auch vom Hersteller 
eingebaut.
Alles siehe 1.Post
Ich werde nicht wegen Rundenzählen in der Herstellersoft "rumspielen"

Ich/wir wollen ja einfach das Signal bzw die Frequenz die jedes Auto 
über seine IR LED Herstellerseitig aussendet auffangen und auswerten.
Die Frequenzen sind bekannt siehe 1.Post.

Ich hab heut noch bissel gebastelt, alles mal ordentlich verkabelt etc.
Ich habe heute bei ca 100Runden teilweise mit einem Auto, teilweise mit 
2 Autos Stoßstange an Stoßstange 4 Fehlmessungen gehabt. 2 Dieser 
enstanden glaub ich dadurch das kurz vorm Messpunkt das Auto rausfiel 
und super schnell wieder reingesetzt wurde und schon kam der Messpunkt. 
Könnte sein das in dieser kurzen Zeit der Atmega im Auto noch nich ganz 
fertig war oder eben die LED noch nicht die richtige Frequenz hatte.
Das ist meine Theorie, ob das stimmt weiß ich nicht.

Die anderen beiden Fehler sind bisher unerklärt. Einfach so passiert 
beim Fahren.

Soweit bin ich recht zufrieden mit meiner Bastelei, also weiter basteln, 
wird schon werden

Gruß Kollimann

von I. E. (anfaenger69)


Angehängte Dateien:

Lesenswert?

Ach so. OK, das wusste ich nicht.

Dann ist es aber ganz einfach:

Du brauchst keine zwei Frequenzen gleichzeitig abfragen, mach für jede 
Bahn einen eigenen Photo Transistor benutze zwei Input Capture Pins am 
Prozessor.

Die Photo Transistoren müssen halt recht nah am Auto sein und soweit 
seitlich abgedeckt sein, dass das Auto der Nebenbahn nicht einstrahlt. 
So wie am Bild. Bei Spurwechsel kriegen beide die Frequenz ab und Du 
kannst es trotzdem auswerten.

von kollimann (Gast)


Lesenswert?

Das geht auch nicht da bei Digital 2 oder mehr Autos auf einer Spur 
fahren können!!
Man muss bei Digital schon diesen Weg gehen über die IR LED in den 
Autos, umsonst senden die Hersteller ja nicht unterschiedliche 
Frequenzen, genau so wirds auch beimWeichen stellen / überholen gemacht, 
nur das Auto wo auch der Weichendrücker gedrückt wird stellt die Weiche. 
Auch über IR LED und Empfänger vor der Weiche.

von Harald M. (_harry_)


Lesenswert?

Hat das mal wer gelöst?
Arbeite gerade an diesem Thema und komm nicht wirklich weiter.

MfG
Harry

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.