HowTo: pxlBlck – Animaties configureren en weergeven

Met behulp van pxlBlck kun je op verschillende manieren op de hoogte worden gehouden van gebeurtenissen. Een van deze mogelijkheden is het weergeven van eerder ingestelde pictogrammen.

Helaas werkt deze optie alleen op LED-matrices met een hoogte groter dan één, dus niet op de pxlBlcks die “slechts” een LED-strip of een 1×60 LED-matrix gebruiken.

Daarom is er naast de mogelijkheid om pictogrammen weer te geven ook de mogelijkheid om animaties weer te geven. Deze animaties werken op alle LED matrices die worden ondersteund door de pxlBlck-plugin.


Basisprincipes van animatie

Animaties kunnen alleen worden weergegeven via het juiste commando. Dit betekent dat ze ook alleen event-gerelateerd worden uitgevoerd.

Je kunt bijvoorbeeld een animatie activeren wanneer een bepaald bericht via MQTT naar de pxlBlck wordt verzonden, een verbonden sensor een bepaalde status heeft aangenomen, maar bijvoorbeeld ook wanneer de pxlBlck is gestart of de verbinding met het WLAN is verbroken. Ik zal een aantal voorbeelden verzamelen onder de tag pxlBlckUsecase. Je kunt een lijst van deze use cases vinden onder https://nerdiy.de/tag/pxlblckusecase/

Hier zijn een paar basisprincipes over de basisstructuur van het commando voor het starten van animaties op de pxlBlck. Hoe je dit commando naar de pxlBlck kunt sturen, staat ook beschreven in het artikel ESPEasy - Voer opdrachten en acties uit via HTTP, MQTT, UDP en rechtstreeks beschreven in dit artikel. Basisinformatie over de structuur van de pxlBlck commando's is ook te vinden in dit artikel pxlBlck - Opdrachten voor het configureren van de pxlBlck

commando naam

pbani

commando overzicht

pbani,[animatie_type 1-6],[color_on_red 0-255],[kleur_op_groente 0-255],[kleur_op_blauw 0-255],[kleur_uit_rood 0-255],[kleur_uit_groen 0-255],[kleur_uit_blauw 0-255],[animatie_vertraging 0-500],

Parameterbeschrijving

parameternaamBeschrijvingToegestaan bereik van waarden
animatie_typeDeze parameter bepaalt het type animatie. Een overzicht van de mogelijke animaties vind je in de volgende tabel.1-6
kleur_op_roodDeze parameter bepaalt de helderheid van de rode kleur in de ingangsanimatie.0-255
kleur_op_groenteDeze parameter bepaalt de helderheid van de groene kleur in de invoeranimatie.0-255
kleur_op_blauwDeze parameter bepaalt de helderheid van de blauwe kleur in de ingangsanimatie.0-255
kleur_uit_roodDeze parameter bepaalt de helderheid van de rode kleur in de eerste animatie.0-255
kleur_uit_groenDeze parameter bepaalt de helderheid van de groene kleur in de uitvoeranimatie.0-255
kleur_uit_blauwDeze parameter bepaalt de helderheid van de blauwe kleur in de eerste animatie.0-255
animatie_vertragingHier kun je de duur van de animatie definiëren. Deze wordt opgegeven in milliseconden en beschrijft de weergaveduur per pixel.0-500

Overzicht van de animaties

ID kaartBeschrijving
1De LED-matrix wordt gevuld met de ingangskleur van rechts en vervolgens overschreven met de uitgangskleur van links.
2De LED-matrix wordt gevuld met de ingangskleur van links en vervolgens overschreven met de uitgangskleur van rechts.
3Een verticale lijn (in invoerkleur) beweegt van links naar rechts (in uitvoerkleur).
4Een verticale lijn (in bronkleur) beweegt van links naar rechts (in bronkleur).
5De LED-matrix wordt van beide kanten naar de matte toe gevuld en vervolgens weer opgelost.
6De LED-matrix wordt vanuit het midden gevuld en vervolgens weer opgelost.

Implementatie informatie

De uitvoering van animaties is zo geïmplementeerd dat er geen andere taken kunnen worden uitgevoerd terwijl de animatie wordt weergegeven. Dit betekent dat tijdens de weergave van een animatie bijvoorbeeld het laden van het webmenu van het pxlBlck niet kan worden voortgezet. Verder worden er geen andere opdrachten uitgevoerd tijdens de uitvoeringstijd van de animatie. Deze moeten echter worden uitgevoerd nadat de animatie is voltooid.


"Afkoeltijd"

De verwerking van animaties is beperkt in de tijd. Dit betekent dat na ontvangst van een commando om een animatie weer te geven, de pxlBlck verdere commando's om animaties weer te geven een tijdje negeert.

Deze tijdsperiode is gedefinieerd in de broncode en kan tijdens het gebruik niet worden gewijzigd. Als je deze wilt wijzigen: dit wordt gedefinieerd met de #define PXLBLCK_ANIMATION_COOLDOWN_TIME.


voorbeelden

In de volgende paragraaf staan enkele voorbeeldcommando's en hun zicht op de verschillende pxlBlcks.


Info:

  • Animatietype: 1
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 150,0,0
  • Uitvoerkleur (RGB-waarde): 0,0,150

commando:

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


Info:

  • Animatietype: 2
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Info:

  • Animatietype: 3
  • Vertraging: 150ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Info:

  • Animatietype: 4
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Info:

  • Animatietype: 5
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,0,50

commando:

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


Info:

  • Animatietype: 6
  • Vertraging: 20 ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Info:

  • Animatietype: 5
  • Vertraging: 20 ms (20 ms is de standaardvertraging die wordt gebruikt als deze parameter op nul wordt gezet).
  • Invoerkleur (RGB-waarde): 150,0,0
  • Uitvoerkleur (RGB-waarde): 0,0,0

commando:

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


Info:

  • Animatietype: 1
  • Vertraging: 20 ms (20 ms is de standaardvertraging die wordt gebruikt als deze parameter op nul wordt gezet).
  • Invoerkleur (RGB-waarde): 100,100,100
  • Uitvoerkleur (RGB-waarde): 0,0,0

commando:

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


Info:

  • Animatietype: 1
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 150,0,0
  • Uitvoerkleur (RGB-waarde): 0,0,150

commando:

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


Info:

  • Animatietype: 3
  • Vertraging: 150ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Info:

  • Animatietype: 4
  • Vertraging: 50ms
  • Invoerkleur (RGB-waarde): 50,50,50
  • Uitvoerkleur (RGB-waarde): 0,50,0

commando:

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


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.