Modeleisenbahn Steuerungssoftware programmieren
Modeleisenbahn Steuerungssoftware programmieren
Hallo,
Ich bräuchte Hilfe bezüglich der Erstellung einer Steuerungssoftware.
Ich gehe zur Zeit in die 4te Klasse einer EDV Schule.
Ein Bekannter von mir baut und plant jetzt schon 1 Jahr an seiner Modelleisenbahn. Er hat mich neulich gefragt ob ich ihm nicht bei der Steuerung
behilflich sein könnte, da er mehr handwerklich als technisch begabt ist.
Er besitzt eine Multimaus von Roco.
Ich hätte aber gerne selber ein Programm geschrieben womit er die komplette Anlage über den Pc steuern kann.
Meine Frage wäre jetzt:
Wie Programmiere ich ein Programm in Java das können soll:
*Weichen und Signalsteuerung
*Zugsteurung + Zuglicht, etc.
*Steurung automatisch + manuell
Welche Hardware brauche ich dafür ?
Danke schon mal im voraus.
Ich bräuchte Hilfe bezüglich der Erstellung einer Steuerungssoftware.
Ich gehe zur Zeit in die 4te Klasse einer EDV Schule.
Ein Bekannter von mir baut und plant jetzt schon 1 Jahr an seiner Modelleisenbahn. Er hat mich neulich gefragt ob ich ihm nicht bei der Steuerung
behilflich sein könnte, da er mehr handwerklich als technisch begabt ist.
Er besitzt eine Multimaus von Roco.
Ich hätte aber gerne selber ein Programm geschrieben womit er die komplette Anlage über den Pc steuern kann.
Meine Frage wäre jetzt:
Wie Programmiere ich ein Programm in Java das können soll:
*Weichen und Signalsteuerung
*Zugsteurung + Zuglicht, etc.
*Steurung automatisch + manuell
Welche Hardware brauche ich dafür ?
Danke schon mal im voraus.
- Flashbanger
- Forumane
- Beiträge: 366
- Registriert: Samstag 29. Juli 2006, 22:57
- Kontaktdaten:
Erstmal eine kleine Anmerkung. Das wird sehr viel Zeit und Mühe dauern.
Hardwareseitig benötigst du ein Interface, welches zwischen Modellbahn und Computer kommuniziert. Je nach Schnittstelle brauchst du vllt noch einen Adapter, je nachdem was dein PC von sich aus schon hat.
Steuerungsprogramme sind meißt Multithread-Programme. Ein Thread übernimmt die Zeitkritische Kommunikation zwischen PC und Modellbahn, ein anderer die Eingaben durch den Benutzer. Ein 3. die Automatikaufgaben. Ein solches Programm erfordert Erfahrung in folgenden Bereichen der Informatik:
-GUI
-Schnittstellen
-Threads
-Datenbanken(nicht zwingend notwendig, aber nützlich)
-Datenspeicherung in Dateien.
-1x1 in der jeweiligen Sprache
-mathematischer Hintergrund im Automatikbetrieb(Fahrpläne)
-OOP (In Java ja eigendlich selbstverständlich)
-v. a. m.
Hardwareseitig benötigst du ein Interface, welches zwischen Modellbahn und Computer kommuniziert. Je nach Schnittstelle brauchst du vllt noch einen Adapter, je nachdem was dein PC von sich aus schon hat.
Steuerungsprogramme sind meißt Multithread-Programme. Ein Thread übernimmt die Zeitkritische Kommunikation zwischen PC und Modellbahn, ein anderer die Eingaben durch den Benutzer. Ein 3. die Automatikaufgaben. Ein solches Programm erfordert Erfahrung in folgenden Bereichen der Informatik:
-GUI
-Schnittstellen
-Threads
-Datenbanken(nicht zwingend notwendig, aber nützlich)
-Datenspeicherung in Dateien.
-1x1 in der jeweiligen Sprache
-mathematischer Hintergrund im Automatikbetrieb(Fahrpläne)
-OOP (In Java ja eigendlich selbstverständlich)
-v. a. m.
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta
Danke für die AW.
Es ist mir klar das es viel Zeit und Mühe braucht.
Aber es eilt auch nicht.
Laut ihm wird es noch an die 4 Jahre dauern bis die Bahn "fertig" ist.
Er macht das wirklich professionel.
Alles auf 200qm. Detailiert wie im Wunderland.
Also wenn ich das bis Sommer 2010 fertig bringe wär ich zufrieden.
Bis auf Threads und Datenspeicherung in Datein (Wird Heuer in der Schule gelernt ^^) hab ich das Wissen um das Projekt umzusetzten.
Welches Interface würdest du Empfehlen ?
Es ist mir klar das es viel Zeit und Mühe braucht.
Aber es eilt auch nicht.
Laut ihm wird es noch an die 4 Jahre dauern bis die Bahn "fertig" ist.
Er macht das wirklich professionel.
Alles auf 200qm. Detailiert wie im Wunderland.
Also wenn ich das bis Sommer 2010 fertig bringe wär ich zufrieden.
Bis auf Threads und Datenspeicherung in Datein (Wird Heuer in der Schule gelernt ^^) hab ich das Wissen um das Projekt umzusetzten.
Welches Interface würdest du Empfehlen ?
Moin,
der Anmerkung bezüglich Zeit und Mühe kann ich mich anschließen. Bin selbst gerade dabei, sowas zu machen: weit über 1000 Zeilen, bis jetzt steht gerade einmal ein kleiner Teil des Grundgerüsts, es ist noch keine Funktionalität vorhanden und zur Zeit wird der Code schon komplett überarbeitet
(Ich weiß, schlechte Planung...)
Die Liste möchte ich noch um einen Punkt erweitern:
- sehr saubere Namensgebung und Kommentierung ist essentiell!!
Ansonsten denke ich mal das Java alle Funktionalitäten bietet, die du brauchst!
Das Protokoll für die Kommunikation für das Interface musst du wahrscheinlich komplette selbst implementieren.
Gruß
Hannes
der Anmerkung bezüglich Zeit und Mühe kann ich mich anschließen. Bin selbst gerade dabei, sowas zu machen: weit über 1000 Zeilen, bis jetzt steht gerade einmal ein kleiner Teil des Grundgerüsts, es ist noch keine Funktionalität vorhanden und zur Zeit wird der Code schon komplett überarbeitet
(Ich weiß, schlechte Planung...)
Die Liste möchte ich noch um einen Punkt erweitern:
- sehr saubere Namensgebung und Kommentierung ist essentiell!!
Ansonsten denke ich mal das Java alle Funktionalitäten bietet, die du brauchst!
Das Protokoll für die Kommunikation für das Interface musst du wahrscheinlich komplette selbst implementieren.
Gruß
Hannes
Hallo
Spar dir die Zeit und nutze diese sinnvoller. Vielleicht mithelfen beim bauen der MoBa und Erfahrungen selber sammeln.
Kauf dir für 300 eine fertige Software die sogar u. U. viiiel mehr kann als du und dein Bekannter überhaupt denken einfallen lassen kannst.
Das wäre auch besser. PC-Softwaren arbeiten alle unterschiedlich. Die benötigen einige Melder, damit man weiß wann, wo ist eine oder welche Lok. Dann kannst du gleich beim bauen die Meldestellen richtig einplanen und mit bauen. Nachträglich wird ggf. sehr schwer im verdeckten Bereich.
Spar dir die Zeit und nutze diese sinnvoller. Vielleicht mithelfen beim bauen der MoBa und Erfahrungen selber sammeln.
Kauf dir für 300 eine fertige Software die sogar u. U. viiiel mehr kann als du und dein Bekannter überhaupt denken einfallen lassen kannst.
Das wäre auch besser. PC-Softwaren arbeiten alle unterschiedlich. Die benötigen einige Melder, damit man weiß wann, wo ist eine oder welche Lok. Dann kannst du gleich beim bauen die Meldestellen richtig einplanen und mit bauen. Nachträglich wird ggf. sehr schwer im verdeckten Bereich.
- Flashbanger
- Forumane
- Beiträge: 366
- Registriert: Samstag 29. Juli 2006, 22:57
- Kontaktdaten:
Was auch noch recht nützlich sein kann, aber nicht unbedingt nötig ist, wäre ein paar Kenntnisse in künstlicher Interlligenz(KI). Um einen Zug automatisch von "A nach B über C" zu führen wären Algorithmen wie A* ganz hilfreich.
Leider hab ich mit Roco wenig zu tun(Märklin-Fraktion). Du solltest dich vllt auch mal umschauen nach bereits veröffentlichen Steuerungsprogrammen in Java. Ich meine da gibts n paar, manche unterliegen auch einer offenen Lizenz, von dort könntest du dir ein bisschen Code holen.
Generell ist Java für solche aufgaben die richtige sprache, da sie Platformunabhännig ist, und die Performance-unterschiede z. B. im vergleich zu C++ bei einer Modellbahnsteuerung kaum messbar ist. Du solltest auch eine gescheite IDE verwenden. Ich empfehle immer gerne NetBeans, weil es alles bietet was man braucht. Aber auch Eclipse ist sehr sehr gut.
Leider hab ich mit Roco wenig zu tun(Märklin-Fraktion). Du solltest dich vllt auch mal umschauen nach bereits veröffentlichen Steuerungsprogrammen in Java. Ich meine da gibts n paar, manche unterliegen auch einer offenen Lizenz, von dort könntest du dir ein bisschen Code holen.
Generell ist Java für solche aufgaben die richtige sprache, da sie Platformunabhännig ist, und die Performance-unterschiede z. B. im vergleich zu C++ bei einer Modellbahnsteuerung kaum messbar ist. Du solltest auch eine gescheite IDE verwenden. Ich empfehle immer gerne NetBeans, weil es alles bietet was man braucht. Aber auch Eclipse ist sehr sehr gut.
MfG Flashbanger
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta
______________________
CU+6050 + C-Gleis
Software: TC4.7 oder
MBSS v 0.1 beta
Hallo,
Mir ist nur RocRail als lizenzfrei bekannt.
Gruß
Christian
Hast du Beispiele für nicht lizensierte Programme?Flashbanger hat geschrieben: Leider hab ich mit Roco wenig zu tun(Märklin-Fraktion). Du solltest dich vllt auch mal umschauen nach bereits veröffentlichen Steuerungsprogrammen in Java. Ich meine da gibts n paar, manche unterliegen auch einer offenen Lizenz, von dort könntest du dir ein bisschen Code holen.
Mir ist nur RocRail als lizenzfrei bekannt.
Gruß
Christian
Hallo Me1555,
also wie schon erwähnt brauchst du ein Interface zur Zentrale, damit der PC mit der Kommunizieren kann. Dafür eignet sich als Selbstbaulösung das GenLi oder Alternative gibt es auch ein fertig zu kaufendes von Lenz. Daneben brauchst du noch Rückmelder und auch für diese einen Anschluss an den PC. Dort gibt es mehrere Systeme, z.B. gibt es das GenLi auch mit Anschlüssen für S88 Rückmeldekontakte. Diese sind wichtig, damit der PC weiß, wo sich die Fahrzeuge auf der Anlage befinden. Das Einplanen und Einbauen der Rückmelder sollte auf jeden Fall schon vor / während der Gleisverlegung geschehen.
Was die Softwareseite angeht, so würde ich mir überlegen ob du wirklich alles von Grund auf selber Programmieren willst. Man muss das Rad ja nicht zwingend neu erfinden. RocRail als OpenSource Software wurde schon erwähnt. Wenn du was in Java machen willst, könnte JMRI für dich interessant sein. Als dritte Alternative würde ich dir auch noch einen Blick auf SRCP empfehlen.
Ich hoffe ich konnte dir etwas weiterhelfen,
Gruß
Michael
also wie schon erwähnt brauchst du ein Interface zur Zentrale, damit der PC mit der Kommunizieren kann. Dafür eignet sich als Selbstbaulösung das GenLi oder Alternative gibt es auch ein fertig zu kaufendes von Lenz. Daneben brauchst du noch Rückmelder und auch für diese einen Anschluss an den PC. Dort gibt es mehrere Systeme, z.B. gibt es das GenLi auch mit Anschlüssen für S88 Rückmeldekontakte. Diese sind wichtig, damit der PC weiß, wo sich die Fahrzeuge auf der Anlage befinden. Das Einplanen und Einbauen der Rückmelder sollte auf jeden Fall schon vor / während der Gleisverlegung geschehen.
Was die Softwareseite angeht, so würde ich mir überlegen ob du wirklich alles von Grund auf selber Programmieren willst. Man muss das Rad ja nicht zwingend neu erfinden. RocRail als OpenSource Software wurde schon erwähnt. Wenn du was in Java machen willst, könnte JMRI für dich interessant sein. Als dritte Alternative würde ich dir auch noch einen Blick auf SRCP empfehlen.
Ich hoffe ich konnte dir etwas weiterhelfen,
Gruß
Michael
Hallo !
Habe meine Anlage mit Visual Basic programmiert. Wenn man mit sowas anfängt sollte man sich erst mal mit einen Iconeditor Gleiselemente Signale erstellen,
weil man vieles davon doppelt verwenden kann.Fahrstrassen und Zufall ist alles kein größeres Problem.
Roco Multimaus ist sehr hilfreich,da das Ganze Lenz Xpressnet 3.0 ist ,Protokoll findest du auf der Homepage von Lenz .
Ciao Rob
Habe meine Anlage mit Visual Basic programmiert. Wenn man mit sowas anfängt sollte man sich erst mal mit einen Iconeditor Gleiselemente Signale erstellen,
weil man vieles davon doppelt verwenden kann.Fahrstrassen und Zufall ist alles kein größeres Problem.
Roco Multimaus ist sehr hilfreich,da das Ganze Lenz Xpressnet 3.0 ist ,Protokoll findest du auf der Homepage von Lenz .
Ciao Rob
Also von einer eigenen Software würde ich auf jeden Fall die Finger lassen.
Ich selber habe bereits 3 Softwaresteuerungsprogramme für die Modelleisenbahn in den letzten 15 Jahren geschrieben und dabei weit über 300 000 Zeielen programmiert. Obwohl alle 3 Softwareprogramme einwandfrei funktionieren (2 für analog und eine für digital) haben wir uns jetzt doch dazu entschieden eine fertige Software zu verwenden!
Dafür haben wir jedoch die gesamte Hardware selber entwickelt:
Die Hardware besteht aus folgenden Komponenten:
Signamldul
Wird direkt bei den Signalen montiert, Module mit NW-Kabeln untereinander
vebunden, Max 256 Module/Zentrale, Bis zu 16 2-begriffige oder 8 4-
begriffige oder 4-mehrbegriffige Signale.
Überblendungseffekte, Helligkeitssteuerung, etc. etc.
Weichenmodul
Wird direkt bei den Weichen montiert, Module mit NW-Kabeln untereinander
verbunden, Max 256 Module/Zentrale, 8 Weichen pro Ausgang, auch motorische
Weichen anschließbar.
Kurzschlussichere und Rückmeldefähige Ausgänge,
Sehr schneller Bus (250KBit/Sek)
Rückenplatine für max. 16 Platinen pro Einschub, maximal 16 Einschübe/Zentrale,
maximal 16 Zentralen pro System (ergbit max. 8192 Blöcke)
Zentrale (19" Einschubplatine)
Steuerung von DCC-Signal, Blockplatinen, RailCom, Rückmeldebus, USB-Hub und
USB-Anschluss.
Blockplatine (19" Einschubplatine für je 2 Blöcke) mit folgenden Eigenschaften:
Einstellbare Spannung,
Einstellbare Strombegrenzung,
Vollautomatisches elektronisches Kehrschleifenmodul für jeden Block,
Besetztmeldung und RailCom erkennung inkl. Richtung der Lok,
Superschneller Rückmeldebus mit 1MBit/Sek
Keine mechanischen Teile (relais, etc).
Sicherstellung der Synchronen Datenübertragung,
und viel vile mehr...
Die Hardware ist fertig und wird kommendes Jahr im 1. SMEC eingebaut.
l.g Andi
Ich selber habe bereits 3 Softwaresteuerungsprogramme für die Modelleisenbahn in den letzten 15 Jahren geschrieben und dabei weit über 300 000 Zeielen programmiert. Obwohl alle 3 Softwareprogramme einwandfrei funktionieren (2 für analog und eine für digital) haben wir uns jetzt doch dazu entschieden eine fertige Software zu verwenden!
Dafür haben wir jedoch die gesamte Hardware selber entwickelt:
Die Hardware besteht aus folgenden Komponenten:
Signamldul
Wird direkt bei den Signalen montiert, Module mit NW-Kabeln untereinander
vebunden, Max 256 Module/Zentrale, Bis zu 16 2-begriffige oder 8 4-
begriffige oder 4-mehrbegriffige Signale.
Überblendungseffekte, Helligkeitssteuerung, etc. etc.
Weichenmodul
Wird direkt bei den Weichen montiert, Module mit NW-Kabeln untereinander
verbunden, Max 256 Module/Zentrale, 8 Weichen pro Ausgang, auch motorische
Weichen anschließbar.
Kurzschlussichere und Rückmeldefähige Ausgänge,
Sehr schneller Bus (250KBit/Sek)
Rückenplatine für max. 16 Platinen pro Einschub, maximal 16 Einschübe/Zentrale,
maximal 16 Zentralen pro System (ergbit max. 8192 Blöcke)
Zentrale (19" Einschubplatine)
Steuerung von DCC-Signal, Blockplatinen, RailCom, Rückmeldebus, USB-Hub und
USB-Anschluss.
Blockplatine (19" Einschubplatine für je 2 Blöcke) mit folgenden Eigenschaften:
Einstellbare Spannung,
Einstellbare Strombegrenzung,
Vollautomatisches elektronisches Kehrschleifenmodul für jeden Block,
Besetztmeldung und RailCom erkennung inkl. Richtung der Lok,
Superschneller Rückmeldebus mit 1MBit/Sek
Keine mechanischen Teile (relais, etc).
Sicherstellung der Synchronen Datenübertragung,
und viel vile mehr...
Die Hardware ist fertig und wird kommendes Jahr im 1. SMEC eingebaut.
l.g Andi