wir haben gestern beim MobaLedLib-Stammtisch besprochen, dass wir Ideen oder Fehler in der MLL mal sammeln wollen, damit diese umgesetzt bzw. beseitigt werden können. Nun mache ich hier mal den Anfang.
Mein Wunsch wäre, eine dynamische Servogeschwindigkeit/ -regelung. Was meine ich damit? Beim im Wiki veröffentlichten Projekt "Holzfäller bei der Arbeit" sägt der Holzfäller am Baum und dieser fällt. Leider lässt sich derzeit nur eine gleichförmige Bewegung des Servos realisieren und somit fällt der Baum gleich schnell. Jedoch fällt in Wirklichkeit ein Baum dynamisch, also erst ganz langsam und dann immer schneller bis er aufschlägt.
Viele Grüße Jürgen
EDIT:
Auf Wunsch von Hardi habe ich eine Online-Tabelle erstellt in die jeder seine Wünsche eintragen kann. Diese Tabelle soll uns helfen die Wünsche gezielt abarbeiten zu können und den Status für jeden ersichtlich zu machen.
Könntest Du, als Besitzer der ersten Beitrags, dort eine Tabelle anlegen in dem zu jedem Wunsch einen Titel, ein Link auf den entsprechenden Beitrag und ein Status (Vorgeschlagen, In Arbeit, Erledigt, ...) vorhanden ist?
So eine dynamische Servo steuerung wollte ich schon immer mal implementieren. Die Geschwindigkeitsänderungen müssen aber sehr schnell und gleichmäßig passieren, sonst ruckelt die Bewegung. Das Bedeutet des Programm muss in den ATTiny. Konfigurieren will ich es über den Pattern_Configurator.
Ich weiß nicht, ob ich jemals dazu kommen. Vielleicht findet sich jemand, der sich daran versuchen will. Ich würde ihn gerne dabei unterstützen.
wie Hardi gewünscht hat, habe ich eine Tabelle für Verbesserungswünsche, Fehlermeldungen usw. online gestellt.
Natürlich sind Helfer und ambitionierte Programmierer immer willkommen. Es lassen sich sicher Eure Ideen umsetzen, jedoch machen wir alle diese Dinge in unserer Freizeit und als Hobby. Daher kann es dauern bis es Infos zu den gewünschten Projekten gibt.
Lasst es uns versuchen die Tabelle zu pflegen. Ganz wichtig ist, die Zellen der Tabelle sind für jeden editierbar und nach dem Eintrag speichern (ok klicken) nicht vergessen und bitte keine bestehenden Vorschläge überschreiben.
So nun lasst Eurer Kreativität freien Lauf. Bin sehr gespannt was alles an Wünschen kommt.
mit dem Befehl "include" kann man ja ein weiteres Tabellenblatt in die aktuelle Konfiguration einblenden. Z.B. wenn man die Konfiguration für ein Haus mehrfach verwenden will. Ich hab jetzt festgestellt, dass dabei aber die LED's falsch gezählt werden, wenn die Funktion "Led einstellbar" verwendet wird. Ich hab im Beispiel 3 solcher Einzel-Led's eingebaut. Die Folge ist, dass folgende eingefügte Tabellenblatt 2 Led's überspringt. Start-Tabelle
TestB-1-Tabelle
TestB-2-Tabelle
TestB-3-Tabelle
Ergebnis im Simulator, man sieht die 2 zusätzlichen dunklen LED
In der LEDs_AutoProg.h sieht das so aus:
Ich hab mal versucht, im VisualBasic das nachzuvollziehen, hab aber den Einsprung für das "include" nicht gefunden. Da müssen die Spezialisten ran.
Vielen Dank für Eure Mühe.
Viele Grüße
Peter
Ich hab das mal in dem Beispiel dargestellt. Es wäre schön, wenn's hierzu vielleicht eine Lösung irgendwann gäbe. Mit dem Include-Befehl wird das doch übersichtlicher als alles in einem Blatt.
Vielen Dank
Peter
PS: Programm-Version 3.2.1D
Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
wie Hardi gewünscht hat, habe ich eine Tabelle für Verbesserungswünsche, Fehlermeldungen usw. online gestellt.
Natürlich sind Helfer und ambitionierte Programmierer immer willkommen. Es lassen sich sicher Eure Ideen umsetzen, jedoch machen wir alle diese Dinge in unserer Freizeit und als Hobby. Daher kann es dauern bis es Infos zu den gewünschten Projekten gibt.
Lasst es uns versuchen die Tabelle zu pflegen. Ganz wichtig ist, die Zellen der Tabelle sind für jeden editierbar und nach dem Eintrag speichern (ok klicken) nicht vergessen und bitte keine bestehenden Vorschläge überschreiben.
So nun lasst Eurer Kreativität freien Lauf. Bin sehr gespannt was alles an Wünschen kommt.
Viele Grüße Jürgen
Ich hätte noch einen Vorschlag zur Tabelle: Fügt doch bitte eine Spalte ein, in der dann "Wunsch", "Änderung", "Fehler" usw. eingetragen werden kann.
Hallo zusammen, beim Einfügen einer Zeile aus dem Pattern-Config. wird als Icon immer das Bild mit den drei Schiebereglern angelegt. Dieses Bild kann man ja mit jedem anderen Icon aus dem ICON-Ordner ersetzen, z. B einer Darstellung eines Signals. Allerdings bleibt dieses Bild nicht erhalten, wenn ich den Programm-Generator z. B. auf die neueste Version update. Könnte man das abändern, dass hier die Bilder erhalten bleiben? Grüße, Günter
wäre es denkbar, über einen Taster am Anlagenrand auch einen Funktionsdecoder z.B. in einem Personenwagen zur Beleuchtungsschaltung, anzusprechen, um mit dem Taster die Beleuchtung des Waggons ein/auszuschalten? Grüße, Günter
Mir ist nach Update des ProgGen auf die Version 3.2.1F folgender Fehler aufgefallen: Ich hatte ein einfaches Programm erstellt. Zu beachten ist, dass die Zeile 8 mit dem An/Aus-Schalter nicht aktiviert ist. In Zeile 5 ist der rote Taster aktiviert. Es kann auch ein grüner Taster sein.
Sende ich das Programm so zum Arduino, erhalte ich folgende Fehlermeldung:
Aktiviere ich jedoch die Zeile 8 im ProgGen mit dem An/Aus-Schalter, wird das Programm ohne Fehler übertragen. Der Fehler ist reproduzierbar.
Zitat von Nessi im Beitrag #10Mir ist nach Update des ProgGen auf die Version 3.2.1F folgender Fehler aufgefallen:. ... Aktiviere ich jedoch die Zeile 8 im ProgGen mit dem An/Aus-Schalter, wird das Programm ohne Fehler übertragen. Der Fehler ist reproduzierbar.
Hallo Holger,
Theo konnte den Fehler auch reproduzieren. Es gibt nun eine neue Beta 3.2.1G, da tritt der Fehler bei mir nicht mehr auf.
Gruss Frank --------------------------------------------------------------------------------------------------------------------- MobaLedLib Wiki Projekt "Bahnpark Augsburg" Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen
ich wollte mich herzlich bei Inko Gnito bedanken, für die schnelle Fehlerbeseitigung. Ich ha es ausprobiert und es funktioniert so wie ich mir das gedacht habe. Auch das Speicherproblem ist beseitigt. Noch mal herzlichen Dank
Mit dem "Copy LED"-Befehl kann man auf einfache Weise das Verhalten bestimmter LEDs kopieren. Das eignet sich beispielsweise sehr gut bei Ampeln, großen Zimmern in Gebäuden und bei Farbverläufen aus dem Pattern Configurator. Leider verliert der Befehl unverzüglich seine Referenz, sobald oberhalb eine Zeile hinzugefügt wird.
Im nachfolgend gezeigten Beispiel ist das Baustellenlauflicht deaktiviert (1). Die fünf "Copy LED"-Befehle (3) beziehen sich auf die vorangegangenen LED-Nummern (2).
Wird jetzt die Baustelle aktiviert (A), so ändern sich die LED-Nummern aller nachfolgenden LEDs (B). In dem Moment geht bei den "Copy LED"-Befehlen der Bezug verloren (C). Im gezeigten Beispiel bilden die fünf kopierten LEDs jetzt ein Baustellenlauflicht statt eines Farbwechsels nach.
Somit müssen nach einer Ergänzung sämtliche "Copy LED"-Befehle händisch angepasst werden, damit sie weiterhin den gewünschten Effekt zeigen. Bei großen Tabellen und vielen kopierten LEDs wird die Fehlersuche dadurch enorm groß.
Zitat von raily74 im Beitrag #15Somit müssen nach einer Ergänzung sämtliche "Copy LED"-Befehle händisch angepasst werden,...
Hallo ihr Lieben,
es hat nicht lange auf sich warten lassen, bis ich selbst wieder drauf reingefallen bin. Nachdem ich einen Single LED Connector und einen WS2811 für meinen Bockkran an einen Verteiler angeschlossen hatte, spielte meine Ampel-Anlage komplett verrückt. Also habe ich als erstes die Programmierung des Pattern Configurators gegen entsprechend viele "LEDs einstellbar" getauscht, um einen Defekt an den WS2811 auszuschließen (den hatte ich in diesem Strang nämlich schon mal). Es folgten weitere Tests, um den Fehler weiter einzugrenzen (u. A. neues Aufspielen der Programmierung, Aus- und Einschalten der Stromversorgung). Erst als ich heute das Update auf 3.2.1J gemacht habe und meine Tabellen wieder farbig formatiert habe, fiel mein Blick auf den Eintrag "LED-Werte kopieren". Himmel, Sakrament!
@Hardi oder @Jueff : Habt ihr eine Idee, ob man den Bezug zur Referenz-LED in die Programmierung einbauen kann? Vielen lieben Dank für eure Einschätzung.
Hallo Zusammen! Ich habe mit einem RGBW-LED-Streifen eine "Himmelsbeleuchtung" für meine Anlage erstellt. Ein Beispiel : Wenn es "Abend" wird, fährt in der ersten Phase nur die weiße LED ihre Helligkeit auf Null zurück, in einer zweiten Phase werden die RGB-LEDs gemeinsam etwas dunkler (z.B. 200), in einer dritten Phase wird nur die blaue LED auf die Nachthelligkeit abgesenkt (z.B. 40) und die RG-LEDs werden nur etwas dunkler (damit wird das Licht gelber), dann fährt die grüne LED auf Nachthelligkeit und die rote wird nur etwas dunkler (Abendrot) in der letzten Phase wird auch die rote LED auf die Nachthelligkeit reduziert. Für den "Morgen" laufen die Prozesse umgekehrt. DAS FUNKTIONIERT. Ich habe dann die Abenddämmerung und das Morgengrauen auf zwei Prozesse (zwei Pattern mit NO_RESTART) aufgeteilt weil ich keine feste Tageslänge haben wollte - geht auch (mit NEXT (-2)). PROBLEM: Der Start der Abenddämmerung, bzw. des Morgengrauens wird mit einem DCC-Befehl ausgelöst. Nimmt man den Typ An/Aus, so muss man den gegebenen Befehl (sinnvollerweise) vor dem nächsten wieder ausschalten, das kann der Typ Rot/Grün automatisch - aber: wenn man den Prozess (z.B. Abenddämmerung) vor Ablauf der gesamten Sequenz ausschaltet (manuell bei An/Aus oder automatisch bei Rot/Grün) dann läuft der Prozess zwar noch zu Ende (gut - auch die LEDs bleiben auf dem letzten Stand), aber die Helligkeiten ändern sich nicht mehr analog, sondern werden bei jeder Stufe abrupt auf den nächsten Wert gesetzt. Schaltet man manuell direkt vor der nächsten Tagesphase zuerst den letzten aus und dann den nächsten an, so erhält man eine kleine Dunkelpause dazwischen, was auch nicht schön ist. Ich denke, dass es sich hier um einen Programmfehler handelt. Getestet auch mit der neuesten Version.
Nachtrag: Mein Problem mit der schaltbaren "Himmelsbeleuchtung" dürfte sich im Pattern-Configurator mit dem Goto-Befehl lösen lassen. Trotzdem ist das oben geschilderte Verhalten seltsam. Logisch wäre entweder, dass beim Ausschalten die Sequenz abbricht und die LEDs ausgehen oder im letzten Zustand bleiben oder, wenn die Sequenz weiter läuft, auch das analoge Überblenden bleibt.
ich habe für ein MLL-Seminar 3 Rechner mit der MobaLedLlib Version 3.3.2B ausgestattet.
Es funktioniert beim kompilieren in der seitherigen Form alles ohne Probleme, sowohl Arduino, als auch ESP32
Nun habe ich aber versucht mit PlatformIO zu kompilieren, da Jueff dies ja neu eingebaut hat. Mit der Version 3.3.2 funktioniert es mit Arduino und auch mit ESP32 fehlerfrei und wunderbar.
Bei der Version 3.3.2B funktioniert es auf einem Rechner von mir ohne Probleme mit Arduino und ESP32. Auf meinen anderen beiden Rechnern das auch versuchen wollen.
Ergebnis: - Arduino geht ohne Probleme zu kompilieren - ESP32 geht nicht, kommt Fehlermeldung
Mit Jueff habe ich über die Sache schon hin- und hergeschrieben und er hat versucht mir zu helfen.
Jueff hat gemeint, die Sache liegt an einer neueren Version der expressive, welche sich mit der Bibliothek daraufhin hat er die LocoNet2 Bibliothek geändert und einige Teile die nicht gebraucht werden rausgenommen.
Ich habe die .pio-Datei, die erzeugt wird gelöscht und neu kompiliert. Leider wieder der selbe Fehler.
Dann ist mir aufgefallen, die PlatformIO zieht immer den alte LocoNet 2.2.2 --Version und nicht die von Jueff bereitgestellte LocoNet 2.2.3
Vielleicht hat von Euch auch schon jemand mit der Kompilierung per PlatformIO gespielt und ist über den selben Fehler gestolpert.
Nun meine Frage, wie bekomme ich PlatformIO dazu die richtige LocoNet-Bibliothek zu laden? Der Prog-Gen. macht es:
Vielleicht hat ja jemand eine Idee und kann helfen.
Mir hat es einfach keine Ruhe gelassen, warum ich die LocoNet 2.2.3 nicht bekomme. Ich habe dann die LocoNet2 Bibliothek aus der Arduino-Libraries gelöscht, anschließend habe ich den Prog.-Gen geschlossen. Als nächstes habe ich dann die GIT vom Rechner gelöscht und anschließend die Python-Version. Im Ordner Eigene Dateien habe ich die .platformio auch gelöscht.
Dann noch im Ordner C:/Programme den GIT Ordner.
Nun kam der Schritt, ich habe Python 3.10.2 installiert, wie in der Mirz21-Anleitung beschrieben. als nächstes war dann GIT 2.35.1.2 mit der Installation dran.
Ganz wichtig nun mit WIN-Taste und R "ausführen" aufrufen und cmd eingeben/ Enter ---> nun im Dos-Fenster pip install -U platformio eingeben und Enter. Dadurch wir die .pio generiert.
Nun den Programm-Generator wieder starten und in den Optionen den ESP anklicken, in dem Reiter Config bei PlatformIO eine 1 eingeben. nun auf DCC gehen und zum Arduino schicken anklicken. Nun wird der ESP32 kompiliert.
Dauert beim ersten mal unheimlich lange, aber es werden dann zukünftig nur noch die veränderten Daten im Programm-Generator übertragen und nicht mehr die ganze Programmierung.
Ich bin so froh das es nun auf allen Rechnern funktioniert
Jueff, nochmals vielen Dank für Deine Unterstützung und die Änderung der LocoNet2 Bibliothek. Nein ich mach keinen Versuch ob es nun auch mit der LocoNet2 Vers. 2.2.2 funktioniert hätte.
Auf jeden Fall habe ich gelernt, es ist nicht immer gut die neuesten Softwareversionen zu nutzen.
da ich gerade am entwickeln einer eigenen Extension bin, ist mir aufgefallen, dass sobald eine Extension aktiv im Programm-Generator ist, alle anderen Extensions mit ihrer "*.h"-Datei eingebunden werden und damit Speicher verbrauchen. Anbei mein Testbeispiel:
Ich hab mal nur die Fireplace eingebunden und den Speicherverbrauch ermittelt. Dann habe ich die Infrarot-Extension hinzu installiert ohne sie aber im Sheet zu benutzen. Prompt stieg der Speicherverbrauch an:
mit Fireplace 20942 / 490 Bytes (Programmspeicher / Dyn. Speicher) plus Infrarot 21388 / 778 Bytes.
Würde man die Sourcen für Worldclock dazu einbringen, so würde der Speicher noch mehr verbraucht.
Ursache ist der Eintrag der MLL-Extensions in der LEDs_AutoProg.h:
Ich bin mir nicht sicher, ob das ein Fehler ist, oder nicht zu ändern. Im letzten Fall sollte man dann sehr sparsam mit den Extensions umgehen.
Peter
Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
LEDs_AutoProg mit Fireplace.h.txt
LEDs_AutoProg plus IR.h.txt
Angefügte Bilder:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
ich hatte das schon mal unter "MLL mit ESP32 -Standaloneplatine" beschrieben. Wollte aber das hier noch mal reinstellen, da es ja ein ToDo ist.
Verwendet man unter einem ESP32 die DayAndNightTimer_Debug-Funktion so werden für die MLL-Uhrzeit nur Hieroglyphen angezeigt:
Es liegt nicht an der Ausgabegeschwindigkeit (115200 Baud), da alle anderen Ausgaben gelesen werden können. Nur die Uhrzeit ist nicht lesbar. In der LEDs_AutoProg.ino bin ich fündig geworden. Der bereitgestellte String hat nur 6 Byte, benötigt aber 11 Bytes. Ich hab das mal geändert (in Version 3.3.2B an Zeile 2146) und jetzt kommt wieder die richtige Zeitanzeige.
Die Ausgabe ist dann, wie man sich das vorstellt:
Vielleicht bin ich aber auch auf dem Holzweg und etwas anderes müsste angepasst werden. Liebe Spezialisten, schaut bitte mal drüber.
Zitat von PeterVT11 im Beitrag #21Hallo, ....Verwendet man unter einem ESP32 die DayAndNightTimer_Debug-Funktion so werden für die MLL-Uhrzeit nur Hieroglyphen angezeigt: ... Vielen Dank Peter
Hallo Peter,
der Fehler ist in der Beta 3.3.2D behoben. Danke auch dafür, dass du mir die Fehlerbehebung gleich mitgeliefert hast.
Vielen Dank, dass Du das eingearbeitet hast. Ich hab es getestet, es funktioniert natürlich. Mir hat es Spaß gemacht, den Fehler zu suchen. Damit kann ich das Ganze besser verstehen.
Zitat von PeterVT11 im Beitrag #20Hallo, .....Ich bin mir nicht sicher, ob das ein Fehler ist, oder nicht zu ändern. Im letzten Fall sollte man dann sehr sparsam mit den Extensions umgehen. Peter
Hallo Peter,
ich kann bestätigen, dass es sich dabei um einen Fehler handelt. Danke für die ausführliche Analyse. Ich werde den Fehler in der nächsten Version beheben, leider ist die Fehlerbehebung diesmal etwas schwieriger.
Hallo Jürgen, Ja, da bin garnicht klar gekommen mit der Problemfindung. Da fehlt es bei mir an den Kenntnissen über die internen MLL-Abläufe. Auch bei dem Uhrzeitfehler ist mir nicht klar, warum das mit dem Arduino ging, mit dem ESP nicht.