Source code for the Curilights Controller. See http://www.saccade.com/writing/projects/CuriController/ for details.

Dependencies:   FatFileSystem mbed

This is the source code for the Curilights controller. This lets you interactively control a string of Curilights. It provides a simple click-wheel user interface for changing colors, brightness and behavior. It responds to movement and lighting.

Finished Controller

/media/uploads/isonno/nxp3872_controllerclose.jpg

System Block Diagram

/media/uploads/isonno/blockdiagram.png

Committer:
isonno
Date:
Mon Feb 11 05:04:18 2013 +0000
Revision:
4:cfef06d8bb96
Parent:
0:6da5625a6946
Minor changes to add backlight routines.  Not hooked up yet, shouldn't affect build operation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isonno 0:6da5625a6946 1 const unsigned char N0_data[] = {
isonno 0:6da5625a6946 2 0x00,0x2A,0xFF,0xE6,0x00,0x00,
isonno 0:6da5625a6946 3 0x03,0xEF,0xFF,0xFF,0x90,0x00,
isonno 0:6da5625a6946 4 0x0D,0xFC,0x20,0x7F,0xF4,0x00,
isonno 0:6da5625a6946 5 0x4F,0xF4,0x00,0x0C,0xFB,0x00,
isonno 0:6da5625a6946 6 0x8F,0xE0,0x00,0x08,0xFF,0x10,
isonno 0:6da5625a6946 7 0xAF,0xD0,0x00,0x06,0xFF,0x30,
isonno 0:6da5625a6946 8 0xBF,0xD0,0x00,0x06,0xFF,0x40,
isonno 0:6da5625a6946 9 0xAF,0xD0,0x00,0x06,0xFF,0x30,
isonno 0:6da5625a6946 10 0x8F,0xF0,0x00,0x07,0xFF,0x10,
isonno 0:6da5625a6946 11 0x4F,0xF4,0x00,0x0B,0xFB,0x00,
isonno 0:6da5625a6946 12 0x0D,0xFC,0x20,0x7F,0xF5,0x00,
isonno 0:6da5625a6946 13 0x03,0xEF,0xFF,0xFF,0x90,0x00,
isonno 0:6da5625a6946 14 0x00,0x3A,0xFF,0xD6,0x00,0x00
isonno 0:6da5625a6946 15 };
isonno 0:6da5625a6946 16
isonno 0:6da5625a6946 17 const sprite_data_t N0_sprt = { N0_data, 13, 11 };
isonno 0:6da5625a6946 18
isonno 0:6da5625a6946 19 const unsigned char N1_data[] = {
isonno 0:6da5625a6946 20 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 21 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 22 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 23 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 24 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 25 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 26 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 27 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 28 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 29 0x00,0xBF,0xD0,
isonno 0:6da5625a6946 30 0x7F,0xFF,0xD0,
isonno 0:6da5625a6946 31 0x7F,0xFF,0xD0,
isonno 0:6da5625a6946 32 0x04,0x79,0xD0
isonno 0:6da5625a6946 33 };
isonno 0:6da5625a6946 34
isonno 0:6da5625a6946 35 const sprite_data_t N1_sprt = { N1_data, 13, 5 };
isonno 0:6da5625a6946 36
isonno 0:6da5625a6946 37 const unsigned char N2_data[] = {
isonno 0:6da5625a6946 38 0xDF,0xFF,0xFF,0xFF,0xB0,
isonno 0:6da5625a6946 39 0xDF,0xFF,0xFF,0xFF,0xB0,
isonno 0:6da5625a6946 40 0x7F,0xF2,0x00,0x00,0x00,
isonno 0:6da5625a6946 41 0x09,0xFD,0x20,0x00,0x00,
isonno 0:6da5625a6946 42 0x00,0x7F,0xD3,0x00,0x00,
isonno 0:6da5625a6946 43 0x00,0x05,0xFF,0x60,0x00,
isonno 0:6da5625a6946 44 0x00,0x00,0x4F,0xF7,0x00,
isonno 0:6da5625a6946 45 0x00,0x00,0x05,0xFF,0x40,
isonno 0:6da5625a6946 46 0x00,0x00,0x00,0xCF,0xA0,
isonno 0:6da5625a6946 47 0x00,0x00,0x00,0xCF,0xB0,
isonno 0:6da5625a6946 48 0x87,0x20,0x07,0xFF,0x90,
isonno 0:6da5625a6946 49 0x9F,0xFF,0xFF,0xFE,0x20,
isonno 0:6da5625a6946 50 0x17,0xCF,0xFF,0x82,0x00
isonno 0:6da5625a6946 51 };
isonno 0:6da5625a6946 52
isonno 0:6da5625a6946 53 const sprite_data_t N2_sprt = { N2_data, 13, 9 };
isonno 0:6da5625a6946 54
isonno 0:6da5625a6946 55 const unsigned char N3_data[] = {
isonno 0:6da5625a6946 56 0x29,0xFF,0xFC,0x60,0x00,
isonno 0:6da5625a6946 57 0xDF,0xFF,0xFF,0xF9,0x00,
isonno 0:6da5625a6946 58 0xC7,0x00,0x3C,0xFF,0x30,
isonno 0:6da5625a6946 59 0x00,0x00,0x03,0xFF,0x60,
isonno 0:6da5625a6946 60 0x00,0x00,0x04,0xFF,0x50,
isonno 0:6da5625a6946 61 0x00,0x00,0x6D,0xFD,0x10,
isonno 0:6da5625a6946 62 0x0B,0xFF,0xFF,0xC3,0x00,
isonno 0:6da5625a6946 63 0x0B,0xFF,0xFC,0x60,0x00,
isonno 0:6da5625a6946 64 0x00,0x00,0x5E,0xF8,0x00,
isonno 0:6da5625a6946 65 0x00,0x00,0x07,0xFF,0x10,
isonno 0:6da5625a6946 66 0xB7,0x00,0x1B,0xFF,0x20,
isonno 0:6da5625a6946 67 0xBF,0xFF,0xFF,0xFC,0x00,
isonno 0:6da5625a6946 68 0x07,0xEF,0xFE,0x70,0x00
isonno 0:6da5625a6946 69 };
isonno 0:6da5625a6946 70
isonno 0:6da5625a6946 71 const sprite_data_t N3_sprt = { N3_data, 13, 9 };
isonno 0:6da5625a6946 72
isonno 0:6da5625a6946 73 const unsigned char N4_data[] = {
isonno 0:6da5625a6946 74 0x00,0x00,0x00,0x6F,0xF0,0x00,
isonno 0:6da5625a6946 75 0x00,0x00,0x00,0x6F,0xF0,0x00,
isonno 0:6da5625a6946 76 0x00,0x00,0x00,0x6F,0xF0,0x00,
isonno 0:6da5625a6946 77 0x6F,0xFF,0xFF,0xFF,0xFF,0x70,
isonno 0:6da5625a6946 78 0x6F,0xFF,0xFF,0xFF,0xFF,0x70,
isonno 0:6da5625a6946 79 0x1D,0xE2,0x00,0x4F,0xF0,0x00,
isonno 0:6da5625a6946 80 0x03,0xFC,0x00,0x4F,0xF0,0x00,
isonno 0:6da5625a6946 81 0x00,0x7F,0x80,0x4F,0xF0,0x00,
isonno 0:6da5625a6946 82 0x00,0x0A,0xF5,0x4F,0xF0,0x00,
isonno 0:6da5625a6946 83 0x00,0x01,0xDE,0x6F,0xF0,0x00,
isonno 0:6da5625a6946 84 0x00,0x00,0x3F,0xEF,0xF0,0x00,
isonno 0:6da5625a6946 85 0x00,0x00,0x07,0xFF,0xF0,0x00,
isonno 0:6da5625a6946 86 0x00,0x00,0x00,0xAF,0xF0,0x00
isonno 0:6da5625a6946 87 };
isonno 0:6da5625a6946 88
isonno 0:6da5625a6946 89 const sprite_data_t N4_sprt = { N4_data, 13, 11 };
isonno 0:6da5625a6946 90
isonno 0:6da5625a6946 91 const unsigned char N5_data[] = {
isonno 0:6da5625a6946 92 0x06,0xEF,0xFA,0x40,0x00,
isonno 0:6da5625a6946 93 0x7F,0xFF,0xFF,0xF6,0x00,
isonno 0:6da5625a6946 94 0x79,0x20,0x3D,0xFE,0x10,
isonno 0:6da5625a6946 95 0x00,0x00,0x05,0xFF,0x60,
isonno 0:6da5625a6946 96 0x00,0x00,0x02,0xFF,0x70,
isonno 0:6da5625a6946 97 0x00,0x00,0x06,0xFF,0x50,
isonno 0:6da5625a6946 98 0x00,0x00,0x7F,0xFD,0x00,
isonno 0:6da5625a6946 99 0x4F,0xFF,0xFF,0xE3,0x00,
isonno 0:6da5625a6946 100 0x4F,0xFF,0xE7,0x10,0x00,
isonno 0:6da5625a6946 101 0x4F,0x70,0x00,0x00,0x00,
isonno 0:6da5625a6946 102 0x4F,0x80,0x00,0x00,0x00,
isonno 0:6da5625a6946 103 0x4F,0xFF,0xFF,0xFF,0x40,
isonno 0:6da5625a6946 104 0x4F,0xFF,0xFF,0xFF,0x40
isonno 0:6da5625a6946 105 };
isonno 0:6da5625a6946 106
isonno 0:6da5625a6946 107 const sprite_data_t N5_sprt = { N5_data, 13, 9 };
isonno 0:6da5625a6946 108
isonno 0:6da5625a6946 109 const unsigned char N6_data[] = {
isonno 0:6da5625a6946 110 0x00,0x07,0xEF,0xFD,0x60,0x00,
isonno 0:6da5625a6946 111 0x00,0xAF,0xFF,0xFF,0xF8,0x00,
isonno 0:6da5625a6946 112 0x06,0xFF,0x50,0x0A,0xFF,0x30,
isonno 0:6da5625a6946 113 0x0C,0xF8,0x00,0x01,0xFF,0x70,
isonno 0:6da5625a6946 114 0x1F,0xF7,0x00,0x01,0xFF,0x90,
isonno 0:6da5625a6946 115 0x2F,0xFE,0x50,0x1A,0xFF,0x60,
isonno 0:6da5625a6946 116 0x2F,0xFC,0xFF,0xFF,0xFC,0x00,
isonno 0:6da5625a6946 117 0x1F,0xF7,0x5D,0xFF,0x70,0x00,
isonno 0:6da5625a6946 118 0x0E,0xFA,0x00,0x00,0x00,0x00,
isonno 0:6da5625a6946 119 0x09,0xFF,0x20,0x00,0x00,0x00,
isonno 0:6da5625a6946 120 0x02,0xFF,0xC3,0x00,0x7C,0x00,
isonno 0:6da5625a6946 121 0x00,0x6F,0xFF,0xFF,0xFD,0x00,
isonno 0:6da5625a6946 122 0x00,0x04,0xAF,0xFF,0x81,0x00
isonno 0:6da5625a6946 123 };
isonno 0:6da5625a6946 124
isonno 0:6da5625a6946 125 const sprite_data_t N6_sprt = { N6_data, 13, 11 };
isonno 0:6da5625a6946 126
isonno 0:6da5625a6946 127 const unsigned char N7_data[] = {
isonno 0:6da5625a6946 128 0x2F,0xFB,0x00,0x00,0x00,
isonno 0:6da5625a6946 129 0x0E,0xFC,0x00,0x00,0x00,
isonno 0:6da5625a6946 130 0x07,0xFF,0x30,0x00,0x00,
isonno 0:6da5625a6946 131 0x01,0xEF,0x70,0x00,0x00,
isonno 0:6da5625a6946 132 0x00,0x7F,0xE1,0x00,0x00,
isonno 0:6da5625a6946 133 0x00,0x0B,0xF7,0x00,0x00,
isonno 0:6da5625a6946 134 0x00,0x02,0xFE,0x10,0x00,
isonno 0:6da5625a6946 135 0x00,0x00,0x7F,0x90,0x00,
isonno 0:6da5625a6946 136 0x00,0x00,0x0B,0xF4,0x00,
isonno 0:6da5625a6946 137 0x00,0x00,0x02,0xED,0x10,
isonno 0:6da5625a6946 138 0x00,0x00,0x00,0x7F,0xA0,
isonno 0:6da5625a6946 139 0xDF,0xFF,0xFF,0xFF,0xF0,
isonno 0:6da5625a6946 140 0xDF,0xFF,0xFF,0xFF,0xF0
isonno 0:6da5625a6946 141 };
isonno 0:6da5625a6946 142
isonno 0:6da5625a6946 143 const sprite_data_t N7_sprt = { N7_data, 13, 9 };
isonno 0:6da5625a6946 144
isonno 0:6da5625a6946 145 const unsigned char N8_data[] = {
isonno 0:6da5625a6946 146 0x00,0x7D,0xFF,0xF9,0x30,0x00,
isonno 0:6da5625a6946 147 0x0A,0xFF,0xFF,0xFF,0xF4,0x00,
isonno 0:6da5625a6946 148 0x4F,0xFC,0x30,0x1B,0xFD,0x00,
isonno 0:6da5625a6946 149 0x6F,0xF3,0x00,0x04,0xFF,0x20,
isonno 0:6da5625a6946 150 0x2F,0xF5,0x00,0x2B,0xFE,0x10,
isonno 0:6da5625a6946 151 0x06,0xFD,0x79,0xFF,0xE4,0x00,
isonno 0:6da5625a6946 152 0x00,0x3F,0xFF,0xFD,0x00,0x00,
isonno 0:6da5625a6946 153 0x02,0xDF,0xF9,0xCF,0x80,0x00,
isonno 0:6da5625a6946 154 0x0A,0xFD,0x30,0x1E,0xF4,0x00,
isonno 0:6da5625a6946 155 0x0B,0xF7,0x00,0x0B,0xF7,0x00,
isonno 0:6da5625a6946 156 0x09,0xFC,0x10,0x4F,0xF7,0x00,
isonno 0:6da5625a6946 157 0x02,0xEF,0xFF,0xFF,0xD1,0x00,
isonno 0:6da5625a6946 158 0x00,0x29,0xFF,0xF9,0x20,0x00
isonno 0:6da5625a6946 159 };
isonno 0:6da5625a6946 160
isonno 0:6da5625a6946 161 const sprite_data_t N8_sprt = { N8_data, 13, 11 };
isonno 0:6da5625a6946 162
isonno 0:6da5625a6946 163 const unsigned char N9_data[] = {
isonno 0:6da5625a6946 164 0x06,0xCF,0xFB,0x30,0x00,
isonno 0:6da5625a6946 165 0x6F,0xFF,0xFF,0xE4,0x00,
isonno 0:6da5625a6946 166 0x69,0x20,0x2C,0xFB,0x20,
isonno 0:6da5625a6946 167 0x00,0x00,0x03,0xDF,0x60,
isonno 0:6da5625a6946 168 0x00,0x00,0x00,0x9F,0x90,
isonno 0:6da5625a6946 169 0x05,0xCF,0xE5,0x7F,0xB0,
isonno 0:6da5625a6946 170 0x4F,0xFF,0xFE,0xDF,0xB0,
isonno 0:6da5625a6946 171 0xCF,0xE3,0x04,0xEF,0xB0,
isonno 0:6da5625a6946 172 0xFF,0x60,0x00,0x6F,0xA0,
isonno 0:6da5625a6946 173 0xFF,0x60,0x00,0x8F,0x80,
isonno 0:6da5625a6946 174 0xAF,0xC2,0x05,0xEF,0x40,
isonno 0:6da5625a6946 175 0x2F,0xFF,0xFF,0xF9,0x00,
isonno 0:6da5625a6946 176 0x02,0xBF,0xFE,0x60,0x00
isonno 0:6da5625a6946 177 };
isonno 0:6da5625a6946 178
isonno 0:6da5625a6946 179 const sprite_data_t N9_sprt = { N9_data, 13, 9 };
isonno 0:6da5625a6946 180
isonno 0:6da5625a6946 181 const unsigned char dot_data[] = {
isonno 0:6da5625a6946 182 0xBF,0xF0,
isonno 0:6da5625a6946 183 0xBF,0xF0,
isonno 0:6da5625a6946 184 0xBF,0xF0,
isonno 0:6da5625a6946 185 0x00,0x00,
isonno 0:6da5625a6946 186 0x00,0x00,
isonno 0:6da5625a6946 187 0x00,0x00,
isonno 0:6da5625a6946 188 0x00,0x00,
isonno 0:6da5625a6946 189 0x00,0x00,
isonno 0:6da5625a6946 190 0x00,0x00,
isonno 0:6da5625a6946 191 0x00,0x00,
isonno 0:6da5625a6946 192 0x00,0x00,
isonno 0:6da5625a6946 193 0x00,0x00,
isonno 0:6da5625a6946 194 0x00,0x00
isonno 0:6da5625a6946 195 };
isonno 0:6da5625a6946 196
isonno 0:6da5625a6946 197 const sprite_data_t dot_sprt = { dot_data, 13, 3 };
isonno 0:6da5625a6946 198
isonno 0:6da5625a6946 199 const unsigned char plus_data[] = {
isonno 0:6da5625a6946 200 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 201 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 202 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 203 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 204 0xFF,0xFF,0xFF,0xFF,0xF0,
isonno 0:6da5625a6946 205 0xFF,0xFF,0xFF,0xFF,0xF0,
isonno 0:6da5625a6946 206 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 207 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 208 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 209 0x00,0x09,0xF2,0x00,0x00,
isonno 0:6da5625a6946 210 0x00,0x00,0x00,0x00,0x00,
isonno 0:6da5625a6946 211 0x00,0x00,0x00,0x00,0x00,
isonno 0:6da5625a6946 212 0x00,0x00,0x00,0x00,0x00
isonno 0:6da5625a6946 213 };
isonno 0:6da5625a6946 214
isonno 0:6da5625a6946 215 const sprite_data_t plus_sprt = { plus_data, 13, 9 };
isonno 0:6da5625a6946 216
isonno 0:6da5625a6946 217 const unsigned char minus_data[] = {
isonno 0:6da5625a6946 218 0x00,0x00,0x00,
isonno 0:6da5625a6946 219 0x00,0x00,0x00,
isonno 0:6da5625a6946 220 0x00,0x00,0x00,
isonno 0:6da5625a6946 221 0x00,0x00,0x00,
isonno 0:6da5625a6946 222 0x00,0x00,0x00,
isonno 0:6da5625a6946 223 0x7F,0xFF,0x60,
isonno 0:6da5625a6946 224 0x7F,0xFF,0x60,
isonno 0:6da5625a6946 225 0x00,0x00,0x00,
isonno 0:6da5625a6946 226 0x00,0x00,0x00,
isonno 0:6da5625a6946 227 0x00,0x00,0x00,
isonno 0:6da5625a6946 228 0x00,0x00,0x00,
isonno 0:6da5625a6946 229 0x00,0x00,0x00,
isonno 0:6da5625a6946 230 0x00,0x00,0x00
isonno 0:6da5625a6946 231 };
isonno 0:6da5625a6946 232
isonno 0:6da5625a6946 233 const sprite_data_t minus_sprt = { minus_data, 13, 5 };
isonno 0:6da5625a6946 234