Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
intern:mopi [2012/09/08 16:50] – Stromversorgung ergänzt svesch | intern:mopi [2025/06/11 20:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
Für einen Kunden soll eine Modellbahnzentrale entwickelt werden. Neben der üblichen Zentralenfunktionen soll als Alleinstellungsmerkmal der PC für das (automatisierte) Steuern sowie dem Gleisstellpult integriert werden. | Für einen Kunden soll eine Modellbahnzentrale entwickelt werden. Neben der üblichen Zentralenfunktionen soll als Alleinstellungsmerkmal der PC für das (automatisierte) Steuern sowie dem Gleisstellpult integriert werden. | ||
- | ====== Der Rechner | + | ====== Hardware ====== |
+ | |||
+ | |||
+ | ===== Der Rechner ===== | ||
Raspberry Pi ist ein lowcost Rechner (Preis bei Farnell derzeit 29,03 EUR) mit einen leistungsfähigen ARM-Controller (ARM11 v6 Instruction set 800MHz, 256MB RAM-Speicher, | Raspberry Pi ist ein lowcost Rechner (Preis bei Farnell derzeit 29,03 EUR) mit einen leistungsfähigen ARM-Controller (ARM11 v6 Instruction set 800MHz, 256MB RAM-Speicher, | ||
Line 13: | Line 16: | ||
- | ===== Das Betriebssystem | + | ==== Das Betriebssystem ==== |
Auf dem Pi sind gängige Linux-Derivate (leider nicht Ubuntu) lauffähig. Wir haben mit Debian (Raspbian) die ersten Gehversuche gemacht. Enthalten ist auch ein X-Server mit dem die Visualisierung (Gleisstellpult und Loksteuerdialoge) gemacht werden kann. Fast alle gängigen Standardprogramme sind verfügbar (aufpassen wegen Lizenzierungen: | Auf dem Pi sind gängige Linux-Derivate (leider nicht Ubuntu) lauffähig. Wir haben mit Debian (Raspbian) die ersten Gehversuche gemacht. Enthalten ist auch ein X-Server mit dem die Visualisierung (Gleisstellpult und Loksteuerdialoge) gemacht werden kann. Fast alle gängigen Standardprogramme sind verfügbar (aufpassen wegen Lizenzierungen: | ||
Line 19: | Line 22: | ||
- | ===== Modelleisenbahn-Software | + | ==== Modelleisenbahn-Software ==== |
Als GPL-lizensiertes OpenSource-Projekt ist Rocrail zu nennen. Es vereint unter dem Projekt ein Kommandozeilen-Tool, | Als GPL-lizensiertes OpenSource-Projekt ist Rocrail zu nennen. Es vereint unter dem Projekt ein Kommandozeilen-Tool, | ||
Line 30: | Line 33: | ||
- | ===== MoPi-Treiber | + | ==== MoPi-Treiber ==== |
Ich habe jetzt einen Treiber in Python geschrieben, | Ich habe jetzt einen Treiber in Python geschrieben, | ||
Line 37: | Line 40: | ||
- | ====== GPIO-Schnittstelle | + | ===== GPIO-Schnittstelle ===== |
Die GPIO-Schnitstelle beinhaltet eine UART-Schnittstelle. Diese kann bis 115200 Baud (mit gepachten Kernel auch mehr). Leider kann sie kein Hardware-Handshake. Weiterhin sind die Versorgungsspannungen 5V und 3,3V auf die GPIO-Leiste geführt. | Die GPIO-Schnitstelle beinhaltet eine UART-Schnittstelle. Diese kann bis 115200 Baud (mit gepachten Kernel auch mehr). Leider kann sie kein Hardware-Handshake. Weiterhin sind die Versorgungsspannungen 5V und 3,3V auf die GPIO-Leiste geführt. | ||
- | ===== Der MoPi-Controller | + | ==== Der MoPi-Controller ==== |
Der MoPi-Controller erzeut das DCC-Gleissignal und liest S88-Rückmelder ein. Außerdem wird das Active-Signal für einen Booster erzeugt (üblich bei Märklin-Boostern) und das Kurzschluss-Signal der Booster eingelesen. Für das Programmieren der Loks wird noch das ACK-Signal benötigt, welches ebenfalls vom MoPi-Controller eingelesen wird. | Der MoPi-Controller erzeut das DCC-Gleissignal und liest S88-Rückmelder ein. Außerdem wird das Active-Signal für einen Booster erzeugt (üblich bei Märklin-Boostern) und das Kurzschluss-Signal der Booster eingelesen. Für das Programmieren der Loks wird noch das ACK-Signal benötigt, welches ebenfalls vom MoPi-Controller eingelesen wird. | ||
Line 51: | Line 54: | ||
- | ====== Stromversorgung | + | ===== Stromversorgung ===== |
Der Pi wird über ein handelsübliches USB-Steckernetzteil mit 5V versorgt. Diese Netzteile sind extrem günstig im Einkauf. Der Pi selber sollte mit 5 W geplant werden. Darüber hinaus müssen die folgenden Komponenten versorgt werden: | Der Pi wird über ein handelsübliches USB-Steckernetzteil mit 5V versorgt. Diese Netzteile sind extrem günstig im Einkauf. Der Pi selber sollte mit 5 W geplant werden. Darüber hinaus müssen die folgenden Komponenten versorgt werden: | ||
Line 60: | Line 63: | ||
- | ===== Variante 1 ===== | + | ==== Variante 1 ==== |
Separates Netzteil mit der entsprechenden Boosterspannung 14V für kleine Spuren, 18V für große Spuren. | Separates Netzteil mit der entsprechenden Boosterspannung 14V für kleine Spuren, 18V für große Spuren. | ||
- | ===== Variante 2 ===== | + | ==== Variante 2 ==== |
Step-Up Converter, der aus der Pi-Spannung (5V) die entsprechende Boosterspannung (14-18V) macht. Nach Möglichkeit galvanisch getrennt! Die 5V für S88 und MoPi-Controller müssten extra erzeugt werden (ebenfalls galvanisch getrennt). | Step-Up Converter, der aus der Pi-Spannung (5V) die entsprechende Boosterspannung (14-18V) macht. Nach Möglichkeit galvanisch getrennt! Die 5V für S88 und MoPi-Controller müssten extra erzeugt werden (ebenfalls galvanisch getrennt). | ||
+ | |||
+ | |||
+ | ===== Sonstiges ===== | ||
+ | |||
+ | Eine Aktiv-LED sowie Taster für Start/Stop. | ||
+ | |||
+ | |||
+ | ===== Schnittstellen der Zentrale ===== | ||
+ | |||
+ | Neben den Pi-Schnittstellen kommen noch die folgenden hinzu: | ||
+ | * Bis zu 3 x S88 in Form von RJ45-Buchsen oder 6 poligen Stiftleisten. | ||
+ | * Ein DCC-Booster Ausgang (dreipolig), | ||
+ | * Ein Märklin-Booster Ausgang (5-polig), Stiftleiste (semi-genormt) | ||
+ | * Möglicherweise der Eingang für ein Steckernetzteil oder Spielzeug-Trafo | ||
+ | |||
+ | |||
+ | ====== Software ====== | ||
+ | |||
+ | ===== Controller-Firmware ===== | ||
+ | |||
+ | Nach einigen Versuchen mit der Ur-Version des MoPi (interne Version 1.0, Controller PIC16F688), muss die Software grundlegend überarbeitet werden. Grundsätzlich funktioniert zwar das Ansteuern einer Lok, der derzeitige Ansatz verlangt dem Pi jedoch bereits über 50% Prozessorauslastung ab und das noch ohne X-Server. | ||
+ | |||
+ | Die serielle Schnittstelle wird derzeit im Streaming-Mode betrieben, der PIC hat nur einen sehr kleinen Ringpuffer. Aus dem Ringpuffer heraus werden die Daten generiert. Das erfordert ein ständiges Nachschieben von Daten auf PC-Seite. Das ist der Grund für die hohe Auslastung des Prozessors. Außerdem besteht immer auch die Gefahr, dass der Puffer z.B. bei erhöhter Prozessorlast leerläuft und die Loks dadurch stottern oder stehenbleiben. | ||
+ | |||
+ | Ein neuer Ansatz ist, mehr Zustand im MoPi zu halten, und die Steuersignale aus diesem Zustand zu generieren. | ||
+ | |||
+ | |||
+ | ===== RaspberryPi ===== | ||
+ | |||
+ | Alle Versuche mit dem Pi wurden bisher mit Raspbian gemacht (zuletzt mit der Version 2013-02-09). | ||
+ | |||
+ | Folgende Dinge wurden noch nachträglich manuell gemacht (als User " | ||
+ | |||
+ | * Deutsches Tastaturlayout (von //gb// auf //de// umstellen): < | ||
+ | * Bazaar installiert (Für MoPi und Rocrail): < | ||
+ | * Samba installiert (optional, wird später nicht benötigt): < | ||
+ | * Share angelegt (Zeigt auf work): < | ||
+ | sudo mount.cifs // | ||
+ | * Checke MoPi aus (später von launchpad): < | ||
+ | * Checke rocrail aus: < | ||
+ | * Befreie serielle Schnittstelle (alles löschen was irgendwie mit / | ||
+ | * Auskommentieren des getty für serielle Schnittstelle (# | ||
+ | * Deaktivieren des Logins: | ||
+ | * < | ||
+ | * Scroll down to < | ||
+ | * Comment out: < | ||
+ | * Under that line add: < | ||
+ | * Abspeichern | ||
+ | * Auto StartX | ||
+ | * < | ||
+ | * Eingeben: < | ||
+ | * Abspeichern | ||
+ | * Script für Steuern der Stromversorgung installieren (siehe firmware folder in MoPi) | ||
+ | |||