Visa färgglada meddelande i begränsade resurser (2 / 9 steg)
Steg 2: Lista ut utmaningen
Begränsad pixlar
I storlek 8 x 6, om display 1 rad 8 tecken kräver 8 x 6 x 8 = 384 pixlar
I U8glib, minsta teckensnittet är 6 x 5, display 4 tecken kräver fortfarande 6 x 5 x 4 = 120 pixlar
Men jag vill försöka Visa meddelande (HELLO WORLD!) Använd endast 60 pixlar.
Begränsad IO pinnar
Vissa LED matrix krets kräver IO = bredd + höjd, men ATtiny13A har bara 5 IO pinnar. Förhoppningsvis WS2812 strip endast kräver 1 IO stift att köra den.
Begränsad flash
Jag har försökt några Arduino WS2812 bibliotek, alla exempel överskott ATtiny13A 1 KB gräns. light_ws2812 är den minsta, förhoppningsvis det har prov koden direkt kompilera med avr-gcc, det är mycket mindre!
Och sedan teckensnitt binary är ett annat minne konsumenten, 8 x 6 teckenstorlek för 97 ASCII-tecken använda (8 x 6) / 8 x 97 = 582 byte!
Begränsad RAM
I alla WS2812 bibliotek, det kräver en fullständig bitmapp buffert som en parameter. 60 pixel RGB buffert kräver 60 x 3 = 180 byte, men ATtiny13A har bara 64 byte RAM! Det överskott för mycket, jag nästan ge!
Förhoppningsvis light_ws2812 bibliotek koden är lätt att läsa och jag hittade jag kan lagra endast en mono bitmapp och dynamisk avkastning färgvärdet av en funktion.
Men fortfarande en annan utmaning, sedan funktionsanropet varje gång innan du skickar 8 bitar värde till WS2812, så funktionen måste inte köra över 50 oss eller det kommer att behandla som en ny cykel. dvs. kan inte skicka data till alla 60 lysdioder.
Visa strömförbrukning
Enligt specifikationen, varje WS2812 kan förbrukar cirka 60 mA ström, 60 pixlar kan dra 3.6 A; 384 pixlar kan dra över 20 A!
Så i mitt exempel, betydligt lägre än det högsta möjliga värdet (255) färgvärdet, är maxvärdet ljus jag använder 7 bara. Det kan hålla plattform bara dra under 30 mA medan drivs av Lipo batteri.