Created
December 28, 2013 13:30
-
-
Save jdiez17/8159524 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <avr/pgmspace.h> | |
| #define LAYER_TIME 3333 | |
| #define LAYER_BITS 16 | |
| #define FRAME_TIME 20 | |
| enum { | |
| ANIMATION_SCRIPTED, | |
| ANIMATION_RANDOM, | |
| ANIMATION_SENSING | |
| }; | |
| int mode = ANIMATION_SENSING; | |
| PROGMEM prog_uchar drip[] = | |
| { | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 30, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar reverse_drip[] = | |
| { | |
| B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001, 10, | |
| B1111,B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011, 10, | |
| B1111,B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111, 10, | |
| B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111, 10, | |
| B1111,B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111, 10, | |
| B1111,B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111, 10, | |
| B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111,B1111, 10, | |
| B1111,B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111,B1111, 10, | |
| B1111,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B1111,B1111, 10, | |
| B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0001,B1111,B1111,B1111, 10, | |
| B1100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B0000,B0000,B0000,B0011,B1111,B1111,B1111, 10, | |
| B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 30, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar diagonal[] = | |
| { | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 25, | |
| B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111, 25, | |
| B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000, 25, | |
| B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100, 15, | |
| B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010, 15, | |
| B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001, 15, | |
| B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000, 15, | |
| B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000, 15, | |
| B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000, 15, | |
| B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111, 15, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 25, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar spin[] = | |
| { | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100, 10, | |
| B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100, 10, | |
| B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100, 10, | |
| B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010,B0100,B0100,B0010,B0010, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001,B1000,B0100,B0010,B0001, 10, | |
| B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000,B0000,B1100,B0011,B0000, 10, | |
| B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar on_and_off[] = | |
| { | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0100,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0110,B0110,B0000,B0000,B0100,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1001,B0110,B0110,B1001,B0000,B0110,B0110,B0000,B0000,B0100,B0010,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1101,B0111,B1110,B1011,B1001,B0110,B0110,B1001,B0000,B0110,B0110,B0000,B0000,B0100,B0010,B0000, 10, | |
| B1111,B1111,B1111,B1111,B1101,B0111,B1110,B1011,B1001,B0110,B0110,B1001,B0000,B0110,B0110,B0000, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1101,B0111,B1110,B1011,B1001,B0110,B0110,B1001, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1101,B0111,B1110,B1011, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar snake[] = | |
| { | |
| B0000,B0000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1000,B1000,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1100,B1000,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1110,B1000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1110,B0000,B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0110,B0000,B0000,B0000,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0010,B0000,B0000,B0000,B0011,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0011,B0001,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0001,B0001,B0001,B0001,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0001,B0001,B0011,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1110,B0000,B0000,B0000,B1000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1100,B0000,B0000,B1000,B1000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B0000,B0000,B1100,B1000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1110,B1000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0111,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0001,B0011,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0001,B0001,B0000,B0001,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0001,B0000,B0000,B0011,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0111,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1110,B1000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1100,B1100,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1000,B1110,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0111,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0011,B0000,B0000, 10, | |
| B0000,B0001,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0001,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar wireframe[] = | |
| { | |
| B1111,B1001,B1001,B1111,B1001,B0000,B0000,B1001,B1001,B0000,B0000,B1001,B1111,B1001,B1001,B1111, 20, | |
| B0000,B0000,B0000,B0000,B0000,B0110,B0110,B0000,B0000,B0110,B0110,B0000,B0000,B0000,B0000,B0000, 20, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar rand_animation[] = | |
| { | |
| B1011,B0101,B1000,B1001,B1110,B0011,B0101,B1111,B0000,B0111,B1101,B0000,B1001,B0010,B0100,B1010, 10, | |
| B0111,B1001,B0101,B1001,B1000,B1101,B0101,B1011,B0111,B1001,B1111,B1001,B0101,B0000,B0111,B1110, 10, | |
| B1000,B1011,B0001,B1011,B1001,B1100,B1101,B0100,B0011,B1110,B0001,B0110,B1011,B0000,B1110,B1001, 10, | |
| B0101,B1001,B0001,B0001,B0001,B0001,B1011,B1001,B0100,B1000,B1111,B0110,B1001,B0001,B1110,B1100, 10, | |
| B0011,B1000,B1011,B1110,B0000,B0101,B0011,B0010,B1001,B1100,B0110,B0000,B1100,B1000,B0101,B0100, 10, | |
| B1111,B0001,B0100,B1001,B1110,B0101,B0101,B1111,B0000,B1001,B0001,B0000,B0011,B1101,B0010,B0010, 10, | |
| B1110,B1110,B1010,B1000,B1101,B1010,B0110,B1000,B0110,B1001,B0100,B0011,B1100,B0001,B0100,B0111, 10, | |
| B0111,B0000,B1011,B1001,B0010,B1110,B0001,B0010,B1011,B1000,B1101,B1011,B1110,B1010,B0000,B1110, 10, | |
| B1101,B0011,B0010,B0100,B1101,B0101,B1101,B0101,B1010,B0110,B0100,B0010,B0111,B0000,B1100,B1010, 10, | |
| B1001,B1011,B1001,B1101,B1100,B1010,B1011,B1010,B1100,B0100,B1011,B1001,B0101,B1010,B0000,B0001, 10, | |
| B1001,B0001,B0000,B1010,B0101,B0110,B1011,B0010,B1000,B1111,B0101,B1010,B1101,B1100,B1110,B1011, 10, | |
| B1000,B1111,B1111,B0111,B1101,B1110,B1011,B0101,B0001,B0101,B0010,B0100,B0110,B1110,B1110,B1101, 10, | |
| B1101,B1101,B0100,B0110,B0010,B1111,B1010,B0111,B0010,B0111,B1111,B1101,B0111,B0111,B0110,B0011, 10, | |
| B1001,B1101,B0000,B1011,B0110,B1001,B1100,B1010,B1001,B0001,B1001,B1001,B0000,B1000,B1110,B0011, 10, | |
| B1100,B0010,B1001,B1000,B1000,B0111,B1111,B1101,B0000,B0011,B0001,B0101,B0100,B0101,B1011,B0011, 10, | |
| B1010,B0101,B1100,B0010,B0111,B0010,B0101,B1001,B0001,B0000,B0111,B0100,B1100,B0101,B0101,B0010, 10, | |
| B0011,B1100,B0110,B1011,B0101,B0101,B1110,B1101,B0001,B0100,B1001,B1110,B0011,B0100,B0101,B0000, 10, | |
| B1100,B0011,B0110,B1110,B1101,B1111,B1010,B1100,B1111,B0101,B1100,B0111,B1011,B1110,B0101,B0110, 10, | |
| B0010,B0000,B0010,B1100,B1011,B0100,B1101,B0110,B1001,B1101,B0000,B1111,B1011,B0110,B0001,B0001, 10, | |
| B0010,B0010,B1001,B0011,B0110,B0011,B1111,B0000,B1110,B0011,B1010,B0010,B0110,B1111,B1100,B1011, 10, | |
| B1010,B0100,B1101,B1110,B1010,B0110,B0000,B0001,B0111,B1011,B1011,B1100,B1110,B0110,B0001,B1000, 10, | |
| B0010,B1010,B1011,B0011,B1110,B1111,B1000,B0111,B0100,B1010,B0110,B1110,B1001,B0111,B0010,B1111, 10, | |
| B1001,B1110,B0010,B0001,B1111,B1000,B1111,B0000,B1111,B1111,B0100,B1100,B1011,B0000,B0110,B1011, 10, | |
| B1010,B0010,B0110,B1110,B1100,B0100,B0001,B0011,B0111,B1001,B0001,B1111,B1101,B0010,B0101,B1111, 10, | |
| B1011,B0010,B0111,B1001,B1101,B1011,B1100,B0100,B1111,B1111,B0010,B0010,B0101,B0100,B1111,B1010, 10, | |
| B1100,B1001,B0100,B1011,B1001,B1011,B1100,B0000,B0011,B1100,B0010,B1101,B1011,B0000,B0011,B1110, 10, | |
| B0101,B0100,B0111,B0010,B0101,B0010,B0001,B1001,B0101,B0011,B1000,B0010,B1011,B0001,B1010,B1001, 10, | |
| B1011,B1001,B1001,B0010,B0101,B1101,B1110,B1011,B0011,B1001,B1010,B0111,B0011,B1101,B1011,B1000, 10, | |
| B1110,B0110,B0000,B0110,B0110,B0001,B1000,B0100,B0111,B0010,B1011,B0100,B1010,B1110,B0111,B0100, 10, | |
| B0110,B1010,B0100,B1110,B0101,B0000,B0000,B1100,B1011,B0011,B1110,B1101,B1111,B0100,B1001,B0011, 10, | |
| B1110,B1100,B0010,B0100,B0100,B1110,B1101,B1001,B1101,B1011,B1111,B0100,B1100,B1100,B0111,B1110, 10, | |
| B0010,B0001,B0111,B1110,B1110,B1000,B0101,B0110,B0010,B0111,B1001,B1000,B0110,B1011,B1111,B0000, 10, | |
| B0110,B0101,B1101,B1001,B0001,B1000,B0000,B0000,B0001,B1011,B1000,B0010,B0011,B0110,B1111,B1101, 10, | |
| B0010,B0100,B1101,B1001,B0010,B1011,B1001,B1000,B1011,B1001,B0101,B1000,B0110,B1100,B1110,B1111, 10, | |
| B0011,B1110,B0001,B0010,B1100,B1110,B0010,B0000,B1010,B0101,B0111,B1000,B0110,B1111,B1010,B1111, 10, | |
| B0001,B0111,B1001,B0010,B0110,B0111,B1101,B1011,B1001,B0000,B0100,B1010,B1100,B0110,B1100,B1000, 10, | |
| B0011,B0001,B1000,B0100,B0110,B1110,B0000,B1001,B0111,B0000,B0001,B1000,B1001,B0011,B0101,B0011, 10, | |
| B1010,B0101,B1110,B0111,B1100,B1111,B1011,B0100,B0011,B1111,B1001,B1111,B0101,B0100,B0001,B1111, 10, | |
| B0101,B1100,B0101,B0101,B0100,B1010,B1101,B1000,B0111,B1101,B0110,B0000,B1011,B1111,B1010,B0101, 10, | |
| B1110,B0111,B1111,B1010,B1000,B0001,B1010,B1010,B1000,B1100,B1100,B1010,B0001,B0011,B0101,B0101, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar surfaces[] = | |
| { | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,B1111, 10, | |
| B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111, 10, | |
| B1111,B0000,B0000,B0000,B1111,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B1111,B0000, 10, | |
| B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000, 10, | |
| B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000, 10, | |
| B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000, 10, | |
| B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B1111, 10, | |
| B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100,B0000,B0000,B0011,B1100, 10, | |
| B0000,B0001,B0010,B1100,B0000,B0001,B0010,B1100,B0000,B0001,B0010,B1100,B0000,B0001,B0010,B1100, 10, | |
| B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000,B0001,B0010,B0100,B1000, 10, | |
| B0010,B0010,B0100,B1000,B0010,B0010,B0100,B1000,B0010,B0010,B0100,B1000,B0010,B0010,B0100,B1000, 10, | |
| B0100,B0100,B0100,B1000,B0100,B0100,B0100,B1000,B0100,B0100,B0100,B1000,B0100,B0100,B0100,B1000, 10, | |
| B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000, 10, | |
| B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100, 10, | |
| B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010, 10, | |
| B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001, 10, | |
| B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010, 10, | |
| B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0010,B0010,B0010,B0010,B0100,B0100,B0100,B0100, 10, | |
| B0001,B0001,B0001,B0001,B0010,B0010,B0010,B0010,B0100,B0100,B0100,B0100,B1000,B1000,B1000,B1000, 10, | |
| B0001,B0001,B0001,B0001,B0010,B0010,B0010,B0010,B1100,B1100,B1100,B1100,B0000,B0000,B0000,B0000, 10, | |
| B0001,B0001,B0001,B0001,B1110,B1110,B1110,B1110,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111,B0000,B0000,B0000,B0000, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 10, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar turn_on[] = | |
| { | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000, 30, | |
| B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B0000, 5, | |
| B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1001,B0000,B0000,B0000,B0000,B0000, 5, | |
| B0100,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B1001,B0000,B0000,B0000,B0000,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0001,B1001,B0000,B0000,B0000,B0000,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B0000,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B1000,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0000,B0000,B0000,B0000,B1010,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0100,B0000,B0000,B0000,B1010,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0000,B0000,B0100,B0100,B0000,B0000,B1000,B1010,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0100,B0000,B0100,B0100,B0000,B0000,B1000,B1010,B0001,B1001,B0000,B0000,B0000,B0001,B0000, 5, | |
| B0100,B0100,B0000,B0100,B0100,B0000,B0000,B1000,B1010,B0001,B1001,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0000,B1000,B1010,B0001,B1001,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0001,B1000,B1010,B0001,B1001,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0101,B1000,B1010,B0001,B1001,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0101,B1000,B1110,B0001,B1001,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0001,B0001,B0000, 5, | |
| B1100,B0100,B0000,B0100,B0100,B0000,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0001,B0001,B0100, 5, | |
| B1100,B0100,B0000,B0100,B1100,B0000,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0001,B0001,B0100, 5, | |
| B1100,B0100,B0000,B0100,B1100,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0001,B0001,B0100, 5, | |
| B1100,B0100,B0000,B0100,B1100,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0101,B0001,B0100, 5, | |
| B1100,B0100,B0000,B0110,B1100,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0101,B0001,B0100, 5, | |
| B1100,B0100,B0000,B0110,B1110,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0101,B0001,B0100, 5, | |
| B1100,B0100,B0000,B1110,B1110,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B0101,B0001,B0100, 5, | |
| B1100,B0100,B0000,B1110,B1110,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B1101,B0001,B0100, 5, | |
| B1100,B0100,B0000,B1110,B1110,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B0000,B1101,B1001,B0100, 5, | |
| B1100,B0100,B0000,B1110,B1110,B0001,B0101,B1000,B1110,B0001,B1101,B0000,B1000,B1101,B1001,B0100, 5, | |
| B1100,B0100,B0000,B1110,B1110,B0001,B0101,B1001,B1110,B0001,B1101,B0000,B1000,B1101,B1001,B0100, 5, | |
| B1100,B0100,B0000,B1111,B1110,B0001,B0101,B1001,B1110,B0001,B1101,B0000,B1000,B1101,B1001,B0100, 5, | |
| B1100,B0100,B0000,B1111,B1110,B0001,B0101,B1001,B1110,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1100,B0100,B0000,B1111,B1110,B0001,B0101,B1001,B1111,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0100,B0000,B1111,B1110,B0001,B0101,B1001,B1111,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0110,B0000,B1111,B1110,B0001,B0101,B1001,B1111,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0110,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0001,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0011,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0111,B1101,B0000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0111,B1101,B1000,B1000,B1111,B1001,B0100, 5, | |
| B1110,B0111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0111,B1101,B1000,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0000,B1111,B1110,B0001,B0101,B1011,B1111,B0111,B1101,B1000,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0010,B1111,B1110,B0001,B0101,B1011,B1111,B0111,B1101,B1000,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0010,B1111,B1110,B0001,B0111,B1011,B1111,B0111,B1101,B1000,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0010,B1111,B1110,B0001,B0111,B1011,B1111,B0111,B1101,B1010,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0010,B1111,B1111,B0001,B0111,B1011,B1111,B0111,B1101,B1010,B1000,B1111,B1001,B1100, 5, | |
| B1110,B1111,B0010,B1111,B1111,B0001,B0111,B1011,B1111,B0111,B1101,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B0010,B1111,B1111,B0001,B0111,B1011,B1111,B0111,B1101,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B0001,B0111,B1011,B1111,B0111,B1101,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B0001,B0111,B1011,B1111,B0111,B1111,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B0001,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B0011,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1011,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1001,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1011,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1011,B1100, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1011,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1011,B1110, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1011,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1000,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1010,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1010,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1011,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1110,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1011,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1110,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1111,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1111,B1111,B1011,B1111, 5, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B0111,B1011,B1111,B1111,B1111,B1110,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1011,B1111,B1111,B1111,B1110,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1011,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 30, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar turn_off_except_last_layer[] = | |
| { | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B0111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B0111,B1111,B1111,B1111,B0111,B1111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B0111,B1111,B1111,B1111,B0111,B0111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1111,B1111,B1111,B0111,B1111,B1111,B1011,B0111,B0111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B1111,B1110,B1111,B1111,B0111,B1111,B1111,B1011,B0111,B0111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1111,B0111,B1111,B1111,B1011,B0111,B0111,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1111,B0111,B1111,B1111,B1011,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1111,B0101,B1111,B1111,B1011,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1111,B0101,B0111,B1111,B1011,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1111,B0101,B0011,B1111,B1011,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1110,B0101,B0011,B1111,B1011,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1111,B1110,B0101,B0011,B1111,B1001,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B1111,B1001,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B0111,B1001,B0111,B0101,B1111,B1111,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B0111,B1001,B0111,B0101,B1111,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B0111,B1001,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B0110,B1001,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1110,B1110,B0101,B0011,B0110,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1010,B1110,B0101,B0011,B0110,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1010,B1110,B0001,B0011,B0110,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0111,B1110,B1010,B1100,B0001,B0011,B0110,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0101,B1110,B1010,B1100,B0001,B0011,B0110,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0101,B1110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0101,B1101,B1101,B1111,B1111,B1111,B1111, 5, | |
| B0101,B1110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0101,B1101,B1100,B1111,B1111,B1111,B1111, 5, | |
| B0101,B1110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0101,B1101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0101,B0110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0101,B1101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0101,B0110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0101,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0101,B0110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0001,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0101,B0110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0001,B0110,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0001,B0010,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0010,B1010,B1100,B0001,B0011,B0100,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0010,B1010,B1100,B0000,B0011,B0100,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0010,B1010,B1100,B0000,B0011,B0000,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B1100,B0000,B0011,B0000,B1000,B0111,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B1100,B0000,B0011,B0000,B1000,B0101,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B1000,B0000,B0011,B0000,B1000,B0101,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B1000,B0000,B0011,B0000,B1000,B0001,B0000,B0101,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B1000,B0000,B0011,B0000,B1000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B0000,B0000,B0011,B0000,B1000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B0000,B0000,B0010,B0000,B1000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B0000,B0000,B0000,B0000,B1000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B1010,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0100,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0010,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0000,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0100,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B1111,B1111,B1111,B1111, 5, | |
| B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000, 0 | |
| }; | |
| PROGMEM prog_uchar sensing[] = | |
| { | |
| B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111 | |
| }; | |
| prog_uchar* animation_order[] = | |
| { | |
| turn_on, | |
| turn_off_except_last_layer, | |
| surfaces, | |
| surfaces, | |
| rand_animation, | |
| wireframe, | |
| wireframe, | |
| wireframe, | |
| drip, | |
| diagonal, | |
| spin, | |
| on_and_off, | |
| reverse_drip, | |
| snake, | |
| NULL | |
| }; | |
| prog_uchar* available_animations[] = | |
| { | |
| turn_on, | |
| surfaces, | |
| rand_animation, | |
| wireframe, | |
| drip, | |
| diagonal, | |
| spin, | |
| on_and_off, | |
| reverse_drip, | |
| snake, | |
| NULL | |
| }; | |
| int leds[] = {15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; | |
| int sensor = A5; | |
| int data = 16; | |
| int latch = 17; | |
| int clock = 18; | |
| void setup() { | |
| for(int i = 0; i < LAYER_BITS; i++) { | |
| pinMode(leds[i], OUTPUT); | |
| } | |
| pinMode(latch, OUTPUT); | |
| pinMode(data, OUTPUT); | |
| pinMode(clock, OUTPUT); | |
| pinMode(sensor, INPUT); | |
| } | |
| void enable_layer(int layer) { | |
| int shiftval = 1 << layer; | |
| digitalWrite(latch, LOW); | |
| shiftOut(data, clock, MSBFIRST, shiftval); | |
| digitalWrite(latch, HIGH); | |
| } | |
| void disable_layers() { | |
| digitalWrite(latch, LOW); | |
| shiftOut(data, clock, MSBFIRST, 0); | |
| digitalWrite(latch, HIGH); | |
| } | |
| void show_frame(byte* layer_buffer, unsigned long target_time) { | |
| while(millis() < target_time) { | |
| int group = 0; | |
| for(int p = 0; p < 4; p++) { | |
| int pin = 0; | |
| disable_layers(); | |
| for(int row = 0; row < 4; row++) { | |
| for(int col = 0; col < 4; col++) { | |
| digitalWrite(leds[pin++], layer_buffer[group] & (1 << col)); | |
| } | |
| group++; | |
| } | |
| enable_layer(p); | |
| delayMicroseconds(LAYER_TIME); | |
| } | |
| } | |
| } | |
| void do_animation(prog_uchar* animation) { | |
| byte layer_buffer[LAYER_BITS]; | |
| int pointer = 0; | |
| unsigned long pattern_time, target_time; | |
| do { | |
| memcpy_P(layer_buffer, animation + pointer, LAYER_BITS); | |
| pointer += LAYER_BITS; | |
| pattern_time = pgm_read_byte_near(animation + pointer++); | |
| target_time = millis() + pattern_time * FRAME_TIME; | |
| show_frame(layer_buffer, target_time); | |
| } while(pattern_time > 0); | |
| } | |
| int count_animations(prog_uchar* arr[]) { | |
| int count = 0, pointer = 0; | |
| while(arr[pointer++] != NULL) | |
| count++; | |
| return count; | |
| } | |
| int val = 0; | |
| void loop() { | |
| if(mode == ANIMATION_SCRIPTED) { | |
| int pointer = 0; | |
| do { | |
| do_animation(animation_order[pointer++]); | |
| } while(animation_order[pointer] != NULL); | |
| } else if(mode == ANIMATION_RANDOM) { | |
| int count = count_animations(available_animations); | |
| do_animation(available_animations[random(0, count)]); | |
| } else if(mode == ANIMATION_SENSING) { | |
| val = map(analogRead(sensor), 0, 1023, 0, 64); | |
| byte frame[LAYER_BITS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ; | |
| memcpy_P(frame, sensing, val/4); | |
| if(val % 4 != 0) | |
| frame[val/4] = B1100; | |
| show_frame(frame, millis() + 10); | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment