RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#51 von speedy200 , 12.01.2019 14:22

Hallo Hardi,

manche Platinenshops möchten ein geziptes GerberFile.
So könnten wir auch die PCB Shops hier teilen.

Grüße
speedy


Märklin, C-Gleis, Intellibox, Bastler...


speedy200  
speedy200
EuroCity (EC)
Beiträge: 1.393
Registriert am: 03.02.2006
Spurweite H0
Stromart AC


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#52 von Hardi , 12.01.2019 14:43

Hallo Thomas,

freut mich, dass Du mal mit den Beispielen experimentiert hast. Ich vermute, dass die meisten Stummis noch auf die Teile aus China warten. Darum hab ich oben (#50) auch mal einen Link zu einer schnelleren Quelle angegeben.

Zu Deinen Fragen:

Zitat

Wie könnte man weitere BlueLights dazufügen, die noch andere Timings haben?


Viele Teile der Bibliothek basieren auf Makros. Das hat den Vorteil, das nur dann Speicher benutzt wird wenn das entsprechende Makro benutzt wird.
Die beiden „BlueLight” Makros sehen so aus:

1
2
3
4
 

#define BlueLight1(LED,Cx,InCh) PatternT4(LED,_NStru(Cx, 4,1),InCh,_Cx2LedCnt(Cx),0, 255, 0,0, 48 ms, 74 ms, 48 ms, 496 ms,_Cx2P_DBLFL(Cx)) // Blaulicht
#define BlueLight2(LED,Cx,InCh) PatternT4(LED,_NStru(Cx, 4,1),InCh,_Cx2LedCnt(Cx),0, 255, 0,0, 24 ms, 74 ms, 24 ms, 512 ms,_Cx2P_DBLFL(Cx)) // Blaulicht (Andere Periode damit nicht synchron)
 
 


Du findest sie in der Datei „MobaLedLib.h“ in der Bibliothek.
Wenn Du weitere Blinklichter definieren willst, dann kannst Du einfach so eine Zeile in Dein Programm kopieren und entsprechend modifizieren.
Beispiel:

1
2
3
 

#define BlueLight3(LED,Cx,InCh) PatternT4(LED,_NStru(Cx, 4,1),InCh,_Cx2LedCnt(Cx),0, 255, 0,0, 30 ms, 74 ms, 30 ms, 500 ms,_Cx2P_DBLFL(Cx)) // Blaulicht 3

 



Zitat

Wie könnte man neben den RearTurnIndicators auch noch Warnblinker dazufügen?


Das Blinken der hinteren Blinker habe ich in dem Beispiel mit dem „Blink2“ Makro gemacht. Bei unserem Feuerwehrauto sind beide hinteren Blinker in Reihe geschaltet. Es reicht also, wenn man nur ein Signal generiert.

Zum ansteuern mehrere LEDs welche über einzelne Kanäle angesteuert werden kann man die Blink2 Funktion einfach mehrfach benutzen.
Das RGB Beispiel würde dann so aussehen:

1
2
3
4
5
6
7
8
9
10
 

Blink2 (LED, C_ALL, InCh, 500 ms, 500 ms, 15, 128) /* Vorderlicht Blinken Dunkel 15/ Hell 128 (Weis) */
BlueLight1(LED+1, C3, InCh) /* Blaulicht rechts */
BlueLight2(LED+2, C3, InCh) /* Blaulicht Links (Andere Periode damit nicht synchron) */
Blink2 (LED+3, C12, InCh, 500 ms, 500 ms, 0, 128) /* Blinker hinten rechts (Gelb) */
Blink2 (LED+4, C12, InCh, 500 ms, 500 ms, 0, 128) /* Blinker hinten links (Gelb) */
Blink2 (LED+5, C12, InCh, 500 ms, 500 ms, 0, 128) /* Blinker vorne rechts (Gelb) */
Blink2 (LED+6, C12, InCh, 500 ms, 500 ms, 0, 128) /* Blinker vorne links (Gelb) */
Const (LED+7, C1, InCh, 0, 25) /* Ruecklicht (Rot) */
 
 


Wenn man einzelne LEDs über WS2811 Module ansteuern will, dann können 3 LEDs mit einem Modul betrieben werden. In diesem Fall wird die Konstante C_ALL anstelle von C1 .. C3 benutzt.

Man könnte auch die Pattern Funktion dazu benutzen ein spezielles Makro zu generieren welches 4 Ausgänge gleichzeitig ansteuert. Die Pattern Funktion ist unglaublich mächtig. Damit kann man allesmögliche Anstellen. Ich muss mal eine ausführliche Dokumentation dazu erstellen. (Habe ich das „Ich muss mal“ nicht schon ein paarmal verwendet?)

=> Gibt viele verschiedene Möglichkeiten. Wenn Du eine konkrete Anwendung hast, dann kann ich Dir und natürlich auch den anderen Stummis gerne Tipps geben.

Noch Fragen? Her Damit...

P.S.:
Ich bin gerade dabei ein Video mit der Feuerwehr und einem brennenden Haus mit Sound und Rauch zu erstellen.
Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#53 von Hardi , 12.01.2019 14:52

Hallo Speedy,

Zitat

manche Platinenshops möchten ein geziptes GerberFile.
So könnten wir auch die PCB Shops hier teilen.



sehr gut, das wollte ich auch schon mal anregen. Das habe ich bei Gerd gesehen.

Willst Du Dich darum kümmern?

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#54 von speedy200 , 12.01.2019 14:59

Hallo Hardi,

ich kann gerne bestellen.. aber leider habe ich keine Ahnung mit Gerber und CO....
Grüße
speedy


Märklin, C-Gleis, Intellibox, Bastler...


speedy200  
speedy200
EuroCity (EC)
Beiträge: 1.393
Registriert am: 03.02.2006
Spurweite H0
Stromart AC


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#55 von ThKaS , 12.01.2019 17:52

Zitat

[b][color=#0000FF].....
Du findest sie in der Datei „MobaLedLib.h“ in der Bibliothek.
Wenn Du weitere Blinklichter definieren willst, dann kannst Du einfach so eine Zeile in Dein Programm kopieren und entsprechend modifizieren.
Beispiel:

1
2
3
 

#define BlueLight3(LED,Cx,InCh) PatternT4(LED,_NStru(Cx, 4,1),InCh,_Cx2LedCnt(Cx),0, 255, 0,0, 30 ms, 74 ms, 30 ms, 500 ms,_Cx2P_DBLFL(Cx)) // Blaulicht 3

 


....




Moin Hardi,

danke, das hat gut funktioniert.
Ich habe in der MobaLedLib.h eine 3.Blauchlicht konfiguriert und es blinkt.

Was passiert denn mit der MobaLedLib.h bei einem Update in der Bibliothek?
Wird die dann überschrieben?
Bräuchte ich dann immer eine Sicherung um meine "Modifikationen" nicht zu verlieren?


lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: runderneuerte https://www.thkas-moba.de ‹(•¿•)› www.mucis.de

‹(•¿•)›

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP


 
ThKaS
InterCityExpress (ICE)
Beiträge: 2.199
Registriert am: 28.04.2005
Homepage: Link


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#56 von Hardi , 12.01.2019 19:15

Hallo Thomas,

Zitat


Ich habe in der MobaLedLib.h eine 3.Blauchlicht konfiguriert und es blinkt.

Was passiert denn mit der MobaLedLib.h bei einem Update in der Bibliothek?
Wird die dann überschrieben?
Bräuchte ich dann immer eine Sicherung um meine "Modifikationen" nicht zu verlieren?


Ja, wenn Du etwas an der Bibliothek veränderst, dann wird es beim nächsten Update überschrieben ;-( Aber Du musst die Zeile nicht in die Bibliothek einfügen. Du kannst sie auch in Deiner .ino Datei oberhalb der Konfiguration einfügen so wie ich das auch in den Beispielen gemacht hab.

Auf der anderen Seite kann ich die Zeile auch gerne in die offizielle Bibliothek aufnehmen. Sie belegt ja nur dann Speicher im Arduino wenn man sie benutzt.
=> Nur her damit. Es ist toll, wenn wir (Alle) gemeinsam an dem Projekt weiterarbeiten.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#57 von Hardi , 12.01.2019 19:38

Hallo Speedy,

ich finde es ganz toll, dass Du mithelfen willst.

Zitat

Hallo Hardi,

ich kann gerne bestellen.. aber leider habe ich keine Ahnung mit Gerber und CO....
Grüße
speedy



Details habe ich in einer PN an Dich geschickt.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#58 von Hardi , 13.01.2019 01:38

Hallo Pyromanen,

Feuer hat für mich etwas Faszinierendes. Geht es Euch auch so. Darum muss es natürlich auch auf einer Modelleisenbahn vorkommen. Das kann ein Lagerfeuer oder auch ein richtiges Feuer.

Mit der MobaLedLib kann man beides simulieren. Bei einem Lagerfeuer wird eine RGB LED verwendet. Für ein größeres Feuer wie in dem Video hier werden mehrere Leuchtdioden von der Bibliothek angesteuert. Zum Glück habe ich noch nie erleben müssen wie ein echtes Haus brennt. Ich hoffe, dass die Simulation des Programms so ähnlich aussieht wie in der Realität.

Haus und Feuerwehrfahrzeug soll auf unserer Anlage als weitere „Knopfdruck“ Aktion installiert werden.
Mit dem ersten Druck auf den Taster wird das Feuer „entzündet“. Der zweite Knopfdruck aktiviert den Rauchgenerator. Und mit dem dritten Druck auf den Taster kommt die Feuerwehr. Weil Kinder gerade an den Geräuschen Spaß haben kann man mit jedem weiteren Tastendruck eine andere MP3-Datei abrufen.

Im Video sieht man im Vordergrund das S3PO Modul welches die Geräusche erzeugt. Es ist genauso wie die LEDs über ein 4-poliges Kabel an die Verteilerplatine angeschlossen.

Die Platine auf der linken Seite liest die Taster ein. Sie kann bis zu 10 Taster abfragen und die darin enthaltenen LEDs ansteuern. Mehre dieser Schaltungen können über ein 8-poliges Kabel miteinander verbunden werden, wenn weitere Taster benötigt werden.

In der Mitte ist der Arduino Nano mit einem hier nicht benutzten CAN Modul. Er steuert die Lichter, den Sound und den Rauchgenerator und fragt die Tasten ab. Damit ist er aber keineswegs ausgelastet. Er kann problemlos noch weitere 200 LEDs versorgen.

Das Feuerwehrauto ist mit zwei WS2811 Modulen Bestückt welche die verschiedenen LEDs ansteuern. Die dazu verwendete Konfiguration wird in dem Beispiel „Macro_Fire_truck“ der Bibliothek vorgestellt.

Auf dem Bild sieht man drei der vier LEDs für Rücklicht und Blinker. Die Gehäuse der Leuchtdioden sind geschwärzt damit das Licht nur an den Lichtleiter abgegeben wird welcher über eine Bohrung in die LED gesteckt ist. Die dünnen Lackisolierten Drähte führen zu den Blaulichtern und den Frontscheinwerfern.
Ja, ich weiß man könnte das noch schöner machen…
Ich würde mich über Bilder von Euch freuen, die zeigen wie Ihr das gelöst habt. Gegenüber meiner Vorlage müsst Ihr euch sicher nicht schämen…


Die „Flammen“ und den Rauch erzeugt diese Konstruktion:




Mit den folgenden Makros wird all das generiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 

#define Fire_truck(LED, InCh)
Blink2 (LED+1, C2, InCh, 500 ms, 500 ms, 50, 255) /* Vorderlicht Blinken Dunkel/Hell */
BlueLight1(LED+1, C1, InCh) /* Blaulicht rechts */
BlueLight2(LED+1, C3, InCh) /* Blaulicht Links (Andere Periode damit nicht synchron) */
Blink2 (LED, C3, InCh, 500 ms, 500 ms, 0, 255) /* Blinker hinten */
Const (LED, C1, InCh, 0, 25) /* Ruecklicht */
 
#define Burning_House(LED0, B_LED, B_LED_Cx, InNr, TmpNr, Timeout)
PushButton_w_LED_0_3(B_LED, B_LED_Cx, InNr, TmpNr, 0, Timeout)
Logic (TmpNr+4, TmpNr+3 AND InNr) /* Sound is active when TmpNr+3 and the input = 1 */
Logic (TmpNr+2, TmpNr+2 OR TmpNr+3) /* TmpNr+2 is also active if TmpNr+3 is active */
Logic (TmpNr+1, TmpNr+1 OR TmpNr+2) /* TmpNr+1 is also active if TmpNr+2 is active */
Fire (LED0+1, TmpNr+1, 5, 50)
Const (LED0+7, C1, TmpNr+2, 0,255) /* Rauch */
Const (LED0+7, C3, TmpNr+2, 0,63) /* Status LED Rauch */
Fire_truck (LED0+8, TmpNr+3)
Sound_PlayRandom(LED0+0,TmpNr+4, 5) /* Sound zufällig */
Sound_Seq8( LED0+0,TmpNr+0) /* Sound aus (Stille.mp3) */
 
 



Das Programm dazu wird erst in der nächsten Version der Bibliothek enthalten sein.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


ToTo_MoBa hat sich bedankt!
 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital

zuletzt bearbeitet 31.05.2021 | Top

RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#59 von ThKaS , 13.01.2019 08:21

Guten Morgen Hardi



Das Thema Push-Button finde ich toll, würde aber gerne dazu eine Erweiterung vorschlagen, sehen wollen.
Kann man in Deine Lösung irgendwie DCC integrieren. So dass die NANOs direkt über DCC ansteuerbar werden und ggfls parallel zu möglichen Push-Buttons auch in eine PC-Steuerung integriert werden können.
Bodo hatte den Nano als DCC-Decoder genutzt. http://moba.noethlich.info/?page_id=583

Ich bin leider ein Programmier-DAU, so dass ich das nicht selbst verküpfen kann und auch nicht weiss, ob die Speicher- und Rechenkapazität des Nano da ausreicht.


lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: runderneuerte https://www.thkas-moba.de ‹(•¿•)› www.mucis.de

‹(•¿•)›

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP


 
ThKaS
InterCityExpress (ICE)
Beiträge: 2.199
Registriert am: 28.04.2005
Homepage: Link


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#60 von Hardi , 13.01.2019 10:01

Hallo Thomas,

vielen Dank…
Die Integration von DCC währe sicherlich eine sehr schöne Sache. Ich habe mir auch schon Gedanken dazu gemacht.

Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.

Ich habe mich noch gar nicht mit dem DCC Protokoll und der Arduino Bibliothek beschäftigt. Wenn die DCC Signale periodisch widerholt werden, dann ist es vielleicht nicht so schlimm, wenn man mal eine Botschaft verpasst solange sie innerhalb von kurzer Zeit wiederholt wird.
Beim einlesen der Signale einer Infrarot Fernbedienung hat man das gleiche Problem. Hier prüft das Programm, bevor es die LEDs mit neuen Daten versorgt, ob gerade Daten per Infrarot ankommen. Wenn ja, dann wird gewartet bis die IR Daten vollständig empfangen wurden. Hier funktioniert das ganz gut.

Wenn der Empfang der DCC Signale auf diese weise nicht möglich ist, dann muss man in den sauren Apfel beißen und einen weiteren Arduino einsetzen (Was für eine Verschwendung).
Aber vielleicht ist das auch die bessere Lösung. So können einfacher zwei Leute an dem Problem arbeiten.

Ich frag mal bei Bodo nach.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#61 von TecnoWorld , 13.01.2019 11:41

Zitat

Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.



Nun, dann programmiere es doch anders. Die LEDs macht man mit DMA und SPI, damit hat der Prozessor 0% Auslastung und steht zu 100% anderen Aufgaben zur Verfügung. Z.b. Protokollen.

Ich habe das ja in meinem System RailSolution so gemacht.

Damit kann man die Module ja mittels DCC, XpressNet, Lodi commander, iTrain oder RocRail ansteuern...

Also gehen tut das


__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn


TecnoWorld  
TecnoWorld
InterRegioExpress (IRE)
Beiträge: 270
Registriert am: 11.03.2015


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#62 von Erich Müller , 13.01.2019 12:59

Hallo,

vergebt einem Ahnungslosen, dass er sich einmischt, aber dazu hätte ich dann doch einen Gedanken:

- die Feuerszenerie wird im aktuellen Zustand durch einen Momentkontakt gesteuert.
- Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.

Kann man die zwei nicht verbinden, nötigenfalls mittels Optokoppler?

Klar, DCC in die Lichtelektronik implementieren ist eleganter, aber ginge es so nicht auch? Man muss ja nicht immer das Rad neu erfinden.


Freundliche Grüße
Erich

„Es hat nie einen Mann gegeben, der für die Behandlung von Einzelheiten so begabt gewesen wäre. Wenn er sich mit den kleinsten Dingen abgab, so tat er das in der Überzeugung, daß ihre Vielheit die großen zuwege bringt.“
Friedrich II. über Fr. Wilhelm I.


Erich Müller  
Erich Müller
ICE-Sprinter
Beiträge: 6.319
Registriert am: 03.12.2015


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#63 von Railcar ( gelöscht ) , 13.01.2019 14:40

Hallo,
ich könnte mir gut vorstellen das Franz-Peters (Microbahner) Arduino Eigenbau Decoder dafür geeignet ist.
https://stummiforum.de/viewtopic.php?f=5&t=144916#p1635681

Da gibt es auch schon einige Platinenentwürfe für: viewtopic.php?f=5&t=161200#p1858079

Zitat
Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.



Das könnte doch jeder beliebige Ausgang sein der von High/Low, Low/High umschaltet. Wenn die Schaltzeit nicht reicht könnte man einen als Spulenantrieb definieren Ausgang nehmen, bei dem sich dann auch die Schaltzeit (im mSec Bereich) einstellen lässt.

Ein Eigenbaudecoder der auch noch Softwaremäßig angepasst werden kann erscheint mir günstiger als ein "Kaufdecoder".

Nur mal so angedacht.

Ulrich


Railcar

RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#64 von Hardi , 13.01.2019 15:16

Hallo Ingolf,

Zitat

Nun, dann programmiere es doch anders. Die LEDs macht man mit DMA und SPI, damit hat der Prozessor 0% Auslastung und steht zu 100% anderen Aufgaben zur Verfügung. Z.b. Protokollen.

Ich habe das ja in meinem System RailSolution so gemacht.

Damit kann man die Module ja mittels DCC, XpressNet, Lodi commander, iTrain oder RocRail ansteuern...

Also gehen tut das


Ich steure die LEDs nicht selber an. Dazu verwende ich die FastLED Bibliothek welche sehr schnell und umfangreich ist. Die Autoren haben unendlich viel Zeit und Herzblut in das Projekt gesteckt.

Aber Du hast Recht, es geht sicherlich noch besser. Aber ich traue mir das nicht zu.

Wenn Du Deine Lösung für den Arduino veröffentlichen willst, dann her damit. Es würde sicherlich vielen Projekten helfen.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#65 von Hardi , 13.01.2019 15:41

Hallo Erich,

[quote="Erich Müller" post_id=1924384 time=1547380794 user_id=26147]
Hallo,

vergebt einem Ahnungslosen, dass er sich einmischt, aber dazu hätte ich dann doch einen Gedanken:

- die Feuerszenerie wird im aktuellen Zustand durch einen Momentkontakt gesteuert.
- Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.

Kann man die zwei nicht verbinden, nötigenfalls mittels Optokoppler?

Klar, DCC in die Lichtelektronik implementieren ist eleganter, aber ginge es so nicht auch? Man muss ja nicht immer das Rad neu erfinden.
[/quote]

Oftmals entstehen die besten Ideen, wenn man mal ganz anders an eine Sache herangeht.

Ja, es wäre möglich, einfach einen Optokoppler einzusetzen. Das währe kompatibel zu jeder beliebigen Steuerung und der entsprechenden Software. Wenn man nur wenige Funktionen steuern will ist das sicherlich die beste Lösung.

Bei den Sound Modulen mache ich das so ähnlich. Elegant währe es, wenn man das Protokoll der WS281x Module einlesen wurde und dann über einen Prozessor die Sound Module ansteuern würde. Das war mir aber zu aufwändig. Darum habe ich einfach ein WS2811 Modul, zwei Widerstände und Kondensatoren zur Filterung verwendet und rufe damit die Sounds ab. Ist nicht die Elegante Lösung, aber es geht…

EDIT: 29.03.20: Achtung das ist ein vorläufiger Schaltplan. Er stimmt nicht mit der später erstellten Sound Platine überein! Die richtigen Plan gibt es hier: https://github.com/Hardi-St/MobaLedLib_D..._MP3-TF-16P.zip


Trotzdem reizt es mich die DCC Signale einzulesen. Insbesondere weil es öffentlich verfügbare Bibliotheken dafür gibt.

Es ist wohl auch möglich die WS281x Signale mit einem Arduino zu lesen. „mcmobby“ schreibt das hier: https://forum.arduino.cc/index.php?PHPSE...6756#msg3686756 (#4 und 7) aber solange das nicht öffentlich zugänglich ist bringt uns das nicht weiter.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#66 von Hardi , 13.01.2019 15:49

Hallo Ulrich,

Zitat

ich könnte mir gut vorstellen das Franz-Peters (Microbahner) Arduino Eigenbau Decoder dafür geeignet ist.
https://stummiforum.de/viewtopic.php?f=5&t=144916#p1635681
:
Ein Eigenbaudecoder der auch noch Softwaremäßig angepasst werden kann erscheint mir günstiger als ein "Kaufdecoder".


Da kann ich 100% zustimmen. Ich hab auch schon seit einiger Zeit den entsprechenden Optokoppler hier liegen. Aber die Zeit dazu Fehlt.

Gemeinsam kriegen wir das hin!!

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#67 von TecnoWorld , 13.01.2019 16:39

Zitat

Hallo Ingolf,
Wenn Du Deine Lösung für den Arduino veröffentlichen willst, dann her damit. Es würde sicherlich vielen Projekten helfen.



Nun, ich benutze keinerlei Frameworks. weder Arduino noch andere. Alles rein bare metal in Assembler und C++

Da ich arduino nicht kenne, kann ich nichts dazu sagen. Aber ich kann dir den Source geben. Ist für die ATSAMC21 Prozessoren.

LG,
Ingolf


__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn


TecnoWorld  
TecnoWorld
InterRegioExpress (IRE)
Beiträge: 270
Registriert am: 11.03.2015


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#68 von ThKaS , 13.01.2019 16:53

Zitat

.......
Mit den folgenden Makros wird all das generiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 

#define Fire_truck(LED, InCh)
Blink2 (LED+1, C2, InCh, 500 ms, 500 ms, 50, 255) /* Vorderlicht Blinken Dunkel/Hell */
BlueLight1(LED+1, C1, InCh) /* Blaulicht rechts */
BlueLight2(LED+1, C3, InCh) /* Blaulicht Links (Andere Periode damit nicht synchron) */
Blink2 (LED, C3, InCh, 500 ms, 500 ms, 0, 255) /* Blinker hinten */
Const (LED, C1, InCh, 0, 25) /* Ruecklicht */
 
#define Burning_House(LED0, B_LED, B_LED_Cx, InNr, TmpNr, Timeout)
PushButton_w_LED_0_3(B_LED, B_LED_Cx, InNr, TmpNr, 0, Timeout)
Logic (TmpNr+4, TmpNr+3 AND InNr) /* Sound is active when TmpNr+3 and the input = 1 */
Logic (TmpNr+2, TmpNr+2 OR TmpNr+3) /* TmpNr+2 is also active if TmpNr+3 is active */
Logic (TmpNr+1, TmpNr+1 OR TmpNr+2) /* TmpNr+1 is also active if TmpNr+2 is active */
Fire (LED0+1, TmpNr+1, 5, 50)
Const (LED0+7, C1, TmpNr+2, 0,255) /* Rauch */
Const (LED0+7, C3, TmpNr+2, 0,63) /* Status LED Rauch */
Fire_truck (LED0+8, TmpNr+3)
Sound_PlayRandom(LED0+0,TmpNr+4, 5) /* Sound zufällig */
Sound_Seq8( LED0+0,TmpNr+0) /* Sound aus (Stille.mp3) */
 
 



.....




Moin Hardi,
jetzt dachte ich, ich kann einfach ´mal das Feuer (Fire) simulieren .... aber bei dem Regen hier bei uns geht das einfach nicht an.

Was muss ich denn machen, damit ich nur die 5 RGB-LEDs zum Feuerchen erwecken kann? Die TmpNr ist ja ein Auslesen aus der push-button-aktion, oder?


lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: runderneuerte https://www.thkas-moba.de ‹(•¿•)› www.mucis.de

‹(•¿•)›

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP


 
ThKaS
InterCityExpress (ICE)
Beiträge: 2.199
Registriert am: 28.04.2005
Homepage: Link


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#69 von Hardi , 13.01.2019 18:25

Hallo Ingolf,

Zitat

Nun, ich benutze keinerlei Frameworks. weder Arduino noch andere. Alles rein bare metal in Assembler und C++

Da ich arduino nicht kenne, kann ich nichts dazu sagen. Aber ich kann dir den Source geben. Ist für die ATSAMC21 Prozessoren.


Ich habe es befürchte. Die Assembler Sourcen helfen uns nicht weiter. Schade, trotzdem Danke für das Angebot.
Die ATSAMC21 Prozessoren spielen aber auch in einer ganz anderen Liga (Hab gerade mal Googeln müssen was das für Teile sind). Ich vermute das sie trotzdem nicht Teurer sind als ein Arduino.

Mir gefällt an der Arduino Programmierung, dass sie so unendlich wenig Ressourcen haben. 32 KByte FLASH und nur 2 KByte RAM. Das zweite Tolle ist die aktive Community.

Schaue Dir mal den Arduino an. Mir macht es richtig Spaß damit zu basteln. Anfangs Dachte ich die IDE ist schrecklich primitiv, aber auch das ist gut durchdacht und auf das absolut nötige reduziert. Die Arduino Programmierung ist so einfach, dass wirklich jeder der einen Texteditor bedienen kann und sich im Internet zurecht findet damit schnell zum Ziel kommt. Dazu kommen die einfach zu benutzenden Beispiele.
Ich denke das der Arduino gerade für die Stummis genau das richtige ist.

Die Programmierung ist auch für Fortgeschrittene interessant. Das Arduino Projekt verwendet den gcc Compiler. Damit kann man auch Anspruchsvolle Dinge machen und diese anderen zur Verfügung stellen.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#70 von Hardi , 13.01.2019 18:50

Hallo Thomas,

ich hoffe Du bist inzwischen nicht erfroren…

Zitat

jetzt dachte ich, ich kann einfach ´mal das Feuer (Fire) simulieren .... aber bei dem Regen hier bei uns geht das einfach nicht an.

Was muss ich denn machen, damit ich nur die 5 RGB-LEDs zum Feuerchen erwecken kann? Die TmpNr ist ja ein Auslesen aus der push-button-aktion, oder?



Du hast Recht. Die TmpNr beschreibt eine Temporäre Variable welche von der „Push Button“ Aktion eingeschaltet wird. Aber Du kannst anstelle der Temporären Variable die eine Spezial Variable „SI_1“ benutzen. Diese Variable ist immer 1.
Das sieht dann so aus:

1
2
3
4
5
6
7
 
 
MobaLedLib_Configuration()
{
Fire(0, SI_1, 9, 100)
EndCfg // End of the configuration
};
 
 



Gerade habe ich festgestellt, das die Fire() Funktion mit mehr als 7 LEDs ein Problem hat. Das schaue ich mir gleich mal an.

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#71 von speedy200 , 13.01.2019 18:55

Hallo Hardi,

kann man nicht die Ausgänge des Arduino DCC auf die Tasteingänge Deiner MobaLed setzen?

Würde man zwei Arduinos benötigen, ist ja aber kein Kostenfaktor mehr.

Die Taster parallel zum DCC Arduino, dann kann man von beiden Seiten steuern. Tasten und DCC

Grüße
speedy


Märklin, C-Gleis, Intellibox, Bastler...


speedy200  
speedy200
EuroCity (EC)
Beiträge: 1.393
Registriert am: 03.02.2006
Spurweite H0
Stromart AC


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#72 von Bodo , 13.01.2019 19:03

Hallo zusammen,

habe den Eintrag jetzt erst nach Hardis PN gesehen ...

Zitat

Hallo Thomas,

vielen Dank…
Die Integration von DCC währe sicherlich eine sehr schöne Sache. Ich habe mir auch schon Gedanken dazu gemacht.

Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.


jetzt habe ich noch mal etwas gegoogelt und rumprobiert und bin mir nicht mehr sicher, ob die Wiederholungen wirklich genormt sind. Als Zentrale habe ich eine Märklin MS2 (Weichenformat auf DCC) benutzt und auf Grundlage der Beispiel-Sketches mal einen "bösen" Weichen-Dekoder gebaut.

1
2
3
4
5
6
7
8
9
10
 
if (  wAddr == weichenAdr[0] ) {
if ( OutputAddr & 0x1 ) {
digitalWrite(13, HIGH);
delay(100); // Blockiert den Prozessor !
digitalWrite(13, LOW);
}
else {
digitalWrite(13, LOW);
}
}
 


Wenn ich delay(>200) setze, blinkt die LED beim Schaltbefehl einmal, setze ich delay(100), blinkt sie zuverlässig zweimal - irgendwo dazwischen ist der Bereich, wo der wiederholte Schaltbefehl verloren geht. Vielleicht sind es ja auch mehr Wiederholungen - aber wenn man den delay noch viel kleiner macht, sieht man ja irgendwann auch nix mehr blinken.

In die Diskussion werfe ich neben der Frage nach dem Timing auch noch mal die Frage nach den Timern des Prozessors - Franz-Peter (microbahner) hatte ja mit seinen MoBaTools anfangs genau das Problem, dass sie den gleichen Timer wie die NMRADCC-Library verwendeten.

Wenn ich noch irgendwas unabhängig von den LED-Modulen testen kann, tue ich das gerne …

Viele Grüße, Bodo

PS: Die Ausgänge eines zweiten (DCC-)Arduinos über Optokoppler auf die Tastereingänge des ersten (LED-)Arduinos zu legen, wäre natürlich eine triviale Lösung und dürfte problemlos funktionieren … wäre dann ein "DDC-Eingabe-Modul" für das MoBaLED-System.


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#73 von Hardi , 13.01.2019 20:48

Hallo Speedy,

Zitat

kann man nicht die Ausgänge des Arduino DCC auf die Tasteingänge Deiner MobaLed setzen?

Würde man zwei Arduinos benötigen, ist ja aber kein Kostenfaktor mehr.



Ja, das ginge sicherlich. Aber es geht noch viel einfacher. Die beiden Arduinos können z.B. über eine serielle Verbindung miteinander reden. Dazu benötigt man nur zwei Leitungen zwischen den Arduinos und ein paar Zeilen Programmkode. Auf diese Weise können dann beliebig viele verschiedene Signale ausgetauscht werden.

Im Internet findet man dazu viele Beispiele. Das gefällt mir so an dem Arduino. Für alles gibt es eine Lösung…
Hier einfach mal eine Möglichkeit:
https://robotic-controls.com/learn/ardui...l-communication

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#74 von ThKaS , 13.01.2019 20:57

Zitat

Hallo Thomas,

ich hoffe Du bist inzwischen nicht erfroren…
...... Das sieht dann so aus:

1
2
3
4
5
6
7
 
 
MobaLedLib_Configuration()
{
Fire(0, SI_1, 9, 100)
EndCfg // End of the configuration
};
 
 



Gerade habe ich festgestellt, das die Fire() Funktion mit mehr als 7 LEDs ein Problem hat....




MoinHardi
hat geklappt. Mir ist jetzt warm

Mit 6 RGB-Leds geht es schon ganz gut. Allerdings wäre mir der Weiss-Anteil zu groß und das ganze Feuer etwas zu hektisch.
Wie und wo kann man denn am Timing (auf-abblenden und der Farbe z.B. mehr orange-gelb) spielen?


lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: runderneuerte https://www.thkas-moba.de ‹(•¿•)› www.mucis.de

‹(•¿•)›

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP


 
ThKaS
InterCityExpress (ICE)
Beiträge: 2.199
Registriert am: 28.04.2005
Homepage: Link


RE: MobaLedLib: 768 LEDs, Servos, Sound, …………… Neu: Version 3.0.0

#75 von Hardi , 13.01.2019 21:03

Hallo Bodo,

vielen Dank für den Test. Ich denke, dass die Lösung mit zwei Arduinos am schnellsten zum Ziel führt, auch wenn es mich ärgert, wenn dadurch zusätzliche Kosten von 1.77€ für den zweiten Nano entstehen.

Wenn Du Zeit hast, dann könntest Du ja mal ein Programm schreiben welches erkannte DCC Zubehörbefehle auf der seriellen Schnittstelle Ausgibt. Das könnte man zunächst am PC auswerten und dann direkt mit dem LED Arduino verbinden.

Wenn Du zusätzlich noch den Empfangszeitpunkt ausgibst „millis()“, dann sieht man auch gleich ob und mit welcher Periode die Befehle wiederholt werden.

Ich schau gleich mal wo meine Optokoppler sind. Der Tag hat noch drei Stunden…

Hardi


Haltet Euch unbedingt von diesen Seiten fern:
viewtopic.php?f=7&t=165060
https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…

Unsere Anlage findet Ihr hier:
RE: Unsere Kinder und Vater Anlage(n)


 
Hardi
InterCityExpress (ICE)
Beiträge: 2.121
Registriert am: 28.12.2015
Homepage: Link
Ort: Mainz
Gleise C
Spurweite H0
Steuerung MS2 + Eigenbau
Stromart Digital


   

CS3 Gleisplanerstellung
Suche Erfahrungsaustausch zur Z21 nach Philipp Gahtow

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz