====== NeoControl EWS - Beispiele ====== ===== Gruppeneffekte ===== ==== Hausbeleuchtung ==== Es soll ein Haus mit 11 Zimmern beleuchtet werden. Wenn die Beleuchtung eingeschaltet ist sollen mindestens 4, aber maximal 8 Zimmer beleuchtet werden. Es wird Gruppe 3 sowie die Light Engine Elemente 40 bis 50 verwendet. Die CVs für die Gruppeneffekte der Gruppe 3 fangen an bei: 782 + 3*6 = 800. ^ CV ^ Wert ^ Bedeutung ^ | 800 | 131 = 128+3 | Bit 7 gesetzt für kontinuierlichen Ablauf, Bit 1+0 für Modus Hausbeleuchtung | | 801 | 40 | Erstes Light Engine Element der Gruppe | | 802 | 50 | Letztes Light Engine Element der Gruppe | | 803 | 19 | Änderung der Beleuchtung minimal alle 200msec | | 804 | 16 = 16+0 | Direktes ein- bzw. ausschalten der LEDs | | 805 | 52 = 0x34 | Mindestens 3 sollen aus bleiben (11-8) und mindestens 4 sollen an sein\\ (Erlaubter Bereich jeweils 0..15 bzw. 0..F)| Dazu muß noch das LED Mapping gesetzt werden, zum Beispiel wie folgt: ^ Pos | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ^ CV | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 890 | 891 | ^ Wert/LEE | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 42 | 44 | 46 | Die Positionen 10 bis 20 werden entsprechend den 11 Elementen des Effektes belegt. Zusätzlich werden die Positionen 21, 22 und 23 mit dem 3., 5. und 7. Element des Effektes belegt (Und somit werden jeweils 2 LEDs eingeschaltet). Eingeschaltet wird der Gruppeneffekt über das Einschalten von SPORT 3. Danach werden durch die Baugruppe einzelne LEDs zufällig (im Raster von 200msec) eingeschaltet bis die Mindestanzahl überschritten ist. Ab diesem Zeitpunkt können einzelne LEDs auch wieder ausgeschaltet werden. Zudem wird überprüft das die Mindestzahl der ausgeschalteten LEDs eingehalten wird. Beim Ausschalten werden nach und nach mit einer zufälligen Abfolge alle noch eingeschalteten LEDs ausgeschaltet. === Benutzung des NodeScripting Wizard === Mit dem Script "NeoEWS: Konfiguration einer Lichtgruppe für Modus 3: Hausbeleuchtung" können die Werte wie folgt gesetzt werden: {{ :onews:wizard_grp3_house1.png?600 |}} {{ :onews:wizard_grp3_house2.png?600 |}} Einzig die zusätzlichen Einträge im LED Mapping müssen nachträglich über den CV-Editor gesetzt werden: ^ Pos | 18 | 19 | 20 | 21 | 22 | 23 | ^ CV | 896 | 897 | 898 | 899 | 890 | 891 | ^ Wert/LEE | 48 | 49 | 50 | 42 | 44 | 46 | Als Vorteil werden die Namen der einzelnen Elemente passend gesetzt. ---- ==== TV-Simulation ==== Die TV-Simulation soll das Flackern eines TV-Gerätes simulieren. Es basiert auf der Implementierung die [[ http://forum.arduino.cc/index.php?topic=148967.0|hier]] vorgestellt wurde. Insgesamt werden 4 LEDs angesteuert die durch verschiedene LED-Bausteine aufgebaut werden können: === WS2811 === Hier werden 4 LEDs der folgenden Farben an die einzelnen Ausgänge angeschlossen: Rot, Grün, Blau und Weiß. Die 4 Light Engine Elemente werden in dieser Reihenfolge den LEDs zugeordnet. === WS2812 im Farbmodus === Hier werden 4 WS2812 LEDs benötigt, dazu müssen die Farben entsprechend den 4 WS2812 zugeordnet werden: Rot (32), Grün (107) und Blau (181). Für Weiß muß eine selbstdefinierte Farbe verwendet werden. === SK6812 im Farbmodus === Im Prinzip genau wie bei den WS2812 im Farbmodus, nur kann hier für Weiß der 4. Farbkanal verwendet werden. === WS2812 mit Einzel-LED-Ansteuerung === In diesem Fall sind zwei WS2812 ausreichend, die Rot, Grün und Blau-Elemente werden einfach auf die 3 Farbkanäle einer WS2812 LED gemappt. Für den weißen Anteil wird die 2. WS2812-LED verwendet und dort werden alle 3 Farbkanäle einfach dem vierten Light Engine Element zugeordnet === SK6812 mit Einzel-LED-Ansteuerung === Entsprechend der WS2812-Einzel-Ansteuerung, nur das nur eine SK6812-LED benötigt wird und Weiß auf das 4. LEE gemappt wird. Somit kann mit jeder Konfiguration die man für einen Strang benötigt eine entsprechende Ansteuerung für die TV-Simulation gefunden werden. === CV-Werte === Es wird Gruppe 4 sowie die Light Engine Elemente 36 bis 39 verwendet. Die CVs für die Gruppeneffekte der Gruppe 4 fangen an bei: 782 + 4*6 = 806. ^ CV ^ Wert ^ Bedeutung ^ | 806 | 131 = 128+11 | Bit 7 gesetzt für kontinuierlichen Ablauf, Bit 3,1,0 für Modus TV | | 807 | 36 | Erstes Light Engine Element der Gruppe | | 808 | 39 | Letztes Light Engine Element der Gruppe | | 809 | 0 | Schrittfrequenz für den TV-Effekt: 10msec | | 810 | 16 = 16+0 | Direktes ein- bzw. ausschalten der LEDs | | 811 | 0 | Nicht benötigt | Dazu muß noch das LED Mapping gesetzt werden, zum Beispiel wie folgt: ^ Pos | 24 | 25 | 26 | 27 | ^ CV | 892 | 893 | 894 | 895 | ^ Wert/LEE | 36 | 37 | 38 | 39 | Die Positionen 24 bis 25 werden entsprechend den 4 Elementen des Effektes belegt. Mit dem Nodescripting Wizard und dem Script "NeoEWS: Konfiguration einer Lichtgruppe für Modus 11: TV-Simulation" geht dies ganz einfach: {{ :onews:wizard_grp4_tv.png?600 |}} Mit der Checkbox "Benutze RGB-LEDs" werden in diesem Fall auch gleich die Farben richtig gesetzt. ---- ==== TV-Simulation mit einzelner RGB(W)-LED ==== Die vorher beschriebene [[onews:examples_onewsi#tv-simulation|TV-Simulation]] benötigt im Farbmodus 4 Lightports und 4 LEDs. Um dies auf einen Lightport und 1 LED zu reduzieren wurde der Modus 15 hinzugefügt. Dieser erfordert einen aktivierten Farbmodus für den gewählten Stripe. Falls dies nicht der Fall ist, wird eine Fehlermeldung generiert (Erst ab Version 1.12 Build 4066 des Wizard wird diese unterstützt). Für diese TV-Simulation sind nur wenige Parameter zu setzen: Vorbedingung: Aktiver Farbmodus (Bit 1 bzw. Bit 4 in CV 1135). CVs der gewählten Lichtgruppe: * Modus: 15 * Erste LED/Farbe der Gruppe: //Hier einen Lightport auswählen der für diesen Effekt verwendet werden soll// * Letzte LED/Farbe der Gruppe: 0 //(nicht benutzt)// * Geschwindigkeitsfaktor: 0 * An/Aus-Verhalten: 16 //Direktes Ein- und Ausschalten des Lightports// * Option: 0 //(nicht benutzt)// Beim gewählten Lightport die Helligkeit und eine dynamische Farbe auswählen. * Farbe: // Um verschiedene Farben im Effekt zu haben muss eine dynamische Farbe verwendet werden, Bereich 32-51 // * Helligkeit für Zustand 'an': 255 * Helligkeit für Zustand 'aus': 0 Und abschließend muss der Lightport noch einer LED zugeordnet werden: * Siehe CVs für die LED Zuordnung Wenn dann der Effekt über den Switchport # eingeschaltet wird, läuft der Effekt entsprechend ab. Es gibt auch ein Knotenscript mit dem die Konfiguration noch weiter vereinfacht wird. Dort ist nur ein Teil der Parameter einzugeben, die übrigen werden automatisch gesetzt: {{:onews:tv-singleled-skript-selection.png?400}} {{:onews:tv-singleled-skript.png?400}} Der Effekt sucht sich aus der Konfiguration (an welchem Kanal wird er angezeigt, ist der Kanal auf RGB oder RGBW konfiguriert) selbständig heraus ob die LED als RGB oder RGBW angesteuert wird. ---- ==== Ampel ==== Eine Ampel mit Fußgängersignalen soll konfiguriert werden (Gruppe 2): ^ CV ^ Wert ^ Bedeutung ^ | 794 | 135=128+7 | Bit 7 gesetzt für endlosen Ablauf, Bit 2+1+0 für Modus Ampel+Fußgänger | | 795 | 0 | Erstes Light Engine Element der Gruppe | | 796 | 9 | Letztes Light Engine Element der Gruppe | | 797 | 49 | Grundschritt 0,5sec (zum Beispiel Dauer Gelbphase) | | 798 | 50=48+2 | Gedimmtes ein- bzw. ausschalten der LEDs | | 799 | 20 | Grünphase 20*Grundschritt = 10sec | Die ersten 3 Light Engine Elemente sind für die erste Fahrtrichtung, danach folgen die 3 Elemente für die Querrichtung. Und dahinter dann 2 * 2 Elemente für die Fußgänger. Um alle Ampeln mit eigenen LED-Ausgängen zu versorgen kann das LED-Mapping wie folgt gesetzt werden.: ^ Pos | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ^ CV | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | ^ Wert/LEE | 0 | 1 | 2 | 0 | 1 | 2 | 3 | 4 | 5 | 3 | 4 | 5 | 6 | 7 | 6 | 7 | 8 | 9 | 8 | 9 | Mit dem Nodescripting Wizard und dem Script „NeoEWS: Konfiguration einer Lichtgruppe für Modus 5ff: Ampel“ ist dies auch möglich: {{ :onews:wizard_grp2_trafficlights1.png |}} {{ :onews:wizard_grp2_trafficlights2.png |}} {{ :onews:wizard_grp2_trafficlights3.png |}} {{ :onews:wizard_grp2_trafficlights4.png |}} ---- ==== Regenbogen ==== Mit den WS2812 RGB-LEDs (oder auch den RGBW-LEDs SK6812) kann man den Regenbogen-Effekt verwenden. Bei diesem durchlaufen die zur Gruppe gehörenden Lightports den in der NeoEWS verfügbaren Farbkreis. In dem folgenden Beispiel sind 256 LEDs (in einer 32*8-Matrix) mit dem Regenbogen-Effekt beaufschlagt. Die ersten 56 LEDs sind 56 Lightports zugeordnet, jeweils mit einem Farbabstand von 4 (somit wird der gesamte Umfang des Farbkreises in der Gruppe zu Anzeige gebracht). Dadurch können die nächsten 56 LEDs ebenso den ersten 56 Lightports zugeordnet werden, usw. Bis schließlich alle 256 LEDs dieser Gruppe angehören. Hier das Ergebnis: {{youtube>vD8yIIS0wgw}} Und hier ein kleines Tutorial das die Erstellung des Effektes Regenbogen für die ersten 56 LEDs des Stripes zeigt: {{youtube>QLkPAp1YmeM}} ---- ==== Tag/Nacht Ablauf ==== Ab Version 2.0.0 ist es möglich dynamische Farben zu verwenden (bis 1.x.x sind nur Farben möglich die vorher per CV einzustellen sind). Mit Hilfe des neuen Gruppeneffekt 65 kann nun zum Beispiel ein Sonnenaufgang bzw. Sonnenuntergang erzeugt werden (siehe Nodescript NeoControlEWS_groups_daynight.nodescript). === Hintergrund === Der Effekt 65 bietet einen gleichmäßigen Farbwechsel über einen langen Zeitraum. Dazu wird ein Farbbereich definiert (in diesem Fall werden drei Farben definiert: Blau, Rot, Weiß) die in den Gruppeneffekten nacheinander durchlaufen werden. Es werden 4 Makros erstellt mit denen die einzelnen Tag/Nacht-Zustände bzw. Übergänge gesteuert werden können. Dies basiert auf diesem [[https://forum.opendcc.de/viewtopic.php?f=81&t=6430&start=15#p69446|Thread im Forum]] Prinzipiell wird nur ein Lightport benötigt, für einen besonderen Effekt (siehe unten "örtlicher Effekt") können auch mehr verwendet werden. Die nachfolgende Beschreibung bezieht sich auf die Verwendung von einem Lightport. Wenn mehere LEDs leuchten sollen, dann kann dies über die Zuordnungstabelle eingestellt werden. === Makro 0: Tag === Mit diesem Makro wird die dynamische Farbe auf weiß gestellt. Dazu wird ein Gruppeneffekt benötigt der nur eine Farbe zugewiesen bekommt und somit einfach nur die Farbe stellt. Das Makro startet dann den Gruppeneffekt und schaltet anschließend die LED ein. === Makro 1: Tag/Nacht Übergang === Dieses Makro schaltet zunächst einen Gruppeneffekt aus um den gegebenen Farbbereich (Blau, Rot, Weiß) rückwärts zu durchlaufen. Damit dies auch sichtbar ist, wird direkt im Anschluß die LED eingeschaltet. Anschließend wird 3 Minuten gewartet um dann den Übergang von Blau nach Schwarz mit einem weiteren Gruppeneffekt zu starten (auch dieser wird ausgeschaltet). Damit die Rückmeldung per Accessory erst kommt wenn dieser Gruppeneffekt beendet ist, wird darauf noch gewartet. === Makro 2: Nacht/Tag Übergang === Der Ablauf entspricht Makro 1, nur das die Reihenfolge der Gruppeneffekte umgedreht wird und diese eingeschaltet werden. === Makro 3: Nacht === Im letzten Makro wird zunächst der Lichtausgang abgeschaltet und dann werden alle anderen Makros angehalten. Mit dem Nodescript können auch passende Accessories erstellt werden. === Anzahl Accessories = 0 === Es werden keine Accessories durch das Nodescript erstellt. === Anzahl Accessories = 1 === Es wird ein Accessory mit 4 Begriffen erstellt. === Anzahl Accessories = 2 === Es werden 2 Accessories mit je 2 Begriffen erstellt. Das erste Accessory ermöglicht die Ansteuerung der Tag/Nacht-Übergänge. Mit dem zweiten Accessory werden die Zustände Tag bzw. Nacht eingestellt. === Nodescript für Tag/Nacht Ablauf === Die oben beschriebenen Makros, Accessories und weitere notwendige Einstellungen können mit diesem Nodescript erstellt werden: {{ :onews:wizard_daynight_ui.png |}} Mit den Default-Einstellungen kann nun ein Tag/Nacht Ablauf programmiert werden. Wenn die vorgeschlagenen Ressourcen schon benutzt werden, kann eine entsprechende Anpassung erfolgen. Falls Werte außerhalb des sinnvollen/erwarteten Bereichs verwendet werden, wird anschließend eine Fehlermeldung angezeigt. Mit "Zurück" kommt man wieder auf die Eingabemaske, muss dann aber leider alle Eingaben erneut vornehmen. === Örtlicher Effekt === Über den Parameter "Anzahl der Lightports" kann der Tag/Nacht Ablauf auf mehreren Lightports zeitlich verteilt werden. Wenn die zugehörigen LEDs dann von "West" nach "Ost" angeordnet werden, gehen zunächst die LEDs im Westen auf und werden dort früher heller als die LEDs die sich weiter östlich befinden. Aber mit der Verwendung dieser Funktion werden die benötigten Ressourcen für Gruppeneffekte, dynamische Farben und Lightports entsprechend vervielfacht. ===== Makros ===== ==== Hausbeleuchtung mit Fernseheffekt ==== Weiter oben wurde die Konfiguration der Hausbeleuchtung beschrieben. Weiterhin gibt es den Gruppeneffekt für eine TV-Simulation. Wenn nun ein Haus beleuchtet werden soll bei dem nicht nur die Zimmerbeleuchtung sondern zusätzlich auch eine TV-Simulation mit einem Befehl eingeschaltet werden soll, so kann man dies über zwei Makros erreichen. Das erste Makro schaltet in zwei aufeinanderfolgenden Schritten die beiden Gruppeneffekte ein: {{ :onews:makro_haustv_an.png |}} Das zweite Makro schaltet dann beide Gruppeneffekte wieder aus: {{ :onews:makro_haustv_aus.png |}} Diese beiden Makros können mit einem Accessory verknüpft werden. {{ :onews:acc_haustv.png |}} Hinweis: Auch wenn die beiden Effekte nun zusammen ein- und ausgeschaltet werden, können die beiden Gruppen unabhängig voneinander direkt ein- bzw. aus geschaltet werden. ---- ===== Accessory LEDmapped ===== ==== Ampel ==== Wenn die Ampelphasen vom Host-Programm direkt gesteuert werden können/sollen, kann die Ampel-Steuerung dem Host-Programm überlassen werden. Die einzelnen Ampelphasen können dann über ein Accessory gesteuert werden. In diesem Beispiel werden die LEDs einer Ampel wie folgt an die WS2811 angeschlossen: {{ :onews:accessory_ampel.png |}} Die Ampeln A und D sowie B und C werden identisch geschaltet. Somit müssen 6 LEDs gesteuert werden, diese sind hier wie im Bild gezeigt an den Positionen 0 bis 5. Das Accessory 0 mit den Lightports 10 bis 15 soll verwendet werden. Zunächst wird die Grundkonfiguration für das Accessory festgelegt: ^ CV ^ Wert ^ Bedeutung ^ | 1139 | 0x26 = 32+6 = 38 | Die oberen 4 Bit stehen für den Lichteffekt, die 2 (bzw. 32) bedeutet gedimmtes Ein- und Ausschalten \\ die unteren 4 Bit geben die Anzahl der betroffenen Light Engine Elements an, hier 6 | | 1140 | 0x00 = 0 | Das erste Light Engine Element. Da 6 benötigt werden, folgen noch 5 weitere | | 1141 | 0x14 = 20 | 200ms Pause zwischen den Übergängen | Die Bitmuster für jeden einzelnen Aspekt werden in den folgenden CVs festgelegt: ^ Phase ^ ^ A rot \\ Bit 0 ^ A gelb \\ Bit 1 ^ A grün \\ Bit 2 ^ B rot \\ Bit 3 ^ B gelb \\ Bit 4 ^ B grün \\ Bit 5 ^ ^ CV ^ Wert ^ | 1 - Alle rot ^ | 1 | 0 | 0 | 1 | 0 | 0 ^ | 487 | 0x09 = 9 | | 2 - RotGelb für AD ^ | 1 | 1 | 0 | 1 | 0 | 0 ^ | 488 | 0x0B = 11 | | 3 - Grün für AD ^ | 0 | 0 | 1 | 1 | 0 | 0 ^ | 489 | 0x0C = 12 | | 4 - Gelb für AD ^ | 0 | 1 | 0 | 1 | 0 | 0 ^ | 490 | 0x0A = 10 | | 5 - RotGelb für BC ^ | 1 | 0 | 0 | 1 | 1 | 0 ^ | 491 | 0x19 = 25 | | 6 - Grün für BC ^ | 1 | 0 | 0 | 0 | 0 | 1 ^ | 492 | 0x21 = 33 | | 7 - Gelb für BC ^ | 1 | 0 | 0 | 0 | 1 | 0 ^ | 493 | 0x11 = 17 | | 8 - Alle aus ^ | 0 | 0 | 0 | 0 | 0 | 0 ^ | 494 | 0x00 = 0 | Die Light Engine Elemente werden wie folgt auf die Ausgänge der WS2811-Bausteine gemapped: ^ Ausgang | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ^ WS-Baustein | #1 \\ G | #1 \\ R | #1 \\ B | #2 \\ G | #2 \\ R | #2 \\ B | #3 \\ G | #3 \\ R | #3 \\ B | #4 \\ G | #4 \\ R | #4 \\ B | ^ Ampel/Farbe | A Rot | A Gelb | A Grün | B Rot | B Gelb | B Grün | C Rot | C Gelb | C Grün | D Rot | D Gelb | D Grün | ^ CV | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | ^ Wert | 10 | 11 | 12 | 13 | 14 | 15 | 13 | 14 | 15 | 10 | 11 | 12 | Dazu muß der WS2811-Modus mit Einzelbitsteuerung gesetzt werden, dazu ist folgende Konfiguration notwendig (aus [[onews:onewsi#Grundkonfiguration|NeoControl EWS - Grundkonfiguration]]): ^Anwendung ^CV 1135^ |Ein Strang mit WS2811 Bausteinen an einer NeoControl HW angeschlossen, die LEDs der WS2811 sollen einzeln angesteuert werden (nur max. 85 WS2811!)|0b00000001 = 0x01| Mit dem Nodescripting Wizard und dem Script „NeoEWS: Konfiguration eines Accessories für direkte LED-Ansteuerung“ sieht das wie folgt aus: {{ :onews:wizard_acc0_trafficlights1.png |}} {{ :onews:wizard_acc0_trafficlights2.png |}} Die restlichen Ausgänge der WS-Bausteine müssen noch angepasst werden: ^ Ausgang | 8 | 9 | 10 | 11 | ^ WS-Baustein | #3 \\ B | #4 \\ G | #4 \\ R | #4 \\ B | ^ Ampel/Farbe | C Grün | D Rot | D Gelb | D Grün | ^ CV | 886 | 887 | 888 | 889 | ^ Wert | 15 | 10 | 11 | 12 | ----