Você está na página 1de 15

//4x4x4 LED Cube Show 2

//I wrote this one myself, enjoy!


#define __PROG_TYPES_COMPAT__
#include <avr/pgmspace.h> // allows use of PROGMEM to store patterns in flash
#define
#define
#define
#define

CUBESIZE 4
PLANESIZE CUBESIZE*CUBESIZE
PLANETIME 100 // time each plane is displayed in us -> 100 Hz refresh
TIMECONST 10// multiplies DisplayTime to get ms - why not =100?

// LED Pattern Table in PROGMEM - last column is display time in 100ms units
// TODO this could be a lot more compact but not with binary pattern representat
ion
prog_uchar PROGMEM const PatternTable[] = {
// blink on and off
//1 //2 //3
//14 //15 //16

//4

//5

//6

//7

//8

//9

//10 //11 //12 //13

B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000,
0000, B0001, B0000, B0000, B0000, 5, //start stairs up down and around outside
B0010, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0100, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000,
1000, B0000, B0000, B0000, B1000, 10,
B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100, B0000, B0000, B0000,
0100, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000,
0000, B0000, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000,
0000, B0001, B0000, B0000, B0000, 5, //second time
B0010, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0100, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000,
1000, B0000, B0000, B0000, B1000, 10,

B
B
B
B
B
B
B
B
B
B
B
B

B
B
B
B
B
B
B

B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100, B0000, B0000, B0000,
0100, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 5,
B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0001, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000,
0000, B0001, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
//start 2x2 in and out
B0000, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B1000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1000, B0000, B0000, B0000,
1000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0100, B0000, B0000, B0000,
0100, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0100, B0000, B0000, B0000, B0100, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0010, B0000, B0000, B0000, B0010,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0010, B0000, B0000, B0000,
0010, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0001, B0000, B0000, B0000,
0001, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000,
0000, B0000, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0000, B0000, B0000, B0000, B0001, B0000, B0000, B0000, B0001, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 20, //ends and gos into box 2X2
B0000, B0000, B0000, B0000, B0011, B0000, B0000, B0000, B0011, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 20,
B0000, B0000, B0000, B0000, B0011, B0010, B0000, B0000, B0011, B0010, B0000,
0000, B0000, B0000, B0000, B0000, 20,
B0000, B0000, B0000, B0000, B0011, B0011, B0000, B0000, B0011, B0011, B0000,
0000, B0000, B0000, B0000, B0000, 20,
B0011, B0011, B0000, B0000, B0011, B0011, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 20,

B
B
B
B
B
B

B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B

B
B
B
B
B

B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 20,
B0000, B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 20,
B0000, B0000, B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10, //to bigger box 3x3
B0000, B0000, B0011, B0011, B0000, B0000, B0011, B0011, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0001, B0011, B0111, B0000, B0001, B0011, B0111, B0000, B0000, B0001,
0011, B0000, B0000, B0000, B0000, 10,
B0000, B0011, B0111, B0111, B0000, B0011, B0011, B0111, B0000, B0001, B0011,
0111, B0000, B0000, B0000, B0000, 10,
B0000, B0111, B0111, B0111, B0000, B0111, B0111, B0111, B0000, B0011, B0111,
0111, B0000, B0000, B0000, B0000, 10,
B0000, B0111, B0111, B0111, B0000, B0111, B0111, B0111, B0000, B0111, B0111,
0111, B0000, B0000, B0000, B0000, 20, //cube done starts moving
B0000, B0000, B0000, B0000, B0000, B0111, B0111, B0111, B0000, B0111, B0111,
0111, B0000, B0111, B0111, B0111, 10,
B0000, B0000, B0000, B0000, B0000, B1110, B1110, B1110, B0000, B1110, B1110,
1110, B0000, B1110, B1110, B1110, 10,
B0000, B0000, B0000, B0000, B0000, B1110, B1110, B1110, B0000, B1110, B1110,
1110, B0000, B1100, B1110, B1110, 10,
B0000, B0000, B0000, B0000, B0000, B1100, B1110, B1110, B0000, B1100, B1100,
1110, B0000, B1000, B1100, B1110, 10,
B0000, B0000, B0000, B0000, B0000, B1000, B1100, B1110, B0000, B1000, B1100,
1110, B0000, B0000, B1000, B1100, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B1100, B1100, B0000, B0000, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1100,
1100, B0000, B0000, B1100, B1100, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1000,
1100, B0000, B0000, B1100, B1100, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
1000, B0000, B0000, B1000, B1100, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B1000, 10, //worm starts
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B1100, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B1110, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B1111, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0001, B0000, B0000, B0000, B0111, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0001, B0000, B0000, B0000,
0001, B0000, B0000, B0000, B0011, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0011, B0000, B0000, B0000,
0001, B0000, B0000, B0000, B0001, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0010, B0011, B0000, B0000, B0000,
0001, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0010, B0010, B0011, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0110, B0010, B0010, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0110, B0110, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0110, B0100, B0100, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,

B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B

B
B
B
B
B
B
B
B
B
B
B
B

B0000, B0000, B0000, B0000, B0000, B0100, B0100, B1100, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B1000, B0000, B0000, B0100, B1100, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B1000, B1000, B0000, B0000, B0000, B1100, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0000, B1000, B1000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1000, B1000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10, //filling of bottom layer begins
B1100, B1000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1100, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1110, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10, //filling ends fliping to left side begins
B0111, B0111, B0111, B0111, B1000, B1000, B1000, B1000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0011, B0011, B0011, B0011, B0100, B0100, B0100, B0100, B1000, B1000, B1000, B
1000, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100, B
0100, B1000, B1000, B1000, B1000, 10,
B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0010, B0010, B0010, B
0010, B0100, B0100, B0100, B0100, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B
0001, B0010, B0010, B0010, B0010, 10, //end flip
B0010, B0010, B0010, B0010, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B
0001, B0001, B0001, B0001, B0001, 10, //flip to top begins
B0100, B0100, B0100, B0100, B0010, B0010, B0010, B0010, B0001, B0001, B0001, B
0001, B0001, B0001, B0001, B0001, 10,
B1000, B1000, B1000, B1000, B0100, B0100, B0100, B0100, B0010, B0010, B0010, B
0010, B0001, B0001, B0001, B0001, 10,
B0000, B0000, B0000, B0000, B1000, B1000, B1000, B1000, B0100, B0100, B0100, B
0010, B0011, B0011, B0011, B0011, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1000, B1000, B1000, B
0100, B0111, B0111, B0111, B0111, 10, //end flip
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B
0000, B0000, B1111, B1111, B1111, 10, //begin flip to back
B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000, B1111, B0000, B
0000, B0000, B0000, B1111, B1111, 10,

B1111, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000, B1111,
0000, B0000, B0000, B0000, B1111, 10,
B0000, B1111, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000,
1111, B0000, B0000, B0000, B1111, 10,
B0000, B0000, B1111, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000,
1111, B0000, B0000, B0000, B1111, 10, //end flip
B0000, B0000, B0000, B1111, B0000, B0000, B0000, B1111, B0000, B0000, B0000,
1111, B0000, B0000, B1111, B0000, 10, //start flip to bottom
B0000, B0000, B0000, B1111, B0000, B0000, B0000, B1111, B0000, B0000, B1111,
0000, B0000, B1111, B0000, B0000, 10,
B0000, B0000, B0000, B1111, B0000, B0000, B1111, B0000, B0000, B1111, B0000,
0000, B1111, B0000, B0000, B0000, 10,
B0000, B0000, B1111, B1111, B0000, B1111, B0000, B0000, B1111, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B1111, B1111, B1111, B1111, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
//repeat
B0111, B0111, B0111, B0111, B1000, B1000, B1000, B1000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0011, B0011, B0011, B0011, B0100, B0100, B0100, B0100, B1000, B1000, B1000,
1000, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10,
B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0010, B0010, B0010,
0010, B0100, B0100, B0100, B0100, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001,
0001, B0010, B0010, B0010, B0010, 10, //end flip
B0010, B0010, B0010, B0010, B0001, B0001, B0001, B0001, B0001, B0001, B0001,
0001, B0001, B0001, B0001, B0001, 10, //flip to top begins
B0100, B0100, B0100, B0100, B0010, B0010, B0010, B0010, B0001, B0001, B0001,
0001, B0001, B0001, B0001, B0001, 10,
B1000, B1000, B1000, B1000, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0001, B0001, B0001, B0001, 10,
B0000, B0000, B0000, B0000, B1000, B1000, B1000, B1000, B0100, B0100, B0100,
0010, B0011, B0011, B0011, B0011, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1000, B1000, B1000,
0100, B0111, B0111, B0111, B0111, 10, //end flip
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B1111, B0000, B0000,
0000, B0000, B1111, B1111, B1111, 10, //begin flip to back
B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000, B1111, B0000,
0000, B0000, B0000, B1111, B1111, 10,
B1111, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000, B1111,
0000, B0000, B0000, B0000, B1111, 10,
B0000, B1111, B0000, B0000, B0000, B0000, B1111, B0000, B0000, B0000, B0000,
1111, B0000, B0000, B0000, B1111, 10,
B0000, B0000, B0000, B1111, B0000, B0000, B0000, B1111, B0000, B0000, B0000,
1111, B0000, B0000, B0000, B1111, 10, //end flip on back
B0000, B0000, B0001, B1110, B0000, B0000, B0001, B1110, B0000, B0000, B0001,
1110, B0000, B0000, B0001, B1110, 10, //begins to turn to diagnal
B0000, B0001, B0010, B1100, B0000, B0001, B0010, B1100, B0000, B0001, B0010,
1100, B0000, B0001, B0010, B1100, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000, B0001, B0010, B0100,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
//1
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100, B0010,

B
B
B
B
B
B
B
B
B
B
B
B
B

B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B

0010, B0100, B0100, B0010, B0010, 10,


B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010,
0010, B0100, B0100, B0010, B0010, 10,
B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010,
0010, B0100, B0100, B0010, B0010, 10,
B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010,
0010, B0100, B0100, B0010, B0010, 10,
B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010,
0010, B0100, B0100, B0010, B0010, 10,
B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000,
1000, B0001, B0010, B0100, B1000, 10, //begin spinning
B0010, B0010, B0100, B0100, B0010, B0010, B0100, B0100,
0100, B0010, B0010, B0100, B0100, 10,
B0100, B0100, B0010, B0010, B0100, B0100, B0010, B0010,

B1000, B0100, B0010, B


B0000, B1100, B0011, B
B0000, B0011, B1100, B
B0001, B0010, B0100, B
//2
B0010, B0010, B0100, B
B0100, B0100, B0010, B
B1000, B0100, B0010, B
B0000, B1100, B0011, B
B0000, B0011, B1100, B
B0001, B0010, B0100, B
//3
B0010, B0010, B0100, B
B0100, B0100, B0010, B
B1000, B0100, B0010, B
B0000, B1100, B0011, B
B0000, B0011, B1100, B
B0001, B0010, B0100, B
//4
B0010, B0010, B0100, B
B0100, B0100, B0010, B
B1000, B0100, B0010, B
B0000, B1100, B0011, B
B0000, B0011, B1100, B
B0001, B0010, B0100, B
//5
B0010, B0010, B0100, B
B0100, B0100, B0010, B
B1000, B0100, B0010, B
B0000, B1100, B0011, B
B0000, B0011, B1100, B
B0001, B0010, B0100, B
//6
B0010, B0010, B0100, B
B0100, B0100, B0010, B

0010, B0100, B0100, B0010, B0010, 10,


B1000, B0100, B0010, B0001, B1000, B0100, B0010, B0001, B1000, B0100, B0010,
0001, B1000, B0100, B0010, B0001, 10, //at other diagnal
B0000, B1100, B0011, B0000, B0000, B1100, B0011, B0000, B0000, B1100, B0011,
0000, B0000, B1100, B0011, B0000, 10,
B0000, B0011, B1100, B0000, B0000, B0011, B1100, B0000, B0000, B0011, B1100,
0000, B0000, B0011, B1100, B0000, 10,
B0001, B0010, B0100, B1000, B0001, B0010, B0100, B1000, B0001, B0010, B0100,
1000, B0001, B0010, B0100, B1000, 10, //end spiral seires
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0001, B0001, B0010, B0100, B0001, B0001, B0010, B0100, B0001, B0001, B0010,
0100, B0001, B0001, B0010, B0100, 10, //start to end on left side
B0001, B0001, B0001, B0010, B0001, B0001, B0001, B0010, B0001, B0001, B0001,
0010, B0001, B0001, B0001, B0010, 10, //end all on left side
B0010, B0010, B0010, B0010, B0001, B0001, B0001, B0001, B0001, B0001, B0001,
0001, B0001, B0001, B0001, B0001, 10, //start to go diagnal sideways
B0100, B0100, B0100, B0100, B0010, B0010, B0010, B0010, B0001, B0001, B0001,
0001, B0001, B0001, B0001, B0001, 10,
B1000, B1000, B1000, B1000, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0001, B0001, B0001, B0001, 10, //end in diagnal
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//1
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//2
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//3
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//4
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,

B
B
B
B

B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B

0010, B0010, B0010, B0010, B0010, 10,


B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//5
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//5
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //at other diagnal
B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10,
B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0000, B0000, B0000, B0000, B1100, B1100, B1100, B1100, B0011, B0011, B0011,
0011, B0000, B0000, B0000, B0000, 10, //begin side spiral
//5
B0000, B0000, B0000, B0000, B0011, B0011, B0011, B0011, B1100, B1100, B1100,
1100, B0000, B0000, B0000, B0000, 10,
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B1000, B1000, B1000, B1000, 10, //end side spirals
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0100, B0100, B0100,
0100, B0100, B0100, B0100, B0100, 10, //transition to left side
B0001, B0001, B0001, B0001, B0010, B0010, B0010, B0010, B0010, B0010, B0010,
0010, B0010, B0010, B0010, B0010, 10,
B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001, B0001,
0001, B0001, B0001, B0001, B0001, 10,
B0010, B0001, B0001, B0001, B0010, B0010, B0001, B0001, B0001, B0001, B0010,
0010, B0001, B0001, B0001, B0010, 10,
B0100, B0010, B0001, B0001, B0010, B0010, B0010, B0010, B0010, B0010, B0010,
0010, B0001, B0001, B0010, B0100, 10,
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010, B0100,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010, B0100,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011, B1100,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100, B0011,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100, B0010,
0001, B0100, B0100, B0010, B0010, 10, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100, B0010,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010, B0100,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010, B0100,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011, B1100,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100, B0011,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100, B0010,

B
B
B
B
B
B
B
B
B
B
B
B
B

B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B

0001, B0100, B0100, B0010, B0010, 10, //5


B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 10, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 10, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 10, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 10, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 5, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 5, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 5, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 5, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,

B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B

0001, B0100, B0100, B0010, B0010, 5, //5


B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 5, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 5, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 5, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 5, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 5, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 5, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 5, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 5, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 5, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 5, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 5, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 5, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 5, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 5, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 5, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 5, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 5, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 5, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 5, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 5, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 5, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 5, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 5, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,
0001, B0100, B0100, B0010, B0010, 5, //5
B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100,
0010, B0010, B0010, B0100, B0100, 5, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010,
0100, B0001, B0010, B0100, B1000, 10, //1 //start corkscrew spiral
B0100, B0100, B0010, B0010, B0010, B0010, B0100, B0100, B0001, B0010,
1000, B0000, B0011, B1100, B0000, 10, //2
B0010, B0010, B0100, B0100, B0001, B0010, B0100, B1000, B0000, B0011,
0000, B0000, B1100, B0011, B0000, 10, //3
B0001, B0010, B0100, B1000, B0000, B0011, B1100, B0000, B0000, B1100,
0000, B1000, B0100, B0010, B0001, 10, //4
B0000, B0011, B1100, B0000, B0000, B1100, B0011, B0000, B1000, B0100,

B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B
B0010, B
B0100, B
B0100, B
B1100, B
B0011, B
B0010, B

0001, B0100, B0100, B0010, B0010, 10, //5


B0000, B1100, B0011, B0000, B1000, B0100, B0010, B0001, B0100, B0100, B0010, B
0010, B0010, B0010, B0100, B0100, 10, //6
B1000, B0100, B0010, B0001, B0100, B0100, B0010, B0010, B0010, B0010, B0100, B
0100, B0001, B0010, B0100, B1000, 10, //1 //move out of cork spiral to right wal
l
B1000, B0100, B0010, B0010, B0100, B0100, B0010, B0010, B0010, B0010, B0100, B
0100, B0010, B0010, B0100, B1000, 10,
B1000, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B0100, B
0100, B0100, B0100, B0100, B1000, 10,
B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B
1000, B1000, B1000, B1000, B1000, 10,
B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B
1000, B1000, B1000, B1000, B1000, 10, //left wall falls
B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B
1000, B0000, B1000, B1000, B1000, 10,
B1000, B1000, B1000, B1000, B1000, B1000, B1000, B1000, B0000, B1000, B1000, B
1000, B0000, B0000, B1000, B1000, 10,
B1000, B1000, B1000, B1000, B0000, B1000, B1000, B1000, B0000, B0000, B1000, B
1000, B0000, B0000, B0000, B1000, 10,
B0000, B1000, B1000, B1000, B0000, B0000, B1000, B1000, B0000, B0000, B0000, B
1000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B1000, B1000, B0000, B0000, B0000, B1000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7 //8 //9 //10 //11 //12 //13
//14 //15 //16
B0000, B0000, B0000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10, //filling of entire cube
B0000, B0000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B0000, B1000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1000, B1000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1000, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1000, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1100, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1100, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1100, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1100, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1110, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1110, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1110, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1110, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 10,

B1111, B1111, B1111, B1111, B0000, B0000,


0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0001, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0011, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B0111, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B0001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1001,
0000, B0000, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7
//14 //15 //16
B1111, B1111, B1111, B1111, B1111, B1001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1001,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1101,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0000, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
//1 //2 //3 //4 //5 //6 //7
//14 //15 //16
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0010, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
0110, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
1110, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
1110, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
1110, B0000, B0000, B0000, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111,
1111, B0000, B0000, B0000, B0000, 10,

B0000, B0001, B0000, B0000, B0000, B


B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
B0001, B0001, B0000, B0000, B0000, B
//8

//9

//10 //11 //12 //13

B1001, B0001, B0000, B0000, B0000, B


B1001, B1001, B0000, B0000, B0000, B
B1001, B1101, B0000, B0000, B0000, B
B1101, B1101, B0000, B0000, B0000, B
B1101, B1101, B0000, B0000, B0000, B
B1101, B1101, B0000, B0000, B0000, B
B1111, B1101, B0000, B0000, B0000, B
B1111, B1111, B0000, B0000, B0000, B
B1111, B1111, B0000, B0000, B0000, B
B1111, B1111, B0000, B0000, B0010, B
B1111, B1111, B0000, B0010, B0010, B
B1111, B1111, B0010, B0010, B0010, B
//8

//9

//10 //11 //12 //13

B1111, B1111, B0110, B0010, B0010, B


B1111, B1111, B0110, B0110, B0010, B
B1111, B1111, B0110, B0110, B0110, B
B1111, B1111, B0110, B0110, B0110, B
B1111, B1111, B0111, B0110, B0110, B
B1111, B1111, B0111, B0111, B1110, B
B1111, B1111, B0111, B1111, B1111, B
B1111, B1111, B1111, B1111, B1111, B

B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,


1111, B1000, B0000, B0000, B0001, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1100, B0000, B0000, B0011, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1110, B0000, B0000, B0111, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1111, B0000, B0000, B1111, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1111, B0001, B1000, B1111, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1111, B1001, B1001, B1111, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1111, B1101, B1011, B1111, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B1111, B1111, B1111, B1111, 1000, //fade out of outside
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111,
1111, B0000, B0110, B0110, B0000, 10,
B1111, B1111, B1111, B1111, B1111, B1111, B1111, B1111, B0000,
0000, B0000, B0110, B0110, B0000, 10,
B1111, B1111, B1111, B1111, B0000, B0110, B0110, B0000, B0000,
0000, B0000, B0110, B0110, B0000, 10,
B0000, B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000,
0000, B0000, B0110, B0110, B0000, 10,
B0000, B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10, //fade of inside
B0000, B0110, B0110, B0000, B0000, B0110, B0110, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0110, B0110, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 10,
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000,
0000, B0000, B0000, B0000, B0000, 4000, //end

B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B1111, B1111, B
B0110, B0110, B
B0110, B0110, B
B0110, B0110, B
B0110, B0110, B
B0000, B0000, B
B0000, B0000, B
B0000, B0000, B

// this is a dummy element for end of table (duration=0) aka !!!DO NOT TOUCH!!
!
B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B0000, B
0000, B0000, B0000, B0000, B0000, 0
};
/*
**
**
**
**
*/

Defining pins in array makes it easier to rearrange how cube is wired


Adjust numbers here until LEDs flash in order - L to R, T to B
Note that analog inputs 0-5 are also digital outputs 14-19!
Pin DigitalOut0 (serial RX) and AnalogIn5 are left open for future apps

int LEDPin[] = {13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 14, 15};

int PlanePin[] = {16, 17, 18, 19};


// initialization
void setup()
{
int pin; // loop counter
// set up LED pins as output (active HIGH)
for (pin = 0; pin < PLANESIZE; pin++) {
pinMode( LEDPin[pin], OUTPUT );
}
// set up plane pins as outputs (active LOW)
for (pin = 0; pin < CUBESIZE; pin++) {
pinMode( PlanePin[pin], OUTPUT );
}
}
// display pattern in table until DisplayTime is zero (then repeat)
void loop()
{
// declare variables
byte PatternBuf[PLANESIZE]; // saves current pattern from PatternTable
int PatternIdx;
byte DisplayTime; // time*100ms to display pattern
unsigned long EndTime;
int plane; // loop counter for cube refresh
int patbufidx; // indexes which byte from pattern buffer
int ledrow; // counts LEDs in refresh loop
int ledcol; // counts LEDs in refresh loop
int ledpin; // counts LEDs in refresh loop
// Initialize PatternIdx to beginning of pattern table
PatternIdx = 0;
// loop over entries in pattern table - while DisplayTime>0
do {
// read pattern from PROGMEM and save in array
memcpy_P( PatternBuf, PatternTable + PatternIdx, PLANESIZE );
PatternIdx += PLANESIZE;
// read DisplayTime from PROGMEM and increment index
DisplayTime = pgm_read_byte_near( PatternTable + PatternIdx++ );
// compute EndTime from current time (ms) and DisplayTime
EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST;
// loop while DisplayTime>0 and current time < EndTime
while ( millis() < EndTime ) {
patbufidx = 0; // reset index counter to beginning of buffer
// loop over planes
for (plane = 0; plane < CUBESIZE; plane++) {
// turn previous plane off
if (plane == 0) {
digitalWrite( PlanePin[CUBESIZE - 1], HIGH );
} else {
digitalWrite( PlanePin[plane - 1], HIGH );
}
// load current plane pattern data into ports
ledpin = 0;
for (ledrow = 0; ledrow < CUBESIZE; ledrow++) {
for (ledcol = 0; ledcol < CUBESIZE; ledcol++) {
digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol
) );

}
patbufidx++;
}
// turn current plane on
digitalWrite( PlanePin[plane], LOW );
// delay PLANETIME us
delayMicroseconds( PLANETIME );
} // for plane
} // while <EndTime
} while (DisplayTime > 0); // read patterns until time=0 which signals end
}

Você também pode gostar