Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#21 Beitrag von Arne aus dem Norden »

Marvin hat geschrieben:Okay, jetzt funktioniert es komischerweise :whatever
Beruhigend ;)
Marvin hat geschrieben:Ist es mit deinem Script auch möglich, die die Abfahranzeige auszugeben?
Ich will nacher möglichst ohne Hilfefenster fahren, und ich brauche 2 kleine LED's, die mir anzeigen, wann ich die Türen schließen und wann ich losfahren darf.
Nein, leider. Genau das ist der berühmte weiße Fleck auf der Karte. Die Ausgabe der Abfahranzeige ist vom Datentyp enum und nicht single wenn ich das richtig in Erinnerung hab. Da wirst du derzeit nur glatte 0,00 rausbekommen.
Würde ich aber auch gerne noch als Ausgabe haben...

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

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#22 Beitrag von Arne aus dem Norden »

Hi Lukas,

schön das du jetzt auch hier dabei bist...
lukmilei hat geschrieben:Das wird interessant. Ich kämpfe gerade damit, die Geschwindigkeit über diese Anzeige auszugeben. Im Serial Monitor bekomme ich die aktuelle Geschwindigkeit schonmal angezeigt, nur die siebensegment Anzeige will noch nicht leuchten :(
Ich fürchte, da werden dich Fallbeispiele zur I2C oder Analogausgabe auch nicht recht weiterbringen...

Ohne Kenntnis deines Wissenstandes würde ich dir zuerst raten, im Internet nach passenden, fertigen Bibliotheken für die Ausgabe auf solche 7-Segmentanzeigen am Arduino zu suchen. Für z.B. mehrzeilige LCD Displays (z.B. 2x16 Zeichen) gibt es da was, mit denen man die Dinger mit zwei oder drei Zeilen im Sketch dann ansprechen kann wie hier:
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(meineGeschwindigkeit);

Ev. gibts ähnliche Bibliotheken für die 7-Segment.

Ansonsten gibt es z.B. hier Beispiele für solche Display wie deins:
http://www.instructables.com/id/4-Digit ... y-Arduino/
oder
http://dlnmh9ip6v2uc.cloudfront.net/dat ... xample.pde
lukmilei hat geschrieben:PS: Wo liegt der Unterschied zwischen der V2.0 und der V2.1?
Bei V2.1 ist aufgeteilt in zwei Dateien, einmal der Sketch zur Datenabfrage und einmal eine Configuration.h, in der erstmal nur alle Eingaben zur reinen
TCP-Verbindung gemacht werden können. Ich fand das übersichtlicher für den ersten Einstieg.

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

Benutzeravatar
Oliver Lamm
Beiträge: 3102
Registriert: 04.01.2002 15:02:17
Aktuelle Projekte: Aachen - Neuss für Zusi3
Wohnort: Essen
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#23 Beitrag von Oliver Lamm »

Hi,

für solch eine Anzeige sollte man einen SAA1064 nutzen. Der kann i2c und mit 2 Transistoren hat man einen ordentlichen Baustein, gibt es auch als DIL zul löten/stecken.

Oli
Oliver Lamm
mail(AT)oliverlamm(DOT)de

lukmilei
Beiträge: 253
Registriert: 29.03.2010 21:00:15
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#24 Beitrag von lukmilei »

Hi,

ich habe mal angefangen mit einem Display zu experimentieren. Ich bekomme aber den Code nicht auf den Arduino, da er die LiquidCrystal_I2C.h nicht inkludieren kann. Ich habe mir eine LiquidCrystal aus dem Internet geladen, anscheinend unterstützt die aber kein I2C. Die besagt LiquidCrystal_I2C.h habe ich aber nirgends gefunden. Kann mir jemand helfen?

Viele Grüße
Lukas

UPDATE:
Ich habe die Libary gefunden. Das Display gibt jetzt schon mal Hallo World aus. Morgen binde ich das Ganze dann in das Script des Würfels ein (ich versuche es zumindest :D ).
Zuletzt geändert von lukmilei am 22.01.2014 22:25:15, insgesamt 1-mal geändert.

lukmilei
Beiträge: 253
Registriert: 29.03.2010 21:00:15
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#25 Beitrag von lukmilei »

Hallo,

das LCD Display ist jetzt eingebunden. Ich habe unter anderem unter den Blog mit den if-Anweisungen diese beiden Zeilen gesetzt:

Code: Alles auswählen

lcd.clear ();
lcd.print(0x01);
Auf dem Display steht jetzt "1". Mit welchem Befehl kann ich jetzt die float Zahl anzeigen lassen, die hinter der Variable 1 steckt?

grübelnde Grüße
Lukas

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#26 Beitrag von Arne aus dem Norden »

lukmilei hat geschrieben:Hallo,
Auf dem Display steht jetzt "1". Mit welchem Befehl kann ich jetzt die float Zahl anzeigen lassen, die hinter der Variable 1 steckt?
Hi,

probier mal statt:
lcd.print(0x01);
genau so:
lcd.print(wert);

Also komplett

if(d == 0x01) { lcd.print(wert); }

Gruß, Arne
Zuletzt geändert von Arne aus dem Norden am 23.01.2014 15:34:07, insgesamt 1-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

lukmilei
Beiträge: 253
Registriert: 29.03.2010 21:00:15
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#27 Beitrag von lukmilei »

Hi Arne,

ich glaube nicht, dass das funktioniert. Er weis ja nicht, welchen Wert er nehmen soll.

Gruß
Lukas

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#28 Beitrag von Arne aus dem Norden »

lukmilei hat geschrieben:Hi Arne,

ich glaube nicht, dass das funktioniert. Er weis ja nicht, welchen Wert er nehmen soll.

Gruß
Lukas
Ich hatte zu früh abgeschickt, da fehlte der letzte Satz...

if(d == 0x01)
{
lcd.clear();
lcd.print(wert);
}


Gehts?
Zuletzt geändert von Arne aus dem Norden am 23.01.2014 15:41:12, insgesamt 2-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

lukmilei
Beiträge: 253
Registriert: 29.03.2010 21:00:15
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#29 Beitrag von lukmilei »

Dude hat geschrieben:if(d == 0x01)
{
lcd.clear();
lcd.print(wert);
}

Mir lag es die ganze Zeit auf der Zunge, aber ich bin einfach nicht darauf gekommen, noch ein if zu setzt. :rolleyes:
Jetzt klappt alles perfekt. Vielen Dank.

Ich bin dann mal auf der Lok :schaffner

Benutzeravatar
Total
Beiträge: 464
Registriert: 16.07.2008 17:27:43
Aktuelle Projekte: Zusi 3 verstehen lernen
Wohnort: Jülich

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#30 Beitrag von Total »

So, Ardunio ist das, Platine hab ich gelötet und die Pzb läuft jetzt nach einigem Kopfzerbrechen auch. Der 1000Hz LM wollte einfach nicht, irgendwann bin ich dann auch auf das naheliegenste gekommen und habe festgestellt das die LED kaputt war. :§$%
Links zur Vorstellung meiner Fahrpulte:

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#31 Beitrag von Arne aus dem Norden »

Schön das es erste Rückmeldung über den Einsatz des Projektes gibt.
Ich werde in den nächsten Tagen mit Hilfe einiger kompetenter Ratschläge und Hilfestellungen hier aus dem Kreise weiter an der Sache werkeln, z.B. der Türausgabe.

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

Benutzeravatar
jrbecker
Beiträge: 287
Registriert: 27.08.2007 12:39:57
Wohnort: Gießen-Wieseck

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#32 Beitrag von jrbecker »

Dude hat geschrieben: ..., z.B. der Türausgabe.

Gruß, Arne
Ich hätt' gern 'ne Currywurst mit Pommes rot-weiß.

Nein - Spaß beiseite! - Ich gebe zu, ich bin in diesen technischen Sachen absolut unbedarft und daher finde ich es immer wieder erstaunlich, was sich da alles umsetzen lässt. Vor allen Dingen: dass es immer wieder neue Ansätze gibt und diese - werden sie hier in der Forengemeinschaft vorgestellt - dann auch sich durch die Diskussion weiterentwickeln. Sehr interessant, dies zu verfolgen!
Zuletzt geändert von jrbecker am 24.01.2014 14:01:17, insgesamt 1-mal geändert.

Marvin
Beiträge: 43
Registriert: 30.03.2013 22:50:02
Aktuelle Projekte: Br 422-426 Fahrpult [Planung]
Wohnort: Stuttgart

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#33 Beitrag von Marvin »

Da freue ich mich drauf, Türausgabe wird für mein Projekt auch nicht unwichtig sein :)

Benutzeravatar
Total
Beiträge: 464
Registriert: 16.07.2008 17:27:43
Aktuelle Projekte: Zusi 3 verstehen lernen
Wohnort: Jülich

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#34 Beitrag von Total »

So, also nochmal vorab: Ich habe 0 Plan vom programmieren und mache hier grade meine allerersten Schritte, jetzt brauche ich aber mal eine Erklärung:

Folgendes:

Ich habe es nach deinem Beitrag über den SIFA LM nun auch innerhalb kürzester Zeit geschafft mir den LM Hauptschalter zu programmieren. Das ganze weist eine gewisse Logik für mich auf, allerdings habe ich einige Dinge noch nicht verstanden.

Die Änderungen im einzelnen:

byte needed[14];
muß nun um die eine Abfrage erhöht werden auf
byte needed[15];


Bis hierhin Logisch

Die Paketlänge
needed[0] = 0x0A; // PACKET_LENGTH (4 bytes)
erhöht sich nun ebenfalls für die eine Abfrage auf
needed[0] = 0x0B; // PACKET_LENGTH (4 bytes)
(Paketlänge ist der Wert von needed (also jetzt 15) minus die ersten vier Bytes. Ergibt 11)


So wie ich es verstehe gebe ich den Wert der Abfrage als Dezimal in den Umrechner ein, in deinem Fall kam B raus, in meinem Fall C.


Der Befehl für die SiFa muß nun in die Liste:
needed[14] = 0x24; // LM "Sifa"


So, jetzt das wo ich nicht mehr folgen kann: Wo nimmst du die 24 her? Ich habe es erst mit 28 probiert, in meinem Fall musste ich aber 25 nehmen. Wie errechnet sich das?


und beim
client.write(needed, 14);
der Wert ebenso um eins erhöht werden auf
client.write(needed, 15);


Soweit wieder logisch.

Im 3. Teil musste ich den Wert umdrehen um zum richtigen ergebnis zu kommen (von == zu !=).
Links zur Vorstellung meiner Fahrpulte:

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#35 Beitrag von Arne aus dem Norden »

EDIT: Diese Schwierigkeiten sollten wegen einfacherer Konfiguration ab Version 22 vermutlich nicht mehr auftreten, deswegen habe ich meine Antwort wegen fehlendem Bezug zum aktuellen Sketch entfernt.

Bitte die aktuelle Version verwenden.

Die Liste der Befehle ist jetzt auch im Sketch unter dem Tab Configuration.h als Kommentar eingefügt.
Zuletzt geändert von Arne aus dem Norden am 26.01.2014 10:54:34, insgesamt 2-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#36 Beitrag von Johannes »

Bloede Frage eines Arduino-Laien: Kann die verwendete Programmiersprache wirklich nur mit Hexadezimalzahlen umgehen? Sonst koennte man sich doch die Umrechnerei sparen ...

Gruesse
Johannes

Benutzeravatar
Total
Beiträge: 464
Registriert: 16.07.2008 17:27:43
Aktuelle Projekte: Zusi 3 verstehen lernen
Wohnort: Jülich

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#37 Beitrag von Total »

Alles klar, das erklärt die Sache.

Türen funktionieren jetzt auch bei mir, interessanterweise konnte ich über Pin 10 nichts ansteuern.
Links zur Vorstellung meiner Fahrpulte:

Benutzeravatar
F. Schn.
Beiträge: 6675
Registriert: 24.10.2011 18:58:26

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#38 Beitrag von F. Schn. »

Dude hat geschrieben:Ich werde in den nächsten Tagen mit Hilfe einiger kompetenter Ratschläge und Hilfestellungen hier aus dem Kreise weiter an der Sache werkeln, z.B. der Türausgabe.
Kleiner Tipp: Du bist ja nicht der erste, der ein Programm schreibt, das sich mit dem TCP-Server verbindet. ;) Im Quellcode von Andreas' DLL findest du beispielsweise die gesuchten Umrechnungen für die Bremsstellung (Zeile 974ff.), Türen (Zeile 1011ff.) und PZB-Zustände (Zeile 1058ff.). Der Grundsatz bei diesen drei Spezialzuständen ist folgender: Der Wert, der vom TCP-Server kommt, wird als Gazzahl (Integer) behandelt, und die jeweiligen Zahlen haben dann die dort angegebene Bedeutung.


Eines habe ich noch entdeckt:
Dude hat geschrieben: muß nun um die eine Abfrage erhöht werden auf
...
erhöht sich nun ebenfalls für die eine Abfrage auf
...
der Wert ebenso um eins erhöht werden auf
Drei Werte, die sich um eins erhöhen... Das geht doch auch anderst? ;)
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Total
Beiträge: 464
Registriert: 16.07.2008 17:27:43
Aktuelle Projekte: Zusi 3 verstehen lernen
Wohnort: Jülich

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#39 Beitrag von Total »

Ich habs jetzt auch mal mit dem LM RBremse probiert, dieser wird aber immer nur als Wert 1 ausgegeben, somit ist er im Dauerbetrieb.
Links zur Vorstellung meiner Fahrpulte:

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: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#40 Beitrag von Arne aus dem Norden »

F. Schn. hat geschrieben:Kleiner Tipp: Du bist ja nicht der erste, der ein Programm schreibt, das sich mit dem TCP-Server verbindet. ;) Im Quellcode von Andreas' DLL findest du beispielsweise die gesuchten Umrechnungen für die Bremsstellung (Zeile 974ff.), Türen (Zeile 1011ff.) und PZB-Zustände (Zeile 1058ff.). Der Grundsatz bei diesen drei Spezialzuständen ist folgender: Der Wert, der vom TCP-Server kommt, wird als Gazzahl (Integer) behandelt, und die jeweiligen Zahlen haben dann die dort angegebene Bedeutung.
Ja, ich hab da schon mit Andi gemailt vorgestern deswegen. Mein Problem war eher mal wieder, das Bitmuster als Int und nicht als Single einzulesen. Ich denke aber, ich habs jetzt ausreichend verstanden für diesen Zweck.
F. Schn. hat geschrieben:Eines habe ich noch entdeckt:
Dude hat geschrieben: muß nun um die eine Abfrage erhöht werden auf ...
erhöht sich nun ebenfalls für die eine Abfrage auf ...
der Wert ebenso um eins erhöht werden auf
Drei Werte, die sich um eins erhöhen... Das geht doch auch anderst? ;)
Yes, ich schäme mich auch ein bißchen :O
Das kommt auch auf die kleine Liste der Änderungen für Version 22...
Zuletzt geändert von Arne aus dem Norden am 24.01.2014 15:19:27, insgesamt 1-mal geändert.
Mein Baubericht von der echten Bahn zum Schönberger Strand:
https://www.facebook.com/Hein-Sch%C3%B6 ... 601976323/

Antworten