Die Hardware

der Reihe nach erklärt:

Das Fundament der Hardware bilden 4 Vierfach-Schaltrelais.

Schaltrelais
Schaltrelais

Drei dieser Relais werden benötigt, um die die Dioden zu schalten, mit deren Hilfe die Bahnspannung reguliert wird. Das vierte Relais schaltet den Bahnstrom der jeweiligen Spur komplett an oder aus.

Auf den Deckeln der drei Relais habe ich die Dioden für die jeweilige Fahrspur installiert.

Dioden
Dioden

Man sieht in der obigen Abbildung vier Gruppen mit 1 bis 8 Dioden, die einzeln oder in beliebiger Kombination geschaltet werden können. Da Dioden die Spannung vermindern, lassen sich somit insgesamt 16 Spannungszustände einstellen. Leider ist die Spannungsdifferenz auch von der Stromstärke (in meinem Fall also von den verbauten Motoren) abhängig, so dass man diesbezüglich keine allgemein gültigen Volt-Werte benennen kann. Nach meinen Erfahrungen liegt der Wert im Schnitt bei 0,4 bis 0,7 Volt, wobei ich 1N5059-Gleichrichterdioden verbaut habe. Da ließe sich sicherlich bei Bedarf noch etwas experimentieren.

Die gelben Pfeile schalten die entsprechenden Diodengruppen hinzu und die grünen Pfeile nicht. Die roten Pfeile leiten das „Ergebnis“ an das nächste Relais weiter. Da Dioden nur in eine Richtung leiten, wird kein Kurzschluss erzeugt. Im Anschluss mal ein Schema für die Geschwindigkeitsstufe 11:

Stufe 16 bedeutet, die am Netzteil anliegende Spannung wird unvermindert weiter gegeben. Hier sind 5 Dioden geschaltet, so dass das Geschwindigkeitsstufe 11 ergibt (16 – 5×7 = ca 12,5 V) . Dies entspricht aber wiederum nicht ganz der Wahrheit, denn ich habe noch eine zusätzliche Diode zwischen Arduino und Bahn gelötet, damit dieser bei Verwendung von elektronischen Reglern keinen Schaden nimmt. Das sei aber nur am Rande bemerkt.

Auf das vierte Schaltrelais habe ich den Arduino Uno verbaut, so dass sich folgendes Gesamtbild ergibt:

Arduino-Hardware
Arduino-Hardware

Neben den drei Platinen erkennt man die Anschlüsse, die an die Bahn, bzw. Regler gehen. Unterhalb des Arduino sieht man vier Anschlüsse. Einer ist der Stromeingang, und die anderen drei sind die Anschlüsse für die Buzzer. Auf dem Arduino sind zum Zeitpunkt der Aufnahme sieben Anschlüsse In Nutzung, nämlich drei für die Buzzer und vier für die Schaltrelais. Hinzu kommen dann noch drei Anschlüsse für die Lichtsensoren. Auf dem Bild ist der Arduino aber eigentlich garnicht zu sehen, da darauf ein Grove-Baseshield gesteckt ist. Die Sensoren und die Relais sind ebenfalls Grove-Komponenten. Diese Lösung ist vergleichbar teuer, aber bietet den Luxus, dass da stabile Steckverbindungen verbaut sind und man somit nicht löten muss.

Rennbildschirm

Beim Rennbildschirm gibt es ein paar Punkte, die einer Erklärung bedürfen:

Rennbetrieb
Rennbetrieb
  • Zeile 1: a)Name des Rennens + Lauf; b) Startampel; C) Noch verbleibende Rennzeit; d) Mein Logo
  • Zeile 2: Namen der jeweiligen Fahrer; Es handelt sich dabei um Buttons, mit denen auch manuell eine Strafe ausgesprochen oder zurückgenommen werden kann.
  • Zeile 3: Rundenzeiten der jeweiligen Fahrer
  • Zeile 4: Anzahl der gefahrenen Runden; Slotfarbe
  • Zeile 5: a) Persönliche schlechteste Rundenzeit; b) Farblicher Hinweis, ob Spannung auf der Spur anliegt (grün = ja, rot = nein) und Anzahl der Strafsekunden, welche runtergezählt werden; c) Persönliche schnellste Rennrunde
  • Zeile 6: Fahrer des nächsten Rennlaufs
  • Zeile 7: a) Rennstart – Die noch verbleibende Rennzeit wird aktualisiert, alle Rundenzeiten werden gelöscht, die Startampel läuft an; b) Rennabbruch – Die Anzahl der Runden und die Rundenzeiten werden ohne abzuspeichern gelöscht. Der Lauf kann sofort wieder gestartet werden; c) Speichern – Die Ergebnisse werden ohne Korrektur abgespeichert. Der nächste Lauf wird vorbereitet oder, falls kein Lauf mehr offen ist, das Gesamtergebnis des Rennens angezeigt; d) Ändern – Korrektur der Ergebnisse

Renneinstellungen

Da ich die Rennsoftware in erster Linie für mich persönlich entwickelt und viele Dinge hart programmiert habe, gibt es hier nur wenige Einstellungsmöglichkeiten.

Renneinstellungen
Renneinstellungen

Alle Einträge werden in einer Datenbank gespeichert und brauchen daher nur bei Bedarf angepasst zu werden.

Perspektivisch möchte ich hier schon noch ein paar Dinge einarbeiten. Auf Anhieb fällt mir hier die Sprachansage ein. Was als gutes Gimmick gemeint ist, kann manchmal auch ganz schön nervend sein.

Rennverwaltung

Der letzte, notwendige Schritt zur Durchführung eines Rennens findet innerhalb der Rennverwaltung statt. Da zuvor alle anderen notwendigen Daten in der Fahrer-, Fahrzeugverwaltung und den Renneinstellungen hinterlegt wurden, bedarf es hier nur drei einfachen „Klicks“, bevor man das erste Rennen fahren kann.

Rennverwaltung
Rennverwaltung

Dabei geht man wie folgt vor: Zuerst wählt man ein Fahrzeug in der Fahrzeugliste aus und klickt anschliessend auf „Neues Rennen“. Darauf hin erscheinen alle noch offenen Rennläufe in der obigen Liste. Die Verteilung der Fahrer auf die jeweiligen Spuren erfolgt dabei im Zufallsprinzip. Nach Auswahl eines Rennlaufs in der Liste, klickt man nur noch auf „Lauf übernehmen“ und schon kann es losgehen. Durch diesen Schritt erfolgt auch automatisch die Anpassung der Bahnspannung auf die in der Fahrzeugverwaltung eingestellten Werte.

OK, das waren jetzt vier Klicks, aber ich bin meinem Traum von der „Ein-Klick-Verwaltung“ schon recht nahe gekommen, insbesondere wenn man bedenkt, dass danach alle weiteren Läufe automatisch aufgerufen werden. Natürlich kann man auch jederzeit in der Rennverwaltung einen bestimmten Lauf aufrufen.

Rennergebnisse

Rennergegbnis
Rennergegbnis

Die Rennergebnisse können jederzeit über den entsprechenden Menüpunkt aufgerufen werden. Sobald in einem Rennen der letzte Lauf abgespeichert wurde, erscheint der Bildschirm automatisch.

Ein Ergebnis wird hier angezeigt sobald der erste Lauf eines Rennens abgespeichert wurde. Beim Abspeichern eines weiteren Laufs wird die Tabelle automatisch aktualisiert. Die Ergebnisse aller Rennen bleiben erhalten, soweit sie nicht gelöscht werden.

Fahrerverwaltung

Die Fahrerverwaltung ist ebenfalls eine wichtige Voraussetzung zur Durchführung eines Rennens. Alle Fahrer, die hier als anwesend markiert sind, nehmen automatisch an allen zukünftigen Rennen teil.

Fahrerverwaltung
Fahrerverwaltung

Vermutlich bedarf nur die Zeile oberhalb „Fahrer anlegen“ einer Erklärung. Im linken Feld wird der Name des Fahrers eingetragen. Da die Rennsoftware eine personifizierte Sprachansage beinhaltet, muss im zweiten Feld der Name nochmals so eingetragen werden, wie man ihn ausspricht. Mit dem Button „Test“ initiiert man die entsprechende Sprachansage des Namens um gegebenenfalls nochmal Korrekturen durchzuführen. Mit „Speichern“ wird der Name in die Liste übernommen. Zuvor erfolgt eine Überprüfung auf Eindeutigkeit.

Die Anwesenheit eines Fahrers wird durch Anklicken im großen Listenfeld bestätigt. Nochmaliges Anklicken entfernt das Päckchen wieder. Die Einträge werden automatisch in einer Datenbank gespeichert und bewahren Ihre Gültigkeit bis zur nächsten Änderung.

Fahrzeugverwaltung

Die Fahrzeugverwaltung ist eines der elementar notwendigen Bestandteile der Rennsoftware. Über das Fahrzeugmodell wird nicht nur die Bahnspannung geregelt, sondern die Fahrzeugnamen sind neben dem Datum und Uhrzeit fester Bestandteil des Namens eines jeden Rennens. Da habe ich bewusst auf eine freie Vergabe des Titels verzichtet um der „Ein-Klick-Methode“ ein gutes Stück näher zu kommen. Näheres hierzu findet sich im Bereich Rennverwaltung.

S11AT&VC3S-Fahrzeugverwaltung
S11AT&VC3S-Fahrzeugverwaltung

Während der Fahrzeugname selbsterklärend ist, zeigt die Spalte „Spannung“ mit den ersten drei Werten diejenigen an, die während eines Rennens auf den jeweiligen Spuren (in der Reihenfolge 1-3) anliegt. Dies hat den Vorteil, das man den Wert für ein Fahrzeug mit stark abweichender Geschwindigkeit anpassen kann. Dies vor dem Hintergrund, dass auf meiner Bahn größtenteils Rennen mit gestellten, spurgebundenen Fahrzeugen stattfinden. Perspektivisch arbeite ich hier noch an einer Bildanzeige der Startaufstellung, weil das Ganze natürlich nur Sinn macht, wenn beim nächsten Treffen alle Fahrzeuge wieder auf der gleichen Spur fahren. Die so eingestellten Werte werden innerhalb der Rennverwaltung beim Anlegen eines neuen Rennens automatisch eingestellt, weil der Fahrzeugname ja fester Bestandteil des Renn-Titels ist. Der vierte Wert ist die Vorgabe für alle Spuren im Trainingsmodus, die das jeweilige Fahrzeug dort ausgewählt haben.

Wichtiger Hinweis zum Verständnis: Bei den „Spannungs“-Werten handelt es sich um die jeweiligen Spannungsstufen und nicht um eine Volt-Angabe. Die Differenz zwischen der höchsten und der jeweils gewählten Stufe ergibt die Anzahl der Dioden, die in dieser Einstellung hintereinander geschaltet werden, um die Netzteil-Spannung zu reduzieren. Klingt kompliziert, werde ich aber im Bereich „Hardware“ nochmals erläutern.

S11AT&VC3S-Neues-Fahrzeug-anlegen
S11AT&VC3S-Neues Fahrzeug wird angelegt

Wenn man eine Fahrzeug anlegen möchte, bedarf es eines eindeutigen Namens, hier „Slot-It Gruppe C“. Die Auswahl des Namens sollte sich nach dem Aspekt richten, dass dieser Name zum Titel eines späteren Rennens gehört. „BMW 320 Team Wahrsteiner“ sollte hier nur zum Beispiel auswählen, wer später auch ein Rennen mit nur drei Teams „Wahrsteiner“ fahren möchte. Die erste Spannungsstufe hinter dem Fahrzeugnamen ist der Wert für den Trainingsmodus. Scrollt man in der Liste nicht nur durch, sondern klickt einen Wert an, wird der Wert auch auf die drei anderen Felder übertragen, die die spurgebundene Spannungsstufe beim Rennen bilden. Aber Vorsicht: Dabei wird der Wert auch sofort auf alle Spuren eingestellt, was natürlich Auswirkungen auf etwaige zeitgleiche Fahrer an der Bahn hat. Wer testweise nur den eigenen Slot ausprobieren möchte, sollte also nur einen Wert in der jeweiligen Liste der darunter liegenden Zeile anklicken und alle anderen Werte durch Scrollen verändern und abspeichern.

Training

Nach dem Start der Software gelangt man, vorausgesetzt die serielle Schnittstelle wurde bereits schon einmal ausgewählt, sofort in den Trainingsmodus.

S11ATVC3S-Training
S11ATVC3S-Trainingsbildschirm

Im Grunde kann jetzt der Trainingsbetrieb starten. Die am Netzteil eingestellte Spannung liegt ohne Einschränkung auf allen Spuren an. Es folgt eine kurze Erläuterung des Bildschirms:

Zeile 1: a) Anzeige des Trainingsmodus. Diese Anzeige dient nicht nur der Information, sondern auch der internen Steuerung verschiedener Funktionen. Soll heissen, sobald dort „Training“ steht, zünden bestimmte Trigger für den weiteren Ablauf des Trainingsmodus. b) Die Startampel ist im Trainingsbetrieb ohne Funktion. c) Zeitanzeige. d)Mein Logo

Zeile 2: Die drei Push-Buttons bieten die wichtigste Einstellungsmöglichkeit im Trainingsmodus, nämlich der Auswahl verschiedener Fahrzeuge und damit das Einstellen der Spannung für die jeweilige Spur. Ok, „FullSpeed“ ist jetzt nicht gerade ein Fahrzeugname, sondern soll einfach nur bedeuten, dass gerade die vom Netzteil gelieferte Spannung in voller Höhe anliegt. Drückt man nun auf einen der drei Buttons, so öffnet sich eine Liste mit den derzeit bereits angelegten Fahrzeugen.

S11AT&VC3S-Spannung
S11AT&VC3S-Spannung

Wählt man nun zum Beispiel den Eintrag „Carrera Ford Capri“ aus, wird die Beschriftung des Push-Buttons entsprechend geändert und die für dieses Fahrzeug hinterlegte Spannung an der betreffenden Spur angelegt.

S11AT&VC3S-Fahrzeug ausgewählt
S11AT&VC3S-Fahrzeug ausgewählt

Sollte das auf der Spur stehende Fahrzeug noch nicht in der Liste aufgeführt sein, so gelangt man über den Eintrag „Neues Fahrzeug anlegen“ zur Fahrzeugverwaltung, die an anderer Stelle noch erklärt wird.

Zeile 3: Hier werden die Rundenzeiten je Spur gelistet. Die Anzahl der Zeilen ist nicht limitiert. Sobald das Feld voll ist, rücken die ältesten Rundzeiten aus dem Feld, können aber durch Scrollen immer wieder angezeigt werden.

Zeile 4: Anzahl der gefahrenen Runden. Das Feld trägt als Hintergrundfarbe die Farbe der entsprechenden Spur. Mir hat schon mal jemand gesagt, dass ich an meiner Bahn die falsche Reihenfolge gewählt habe. Perspektivisch werde ich vielleicht noch eine entsprechende Einstellungsmöglichkeit einbauen.

Zeile 5: Anzeige der schlechtesten und schnellsten Rundenzeit je Spur. Die Werte können sich nur in einer Runde ändern, in der kein „Chaos“ ausgelöst wurde. Der mittlere Wert hat im Trainingsmodus keine Bedeutung, die Hintergrundfarbe allerdings schon: Grün bedeutet, das Spannung anliegt, rot entsprechend, das „Chaos“ ausgelöst wurde. Auf das Betätigen des Buzzers wird auch nochmal durch Sprachausgabe hingewiesen, ebenso beim zweiten „Buzzern“, wenn die Bahn also wieder freigegeben wird.

Die Zeilen 6 und 7 haben im Trainingsmodus keine Bedeutung.

Erster Start- Auswahl der seriellen Schnittstelle

Startet man die Rennsoftware zum ersten Mal oder hat einen anderen Computer erstmals im Einsatz, so öffnet sich sofort nach dem Start das Fenster zur Auswahl der seriellen Schnittstelle.

S11AT&VC3S-Serielle-Schnittstelle
S11AT&VC3S – Auswahl der seriellen Schnittstelle

Hier werden alle möglichen zur Auswahl stehenden Schnittstellen aufgeführt. In der Regel wird der Arduino UNO als usbmodem14401 oder ähnlich aufgelistet, was in der obigen Abbildung leider nicht zu sehen ist. Wählt man die entsprechende Schnittstelle aus, wird der Wert in die Datenbank geschrieben. Das Fenster erscheint erst wieder, wenn die gespeicherte Schnittstelle beim Start der Rennsoftware nicht zur Verfügung steht.

S11AT&VC3S – Zeitmessung für analoge 3-Spur Slotcarbahnen

Vor ca. 2 Jahren hatte ich aus der Not heraus schon einmal eine Zeitmessung für meine damals neue Dual-Carrerabahn geschrieben, weil ich auf die Schnelle nichts gefunden hatte, was meinen Anforderungen entspricht und zudem auch auf einem MacOS-Betriebssystem läuft, wobei Letzteres das größte Problem dabei war. Damals war die Software für den digitalen Betrieb schnell geschrieben, da man dabei nur die Signale der Carrera CU verstehen, bzw. auswerten muss und die Anforderungen für den analogen 2-Spurbetrieb eh nicht allzu groß waren. Versteht mich nicht falsch: Das Programmieren einer kommerziellen Rennsoftware ist eine ganz andere Liga, in der ich garnicht mitspielen möchte. Da gibt es unzählige Fehlerquellen und Kundenwünsche zu berücksichtigen. Ich verwirkliche hingegen nur meine Anforderungen und kenne mich am Ende mit der fehlerfreien Bedienung bestens aus.

Nun hat ja bekanntlicherweise meine alte dreispurige Holzbahn wieder zu mir gefunden, so dass ich mich gezwungen sah, eine neue Rennsoftware zu programmieren. Dabei hatte ich von Anfang an auch das Ziel, eine automatische Spannungseinstellung für verschiedene Fahrzeuge zu verwirklichen. Soll bedeuten: Hat man einmal ein Fahrzeug mit seiner Spannung erfasst, muss man es nur wieder auswählen, um die Spannung des jeweiligen, bzw. im Rennbetrieb aller Slots einzustellen. Diese Feature konnte ich allerdings nur in einer einfacher Ausführung umsetzen, aber dazu an anderer Stelle mehr.

Und das ist das Ergebnis meiner Bemühungen:

S11AC&VC3S-Fenster-Rennen
S11AC&VC3S Fenster Rennen

S11AT&VC3S-Arduino
S11AT&VC3S-Arduino

Features:

  • Trainingsmodus
  • Rennmodus „Alle Teilnehmer fahren jede Spur in frei wählbarer Zeit“
  • Spannungsregelung
  • Automatische Stromunterbrechung nach Rennende
  • Rennunterbrechung per Buzzer (Chaos-Schaltung)
  • Zeitstrafe für Frühstart und Buzzer-Nutzung (frei wählbar)
  • Alle Rennergebnisse jederzeit abrufbar
  • Fahrerverwaltung
  • Fahrzeugverwaltung
  • Sprachansage (Fahreraufruf vor dem Rennen, Strafen, Restliche Renndauer )
  • Sound (Ampel, Start, Rundenerfassung, Anzeige des Gesamtergebnisses)
  • Anzeige schnellste / schlechteste Runde je Fahrer
  • Anzeige schnellste Runde pro Gesamtrennen

Systemvoraussetzungen (Hardwareanforderungen stehen noch aus)

  • macOS Catalina 10.15.x
  • macOS Mojave 10.14.x
  • macOS High Sierra 10.13.x
  • macOS Sierra 10.12.x
  • OS X El Capitan 10.11.x
  • OS X Yosemite 10.10.5

Wie auf dem zweiten Bild angedeutet, bildet ein Arduino auf Grove-Basis die Hardware. Die Rennsoftware wurde mit Xojo programmiert.

Hier noch ein kurzes Video mit allen interessanten Bereichen (Tipp: Mit der rechten Maustaste könnt Ihr die Anzeigeoptionen ändern….):

Ein kurzer Überblick über alle interessanten Bereiche

Weitere Beschreibung auf den folgenden Seiten: