MAKAT-42
Es begab sich zu der Zeit ... als sich die Ski-Saison 2011/2012 dem Ende
zuneigte. Als Zuschauer und Betreuer bei einem der letzten Wettkämpfe
(Langlauf) der Saison ärgerte es mich ein bisschen, das man meist recht
lange frierend auf den Aushang der Ergebnislisten warten musste. Da kam
mir die Idee: "Die brauchen eine Anzeigetafel!".
(Mit "die" ist der örtliche Ski-Club gemeint.)
Ich erkundigte mich, wie denn die Laufzeiten erfasst und verarbeitet werden und ob seitens des Vereins überhaupt Interesse an einer Anzeigetafel besteht - was bejaht wurde. Also fing ich an zu überlegen, wie man eine entsprechende Anzeige gestalten könnte. Da ich ja nun gern mit LEDs herumbastele, fiel die Wahl ziemlich schnell auf eine LED-Tafel. Es folgten (natürlich nicht mehr in der Kälte) etliche Gedanken; manche wurden für gut, andere für schlecht befunden - aus welchen Gründen auch immer. Eine Punkt-Matrix-Anzeige bespielsweise hätte viel zu viele LEDs "verbraucht" um eine akzeptable Auflösung bei hinreichender Größe zu ermöglichen, fertige 7-Segment-Displays in adäquater Größe und Helligkeit habe ich nicht gefunden. Die Entscheidung fiel dann auf aus diskreten 5mm-LEDs aufgebauten 7-Segment-Ziffern - schließlich sollte das Ding auch weit und bei Schneefall und/oder Nebel zu sehen sein - und so einigte ich mich mich auf ca. 150 mm Ziffernhöhe (damit sich später eine Ziffer auf eine Europakarte bauen lässt). Inzwischen hatte ich auch erfragt, was denn eigentlich alles angezeigt werden muss: Platzierung, Startnummer und Laufzeit - diese mit Stunden, Minuten, Sekunden und Zehntelsekunden. Hundertstel braucht's beim Amateur-Langlauf nicht. Nun stand immerhin schonmal grob fest, wie das Ganze aussehen könnte. Dann mal los - nur wie anfangen?
Zunächst musste ermittelt werden, wie die Daten aus dem verwendeten Programm "WinLaufen" (eine Software für nordische Skiwettkämpfe) zur Verfügung stehen. Das Programm unterstützt eine ganze Reihe kommerzieller Großanzeigen unterschiedlicher Hersteller und Konzepte. Nach dem Herunterladen der Demoversion von WinLaufen und einigen Vortests fand ich in "WinLaufen" eine Großanzeige, die meinem Vorhaben am nächsten kam: mehr als 2 Zeilen und aus Ziffern zusammen gesetzt (ich wollte ja vier Zeilen und keine Punktmatrix).
Es folgten ein paar Versuche mit einem Terminalprogramm, um die von WinLaufen über die serielle Schnittstelle gesendeten Daten zu sichten; das sah nicht so sonderlich schwierig aus. WinLaufen sendet nach jedem Zieleinlauf sechs Datensätze, geht also von einer 6-zeiligen Anzeigetafel aus - leider ist das (zur Zeit noch) nicht konfigurierbar. Meine "Steuereinheit" - ich entschied mich für einen ATmega8 - muss also "nur" jeweils 6 Zeilen seriell empfangen, davon 2 Zeilen ignorieren und die Bytes der anderen Zeilen geeignet sortieren. Erfreulicherweise fand ich in den "unendlichen Weiten des Internet" eine Dokumentation des seriellen Protokolls, so dass die Zuordnung der Datenbytes recht einfach möglich sein sollte.
Der Löwenanteil der Entscheidungen war also gefällt: Es sollte eine Steuereinheit mit einem ATmega8 mit Pegelwandler für die serielle Schnittstelle (hier war zunächst RS-485 geplant, dies wurde aber wegen ZWEI benötigter Kabel (Versorgung und Daten, letzteres verdrillte Paare) wieder in Richtung unidirektionaler RS-232 verworfen) und Bustreiber für die SPI-Signale werden. Der Bustreiber, ich wählte einen 74ABT541, sollte "ordentlich Strom" liefern können, um die Flachkabel zur Vermeidung von Reflexionen vernünftig abschließen zu können - schließlich rechnete ich mit über einem Meter Kabel vom Controller bis zur letzten Stelle. Den ursprünglich vorgesehen Linearregler auf der Steuerplatine musste ich später durch einen Schaltregler ersetzen, da dessen Verlustleistung für nicht unerhebliche Erwärmung sorgte - doch nur dafür eine neue Platine zu ätzen erschien mir übertrieben. So wurde der Schaltregler etwas - ahäm - etwas "unkonventionell" montiert. Auch reifte in der Bauphase noch der Wunsch nach einem RTC-Chip, um - solange die Tafel noch keine "Wettkampfdaten" erhalten hat - die Uhrzeit und das Datum anzeigen zu können. Schließlich stand man als Zuschauer und Betreuer immer ziemlich unwissend im Startbereich und fragte sich "Wann geht's denn endlich los?" Der RTC-Chip nebst Lithium-Knopfzelle residiert auf einer kleinen Huckepack-Platine, denn auch hier war ich zu faul, die gesamte Platine neu aufzulegen.
Als nächstes musste natürlich das "Display" selbst konzipiert werden. Hier ergab sich aus den Anforderungen: 4 Zeilen à 11 Stellen, nämlich vier Mal Platzierung (2 Stellen), Startnummer (3 Stellen) und Laufzeit (6 Stellen, nämlich H:MM:SS:z) ⇒ 44 Ziffern. Diese Ziffern sollten jeweils aus 49 (bzw. 53 für die mit Dezimalpunkt) diskreten 5mm LEDs, einem Schieberegister mit nachgeschaltetem Darlington-Array bestehen und auf einer Europakarte Platz finden. Die 7 LEDs eines jeden Segments sind in Reihe geschaltet, das spart Vorwiderstände en masse. Natürlich musste es auch je eine Steckverbindung für die Versorgung und die Daten geben; letztere gestaltete sich insofern als etwas schwieriger, dass ich ja Flachkabel verwenden und nicht ZWEI, sondern nur EINEN Datenstecker pro Platine haben wollte. Da jede Platine neben Logikversorgung, SPI-Clock, SPI-Strobe einen "Data-IN" und einen "Data-OUT" haben sollte, fiel die Wahl auf 10-polige "Micromatch" Stecker, wobei die beiden Datenpins immer durch Verdrehen der letzten beiden Adern vertauscht werden konnten.
Zusätzlich bastelte ich für die Softwareentwicklung einen kleinen Dummy einer Displayzeile aus einem alten Taschenrechner-Display und einem "Stapel" Schieberegister (siehe Fotostrecke). Das Ding sparte zum Einen viel Platz auf dem Basteltisch und zum Anderen mussten die 44 Displayplatinen ja auch erstmal geätzt, gebohrt, lackiert und bestückt werden. Allein die Bohrungen in Display-Platinen waren knapp 5000 Stück. Wer's nachrechnen will: 44 Platinen, jeweils 49 bzw. 53 LEDs à 2 Beinchen, dazu 4 Befestigungslöcher und 1 Lötpin.
Natürlich muss es auch eine Art "Netzteil" geben; hier bin ich zunächst vom "worst case" ausgegangen: 44 Stellen * 7 Segmente * 20 mA = 6.16 A - die Dezimalpunkte mal ignoriert; danach (bzw. für 8A) habe ich den (Schalt-)Regler ausgelegt. Später stellte sich heraus, dass das etwas überdimensioniert ist, denn meine Reihenschaltungen der LEDs brauchen auch bei der als maximal definierter Helligkeit deutlich weniger Strom. Der Schaltregler macht aus 18..28V Eingangsspannung via SolidState-Relais umschaltbar drei Spannungen, über die entsprechend drei Helligkeiten der LEDs gewählt werden können. Zugegeben, die Helligkeit von LEDs über die Spannung einzustellen ist nicht so ganz "die feine Art", aber es funktioniert gut. Drei Helligkeiten gibt es, um die Anzeigetafel auf verschiedene Umgebungshelligkeiten (z.B. normal, Sonne, Nacht) anpassen zu können. Dies macht wahlweise der Controller in Verbindung mit einem LDR oder der Benutzer mit einem Wahlschalter. Als speisende Spannung für meinen Schaltregler kommt normalerweise ein kleines 24V-Schaltnetzteil oder alternativ eine Batterie (z.B. 2* 12V aus Kfz-Akkus) zum Einsatz.
Nachdem die Firmware in Verbindung mit meinem "Display-Dummy" und weiteren provisorischen Betriebsmitteln ungefähr das machte was sie soll - nämlich seriell Daten von WinLaufen empfangen, Bytes sortieren, RTC-Chip lesen, Umgebungshelligkeit messen und Helligkeits-Wahlschalter abfragen, daten via SPI an die Displays schicken - machte ich mich ans Bestücken der inzwischen fertigen Platinen: jeweils 49/53 bedrahtete LEDs, 2 SMD-ICs sowie ein paar passive SMD-Bauteile. Auch eine "Montageplatte" war notwendig, damit die ganzen Display-Platinen, Steuer- und Versorgungsplatine sowie Verdrahtung nicht "in der Luft" hängen müssen. Die Montageplatte ist ein Aluminiumblech, in das auch zahlreiche (knapp 300) Löcher gebohrt werden mussten. Im Grunde wechselten die Tätigkeiten immer wieder: Leiterplatten-Fertigung (vom Dienstleister war mir zu teuer, auch bei 44 Stück), programmieren (natürlich nicht ganz ohne Tipps von Thorsten), mechanische Arbeiten (bohren, schrauben usw.)
Als dann endlich die Montageplatte und sämtliche Displayplatinen fertig waren, ging es an's zusammenbauen...
Nach etlichen Schrauben, Lötstellen und Kabelbindern war endlich alles montiert (44 Display-Platinen vorn, 6 Platinen und ein paar Streben zur Aussteifung hinten) und verdrahtet war, kam der große Moment: Das erste Einschalten! So ein Projekt braucht Platz, den ich zunächst etwas unterschätzt hatte - auf dem Basteltisch ging's jedenfalls nicht. Also wurde das "Ding" kurzerhand provisorisch an die Kellerdecke gehängt. Das bot den Vorteil, dass beide Seiten (vorn und hinten) mehr oder weniger gut zugänglich waren. Natürlich stellten sich noch einige Bugs in der Firmware heraus und ein paar Ideen zu (optionalen) Ergänzungen hatte ich auch noch.
Nach vielen vielen Tests, Änderungen und Optimierungen definierte ich die Firmware dann als "erstmal fertig" (Software ist bekanntlich nie fertig )
Nun kann man ja so eine "nackte" Elektronik nicht einfach im Freien aufstellen oder -hängen, es musste noch ein Gehäuse her - schließlich sollte es ja letztendlich ein "richtiges Gerät" werden. Die Front sollte auf jeden Fall aus rotem Plexiglas bestehen; für den Rest untersuchte ich verschiedene Materialien auf Tauglichkeit (Wetter-, besonders Temperatur- und Wasserbeständigkeit) sowie Gewicht und Verarbeitungsmöglichkeiten. Nachdem Hart-PVC wegen Sprödigkeit bei Kälte (es geht ja um Wintersport!), Holz wegen Wasserempfindlichkeit (Schnee = Wasser) und Aluminiumblech wegen fehlender Schweiß- und Abdichtmöglichkeiten ausgeschieden waren, fiel die Wahl auf Polyamid (PA6). Das lässt sich zwar nicht so schön bearbeiten wie PVC, wird aber bei Kälte nicht spräde, bei Hitze nicht so wabbelig und sieht zudem auch noch schöner aus.
Während der Endmontage, bei der natürlich auch der Gedanke "Bald bin ich fertig." aufkam, gab es ein unvorhergesehenes Unglück: Die Montageplatte mit den ganzen Displayplatinen fiel mir - ganz getreu der Gravitation - aus der Hand. "Sch***! Hoffentlich ist nichts kaputt gegangen." Doch leider musste ich feststellen, dass auf zwei der Displayplatinen LEDs aus den Lötstellen gerissen waren. Das wurde repariert und die Endmontage fortgesetzt.
Als dann nur noch die Rückwand fehlte, verabredete ich mich mit einem der Kampfrichter, um einen möglichst realitätsnahen finalen Test durchzuführen. Der war ziemlich erfolgreich, nur stellte sich hierbei noch eine durch o.g. Sturz versachte herausgerissene LED heraus. Also nochmal auseinander bauen, LED wieder einlöten und - Endspurt.
Die Rückwand wurde in die vorgesehenen Nuten eingeschoben, verschraubt und auch mit Spezial-Dichtungsmasse (Silikon hatte sich als ungeeignet erwiesen) abgedichtet. Unmittelbar über der Steuerplatine erhielt die Rückwand eine Art "Revisionsöffnung" in Form einer modifizierten PG36-Kabelverschraubung, um bei Bedarf die Knopfzelle der RTC auswechseln zu können.
Zu guter Letzt erstellte ich dann noch eine Art Bedienungsanleitung und eine CD mit Selbiger sowie Treibern und zusätzlichen Scripten für Winlaufen (damit z.B. die Tafel auf die Uhrzeit des PC synchronisiert werden kann). Im April 2013 war es dann endlich soweit: MAKAT-42 konnte dem o.g. Ski-Club überreicht werden - von der Stiftung wurde sogar in der örtlichen Zeitung berichtet.
Nachträglich ferigte ich dann noch ein Gestell aus Vierkant-Stahlrohr, damit man die Tafel nicht nur an den oben angebrachten Ösen aufhängen, sondern auch einfach irgendwo aufstellen kann. Den ersten Einsatz hatte MAKAT-42 dann bei einem Crosslauf, ohne Schnee. Auch die "Bewährungsprobe(n)" bei verschiedenen Ski-Wettkämpfen im letzten Winter waren erfolgreich.
Erfüllt ja irgendwie mit Stolz
Hier noch einige Fotos:
An dieser Stelle noch einmal der Hinweis:
Wie bei
allen meiner Projekte ist dies ebenfalls eine private Bastelei ohne
finanzielle Interessen. Obwohl es ggf. so aussieht, als hätte ich ein
kommerzielles Produkt "nachgemacht": Nein, das professionelle Gerät diente
lediglich als Inspiration; meines hat auch einen dem "Original" gegenüber reduzierten
Funktionsumfang - dafür andere Features. Aus diesen Gründen gibt es hier auch keine Schaltpläne, Zeichnungen oder sonstige Downloads.
Bei uns Hobbybastlern gilt oft: Der Weg ist das Ziel!