Introduction: Lichtsteuerung Und Beleuchtung Für Modellhäuser, Modelleisenbahnen, Dioramen / Light Control and Lighting for Model Houses, Model Trains, Dioramas
Dies ist eine vielseitig parametrierbare Lichtsteuerung für Modellhäuser etc. mit Neopixel LEDs.
Möglich sind: - Verschiedene Farben - Fernsehsimulationen - Defekte Leuchtstoffröhren-Effekte - Feuer-Effekte - Wackelkontakt-Effekte - Verschiedene Helligkeiten - Sequenzen mit verschiedenen Zeiten und Effekten.
______________________________________________________________________________
This is a versatile parameterizable light control for model houses etc. with Neopixel LEDs.
The following are possible: - Different colors - Television simulations - Defective fluorescent tube effects - Fire effects - Loose contact effects - Different brightness levels - Sequences with different times and effects.
______________________________________________________________________________
Beispiel-Applicationen / Example applications:
https://www.dailymotion.com/video/k4ixny7Uz3vHYRzHFyR
Einführung in deutsch (contains english subtitles):
https://www.dailymotion.com/video/k4uhDMnweXOjDxzL1Ib
Introduction in english (translation of the video above):
https://www.dailymotion.com/video/x8qmo9p
Supplies
sSehe Handbuch (Step 4)
See Manual (Step 4)
Step 1: Intro
Die Kosten belaufen sich auf ein paar Euros um bis zu 39 LEDs ansteuern zu können pro Controller.
Programmierkenntnisse werden keine quasi benötigt.
Die Bedienung erfolgt via Wifi über ein Smartphone, Tablett oder einen Laptop.
Für sämtliche Details lesen Sie bitte das Handbuch (Shritt 4).
______________________________________________________________________________
The cost is a few euros to be able to control up to 39 LEDs per controller.
No programming knowledge is required.
It is operated via WiFi using a smartphone, tablet or laptop.
For full details, please read the manual (Step 4).
Step 2: Projekt Für Visual Code Studio Und Platformio
Das Projekt kann unter Verwendung von «Microsoft Visual Studio Code» mit «Platform-IO» Plugin editiert werden.
Kurz gefasste Installationsanleitung sind einfach im Web zu finden.
Dieses Paket sollte alles beinhalten inklusive Board Definition und Bibliotheken.
Bei der Erstellung dieser Anleitung verwendete Versionen:
Visual Studio Code Version: 1.84.2
Platformio: 6.1.11
_____________________________________________________________________________________
The project can be edited using «Microsoft Visual Studio Code» with «Platform-IO» plugin.
Concise installation instructions are easy to find on the web.
This package should contain everything including board definition and libraries.
Versions used in creating this guide:
Visual Studio Code Version: 1.84.2
Platformio: 6.1.11
_____________________________________________________________________________________
https://github.com/andrebiedermann63/LumiScene
Step 3: Arduino
Alternativ kann der Code auch mit der Arduino IDE editiert werden.
Dafür müssen jedoch über den Boardmanager die esp8266 Boards ergänzt werden.
Ferner muss die Adafruit Neopixel-Bibliothek installiert werden.
Die «.cpp» Datei im Unterordner «src» des Projektes kann dann umbenannt werden mit der
Dateierweiterung «.ino».
_____________________________________________________________________________________
Alternatively, the code can also be edited with the Arduino IDE.
However, to do this, the esp8266 boards must be added via the board manager then.
The Adafruit Neopixel library must also be installed.
The ".cpp" file in the "src" subfolder of the project can then be renamed are with the file extension
«.ino».
Step 4: Anleitung
Im Handbuch (beiliegendes PDF) finden Sie alle benötigten Angaben bezüglich
- Hardware,
- Aufbau
- Bedienung
- Tipps & Tricks
_________________________________________________________________________________
Ich empfehle zunächst einen Prototypen aufzubauen und damit zu spielen, bevor sie eine Steuerung in ein Objekt hinein verkabeln.
Das Anleitungsvideo gibt einen Überblick über die Bedienung.
Das Video ist noch mit einer älteren Version erstellt, welche eine etwas andere Bedienoberfläche hat, konzeptionell ein wenig anders ist und weniger Möglichkeiten hat.
Aber das Bedienkonzept ist grundsätzlich erhalten geblieben. Für die Details halten Sie sich bitte an das Handbuch.
In the manual (enclosed PDF) you will find all the information you need
- Hardware,
- Construction
- Service
- Tips & Tricks
I recommend first building a prototype and playing with it before wiring a controller into an object.
The instruction video gives an overview of the operation.
The video was created with an older version, which has a slightly different user interface, is conceptually a little different and has fewer options.
But the operating concept has basically been retained. For details, please refer to the manual.
Step 5: Allgemeines Und Hintergrund-Informationen
Für jegliche Schäden, die durch die Anwendung dieser Informationen entstehen, wird jegliche Haftung abgelehnt.
Keine Software ist perfekt, aber die Steuerung ist bereits mehrmals im Einsatz und grober Fehler sind nicht zu erwarten.
Haben Sie zusätzliche Ideen zu dieser Steuerung, können Sie diese gerne als Kommentar platzieren.
Ob diese jedoch von mir umgesetzt werden ist ungewiss. Das Projekt betrachte ich zur Zeit als abgeschlossen.
Falls Sie die Steuerung erweitern in irgendeiner Form, wäre ich sehr dankbar für ein Feedback im Sinne eines Know-How Austausches.
Zum Beispiel die Weboberfläche ist sehr spartanisch. Da wäre eventuell mehr möglich. Aber ich hatte keine Motivation mich in HTML mehr als unbedingt nötig einzuarbeiten.
Ferner wäre ein Download und Upload der Parametrierungen entweder über Wifi oder über eine SD Karte denkbar. So könnten diese irgendwo gesichert werden. Es wäre dann auch ein offline Editor denkbar.
Es folgen noch ein paar Hinweise zur Software.
Die LEDs werden in einem 50 ms Zyklus verarbeitet. D. h. für jede LED wird alle 50 ms berechnet, was sie als nächstes tun soll. Messungen haben gezeigt dass bei einem Vollausbau ca. 35 ms benötigt werden. Da wären also noch Reserven vorhanden.
Schlechter sieht es beim EPROM aus. Die 4096 Bytes sind für 39 LEDs und die 6 Speicherbänke voll ausgereizt.
Da wurden teilweise sogar Informationen in 3 Bit mit anderen Informationen in 5 Bit zu 1 Byte kombiniert um den Speicher voll auszunutzen.
Bei mehr Speicherbedarf müsste man z.B. auf eine SD Kartenerweiterung ausweichen.
Wegen dem Echtzeit Charakter der Software dürfen keine Funktionen verwendet werden die den Code "anhalten".
Zum Beispiel verharrt der Code beim Befehl delay() dort bist die Zeit abgelaufen ist.
Stattdessen müssen zum Beispiel Zähler verwendet werden die alle 50 ms erhöht werden bis die entsprechende Zeit abgelaufen ist.
Entsprechend ähnlich sind die Effekte aufgebaut. Wartezeiten etc. sind ebenfalls mit Zählern realisiert.
Die drei Fernsehprogramme werden unabhängig von den LEDs laufend berechnet.
Die LEDs haben dann keine eigene Logik in diesem Fall sondern verwenden einfach die bereits berechneten Farben der Fernsehprogramme.
Für die Fernsehprogramme wurden zunächst Teilphasen definiert:
- konstante Farbe während einer zufälligen Zeit
- über eine zufällige Zeit zu einer anderen Farbe gleiten
- über eine Dunkelphase über eine zufällige Zeit zu einer anderen Farbe gleiten
- zu einer anderen Farbe springen und während einer zufälligen Zeit warten
Hinzu kommen noch Gewichtungen für
- überhaupt einen Farbwechsel
- wie matt oder satt eine Farbe sein darf
Die drei Fernsehprogrammen wurden basierend darauf unterschiedlich bezüglich dem Verhalten definiert.
Es wurden einfach Wahrscheinlichkeiten für das Auftreten der Teilphasen und der Gewichtungen unterschiedlich definiert.
Last Bad not least: Die Software ist konzeptionell sicher nicht perfekt. Man kann immer irgendwas anders machen. Man möge die teilweise lückenhafte Kommentierung und das Kauderwelsch zwischen Englisch und Deutsch entschuldigen.
_________________________________________________________________________________
No liability is accepted for any damage resulting from the use of this information.
No software is perfect, but the control has already been used several times and major errors are not to be expected.
If you have any additional ideas about this control, please feel free to post them as a comment.
However, it is uncertain whether I will implement these. I currently consider the project to be complete.
If you expand the control in any way, I would be very grateful for feedback in the sense of an exchange of know-how.
For example, the web interface is very spartan. There might be more possible. But I had no motivation to learn more about HTML than absolutely necessary.
It would also be conceivable to download and upload the parameterizations either via WiFi or via an SD card. So these could be secured somewhere. An offline editor would then also be conceivable.
A few more notes about the software follow.
The LEDs are processed in a 50 ms cycle. i.e. Every LED calculates what it should do next every 50 ms. Measurements have shown that approx. 35 ms are required for a full expansion. So there would still be reserves.
Things look worse with EPROM. The 4096 bytes are fully utilized for 39 LEDs and the 6 memory banks.
In some cases, information in 3 bits was even combined with other information in 5 bits to form 1 byte in order to fully utilize the memory.
If more memory is required, you would have to switch to an SD card extension, for example.
Due to the real-time nature of the software, no functions may be used that "pause" the code.
For example, with the delay() command, the code remains there until the time has expired.
Instead, for example, counters must be used that are increased every 50 ms until the corresponding time has expired.
The effects are structured accordingly. Waiting times etc. are also implemented with counters.
The three television programs are continuously calculated independently of the LEDs.
The LEDs then have no logic of their own in this case but simply use the already calculated colors of the television programs.
Sub-phases were initially defined for the television programs:
- constant color during a random time
- slide to a different color over a random time
- Glide to a different color over a dark period over a random time
- Jump to another color and wait for a random time
There are also weightings for
- a color change at all
- how dull or rich a color can be
Based on this, the three television programs were defined differently in terms of behavior.
Probabilities for the occurrence of the sub-phases and the weightings were simply defined differently.
Last bad not least: The software is certainly not conceptually perfect. You can always do something different. Please excuse the partially incomplete commentary and the gibberish between English and German.