Digitales Cockpit für die Yamaha FZS1000
Die Idee hinter diesem Projekt ist die Kombination eines Motorrad-Cockpits mit einem Navigationsgerät.
Das Cockpit wird durch ein grosses TFT-Display ersetzt, gesteuert von einem Raspberry Pi. Alle analogen
Zeiger-Anzeigen entfallen. Deshalb auch der Term "digital" im Namen.
Das Projekt ist ein Langläufer. Diese Seite berichtet über den aktuellen Projektstand, den Entwicklungsweg
und die Fortschritte (hoffentlich..). Bisher gibt es nur wenig Hardware, ein bischen Software und viele Pläne.
Ein erster Entwurf der Anzeigeoberfläche existiert bereits. Hauptaufgabe ist die Kartendarstellung. Die
Motorrad-Zustandsdaten
werden am oberen Rand eingeblendet. Die Karten haben den gleichen Mittelpunkt, aber unterschiedliche
Zoomstufen. Sie folgen der aktuellen GPS-Position.
Sehr wahrscheinlich wird es später noch weitere Layouts mit anderen Schwerpunkten geben. Aber zuerst muss die
Routen-Darstellung funktionieren.
Die ersten Verbaustudien und Dummys. Welches Display am Ende verwendet wird ist noch offen, in der Sonne ablessbare
Varianten sind kaum zu finden. Eine 7-Zoll Diagonale ist das Ziel.
Das Layout des Anzeigebildschirms im Entwurfsstadium auf einem PC-Monitor. Die Einstellmöglichkeiten am Rand
entfallen später am Motorrad. Dort wird nur der innere 800 x 480 Pixel-Bereich angezeigt.
Die Adapterplatine für den Motorrad-Kabelbaum hat einen eigenen Controller der alle wesentliche Aufgaben der
Signalaufbereitung und -Berechung übernimmt. Zudem auch alle Funktionen des originalen Cockpits:
- Geschwindigkeit, Drehzahl und Gang
- Zustand aller Signale (Neutral, Blinker, Ölstand,..)
- Tankfüllstand
- Kilometerzähler
- Kühlerlüfter Kontrolle
- GPS-Empfänger
Die einzige Signalverbindung zum Raspberry Pi ist eine serielle Schnittstelle über die alle Daten zyklisch übertragen werden. Eine Updaterate von ca. 4/Sekunde scheint ausreichend zu sein.
Der Raspberry Pi dekodiert den Datenstrom und fungiert "nur noch" als "User-Interface". Er hat keinerlei direkte Verbindung zur Motorrad-Elektrik und auch keine Steuerungsaufgaben. Als willkommener Nebeneffekt können daher beide Baugruppen weitgehend getrennt entwickelt werden.
Motivation
Der erste Auslöser war ein Bericht von einem Mitglied im UK-Fazer-Forum der über sein selbstgebautes Austausch-Cockpit
mit TFT-Display berichtete. Er hat dazu eine Doku-Webseite erstellt auf der das Gerät auch erworben werden kann:
TFT Dash Project
Das Cockpit erhielt grossen Zuspruch und hat mittlerweile eine kleine Fan-Gemeinde. Es ist ordentlich aufgebaut und die
Video-Doku dazu ist sehenswert. Es ist ein gelungener und moderner Ersatz für das Zeiger-Cockpit.
Für meinen Geschmack ist das aber "zuviel TFT" für die paar Daten die angezeigt werden. Und ich wünschte mir zusätzlich ein
Navigationsprogramm.
Der nächste Anschub kam von einem französischen Fazer-Fahrer der mich um Unterstützung bat um seine (ebenfalls) Raspberry Pi
basierte Lösung an die Fazer zu adaptieren. Er integrierte
Leaflet
(eine JavaScript basierte Kartensoftware) in ein Demo-Programm. Eine sehr gute Basis. Das sah machbar aus.
Den letzten Anstoss gab mein defektes iPhone dass ich immer gerne als Navi am Lenker befestigt hatte. Durch Motorvibrationen
wurde die eingebaute Kamera zerstört :/ Ein bei Apple offensichtlich gut bekanntes Problem.
Es war daher an der Zeit für eine "richtige" Navigationslösung.
Erstes grobes Konzept
Nach all den Vorüberlegungen war das Konzept in groben Zügen festgelegt.
- Eine neue Cockpit-Box die das existierende Cockpit ersetzt
- Ein Display mit 5.5'' oder 7'' TFT mit Touch
- Ein Raspberry Pi 4B als Rechengehirn
- Eine spezielle Adapter-Elektronik für den Motorrad-Kabelbaum
- Software für Navigation und die Anzeige der üblichen Cockpit-Daten
Programmiersprache und Software
Die Software selbst erstellen zu können war für mich ein sehr wichtigster Punkt. Deshalb kamen Lösungsansätze mit
irgendwelchen kaskadierten Softwarebaukästen, deren Inhalt ich nicht nachvollziehen kann, garnicht in Frage.
Zudem sind meine Programmierkenntnisse leider sehr beschränkt. Ich habe keine wirkliche Ahnung von JavaScript und
auch keine Idee wie ich meine spezielle Hardware mit dieser Basis hätte steuern können. Zum Glück brachte mich
ein Forumskollege (Danke Andreas!) auf die Spur dass es Lazarus auch für den Raspberry gibt.
Lazarus
Lazarus ist eine IDE die auf dem Free Pascal Compiler aufbaut und als Nachfolger von "Delphi" angesehen werden kann.
Beides ist heutzutage nicht mehr wirklich in Mode. Aber für mich ideal weil ich mit Pascal "aufgewachsen" bin.
Dadurch wird auch die SW-Entwicklung stark vereinfacht. Man kann bequem auf dem PC alles vorbereiten und testen und muss
das ganze danach "nur nochmal" auf dem Raspberry Pi kompilieren. Das hat möglicherweise auch seine Tücken, ist aber ein
Problem für später.
Karten-Anzeigesoftware
Der wichtigste Baustein ist eine Software zur Anzeige der Karten und der Routen. Wenn man im Pascal-Land bleiben möchte
gibt es eigentlich nur genau eine einzige brauchbare Lösung:
MapViewer
MapViewer ist eine sog. Komponente für Lazarus. Es ist das Pascal-Pendant zu "Leaflet". Sie kann "beliebige" Karten anzeigen,
Tracks und POIs einblenden und ähnliches. Genau passend für meine Anwendungen.
Ein möglicher "Plan B" wäre es Leaflet in einem Browser in einem Pascal-Programm laufen zu lassen. Vielleicht eine Idee
für später ... ?
Offline / Online
Heute, im Zeitalter der mobilen Daten, ist es gängige Praxis die Kartendaten einfach bei Bedarf aus dem Internet zu laden. Mit diesem Ansatz funktionieren auch MapViewer oder Leaflet gut und schnell. Für meinen Einsatzfall sprechen aber ein paar Dinge dagegen.
- Der Raspberry Pi hat kein Mobilfunk-Modem. Man müsste entweder eins hinzufügen (inclusive SIM-Karte), oder ihn per WiFi an einen Smartphone-Hotspot koppeln. In beiden Fällen könnte es aber Überraschungen bei den Datenkosten geben, weil ich mit Darstellungen in hoher Zoom-Stufe plane.
- Da (MMC-)Speicherplatz heutzutage sehr günstig ist kann man ohne weiteres riesige Kartenbereiche direkt Offline bereitstellen. Die Karten sind dadurch zwar nicht immer auf dem aktuellsten Stand, aber soo schnell ändern sich die Strassenverläufe ja nun auch wieder nicht..
Ein wenig schmerzhaft sind die fehlenden Real-Time Traffic-Informationen, also Stauinfos und sowas. Möglicherweise kann man dafür aber zu einen hybriden Ansatz gehen und diese Spezialitäten direkt online laden. Das gleiche gilt für die Routen-Berechnung.
Links
"Organic Maps" basiert auf "OpenStreetMaps" ist ein Ableger von "Maps.Me".
Organic Maps Homepage
Organic Maps GitHub
Ein speziell für Motorräder zugescnittener Online-Routenplaner ist
Kurviger.de