Stap 2: Lijst van de uitdaging
Beperkte Pixels
In de tekengrootte 8 x 6, 1 nld 8 weergavetekens wenst 8 x 6 x 8 = 384 pixels
In U8glib, kleinste lettertype is 6 x 5, 4 weergavetekens vereisen nog steeds 6 x 5 x 4 = 120 pixels
Maar ik wil proberen bericht (HELLO WORLD!) gebruik slechts 60 pixels weer te geven.
Beperkte IO pinnen
Sommige LED matrix circuit vereisen IO = breedte + hoogte, maar ATtiny13A heb maar 5 IO pinnen. Hopelijk WS2812 strip alleen verlangen 1 IO-pin om te rijden.
Beperkte flash
Ik heb geprobeerd enkele Arduino WS2812 library, alle voorbeeld overtollige ATtiny13A 1 KB limiet. light_ws2812 is de kleinste, hopelijk het monster code direct compileren met avr-gcc, het is veel kleiner!
En dan lettertype binaire is een ander geheugen consument, 8 x 6 tekengrootte voor 97 ASCII-tekens gebruiken (8 x 6) / 8 x 97 = 582 bytes!
Beperkte RAM
In alle WS2812 bibliotheek vereist het een volledige bitmap-buffer als een parameter. 60 pixel RGB buffer moet 60 x 3 = 180 bytes, maar ATtiny13A hebben alleen 64 bytes RAM! Het overtollige teveel, ik bijna opgeven!
Hopelijk light_ws2812 bibliotheek code is makkelijk te lezen en ik vond dat ik kan alleen een mono bitmap en opslaan dynamische terugkeer de kleurwaarde van een functie.
Maar nog steeds een andere uitdaging, sinds de functieaanroep telkens voordat 8 bits waarde naar WS2812, dus de functie moet niet overreden 50 ons of het zal beschouwen als een nieuwe cyclus. dat wil zeggen niet om gegevens te verzenden naar alle 60 LEDs.
Weergave stroomverbruik
Volgens de specificatie elke WS2812 kan verbruiken ongeveer 60 mA stroom, 60 pixels kunnen tekenen 3.6 A; 384 pixels kunnen tekenen meer dan 20 A!
Zo is de maximale lichtwaarde die ik gebruik in mijn voorbeeld, de kleurwaarde die veel lager dan de grootst mogelijke waarde (255), 7 alleen. het kan houden de enige tekenen van platform onder 30 mA terwijl gevoed door Lipo batterij.