Artikelformat

webRMS – webbasierte Zeitmessung für Carrera Digital 124/132 Bahnen

webrms

Letzte Woche habe ich über die Idee einer webbasierten Rundensoftware berichtet und bereits eine erste Version im Video gezeigt. Ich habe mir mit Matze dazu weitere Gedanken gemacht, u.a. auch über den Namen. Nach einigen Überlegungen soll das Baby nun webRMS (Web Racing Management Software) heißen und wie schon im ersten Testbetrieb auf Python- und PHP-Basis entwickelt werden. Anbei noch einmal die Eckdaten:

  • Python-Skript für die Kommunikation mit der Carrera-Bahn und dem Loggen der Rundenzeiten, der Fahrzeuginfomationen (z.B. Tankstände) sowie der Startsequenz (Ampelanzeige)
  • Weboberfläche mit Rundenzähler, Zeiterfassung, Tankanzeige und Fahrer/Fahrzeugdatenbank
  • Systemvoraussetzungen: Windows/Linux/Mac OS X mit installiertem Python-Interpreter, nginx oder Apache Webserver, PHP 5, MySQL 5 + Carrera PC-Unit oder USB-Adapterkabel

Vorerst werde ich das Projekt unter Mac OS X 10.9 (Python, Apache mit PHP 5 und MySQL 5) entwickeln und testen, es dann aber im nächsten Schritt unter Linux auf dem Raspberry Pi installieren. Dieser soll dann quasi als Server für das webRMS fungieren. Geplant ist auch eine Veröffentlichung des Raspberry Pi Images basierend auf Raspian OS, das man einfach nur noch in den eigenen Raspberry Pi stecken muss.

Der Raspberry Pi hat dabei noch einen entscheidenen Vorteil: Er lässt sich über den GPIO-Port auch relativ einfach mit Phototransistoren und somit einer Lichtschranke ausstatten. Damit wäre dann eine Zeitmessung für analoge Bahnen aller Hersteller möglich. Wer keinen Raspberry Pi besitzt oder nutzen möchte, kann das webRMS natürlich auch auf jedem anderen System installieren. Entsprechende Anleitungen werde ich dazu dann veröffentlichen.

Der Zugriff auf die Weboberfläche kann dann im lokalen Netzwerk über alle erdenklichen Geräte mit einem Webbrowser erfolgen. Es sind also mehrere Displays in einem Raum denkbar.

Aktueller Stand

Seit dem ersten Test mit Python und PHP ist jetzt genau eine Woche vergangen, es hat sich also noch nicht allzu viel getan. Ich habe das Python-Skript allerdings etwas ausgebaut, so dass es alle seriellen Schnittstellen ständig abhört und bei Verbindungstrennung wieder weitersucht. Bei angeschlossener Control Unit der Carrera-Bahn werden dann sofort die Daten empfangen und geloggt. Hier steht noch ein Test mit Windows aus, denn auch dort soll webRMS laufen.

Zwischenzeitlich habe ich mir auch Gedanken zur passenden Datenbank gemacht und mich letztendlich doch für MySQL und gegen SQLite entschieden, da ich damit täglich arbeite und es für mich zeitlich einfacher zu realisieren ist. Es wäre ebenfalls möglich die Weboberfläche mit Python zu schreiben, aber auch hier ist PHP die “schnelle Lösung”.

Hier auch noch einmal das Video zum ersten Test mit Python und die Version 0.000001 😉 der Weboberfläche aus der letzten Woche:

Auf dem Video sieht man ab und an, dass eine Runde nicht gezählt wird. Das liegt daran, dass das Fahrzeug den Sensor nach der Kurve nicht getroffen hat. Mein Testaufbau war vielleicht doch etwas klein 😉 Beim Start des Videos ist die erste Rundenzeit über 20 Sekunden lang, weil die Fahrzeuge vor dem Video ca. 15 Sekunden standen.

Wer übrigens Vorschläge, tolle Ideen oder Fragen hat, kann sich gerne bei mir melden oder die Kommentarfunktion nutzen.

10 Kommentare

  1. Hi,

    großartige Idee! Da es momentan keine Ipad Lösung gibt, war ich gerade auf der Suche nach einer Raspberry Lösung. Momentan benutze ich iLap auf dem MacBook Air, würde aber gern einen größen Monitor hinstellen und hinten den Raspberry dran pappen. Super wäre, wenn man in der DB oder im Filesystem Fahrerbilder hinterlegen könnte, sowie für jedes Fahrzeug Stammdaten (Bild, Beschreibung, Hersteller, Modell, Maßstab, …)
    Außerdem wäre bei mir Bluetooth Unterstützung Pflicht :)

    VG Sven

    Antworten
    • Noch ein Nachtrag, Ghostcars (zumindest eins) sollten ebenfalls unterstützt werden. Die Anzeige des Tankstandes sollte man auch haben.

      Antworten
      • Hi Sven,

        danke für dein Feedback! Also eine Fahrerdatenbank wird es natürlich geben, inkl. Fahrzeugen und dazugehörigen Bildern + Upload für Fahrerbilder. Ghostcars werden ja sowieso von der Digitalbahn unterstützt, die Rundenzeiten über die Software können angezeigt werden – auch für das Pacecar! Das Darstellen der Tankstände funktioniert jetzt schon, auch die Erkennung welches Fahrzeug in der Boxengasse ist. Ich stelle demnächst ein neues Video ein.

        Bluetooth kannst du über ein fertige Bluetooth-Box als PC-Unit Ersatz lösen. In meinem Fall nutze ich nur das normale Kabel. Die Box gibt es bei eBay oder man baut sie halt selbst.

        Wenn du den Raspberry an einem Monitor betreiben willst, benötigst du aber noch ein X-Window System, das einen Browser öffnet und die Daten darstellt. Ich würde dir aber empfehlen den Raspberry nur als Datensammler und Webserver zu nutzen und dann über ein anderes Gerät die Ausgabe per Browser zu erzeugen. Das Gerät kann ja auch ein iPad oder nur ein iPhone oder andere Smartphone sein, dass per HDMI mit dem Monitor/TV verbunden wird.

        Antworten
        • OK, das klingt doch schon super. Die Bluetooth-Box hab ich schon. Wenn ich dem Raspberry ein Bluetooth-Dongle verpasse, wird der Anschluss ebenfalls schon gescannt?
          Ansonsten hast Du natürlich recht, ipad als Ausgabe ich auch eine Option. Was vielleicht nicht schlecht wäre, wenn jeder der die Seit aufruft, einen Fahrer wählen kann, das in der Liste dann größer dargestellt wird, damit man bei vielen Fahrern sofort auf einen Blick seine eigenen Daten sieht.
          Ich bin auf jeden Fall gespannt. PHP hat den Vorteil, dass man im Zweifel ja auch eigene Anpassungen vornehmen kann, wenn das Features sind, die nicht von der breiten Masse gewünscht sind :)

          Viele Grüße,
          Sven

          Antworten
          • Ich habe mich mit der Bluetooth-Box noch nicht beschäftigt, aber ein entsprechender Bluetooth-Dongle sollte es tun. Aber eigentlich ist die Idee eine andere: Raspberry per USB-Kabel an die Bahn und dann ein WLAN-Dongle an den Raspberry. Dieser kann sich sowohl in ein vorhandenes Netzwerk einloggen oder selber ein Access-Point sein. Dann benötigt man eigentlich kein Bluetooth, da man per WLAN auf die Weboberfläche zugreifen kann.

            Jeder Fahrer soll einen Login erhalten, wenn er in der DB angelegt wird. Loggt er sich in die Weboberfläche ein, erhält er entweder seine Rundenzeiten, Tankstand und Position oder die Anzeige aller Fahrer, wo seine eigenen Daten hervorgehoben sind. Zudem kann jeder Fahrer seine max. Geschwindigkeit und seine Bremse für das Fahrzeug einstellen. Das Senden der Befehle durch das Python-Skript funktioniert auch schon, ich muss nur alles in die Weboberfläche packen.

  2. Ich hab halt gern so wenig wie möglich Kabel, deshalb ist Bluetooth direkt in meiner CU verbaut, ggf. muss ich halt nochmal umdenken. Am Ende muss es funktionieren. Vielleicht funktioniert der Raspberry auch mit WLAN und Bluetooth, ohne dass die Performance leidet? Ich hab mit dem Teil noch keine Erfahrungen.

    Antworten
    • Ok, verstehe. Das muss ich mal testen, ich denke das sollte der Raspberry schaffen. Ich werde in den nächsten Tage einen neuen Beitrag erstellen und dann auch bald eine Testversion zum Download bereitstellen. Ich habe momentan übrigens auch alles noch auf einem MacBook Air laufen. Du könntest es also recht einfach testen, erst einmal unabhängig vom Raspberry. Der Bluetooth-Dongle sollte ja einen virtuellen seriellen Port zur Verfügung stellen, auf den das Python-Skript dann zugreifen kann.

      Antworten
  3. Hallo,
    ich bin durch Zufall auf diesen Blog beim Suchen nach einer webbasierenden und DB gestützten Lösung für meinen Raspberry Pi und meiner Digital 132 gestoßen.
    Super Idee, freue mich schon sehr auf die erste Version zum Testen und werde gerne anschließend Feedback geben.

    lg,
    Kay

    Antworten

Schreib einen Kommentar

Pflichtfelder sind mit * markiert.



Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen