Destinationsskilt på banegård
-
- Lokomotivfører
- Indlæg: 4480
- Tilmeldt: 30 jul 2011, 12:22
- Digital: Ja
- Scale: H0 - 2-rail
- Geografisk sted: Hammel
- Kontakt:
Destinationsskilt på banegård
Jeg har gang i et "hyggeforsøg".
På tysk hedder det en "zugzielanzeiger" og hænger ved næsten enhver moderne perron.
Den kan se sådan her ud:
Jeg har nogle små OLED display, godt nok i sort og ikke blå, som styres af en Arduino.
Her første prøve, sammen med en H0 julemand, for at illudere størrelsen
Dernæst to billeder der viser nuværende udviklingsstatus
Lige nu defineres spornummer i en variabel og der er et "Array" med 6 forskellige togafgange, komplet med tid, vogninformationer, nummer på togløb, mellemstationer, slutdestination og eventuel rulletekst (forsinkelse, eller andre informationer).
Der skiftes mellem de 6 destinationer hver 30. sekund.
På sigt skal to displays monteres på "min" modelbane i Hadsten.
Klaus
På tysk hedder det en "zugzielanzeiger" og hænger ved næsten enhver moderne perron.
Den kan se sådan her ud:
Jeg har nogle små OLED display, godt nok i sort og ikke blå, som styres af en Arduino.
Her første prøve, sammen med en H0 julemand, for at illudere størrelsen
Dernæst to billeder der viser nuværende udviklingsstatus
Lige nu defineres spornummer i en variabel og der er et "Array" med 6 forskellige togafgange, komplet med tid, vogninformationer, nummer på togløb, mellemstationer, slutdestination og eventuel rulletekst (forsinkelse, eller andre informationer).
Der skiftes mellem de 6 destinationer hver 30. sekund.
På sigt skal to displays monteres på "min" modelbane i Hadsten.
Klaus
Mine sider: http://www.modelbaneeuropa.dk og http://www.moppe.dk
Dette forum: http://www.baneforum.dk
Dette forum: http://www.baneforum.dk
-
- Lokomotivfører
- Indlæg: 287
- Tilmeldt: 31 aug 2011, 09:16
- Digital: Ja
- Scale: H0 - 3-rail
- Skinnesystem: Märklin C
- Geografisk sted: Lystrup, nord for Århus
Re: Destinationsskilt på banegård
WAUW!
Det ser godt ud!!
Det ser godt ud!!
Henrik
Kører digitalt med en CS2, 3-skinne, mest epoke IV-V, helst dansk + lidt tysk. Mangler plads - og penge - til en opstillet bane...
Kører digitalt med en CS2, 3-skinne, mest epoke IV-V, helst dansk + lidt tysk. Mangler plads - og penge - til en opstillet bane...
-
- Lokomotivfører
- Indlæg: 4480
- Tilmeldt: 30 jul 2011, 12:22
- Digital: Ja
- Scale: H0 - 2-rail
- Geografisk sted: Hammel
- Kontakt:
Re: Destinationsskilt på banegård
Ja, lad mig sige det sådan: Det er jeg okay tilfreds med.
Efter billederne er taget, har jeg tilført kontrastkontrol, så lyset kan dæmpes og jeg har roteret hele teksten, så den "brede mekaniske kant" nu er over display og ikke under.
Når display monteres under perrontag, kan jeg bedre skjule den brede del under taget.
Klaus
Efter billederne er taget, har jeg tilført kontrastkontrol, så lyset kan dæmpes og jeg har roteret hele teksten, så den "brede mekaniske kant" nu er over display og ikke under.
Når display monteres under perrontag, kan jeg bedre skjule den brede del under taget.
Klaus
Mine sider: http://www.modelbaneeuropa.dk og http://www.moppe.dk
Dette forum: http://www.baneforum.dk
Dette forum: http://www.baneforum.dk
-
- Lokomotivfører
- Indlæg: 1530
- Tilmeldt: 10 aug 2011, 07:57
- Digital: Ja
- Scale: H0 - 3-rail
- Skinnesystem: Märklin K
- Geografisk sted: Herning
Re: Destinationsskilt på banegård
Hvis julemanden er H0, så er skiltets skærm ca. 10x25 mm + div. kanterne
Er det rigtig ?
Er det rigtig ?
Jørgen Steff. fra Herning
H0 / AC / Digital med CS3+ / K skinner / ca. Epoke III / og ikke kun DK ( p. gr. af dampen ).
-
- Lokomotivfører
- Indlæg: 4480
- Tilmeldt: 30 jul 2011, 12:22
- Digital: Ja
- Scale: H0 - 2-rail
- Geografisk sted: Hammel
- Kontakt:
Re: Destinationsskilt på banegård
Den aktive del af skærmen er 28x7mm og består af 128x32 billedpixels.
Klaus
Klaus
Mine sider: http://www.modelbaneeuropa.dk og http://www.moppe.dk
Dette forum: http://www.baneforum.dk
Dette forum: http://www.baneforum.dk
-
- Stationsbetjent
- Indlæg: 25
- Tilmeldt: 23 jun 2018, 22:02
- Digital: Ja
- Scale: H0 - 3-rail
- Skinnesystem: Märklin C + K
- Geografisk sted: Bagsværd
Re: Destinationsskilt på banegård
wow, - det er klasse, der er jo ikke et øje tørt :o
Jeg glæder mig til at se det endelige resultat
Jeg glæder mig til at se det endelige resultat
-
- Lokomotivfører
- Indlæg: 245
- Tilmeldt: 03 jan 2017, 16:52
- Digital: Ja
- Scale: H0 - 3-rail
- Skinnesystem: Märklin C
Re: Destinationsskilt på banegård
Hej Klaus.
Gider du sende dit diagram over samling af skiltet, samt koden?
MVH
John
Gider du sende dit diagram over samling af skiltet, samt koden?
MVH
John
-
- Lokomotivfører
- Indlæg: 4480
- Tilmeldt: 30 jul 2011, 12:22
- Digital: Ja
- Scale: H0 - 2-rail
- Geografisk sted: Hammel
- Kontakt:
Re: Destinationsskilt på banegård
Hej John
Selvfølgelig vil jeg det.... :-)
Diagrammet er ret simpelt, så det kommer her i tekst:
Display - Arduino UNO
GND - GND
VCC - 3.3V
SCL - A5
SDA - A4
Nuværende "generation" af koden er version 13
Klaus
Selvfølgelig vil jeg det.... :-)
Diagrammet er ret simpelt, så det kommer her i tekst:
Display - Arduino UNO
GND - GND
VCC - 3.3V
SCL - A5
SDA - A4
Nuværende "generation" af koden er version 13
Kode: Vælg alt
// Zugzielanzeiger für Bahnsteige, KDM Version 13
//
//In Stummiforum (https://stummiforum.de/viewtopic.php?f=21&t=131472) hat Tobias siener Sketch teilt.
//
//Ich hab mehrere änderungen hingeführt und hier ist meiner version "Zugzielanzeiger für den Bahnsteig mit Arduino"
//
//Noten:
//
//
//Umlaute ersetzten laut folgender Chiffre:
//ä = \xF4
//ö = \xF5
//ü = \xFC
//ß = \xDF
//Ä = \xC4
//Ö = \xD6
//Ü = \xDC
//Würzburg ist daher W\xFCrzburg
//Verspätung ist daher Versp\xF4tung
#include <U8glib.h>
U8GLIB_SSD1306_128X32_2X u8g(U8G_I2C_OPT_NONE);
int count = 0;
unsigned long previousMillis = 0; // Speichern letzte zeit der anziege hat sich geändert
const long interval = 31500; // interval zwischen änderungen (milliseconds)
int varianten = 7; // anzahl varianten
char gleis[5];
char uhrzeit[][6]{ // [6] ist anzahl ziffern
"09:34",
"10:04",
"12:53",
"15:21",
"17:02",
"18:30",
"21:45"
};
char zugnummer[][8]{// [8] ist anzahl charakteren
"RB 1521",
"RB 3237",
"EC 172",
"ICE 592",
"IC 602",
"RE 7",
"ICE 651",
};
char ziel[][17]{// [17] ist anzahl charakteren
"Aschaffenburg",
"Plattling",
"Hamburg - Altona",
"Berlin Ostbf",
"Puttgarden",
"Kiel / Flensburg",
"Leipzig Hbf",
};
char zuglauf1[][21]{ //[21] ist anzahl charakteren
"Grossauheim - Kahl,",
"Freising - Moosburg",
"Berlin Hbf - ",
"Fulda - Kassel -",
"Wuppertal - Dortmund",
"Elmshorn - ",
"Fulda - Eisenach"
};
char zuglauf2[][21]{ //[21] ist anzahl charakteren
"- Grosskrotzenburg",
"- Landshut",
"Hamburg Hbf",
"Braunschweig Hbf",
"Bremen - Hamburg",
"Ne\xFCmunster",
""
};
char wagenstand[][9]{//[9] ist anzahl charakteren
"",
"",
"-222211",
"11111",
" 22111",
" 2121",
"111211"
};
char lauftext[][85]{ //[85] ist anzahl charakteren, mindstens 20 leerzeichnen um die lauftext zu haben
"",
"",
" Versp\xF4tung ca 10 Min",
"",
"",
" Zugteilung in Ne\xFCmunster - Vorne zugteil fahrt bis Flensburg ",
""
};
const unsigned int lauftextlength = 21;
int offset = 0;
int subset = 0;
char ausgabe[lauftextlength];
char incomingByte = 0;
unsigned int incomingBytePosition = 0;
enum ReceiveState
{
ReceiveState_Idle,
ReceiveState_Hash,
ReceiveState_Lauftext,
ReceiveState_Gleis,
ReceiveState_Wagenstand,
ReceiveState_Zuglauf1,
ReceiveState_Zuglauf2,
ReceiveState_Ziel,
ReceiveState_Uhrzeit,
ReceiveState_Zugnummer
};
ReceiveState currentState = ReceiveState_Idle;
enum GleisSeite
{
GleisSeite_Links,
GleisSeite_Rechts
};
GleisSeite gleisSeite = GleisSeite_Rechts; // definiert der layout der zugzielanzieger
void draw()
{
u8g.setColorIndex(1);
static int zugdatenSaplte = 0;
if(gleisSeite == GleisSeite_Links)
{
zugdatenSaplte = 100;
}
else if(gleisSeite == GleisSeite_Rechts)
{
zugdatenSaplte = 0;
}
u8g.setFont(u8g_font_5x8); // 5x8
u8g.drawStr(zugdatenSaplte, u8g.getFontAscent(), uhrzeit[count]);
u8g.setFont(u8g_font_4x6); // 4x6
u8g.drawStr(zugdatenSaplte, 7 + u8g.getFontAscent(), zugnummer[count]);
if(strlen(wagenstand[count]) > 0)
{
u8g.setColorIndex(1);
u8g.setFont(u8g_font_4x6); // 4x6
u8g.drawStr(zugdatenSaplte, 15 + u8g.getFontAscent(), "ABCDEFG");
u8g.drawBox(zugdatenSaplte, 21 + u8g.getFontAscent() - 5, strlen(wagenstand[count]) * 4, 6);
u8g.setColorIndex(0);
u8g.drawStr(zugdatenSaplte, 21 + u8g.getFontAscent(), wagenstand[count]);
u8g.setColorIndex(1);
}
static int zuglaufSpalte = 30;
if(gleisSeite == GleisSeite_Links)
{
zuglaufSpalte = 20;
}
else if(gleisSeite == GleisSeite_Rechts)
{
zuglaufSpalte = 30;
}
//Verspätungsbox
if(lauftext[count][20] != '\0')
{
u8g.setColorIndex(1);
u8g.drawBox(zuglaufSpalte, 0, 78, 6);
u8g.setColorIndex(0);
u8g.setFont(u8g_font_4x6); // 4x6
int remaining = strlen(lauftext[count]) - offset;
if(remaining > (lauftextlength - 1))
{
remaining = lauftextlength - 1;
}
memcpy(ausgabe, &lauftext[count][offset], remaining);
ausgabe[remaining] = '\0';
u8g.drawStr(zuglaufSpalte-subset, 6, ausgabe);
u8g.setColorIndex(1);
}
u8g.drawStr(zuglaufSpalte, 12, zuglauf1[count]);
u8g.drawStr(zuglaufSpalte, 19, zuglauf2[count]);
u8g.setFont(u8g_font_tpss);
u8g.drawStr(zuglaufSpalte, 34 + u8g.getFontDescent(), ziel[count]);
u8g.setFont(u8g_font_6x13B);
if(gleisSeite == GleisSeite_Links)
{
u8g.drawStr(0, 13, gleis);
}
else if(gleisSeite == GleisSeite_Rechts)
{
u8g.drawStr(128 - (6 * strlen(gleis)), 13, gleis);
}
}
void initializeStrings()
{
String("9").toCharArray(gleis, 5); // Gleisnummer eigeben
}
void setup()
{
initializeStrings();
u8g.begin();
u8g.setContrast(150); // Kontrast eingeben
u8g.setRot180(); // anzeige 180 grad rotieren.
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // Speichern letzte zeit der anziege hat sich geändert
count = (count+1);
}
if (count>(varianten-1)){
count = 0;
}
// delay(1500);
else{
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
subset += 1;
if(subset > 3)
{
offset += 1;
subset = 0;
}
if(offset > strlen(lauftext[count]))
{
offset = 0;
}
}
}
Klaus
Mine sider: http://www.modelbaneeuropa.dk og http://www.moppe.dk
Dette forum: http://www.baneforum.dk
Dette forum: http://www.baneforum.dk
-
- Lokomotivfører
- Indlæg: 245
- Tilmeldt: 03 jan 2017, 16:52
- Digital: Ja
- Scale: H0 - 3-rail
- Skinnesystem: Märklin C
Re: Destinationsskilt på banegård
Hej Klavs.
Tak for din kode, men desværre er der fejl i koden!
Jeg får følgende fejl:
exit status 1
Error compiling for board Arduino/Genuino Uno.
MVH
John
Tak for din kode, men desværre er der fejl i koden!
Jeg får følgende fejl:
exit status 1
Error compiling for board Arduino/Genuino Uno.
MVH
John
-
- Lokomotivfører
- Indlæg: 307
- Tilmeldt: 18 jan 2013, 18:09
- Digital: Ja
- Scale: H0 - 2-rail
- Skinnesystem: peco code 75
Re: Destinationsskilt på banegård
Har du fået valgt den rigtige COM-port i Arduino IDE'en?