HowTo: pxlBlck – Animationen konfigurieren und anzeigen

Mithilfe des pxlBlcks könnt Ihr Euch auf verschiedenen Wegen über Ereignisse informieren lassen. Eine dieser Möglichkeiten besteht darin sich zuvor eingestellte Icons anzeigen lassen zu können.

Leider funktioniert diese Möglichkeit nur auf LED-Matrizen mit einer Höhe größer als eins, also nicht auf den pxlBlcks welch „nur“ einen LED-Streifen bzw. eine 1×60 LED-Matrix verwenden.

Deswegen gibt es neben der Möglichkeit Icons anzuzeigen auch noch die Möglichkeit Animationen anzuzeigen. Diese Animationen funktionieren auf allen vom pxlBlck-plugin unterstützten LED-Matrizen.


Grundlagen zu Animationen

Animationen können nur über den korrekten Befehl angezeigt werden. Das heißt, dass diese auch nur Ereignisbezogen ausgeführt werden.

Zum Beispiel könnt Ihr eine Animation auslösen, wenn eine bestimmte nachricht per MQTT an den pxlBlck gesendet wird, ein angeschlossener Sensor einen Bestimmten Zustand eingenommen hat aber auch zum Beispiel dann, wenn der pxlBlck gestartet ist oder die Verbindung zum WLAN verloren hat. Ein paar Beispiele dazu werde ich unter dem Tag pxlBlckUsecase sammeln. Ihr findet eine Liste dieser Usecases unter https://nerdiy.de/tag/pxlblckusecase/

Im folgenden ein paar Grundlagen zum Grundsätzlichen Aufbau des Befehls zum Auslösen von Animationen auf dem pxlBlck. Wie Ihr diesen Befehl an den pxlBlck senden könnt ist auch in dem Artikel ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen beschrieben. Grundsätzliche Informationen zum Aufbau der Befehle des pxlBlck könnt Ihr dazu auch in diesem Artikel nachlesen pxlBlck – Befehle zur Konfiguration des pxlBlck

Befehlsname

pbani

Befehlsübersicht

pbani,[animation_type 1-6],[color_on_red 0-255],[color_on_green 0-255],[color_on_blue 0-255],[color_off_red 0-255],[color_off_green 0-255],[color_off_blue 0-255],[animation_delay 0-500],

Parameter-Beschreibung

ParameternameBeschreibungErlaubter Wertebereich
animation_typeDieser parameter legt den Typ der Animation fest. Eine Übersicht über die Möglichen Animationen findet Ihr in der nachfolgenden Tabelle.1-6
color_on_redDieser Parameter bestimmt die Helligkeit der Roten Farbe bei der Eingangsanimation.0-255
color_on_greenDieser Parameter bestimmt die Helligkeit der Grünen Farbe bei der Eingangsanimation.0-255
color_on_blueDieser Parameter bestimmt die Helligkeit der Blauen Farbe bei der Eingangsanimation.0-255
color_off_redDieser Parameter bestimmt die Helligkeit der Roten Farbe bei der Ausgangsanimation.0-255
color_off_greenDieser Parameter bestimmt die Helligkeit der Grünen Farbe bei der Ausgangsanimation.0-255
color_off_blueDieser Parameter bestimmt die Helligkeit der Blauen Farbe bei der Ausgangsanimation.0-255
animation_delayHiermit könnt Ihr die Zeitdauer für die Animation festlegen. Sie wird in Millisekunden angegeben und beschreibt die Anzeigedauer pro Pixel.0-500

Übersicht der Animationen

IDBeschreibung
1Die LED-Matrix wird von Rechts mit der Eingangsfarbe gefüllt und dann nach Links mit der Ausgangsfarbe überschrieben.
2Die LED-Matrix wird von Links mit der Eingangsfarbe gefüllt und dann nach Rechts mit der Ausgangsfarbe überschrieben.
3Eine Vertikale Linie (in Eingangsfarbe) wandert von Links nach Rechts (in Ausgangsfarbe).
4Eine Vertikale Linie (in Ausgangsfarbe) wandert von Links nach Rechts (in Eingangsfarbe).
5Die LED-Matrix wird von Beiden Seite zur Mtte hin gefüllt und dann wieder aufgelöst.
6Die LED-Matrix wird von der Mitte aus gefüllt und dann wieder aufgelöst.

Infos zur Implementierung

Die Ausführung von Animationen ist so implementiert, dass während die Animation angezeigt wird keine anderen Aufgaben ausgeführt werden können. Das hat zur Folge, dass während der Anzeige einer Animation zum Beispiel das Laden des Webmenüs des pxlBlck nicht fortgesetzt werden kann. Außerdem werden während der Ausführungszeit der Animation auch keine anderen Befehle bearbeitet. Diese sollten aber nach Abschluss der Animation ausgeführt werden.


„Cooldown-Time“

Die Bearbeitung von Animationen ist zeitlich begrenzt. Das heißt das der pxlBlck nach dem Empfang eines Befehls zur Anzeige einer Animation eine zeit lang weitere Befehle zur Animationsanzeige ignoriert.

Diese Zeitspanne ist im Quellcode festgelegt und lässt sich im Betrieb nicht verändern. Wenn Ihr diese ändern wollt: Sie ist mit dem #define PXLBLCK_ANIMATION_COOLDOWN_TIME definiert.


Beispiele

Im folgenden Absatz sind ein paar Beispiel-Befehle und deren Ansicht auf den verschiedenen pxlBlcks aufgeführt.


Infos:

  • Animationstyp: 1
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 150,0,0
  • Ausgangsfarbe (RGB Wert): 0,0,150

Befehl:

pbani,1,150,0,0,0,0,150,50


Infos:

  • Animationstyp: 2
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,2,50,50,50,0,0,50,50,


Infos:

  • Animationstyp: 3
  • Verzögerung: 150ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,3,50,50,50,0,50,0,150,


Infos:

  • Animationstyp: 4
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,4,50,50,50,0,50,0,50,


Infos:

  • Animationstyp: 5
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,0,50

Befehl:

pbani,5,50,50,50,0,0,50,50,


Infos:

  • Animationstyp: 6
  • Verzögerung: 20ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,6,50,50,50,0,50,0,50,


Infos:

  • Animationstyp: 5
  • Verzögerung: 20ms (20ms ist die genutzte Standardverzögerung, falls dieser Parameter auf Null gesetzt wird)
  • Eingangsfarbe (RGB Wert): 150,0,0
  • Ausgangsfarbe (RGB Wert): 0,0,0

Befehl:

pbani,5,150,0,0,0,0,0,


Infos:

  • Animationstyp: 1
  • Verzögerung: 20ms (20ms ist die genutzte Standardverzögerung, falls dieser Parameter auf Null gesetzt wird)
  • Eingangsfarbe (RGB Wert): 100,100,100
  • Ausgangsfarbe (RGB Wert): 0,0,0

Befehl:

pbani,1,100,100,100,0,0,0,


Infos:

  • Animationstyp: 1
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 150,0,0
  • Ausgangsfarbe (RGB Wert): 0,0,150

Befehl:

pbani,1,150,0,0,0,0,150,50


Infos:

  • Animationstyp: 3
  • Verzögerung: 150ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,3,50,50,50,0,50,0,150


Infos:

  • Animationstyp: 4
  • Verzögerung: 50ms
  • Eingangsfarbe (RGB Wert): 50,50,50
  • Ausgangsfarbe (RGB Wert): 0,50,0

Befehl:

pbani,4,50,50,50,0,50,0,50


Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

Fab

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.