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
parameternaam | Beschrijving | Toegestaan bereik van waarden |
---|---|---|
animatie_type | Deze parameter bepaalt het type animatie. Een overzicht van de mogelijke animaties vind je in de volgende tabel. | 1-6 |
kleur_op_rood | Deze parameter bepaalt de helderheid van de rode kleur in de ingangsanimatie. | 0-255 |
kleur_op_groente | Deze parameter bepaalt de helderheid van de groene kleur in de invoeranimatie. | 0-255 |
kleur_op_blauw | Deze parameter bepaalt de helderheid van de blauwe kleur in de ingangsanimatie. | 0-255 |
kleur_uit_rood | Deze parameter bepaalt de helderheid van de rode kleur in de eerste animatie. | 0-255 |
kleur_uit_groen | Deze parameter bepaalt de helderheid van de groene kleur in de uitvoeranimatie. | 0-255 |
kleur_uit_blauw | Deze parameter bepaalt de helderheid van de blauwe kleur in de eerste animatie. | 0-255 |
animatie_vertraging | Hier 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 kaart | Beschrijving |
---|---|
1 | De LED-matrix wordt gevuld met de ingangskleur van rechts en vervolgens overschreven met de uitgangskleur van links. |
2 | De LED-matrix wordt gevuld met de ingangskleur van links en vervolgens overschreven met de uitgangskleur van rechts. |
3 | Een verticale lijn (in invoerkleur) beweegt van links naar rechts (in uitvoerkleur). |
4 | Een verticale lijn (in bronkleur) beweegt van links naar rechts (in bronkleur). |
5 | De LED-matrix wordt van beide kanten naar de matte toe gevuld en vervolgens weer opgelost. |
6 | De 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. 🙂