Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.
neoPixelRing12.cpp@4:22b0f282731b, 2020-06-30 (annotated)
- Committer:
- Rhamao
- Date:
- Tue Jun 30 23:32:09 2020 +0000
- Revision:
- 4:22b0f282731b
- Parent:
- 3:f486b56187e2
version publique
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhamao | 0:754bf033bd47 | 1 | #include "neoPixelRing12.h" |
Rhamao | 0:754bf033bd47 | 2 | #include "mbed.h" |
Rhamao | 0:754bf033bd47 | 3 | #include "string.h" |
Rhamao | 0:754bf033bd47 | 4 | |
Rhamao | 0:754bf033bd47 | 5 | NeoPixelRing12::NeoPixelRing12(DigitalOut _digitalOutPin):digitalOutPin(_digitalOutPin) |
Rhamao | 0:754bf033bd47 | 6 | { |
Rhamao | 0:754bf033bd47 | 7 | } |
Rhamao | 0:754bf033bd47 | 8 | |
Rhamao | 0:754bf033bd47 | 9 | bool NeoPixelRing12::rst( ) |
Rhamao | 0:754bf033bd47 | 10 | { |
Rhamao | 0:754bf033bd47 | 11 | digitalOutPin=0; |
Rhamao | 0:754bf033bd47 | 12 | wait_us(RST_TIME_IN_US); |
Rhamao | 0:754bf033bd47 | 13 | return true; |
Rhamao | 0:754bf033bd47 | 14 | } |
Rhamao | 0:754bf033bd47 | 15 | |
Rhamao | 0:754bf033bd47 | 16 | bool NeoPixelRing12::rgbToDataStructure(char* rgbCode){ |
Rhamao | 0:754bf033bd47 | 17 | uint8_t i = 0; |
Rhamao | 0:754bf033bd47 | 18 | uint8_t offset = 0; |
Rhamao | 0:754bf033bd47 | 19 | |
Rhamao | 0:754bf033bd47 | 20 | //Red |
Rhamao | 0:754bf033bd47 | 21 | for (i=0; i<6; i++) { |
Rhamao | 0:754bf033bd47 | 22 | if(i==0) |
Rhamao | 0:754bf033bd47 | 23 | offset=11; |
Rhamao | 0:754bf033bd47 | 24 | if(i==1) |
Rhamao | 0:754bf033bd47 | 25 | offset=15; |
Rhamao | 0:754bf033bd47 | 26 | if(i==2) |
Rhamao | 0:754bf033bd47 | 27 | offset=3; |
Rhamao | 0:754bf033bd47 | 28 | if(i==3) |
Rhamao | 0:754bf033bd47 | 29 | offset=7; |
Rhamao | 0:754bf033bd47 | 30 | if(i==4) |
Rhamao | 0:754bf033bd47 | 31 | offset=19; |
Rhamao | 0:754bf033bd47 | 32 | if(i==5) |
Rhamao | 0:754bf033bd47 | 33 | offset=23; |
Rhamao | 0:754bf033bd47 | 34 | switch (rgbCode[i]) { |
Rhamao | 0:754bf033bd47 | 35 | case '0': |
Rhamao | 0:754bf033bd47 | 36 | //////////cout << "0000"; |
Rhamao | 0:754bf033bd47 | 37 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 38 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 39 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 40 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 41 | break; |
Rhamao | 0:754bf033bd47 | 42 | case '1': |
Rhamao | 0:754bf033bd47 | 43 | ////////////////////cout << "0001"; |
Rhamao | 0:754bf033bd47 | 44 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 45 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 46 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 47 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 48 | break; |
Rhamao | 0:754bf033bd47 | 49 | case '2': |
Rhamao | 0:754bf033bd47 | 50 | ////////cout << "0010"; |
Rhamao | 0:754bf033bd47 | 51 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 52 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 53 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 54 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 55 | break; |
Rhamao | 0:754bf033bd47 | 56 | case '3': |
Rhamao | 0:754bf033bd47 | 57 | ////////cout << "0011"; |
Rhamao | 0:754bf033bd47 | 58 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 59 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 60 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 61 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 62 | break; |
Rhamao | 0:754bf033bd47 | 63 | case '4': |
Rhamao | 0:754bf033bd47 | 64 | ////////cout << "0100"; |
Rhamao | 0:754bf033bd47 | 65 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 66 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 67 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 68 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 69 | break; |
Rhamao | 0:754bf033bd47 | 70 | case '5': |
Rhamao | 0:754bf033bd47 | 71 | ////////cout << "0101"; |
Rhamao | 0:754bf033bd47 | 72 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 73 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 74 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 75 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 76 | break; |
Rhamao | 0:754bf033bd47 | 77 | case '6': |
Rhamao | 0:754bf033bd47 | 78 | ////////cout << "0110"; |
Rhamao | 0:754bf033bd47 | 79 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 80 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 81 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 82 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 83 | break; |
Rhamao | 0:754bf033bd47 | 84 | case '7': |
Rhamao | 0:754bf033bd47 | 85 | ////////cout << "0111"; |
Rhamao | 0:754bf033bd47 | 86 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 87 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 88 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 89 | rgbDataStructure[offset-3]=false; |
Rhamao | 0:754bf033bd47 | 90 | break; |
Rhamao | 0:754bf033bd47 | 91 | case '8': |
Rhamao | 0:754bf033bd47 | 92 | ////////cout << "1000"; |
Rhamao | 0:754bf033bd47 | 93 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 94 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 95 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 96 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 97 | break; |
Rhamao | 0:754bf033bd47 | 98 | case '9': |
Rhamao | 0:754bf033bd47 | 99 | ////////cout << "1001"; |
Rhamao | 0:754bf033bd47 | 100 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 101 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 102 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 103 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 104 | break; |
Rhamao | 0:754bf033bd47 | 105 | case 'A': |
Rhamao | 0:754bf033bd47 | 106 | case 'a': |
Rhamao | 0:754bf033bd47 | 107 | ////////cout << "1010"; |
Rhamao | 0:754bf033bd47 | 108 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 109 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 110 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 111 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 112 | break; |
Rhamao | 0:754bf033bd47 | 113 | case 'B': |
Rhamao | 0:754bf033bd47 | 114 | case 'b': |
Rhamao | 0:754bf033bd47 | 115 | ////////cout << "1011"; |
Rhamao | 0:754bf033bd47 | 116 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 117 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 118 | rgbDataStructure[offset-2]=false; |
Rhamao | 0:754bf033bd47 | 119 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 120 | break; |
Rhamao | 0:754bf033bd47 | 121 | case 'C': |
Rhamao | 0:754bf033bd47 | 122 | case 'c': |
Rhamao | 0:754bf033bd47 | 123 | ////////cout << "1100"; |
Rhamao | 0:754bf033bd47 | 124 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 125 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 126 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 127 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 128 | break; |
Rhamao | 0:754bf033bd47 | 129 | case 'D': |
Rhamao | 0:754bf033bd47 | 130 | case 'd': |
Rhamao | 0:754bf033bd47 | 131 | ////////cout << "1101"; |
Rhamao | 0:754bf033bd47 | 132 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 133 | rgbDataStructure[offset-1]=false; |
Rhamao | 0:754bf033bd47 | 134 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 135 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 136 | break; |
Rhamao | 0:754bf033bd47 | 137 | case 'E': |
Rhamao | 0:754bf033bd47 | 138 | case 'e': |
Rhamao | 0:754bf033bd47 | 139 | ////////cout << "1110"; |
Rhamao | 0:754bf033bd47 | 140 | rgbDataStructure[offset]=false; |
Rhamao | 0:754bf033bd47 | 141 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 142 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 143 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 144 | break; |
Rhamao | 0:754bf033bd47 | 145 | case 'F': |
Rhamao | 0:754bf033bd47 | 146 | case 'f': |
Rhamao | 0:754bf033bd47 | 147 | ////////cout << "1111"; |
Rhamao | 0:754bf033bd47 | 148 | rgbDataStructure[offset]=true; |
Rhamao | 0:754bf033bd47 | 149 | rgbDataStructure[offset-1]=true; |
Rhamao | 0:754bf033bd47 | 150 | rgbDataStructure[offset-2]=true; |
Rhamao | 0:754bf033bd47 | 151 | rgbDataStructure[offset-3]=true; |
Rhamao | 0:754bf033bd47 | 152 | break; |
Rhamao | 0:754bf033bd47 | 153 | default: |
Rhamao | 0:754bf033bd47 | 154 | return false; |
Rhamao | 0:754bf033bd47 | 155 | } |
Rhamao | 0:754bf033bd47 | 156 | } |
Rhamao | 0:754bf033bd47 | 157 | return true; |
Rhamao | 0:754bf033bd47 | 158 | } |
Rhamao | 0:754bf033bd47 | 159 | |
Rhamao | 0:754bf033bd47 | 160 | bool NeoPixelRing12::bit(bool value){ |
Rhamao | 0:754bf033bd47 | 161 | if(!value){ |
Rhamao | 0:754bf033bd47 | 162 | digitalOutPin = 1; |
Rhamao | 0:754bf033bd47 | 163 | wait_ns(190); |
Rhamao | 0:754bf033bd47 | 164 | digitalOutPin = 0; |
Rhamao | 0:754bf033bd47 | 165 | wait_ns(740); |
Rhamao | 0:754bf033bd47 | 166 | } |
Rhamao | 0:754bf033bd47 | 167 | else{ |
Rhamao | 0:754bf033bd47 | 168 | digitalOutPin = 1; |
Rhamao | 4:22b0f282731b | 169 | wait_ns(440); |
Rhamao | 0:754bf033bd47 | 170 | digitalOutPin = 0; |
Rhamao | 4:22b0f282731b | 171 | wait_ns(440); |
Rhamao | 0:754bf033bd47 | 172 | } |
Rhamao | 0:754bf033bd47 | 173 | return true; |
Rhamao | 0:754bf033bd47 | 174 | } |
Rhamao | 0:754bf033bd47 | 175 | |
Rhamao | 0:754bf033bd47 | 176 | bool NeoPixelRing12::setLights(int nbOfLeds, char* rgbCode){ |
Rhamao | 1:76fb4b762ab1 | 177 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 178 | rgbToDataStructure(rgbCode); |
Rhamao | 1:76fb4b762ab1 | 179 | for(int i=0; i<nbOfLeds; i++){ |
Rhamao | 1:76fb4b762ab1 | 180 | for(int y=0; y<24; y++){ |
Rhamao | 1:76fb4b762ab1 | 181 | bit(rgbDataStructure[y]); |
Rhamao | 1:76fb4b762ab1 | 182 | } |
Rhamao | 1:76fb4b762ab1 | 183 | } |
Rhamao | 1:76fb4b762ab1 | 184 | rst(); |
Rhamao | 1:76fb4b762ab1 | 185 | return true; |
Rhamao | 1:76fb4b762ab1 | 186 | } |
Rhamao | 1:76fb4b762ab1 | 187 | |
Rhamao | 1:76fb4b762ab1 | 188 | bool NeoPixelRing12::setLights(char RGBmap[12][7]){ |
Rhamao | 1:76fb4b762ab1 | 189 | char* buffer; |
Rhamao | 4:22b0f282731b | 190 | //initLights(); |
Rhamao | 1:76fb4b762ab1 | 191 | for(int i=0; i<12; i++){ |
Rhamao | 1:76fb4b762ab1 | 192 | buffer=&RGBmap[i][0]; |
Rhamao | 1:76fb4b762ab1 | 193 | rgbToDataStructure(buffer); |
Rhamao | 1:76fb4b762ab1 | 194 | for(int y=0; y<24; y++){ |
Rhamao | 1:76fb4b762ab1 | 195 | bit(rgbDataStructure[y]); |
Rhamao | 1:76fb4b762ab1 | 196 | } |
Rhamao | 1:76fb4b762ab1 | 197 | } |
Rhamao | 1:76fb4b762ab1 | 198 | rst(); |
Rhamao | 1:76fb4b762ab1 | 199 | return true; |
Rhamao | 1:76fb4b762ab1 | 200 | } |
Rhamao | 1:76fb4b762ab1 | 201 | |
Rhamao | 1:76fb4b762ab1 | 202 | |
Rhamao | 1:76fb4b762ab1 | 203 | bool NeoPixelRing12::initLights(){ |
Rhamao | 1:76fb4b762ab1 | 204 | for(int y=0; y<24; y++){ |
Rhamao | 1:76fb4b762ab1 | 205 | bit(0); |
Rhamao | 1:76fb4b762ab1 | 206 | } |
Rhamao | 1:76fb4b762ab1 | 207 | rst(); |
Rhamao | 1:76fb4b762ab1 | 208 | return true; |
Rhamao | 1:76fb4b762ab1 | 209 | } |
Rhamao | 1:76fb4b762ab1 | 210 | |
Rhamao | 2:327eb27271b0 | 211 | bool NeoPixelRing12::setLightsNoReset(int nbOfLeds, char* rgbCode){ |
Rhamao | 2:327eb27271b0 | 212 | rgbToDataStructure(rgbCode); |
Rhamao | 2:327eb27271b0 | 213 | for(int i=0; i<nbOfLeds; i++){ |
Rhamao | 2:327eb27271b0 | 214 | for(int y=0; y<24; y++){ |
Rhamao | 2:327eb27271b0 | 215 | bit(rgbDataStructure[y]); |
Rhamao | 2:327eb27271b0 | 216 | } |
Rhamao | 2:327eb27271b0 | 217 | } |
Rhamao | 2:327eb27271b0 | 218 | return true; |
Rhamao | 2:327eb27271b0 | 219 | } |
Rhamao | 2:327eb27271b0 | 220 | |
Rhamao | 1:76fb4b762ab1 | 221 | bool NeoPixelRing12::circleUpAnimations(){ |
Rhamao | 1:76fb4b762ab1 | 222 | char buffer=0; |
Rhamao | 1:76fb4b762ab1 | 223 | uint32_t rgb=0; |
Rhamao | 1:76fb4b762ab1 | 224 | char str[7]; |
Rhamao | 2:327eb27271b0 | 225 | char redBuffer[256][7], greenBuffer[256][7], blueBuffer[256][7]; |
Rhamao | 1:76fb4b762ab1 | 226 | int i, y, z, x; |
Rhamao | 1:76fb4b762ab1 | 227 | for(i=0; i<36; i++){ |
Rhamao | 1:76fb4b762ab1 | 228 | buffer+=7; |
Rhamao | 1:76fb4b762ab1 | 229 | rgb = (buffer<<16); |
Rhamao | 1:76fb4b762ab1 | 230 | sprintf(str, "%06x", rgb & 0xffffff); |
Rhamao | 1:76fb4b762ab1 | 231 | strcpy(redBuffer[i], str); |
Rhamao | 1:76fb4b762ab1 | 232 | rgb = (buffer<<8); |
Rhamao | 1:76fb4b762ab1 | 233 | sprintf(str, "%06x", rgb & 0xffffff); |
Rhamao | 1:76fb4b762ab1 | 234 | strcpy(greenBuffer[i], str); |
Rhamao | 1:76fb4b762ab1 | 235 | rgb = buffer; |
Rhamao | 1:76fb4b762ab1 | 236 | sprintf(str, "%06x", rgb & 0xffffff); |
Rhamao | 1:76fb4b762ab1 | 237 | strcpy(blueBuffer[i], str); |
Rhamao | 1:76fb4b762ab1 | 238 | } |
Rhamao | 1:76fb4b762ab1 | 239 | x=0; |
Rhamao | 1:76fb4b762ab1 | 240 | for(y=0; y<3; y++){ |
Rhamao | 1:76fb4b762ab1 | 241 | for(i=0; i<12; i++){ |
Rhamao | 1:76fb4b762ab1 | 242 | x++; |
Rhamao | 1:76fb4b762ab1 | 243 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 244 | for(z=0; z<i; z++) |
Rhamao | 1:76fb4b762ab1 | 245 | setLightsNoReset(1, redBuffer[x-z]); |
Rhamao | 1:76fb4b762ab1 | 246 | setLightsNoReset(1, redBuffer[x]); |
Rhamao | 1:76fb4b762ab1 | 247 | rst(); |
Rhamao | 1:76fb4b762ab1 | 248 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 249 | } |
Rhamao | 1:76fb4b762ab1 | 250 | for(i=1; i<=12; i++){ |
Rhamao | 1:76fb4b762ab1 | 251 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 252 | setLightsNoReset(i, "000000"); |
Rhamao | 1:76fb4b762ab1 | 253 | rst(); |
Rhamao | 1:76fb4b762ab1 | 254 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 255 | } |
Rhamao | 1:76fb4b762ab1 | 256 | } |
Rhamao | 1:76fb4b762ab1 | 257 | x=0; |
Rhamao | 1:76fb4b762ab1 | 258 | for(y=0; y<3; y++){ |
Rhamao | 1:76fb4b762ab1 | 259 | for(i=0; i<12; i++){ |
Rhamao | 1:76fb4b762ab1 | 260 | x++; |
Rhamao | 1:76fb4b762ab1 | 261 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 262 | for(z=0; z<i; z++) |
Rhamao | 1:76fb4b762ab1 | 263 | setLightsNoReset(1, greenBuffer[x-z]); |
Rhamao | 1:76fb4b762ab1 | 264 | setLightsNoReset(1, greenBuffer[x]); |
Rhamao | 1:76fb4b762ab1 | 265 | rst(); |
Rhamao | 1:76fb4b762ab1 | 266 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 267 | } |
Rhamao | 1:76fb4b762ab1 | 268 | for(i=1; i<=12; i++){ |
Rhamao | 1:76fb4b762ab1 | 269 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 270 | setLightsNoReset(i, "000000"); |
Rhamao | 1:76fb4b762ab1 | 271 | rst(); |
Rhamao | 1:76fb4b762ab1 | 272 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 273 | } |
Rhamao | 1:76fb4b762ab1 | 274 | } |
Rhamao | 1:76fb4b762ab1 | 275 | x=0; |
Rhamao | 1:76fb4b762ab1 | 276 | for(y=0; y<3; y++){ |
Rhamao | 1:76fb4b762ab1 | 277 | for(i=0; i<12; i++){ |
Rhamao | 1:76fb4b762ab1 | 278 | x++; |
Rhamao | 1:76fb4b762ab1 | 279 | initLights(); |
Rhamao | 1:76fb4b762ab1 | 280 | for(z=0; z<i; z++) |
Rhamao | 1:76fb4b762ab1 | 281 | setLightsNoReset(1, blueBuffer[x-z]); |
Rhamao | 1:76fb4b762ab1 | 282 | setLightsNoReset(1, blueBuffer[x]); |
Rhamao | 1:76fb4b762ab1 | 283 | rst(); |
Rhamao | 1:76fb4b762ab1 | 284 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 285 | } |
Rhamao | 1:76fb4b762ab1 | 286 | for(i=1; i<=12; i++){ |
Rhamao | 2:327eb27271b0 | 287 | setLights(i, "000000"); |
Rhamao | 1:76fb4b762ab1 | 288 | wait(0.07); |
Rhamao | 1:76fb4b762ab1 | 289 | } |
Rhamao | 1:76fb4b762ab1 | 290 | } |
Rhamao | 1:76fb4b762ab1 | 291 | return true; |
Rhamao | 1:76fb4b762ab1 | 292 | } |
Rhamao | 1:76fb4b762ab1 | 293 | |
Rhamao | 2:327eb27271b0 | 294 | bool NeoPixelRing12::ironManRepulsorBlastAnimations(){ |
Rhamao | 2:327eb27271b0 | 295 | char buffer=0; |
Rhamao | 2:327eb27271b0 | 296 | uint32_t rgb=0; |
Rhamao | 2:327eb27271b0 | 297 | char str[7]; |
Rhamao | 2:327eb27271b0 | 298 | char rgbBuffer[256][7]; |
Rhamao | 2:327eb27271b0 | 299 | int i, y; |
Rhamao | 2:327eb27271b0 | 300 | for(i=0; i<256; i++){ |
Rhamao | 2:327eb27271b0 | 301 | buffer++; |
Rhamao | 2:327eb27271b0 | 302 | rgb = (buffer<<16) + (buffer<<8) + buffer; |
Rhamao | 2:327eb27271b0 | 303 | sprintf(str, "%06x", rgb & 0xffffff); |
Rhamao | 2:327eb27271b0 | 304 | strcpy(rgbBuffer[i], str); |
Rhamao | 2:327eb27271b0 | 305 | } |
Rhamao | 2:327eb27271b0 | 306 | for(i=0; i<50; i++){ |
Rhamao | 2:327eb27271b0 | 307 | setLights(12, rgbBuffer[i]); |
Rhamao | 2:327eb27271b0 | 308 | wait(0.02); |
Rhamao | 2:327eb27271b0 | 309 | } |
Rhamao | 2:327eb27271b0 | 310 | setLights(12, "000000"); |
Rhamao | 2:327eb27271b0 | 311 | wait(0.1); |
Rhamao | 2:327eb27271b0 | 312 | setLights(12, "ffffff"); |
Rhamao | 2:327eb27271b0 | 313 | wait(0.1); |
Rhamao | 2:327eb27271b0 | 314 | setLights(12, "000000"); |
Rhamao | 2:327eb27271b0 | 315 | wait(0.1); |
Rhamao | 2:327eb27271b0 | 316 | setLights(12, "ffffff"); |
Rhamao | 2:327eb27271b0 | 317 | wait(0.1); |
Rhamao | 2:327eb27271b0 | 318 | for(y=0; y<5; y++){ |
Rhamao | 2:327eb27271b0 | 319 | for(i=0; i<50; i++){ |
Rhamao | 2:327eb27271b0 | 320 | setLights(12, rgbBuffer[i]); |
Rhamao | 2:327eb27271b0 | 321 | wait(0.045); |
Rhamao | 2:327eb27271b0 | 322 | } |
Rhamao | 2:327eb27271b0 | 323 | for(i=50; i>=0; i--){ |
Rhamao | 2:327eb27271b0 | 324 | setLights(12, rgbBuffer[i]); |
Rhamao | 2:327eb27271b0 | 325 | wait(0.045); |
Rhamao | 0:754bf033bd47 | 326 | } |
Rhamao | 0:754bf033bd47 | 327 | } |
Rhamao | 0:754bf033bd47 | 328 | return true; |
Rhamao | 0:754bf033bd47 | 329 | } |
Rhamao | 0:754bf033bd47 | 330 | |
Rhamao | 3:f486b56187e2 | 331 | bool NeoPixelRing12::rainbowAnimations(){ |
Rhamao | 3:f486b56187e2 | 332 | char buffer=0; |
Rhamao | 3:f486b56187e2 | 333 | uint32_t rgb=0; |
Rhamao | 3:f486b56187e2 | 334 | char redBuffer[12][7]= {{"660000"},{"663300"},{"666600"},{"3366"}, |
Rhamao | 3:f486b56187e2 | 335 | {"006600"},{"006633"},{"006666"},{"003366"}, |
Rhamao | 3:f486b56187e2 | 336 | {"000066"},{"330066"},{"660066"},{"660033"}}; |
Rhamao | 3:f486b56187e2 | 337 | int i, y, z, x; |
Rhamao | 3:f486b56187e2 | 338 | for(i=0; i<12; i++){ |
Rhamao | 3:f486b56187e2 | 339 | initLights(); |
Rhamao | 3:f486b56187e2 | 340 | for(z=0; z<i; z++) |
Rhamao | 3:f486b56187e2 | 341 | setLightsNoReset(1, redBuffer[i-z]); |
Rhamao | 3:f486b56187e2 | 342 | setLightsNoReset(1, redBuffer[i]); |
Rhamao | 3:f486b56187e2 | 343 | rst(); |
Rhamao | 3:f486b56187e2 | 344 | wait(0.07); |
Rhamao | 3:f486b56187e2 | 345 | } |
Rhamao | 3:f486b56187e2 | 346 | for(i=1; i<=12; i++){ |
Rhamao | 3:f486b56187e2 | 347 | initLights(); |
Rhamao | 3:f486b56187e2 | 348 | setLightsNoReset(i, "000000"); |
Rhamao | 3:f486b56187e2 | 349 | rst(); |
Rhamao | 3:f486b56187e2 | 350 | wait(0.07); |
Rhamao | 3:f486b56187e2 | 351 | } |
Rhamao | 3:f486b56187e2 | 352 | return true; |
Rhamao | 3:f486b56187e2 | 353 | } |
Rhamao | 0:754bf033bd47 | 354 |