Étape 2: Liste de le défi
Limitée de Pixels
En taille 8 x 6, de la police si l’affichage 1 ligne 8 caractères nécessitent 8 x 6 x 8 = 384 pixels
Dans U8glib, une police plus petite est de 6 x 5, afficheur 4 caractères requièrent toujours 6 x 5 x 4 = 120 pixels
Mais je veux essayer affichant message (HELLO WORLD!) utiliser seulement 60 pixels.
Limitée des broches e/s
Certains circuits de matrice de LED nécessitent IO = largeur + hauteur, mais ATtiny13A n’ai que 5 broches d’e/s. J’espère que WS2812 bande nécessitent seulement 1 broche e/s pour le conduire.
Flash limitée
J’ai essayé quelques bibliothèque Arduino WS2812, de tout exemple excès ATtiny13A 1 KB limite. light_ws2812 est la plus petite, si tout va bien il a sample code direct compiler avec gcc-avr, c’est beaucoup plus petit !
Et puis binaire de polices est un autre consommateur de mémoire, taille de police 8 x 6 97 caractères ASCII l’utilisation (8 x 6) / 8 x 97 = 582 octets !
RAM limité
Dans tous les WS2812 library, il nécessite une mémoire tampon pleine image bitmap en tant que paramètre. tampon de RVB 60 pixel exigent 60 x 3 = 180 octets, mais ATtiny13A n’ai que 64 octets de RAM ! Elle excès trop, j’ai presque abandonner !
J’espère light_ws2812 code de la bibliothèque est facile à lire et j’ai trouvé que je peux stocker uniquement une bitmap mono et retour dynamique la valeur de la couleur par une fonction.
Mais il a encore un autre défi, depuis l’appel de fonction chaque fois avant d’envoyer la valeur 8 bits à WS2812, si la fonction ne peut fonctionner plus de 50 nous ou il traitera comme un nouveau cycle. c'est-à-dire ne pas envoyer des données à tous les 60 LEDs.
Afficher la consommation d’énergie
Conformément à la spécification, chaque WS2812 peut consommer environ 60 mA puissance, 60 pixels peuvent tirer 3. 6 A ; 384 pixels peuvent attirer plus de 20 A !
Dans mon exemple, la valeur de couleur nettement inférieure à la valeur maximale possible (255), la valeur maximale de lumière que j’utilise est donc 7 seulement. Il peut garder la plate-forme seul retrait inférieur à 30 mA, tandis qu’alimenté par batterie Lipo.