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