Das Ziel: Kastenzehner-Führerstand

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Das Ziel: Kastenzehner-Führerstand

#1 Beitrag von trainboy12 »

Ich bin's mal wieder,

damit ich jetzt nicht für jede Kleinigkeit ein neues Thema öffnen möchte, frage ich hier.
Nachdem das mit den PZB-Ausgängen halbwegs geklärt ist, habe ich eine Frage zu den Eingängen.

Ich habe mal versucht, zwei schalter gleichzeitig zu betätigen. Leider hat es nicht funktioniert. Gibt es da irgendeine Möglichkeit, mehrere gleichzeitig zu betätigen?

Gruß Jean-Maurice

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33436
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Das Ziel: Kastenzehner-Führerstand

#2 Beitrag von Carsten Hölscher »

sollte das irgendwo angehängt werden?
Carsten

Benutzeravatar
SgtMcExodus
Beiträge: 220
Registriert: 27.03.2012 17:56:48
Aktuelle Projekte: Studium
Wohnort: Berlin

Re: Das Ziel: Kastenzehner-Führerstand

#3 Beitrag von SgtMcExodus »

Mit was realisierst du denn deine Eingaben? Ausgeschlachteter Joystick? BU036? Leonardo? Oder noch etwas anderes?


Gruß Jakob

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Das Ziel: Kastenzehner-Führerstand

#4 Beitrag von Arne aus dem Norden »

Hi,

ich rate jetzt einfach mal was und womit du da gerade probierst und frage, ob das hier eine Antwort bringen könnte:
http://arduino.cc/forum/index.php?topic=119398.0

Probiert habe ich das selber noch nicht.

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#5 Beitrag von trainboy12 »

Danke für die Antworten, ich probiere es Später mal aus, was Arne mir geantwortet hat.

Für die Eingaben benutze ich den Leonardo.
Und was Carsten jetzt von mir wollte habe ich nicht verstanden :D

Gruß Jean-Maurice

Benutzeravatar
Christian Gründler
Beiträge: 2210
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Das Ziel: Kastenzehner-Führerstand

#6 Beitrag von Christian Gründler »

trainboy12 hat geschrieben:Und was Carsten jetzt von mir wollte habe ich nicht verstanden
Hallo Jean-Maurice,

ist doch ganz einfach: weiter oben hast Du geschrieben
damit ich jetzt nicht für jede Kleinigkeit ein neues Thema öffnen möchte, frage ich hier
und genau damit hast Du ein neues Thema eröffnet :hat2 .

M.f.G. Christian

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#7 Beitrag von trainboy12 »

trainboy12 hat geschrieben:[...] ich probiere es Später mal aus, was Arne mir geantwortet hat. [...]
Gruß Jean-Maurice
So, nachdem das geklappt hat, gleich die nächste Frage/Problem.
Ich habe ein Tacho, der bis 140 km/h geht, der Tach fängt bei 10 km/h an, was anscheinend ein Problem ist.
Bild
Wenn nun 140 km/h mit Zusi übereinstimmt, dann habe ich bei 85 km/h noch 90, und bei 40 km/h noch 50 km/h auf dem Tacho. Das Skript ist das Standard-Skript was beim NET Programm dabei ist.
Wer kann helfen? :gap

Gruß Jean-Maurice

Tante Edith sagt: Es musste ein Bild her :whatever
Zuletzt geändert von trainboy12 am 20.02.2013 19:14:20, insgesamt 1-mal geändert.

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Das Ziel: Kastenzehner-Führerstand

#8 Beitrag von Andreas Karg »

Wir bräuchten irgendeine Form von Interpolationsmechanismus. Sowas ist eigentlich gar nicht so schwer. Ich würde gern aushelfen, hab aber grad ziemlich wenig Zeit. Vielleicht hat ja jemand Lust, sowas schnell zusammenzubauen und in das Beispiel zu integrieren..? :-)

Benutzeravatar
SgtMcExodus
Beiträge: 220
Registriert: 27.03.2012 17:56:48
Aktuelle Projekte: Studium
Wohnort: Berlin

Re: Das Ziel: Kastenzehner-Führerstand

#9 Beitrag von SgtMcExodus »

Also ich habe ein ähnliches Problem gehabt und es wie folgt gelöst:

1.In 10er Schritten die PWM-Zahl hochgeschraubt (Einfach in einem Arduino Sketch AnalogWrite verwenden)
2.Die angezeigten km/h notiert
3.Die Werte in eine Exceltabelle getippt
4.Daraus einen Graphen kreiert
5.Mit Rechtsklick auf die Werte eine Trendlinie hinzufügen, die Checkbox "Formel im Diagramm anzeigen" aktivieren
6.Nun erhältst du eine Funktion, die am nächsten die Werte für den Tacho beschreibt
7.Diese in den Code einfügen (Ich habe sie in den .Net Code eingefügt, anhand des Bremszylinderdrucks kannst du sehen, wie das gemacht wird)

Die 10 km/h kannst du dementsprechend erreichen, indem du mit ( Data.Value - 10 ) rechnest.

Da ich gerade nicht daheim bin, kann ich dir nicht einfach meinen Code posten, solltest du aber mit meiner Anleitung Probleme haben, sag Bescheid und ich lade ihn morgen hoch.
Viel Erfolg,
Jakob

Benutzeravatar
Sebastian N.
Beiträge: 419
Registriert: 07.10.2011 06:24:53
Kontaktdaten:

Re: Das Ziel: Kastenzehner-Führerstand

#10 Beitrag von Sebastian N. »

Solange der Zusammenhang ab 10 km/h noch linear ist, hast du kein Problem, wie erwähnt einfach vom entsprechenden Data.Value 10 abziehen. Bei nicht linearem Zusammenhang müsstest du ein paar Punkte messen, mit z.B. Excel eine Kurve interpolieren und daraus dann ein Array mit den entsprechenden Werten für jede Geschwindigkeit erstellen.
Zuletzt geändert von Sebastian N. am 20.02.2013 20:21:46, insgesamt 1-mal geändert.

Benutzeravatar
SgtMcExodus
Beiträge: 220
Registriert: 27.03.2012 17:56:48
Aktuelle Projekte: Studium
Wohnort: Berlin

Re: Das Ziel: Kastenzehner-Führerstand

#11 Beitrag von SgtMcExodus »

SgtMcExodus hat geschrieben:Also ich habe ein ähnliches Problem gehabt und es wie folgt gelöst:

1.In 10er Schritten die PWM-Zahl hochgeschraubt (Einfach in einem Arduino Sketch AnalogWrite verwenden)
2.Die angezeigten km/h notiert
3.Die Werte in eine Exceltabelle getippt
4.Daraus einen Graphen kreiert
5.Mit Rechtsklick auf die Werte eine Trendlinie hinzufügen, die Checkbox "Formel im Diagramm anzeigen" aktivieren
6.Nun erhältst du eine Funktion, die am nächsten die Werte für den Tacho beschreibt
7.Diese in den Code einfügen (Ich habe sie in den .Net Code eingefügt, anhand des Bremszylinderdrucks kannst du sehen, wie das gemacht wird)
EDIT:8. Wenn die Werte sich nicht linear verhalten (von 10 auf 5 km/h Differenz) kann man natürlich auch mehrere solcher Stützpunkte einbauen.

Die 10 km/h kannst du dementsprechend erreichen, indem du mit ( Data.Value - 10 ) rechnest.

Da ich gerade nicht daheim bin, kann ich dir nicht einfach meinen Code posten, solltest du aber mit meiner Anleitung Probleme haben, sag Bescheid und ich lade ihn morgen hoch.
Viel Erfolg,
Jakob

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#12 Beitrag von trainboy12 »

Bis Punkt vier habe ich alles verstanden, aber dann nicht mehr :wand
Bild

Und mit .NET kenne ich mich leider 0 aus, und von daher weiß ich auch nicht, wo ich da was einfügen muss :(

Gruß Jean-Maurice

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#13 Beitrag von trainboy12 »

ahhhhh, das sieht doch schon besser aus, oder? Welchen Wert meintest du jetzt?

Bild

Benutzeravatar
Arne aus dem Norden
Beiträge: 721
Registriert: 25.12.2011 14:28:21
Aktuelle Projekte: Fahrpult VT628/VS928 - Versuch eines Nachbaus
Wohnort: Str.Km "6,8" der Kiel-Schönberger Eisenbahn (DB-Str. 9107)

Re: Das Ziel: Kastenzehner-Führerstand

#14 Beitrag von Arne aus dem Norden »

trainboy12 hat geschrieben:So, nachdem das geklappt hat, gleich die nächste Frage/Problem.
Ich habe ein Tacho, der bis 140 km/h geht, der Tach fängt bei 10 km/h an, was anscheinend ein Problem ist.
Wenn nun 140 km/h mit Zusi übereinstimmt, dann habe ich bei 85 km/h noch 90, und bei 40 km/h noch 50 km/h auf dem Tacho.
Interessant. Ich habe den genau gleichen Tacho und bei mir liegt der Punkt der Überschneidung schon bei 48 bis 49km/h. Bis dahin geht der Tacho vor, danach hängt er immer weiter hinterher...

Übrigens fänd ich sehr nett, wenn du nicht immer nur Fragen stellen, sondern uns auch an deinen Lösungen teilhaben lassen würdest.

Wieso läuft der Leonardo z.B. jetzt anscheinend überhaupt? Oder doch anderen Arduino gekauft?
Auch das Script mit den Tasteneingaben mal komplett vorzustellen könnte anderen ev. auf die Sprünge helfen...

Gruß, Arne
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#15 Beitrag von trainboy12 »

Dude hat geschrieben:Übrigens fänd ich sehr nett, wenn du nicht immer nur Fragen stellen, sondern uns auch an deinen Lösungen teilhaben lassen würdest.
Also, ich habe mir noch gezwungener Maßen einen Mega 2560 geholt, womit es auch auf Anhieb funktionierte.

Das Skript für die PZB-Schalter (Eingabe) muss ich morgen nochmal "vollenden". :D
Und mit dem Tacho komme ich noch nicht weiter, da ich ja noch nicht weiß, welche Zahl ich wo einfügen muss (ich hoffe, dass sich da Jakob nochmal meldet ;) )
Nachdem ich ihn geeicht habe, habe ich bei 100 Km/h gerade mal 60 Km/h auf dem Tacho :/

Gruß Jean-Maurice

Benutzeravatar
SgtMcExodus
Beiträge: 220
Registriert: 27.03.2012 17:56:48
Aktuelle Projekte: Studium
Wohnort: Berlin

Re: Das Ziel: Kastenzehner-Führerstand

#16 Beitrag von SgtMcExodus »

So, ich hab den Code mal schnell angepasst, beginnt bei Zeile 160:

Code: Alles auswählen

                    Case 2561   'Geschwindigkeit3
                            OutChar(0) = 86     'V
                            OutChar(1) = CByte(System.Math.Round((1.8753) * data.Value - 22,982, 0))
                           

                            Serial.Write(OutChar, 0, 2)
Jetzt zeigt dein Tacho allerdings erst ab ca. 20 km/h einen Wert an.
Deshalb solltest du in Excel noch eine zweite Kurve von 0-25km/h erstellen, und dessen Gerade dann wie folgt einbauen:

Code: Alles auswählen

                       
                            OutChar(0) = 86     'V
                            If data.Value < 25 Then
                                OutChar(1) = CByte(System.Math.Round( {Hier die neue Formel einfügen} * data.Value), 0))
                            Else
                                OutChar(1) = CByte(System.Math.Round((1.8753) * data.Value - 22,982, 0)
                            End If

                            Serial.Write(OutChar, 0, 2)


Auf diese Weise kannst du natürlich beliebig viele weitere Kurven einbauen, falls dir der Tacho zu ungenau läuft (bei mir sind es immer so ca. +-2km/h ohne solcher Stützpunkte).

Viel Erfolg,
Jakob
Zuletzt geändert von SgtMcExodus am 22.02.2013 13:45:36, insgesamt 1-mal geändert.

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#17 Beitrag von trainboy12 »

Danke für die Hilfe Jakob,

nur wie baue ich das jetzt in das Skript mit ein; z.B. was muss ich bei void setup eintragen, bzw bei void loop? ich habe ja schon viel dazu gelernt, aber das leider noch nicht :(

Gruß Jean-Maurice

Benutzeravatar
SgtMcExodus
Beiträge: 220
Registriert: 27.03.2012 17:56:48
Aktuelle Projekte: Studium
Wohnort: Berlin

Re: AW: Das Ziel: Kastenzehner-Führerstand

#18 Beitrag von SgtMcExodus »

Das ist sehr simpel: Das oben geschriebene kommt in den in den Code der TCPnachArduino (oder wie die heisst), und mit dem Arduino-Code machst du Folgendes:
Du öffnest den mitgelieferten Code.
Dann Scrollst du bis "if ( inputByte[0] == V){"
Und fügst ein: analogWrite(XX, inputByte[1]);

Wobei XX durch den Arduino-Pin ersetzt wird, an dem dein Tacho klemmt. Dann sollte soweit alles tun!
Viel Erfolg,
Jakob

P.S.: Unbedingt darauf achten, dass die Nummer seines Pins nicht noch irgendwo anders im ArduinoCode auftaucht, sonst kann es zu Unschönen Ergebnissen kommen!

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#19 Beitrag von trainboy12 »

Alles klar, vielen dank.

Ich kann mein Projekt arbeitsbedingt wohl erst am Wochenende weiterbauen.

Gruß Jean-Maurice

trainboy12
Beiträge: 55
Registriert: 27.06.2012 20:02:45

Re: Das Ziel: Kastenzehner-Führerstand

#20 Beitrag von trainboy12 »

Ich komme einfach nicht mit diesem Skript klar, ich bin jetzt zu Hause, und wollte das Skript ausprobieren.

Ich habe das erstmal so kopiert, wie es hier steht, und eingefügt. Dann muss(te) ich noch einiges klein schreiben - kein Problem.
1. Fehler: 'Case' was not declared in this scope
2. Fehler: 'OutChar' was not declared in this scope

muss ich oben bei Setup noch was einstellen, bzw. ganz oben? :wand
Ich weiß einfach nicht, was der von mir will - ich verstehe das aber so, das er nicht weiß, was 'Case', bzw. 'OutChar' ist (weil es ihm nicht "erklärt" wurde).

Gruß Jean-Maurice

Antworten