Das Wetter ist ja momentan, wie denke ich jeder bereits bemerkt haben wird, trotz des “Frühlings” nicht das Beste. Meine Ferien werde ich also nicht den ganzen Tag mit meiner Hündin an der frischen Luft verbringen, sondern spielen. Mir kam nämlich vor ein paar Tagen der Gedanke, dass ich im Keller noch eine etwas ältere Carrera Go!!! Bahn stehen habe. Natürlich wollte ich sie nicht einfach nur aufbauen um damit einige Runden zu drehen, sondern ich wollte sie mit dem Computer verbinden.

Das Auto wird problemlos auf der ersten Spur erkannt.
Das Auto wird problemlos auf der ersten Spur erkannt.
Das Auto wird problemlos auf der ersten Spur erkannt, das Auto auf der zweiten Spur kann jedoch nicht mehr gemessen werden.
Das Auto wird problemlos auf der ersten Spur erkannt, das Auto auf der zweiten Spur kann jedoch nicht mehr gemessen werden.

Bereits vor einigen Jahren hatte ich versucht mit meinem Lego NXT einen Rundenzähler zu bauen. Schnell stellte sich jedoch heraus, dass der Ultraschall Distanzsensor zu langsam war, um ein schnell vorbeifahrendes Auto zu erkennen. Nun war ich jedoch bereit, es mit meinem Tinkerforge erneut zu versuchen.

Also, gesagt, getan. Nach dem Aufbau meiner frei erfundenen Strecke befestigte ich zunächst den Distance IR Sensor an einem kleinen Karton und stellte ihn parallel zu der Stelle auf, an der ich messen wollte. Nachdem ich feststellte, dass die Werte zu stark schwanken, wenn ich auf der gegenüberliegenden Seite vorbeigehe, stellte ich dort ebenfalls noch einen kleinen Karton auf. Nun begann das Testen. Zunächst öffnete ich die Brick Viewer Software (Erklärung folgt, vorerst Link zur offiziellen Seite) und sah mir an, was sich veränderte, wenn ich mit dem Auto auf Spur 1 und 2 vorbeifuhr. Das Resultat war zu beginn eher ernüchternd. Das 2. Auto wurde erkannt, das 1. jedoch nicht. Also stellte ich den Sensor etwas weiter von der Carrera Bahn entfernt auf. Nun war es möglich beide Spuren auszulesen.

Nach etwa 1/2 Stunde Python Programmierung hatte ich mir auch eine Erkennung gebastelt, mit der ich zählen konnte, wie oft ein Auto auf Spur 1 bzw. 2 vorbeigefahren war. Die Ausgabe erfolgt detailliert mit Messwerten des Sensors auf meiner Kommandozeile und die Anzahl der Runden wird auf dem 20×4 LCD Bricklet angezeigt. Einziges Problem ist natürlich, wie im Bild beschrieben, wenn zwei Autos nebeneinander am Sensor vorbeifahren. Dann kann nur dass, das näher am Sensor ist gemessen werden.

Der Zähler funktionierte so zwar schon bereits ganz gut, jedoch gefiel mir die Auswertung noch nicht. Am nächsten Morgen begann ich also mit der Berechnung der Rundenzeiten. Da ich sie auch auf meinem iPhone und iPad sowie anderen Computern ohne großen Aufwand anzeigen lassen wollte, blieb mir nur die Entwicklung eines kleinen Webscripts (PHP). So begann ich die Rundenzeiten in Echtzeit an den Server zu übermitteln. Auf dem Server läuft dann das PHP Script, dass die Rundenzeiten auswertet. Natürlich alles auf Englisch um das “Race feeling” zu verstärken 😉

Im Archive der Rennauswertung sind alle Runden der Vegangenheit (inklusive Messfehler :( ) enthlten.
Im Archive der Rennauswertung sind alle Runden der Vergangenheit (inklusive Messfehler 🙁 ) enthalten.
Das aktuelle Rennen im Überblick. Leider sind einige Messfehler enthalten.
Das aktuelle Rennen im Überblick. Leider sind einige Messfehler enthalten.

Wer sich für den Code interessiert, einfach in die Kommentare schreiben, dann werde ich ihn online stellen. Momentan plane ich noch die vollständige Steuerung einer Spur mithilfe meines Computers. Zur Regelung des Stromflusses habe ich mir bereits diesen Tinkerforge Brick ausgesucht. Zur Positionsbestimmung des Fahrzeugs schwebt mir etwas wie dieser Fotowiderstand vor. Muss aber nochmal genau gucken, ob das wirklich so funktioniert, wie ich es vorhabe. Denn zu teuer werden darf das ganze auch nicht. Allein bei Tinkerforge komme ich nämlich bereits auf ca. 70 €. Natürlich werde ich auch hier berichten, sobald es Fortschritte gibt.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.