function press_AB () { inc = 0 char_code = 48 basic.showString(String.fromCharCode(char_code)) radio_tx(char_code) reset() strip.showColor(neopixel.rgb(red, green, blue)) } function rainbow2 () { strip.clear() strip.show() for (let index = 0; index < 100; index++) { strip.showRainbow(1, randint(0, list[0])) strip.show() basic.pause(100) } } function lrfade () { bright = 0 strip.showColor(neopixel.rgb(255, 255, 255)) for (let index = 0; index <= 255; index++) { strip.showRainbow(1, index) } for (let index = 0; index <= 255; index++) { strip.showRainbow(index, 1) } } radio.onReceivedNumber(function (receivedNumber) { if (paired == true) { if (receivedNumber == 1) { press_A() } if (receivedNumber == 2) { press_B() } if (receivedNumber == 3) { press_AB() } } }) function stepping (fore: number, back: number) { strip.showColor(back) for (let index = 0; index <= 3; index++) { strip.setPixelColor(index, fore) strip.rotate(1) strip.show() basic.pause(500) } } function radio_tx (num: number) { if (paired == true) { radio.sendString(String.fromCharCode(num)) } } input.onButtonPressed(Button.A, function () { press_A() }) function rud () { bright = 0 for (let index = 0; index < 1000; index++) { bright += 2550 strip.setPixelColor(0, 200000 + bright) strip.setPixelColor(3, 200000 + bright) strip.setPixelColor(1, 200000 - bright) strip.setPixelColor(2, 200000 - bright) strip.show() basic.pause(100) } } function sequence () { singles() pairings() } function randoms () { strip.clear() strip.show() for (let index = 0; index < 100; index++) { strip.setPixelColor(randint(0, 3), randint(0, list[0])) strip.show() basic.pause(100) } } input.onButtonPressed(Button.AB, function () { press_AB() }) input.onButtonPressed(Button.B, function () { press_B() }) function pairs (offset1: number, offset2: number, mode: number) { if (mode == 1) { strip.setPixelColor(0, list[0 + offset1]) strip.setPixelColor(1, list[1 + offset2]) strip.setPixelColor(2, list[0 + offset1]) strip.setPixelColor(3, list[1 + offset2]) } if (mode == 2) { strip.setPixelColor(0, list[1 + offset1]) strip.setPixelColor(1, list[0 + offset2]) strip.setPixelColor(2, list[1 + offset1]) strip.setPixelColor(3, list[0 + offset2]) } if (mode == 3) { strip.setPixelColor(0, list[0 + offset1]) strip.setPixelColor(1, list[1 + offset2]) strip.setPixelColor(2, list[1 + offset1]) strip.setPixelColor(3, list[0 + offset2]) } if (mode == 4) { strip.setPixelColor(0, list[1 + offset1]) strip.setPixelColor(1, list[0 + offset2]) strip.setPixelColor(2, list[0 + offset1]) strip.setPixelColor(3, list[1 + offset2]) } if (mode == 5) { strip.setPixelColor(0, list[0]) strip.setPixelColor(1, list[1 + offset2]) strip.setPixelColor(2, list[1 + offset1]) strip.setPixelColor(3, list[0]) } if (mode == 6) { strip.setPixelColor(0, list[1 + offset1]) strip.setPixelColor(1, list[0]) strip.setPixelColor(2, list[0]) strip.setPixelColor(3, list[1 + offset2]) } strip.show() } radio.onReceivedValue(function (name, value) { if (name == "candle") { paired = true } }) function press_A () { inc += 1 if (inc > 26) { inc = 0 char_code = 48 } else { char_code = 64 + inc } basic.showString(String.fromCharCode(char_code)) radio_tx(char_code) if (inc < 16) { sequence() } } function singles () { if (inc <= 0) { reset() } if (inc == 1) { reset() red = 255 } if (inc == 2) { reset() green = 255 } if (inc == 3) { reset() blue = 255 } strip.showColor(neopixel.rgb(red, green, blue)) } function pairings () { // RGRG if (inc == 4) { pairs(0, 0, 1) } // GRGR if (inc == 5) { pairs(0, 0, 2) } // RGGR if (inc == 6) { pairs(0, 0, 3) } // GRRG if (inc == 7) { pairs(0, 0, 4) } // RBRB if (inc == 8) { pairs(0, 1, 1) } // BRBR if (inc == 9) { pairs(1, 0, 2) } // RBBR if (inc == 10) { pairs(1, 1, 5) } // BRRB if (inc == 11) { pairs(1, 1, 6) } // GBGB if (inc == 12) { pairs(1, 1, 1) } // BGBG if (inc == 13) { pairs(1, 1, 2) } // GBBG if (inc == 14) { pairs(1, 1, 3) } // BGGB if (inc == 15) { pairs(1, 1, 4) } } function press_B () { inc += -1 if (inc < 1) { inc = 27 char_code = 48 } else { char_code = 64 + inc } basic.showString(String.fromCharCode(char_code)) radio_tx(char_code) if (inc < 16) { sequence() } } function reset () { red = 0 green = 0 blue = 0 } function randomit () { for (let index = 0; index < 100; index++) { strip.setPixelColor(0, randint(0, list[0])) strip.setPixelColor(1, randint(0, list[0])) strip.setPixelColor(2, randint(0, list[0])) strip.setPixelColor(3, randint(0, list[0])) strip.show() basic.pause(100) } } let bright = 0 let blue = 0 let green = 0 let red = 0 let char_code = 0 let strip: neopixel.Strip = null let inc = 0 let list: number[] = [] let mode = 0 let offset2 = 0 let offset1 = 0 let back = 0 let fore = 0 let paired = false radio.setGroup(1) paired = false fore = 0 back = 0 offset1 = 0 offset2 = 0 mode = 0 list = [16711680, 65280, 255] inc = 0 strip = neopixel.create(DigitalPin.P0, 4, NeoPixelMode.RGB) strip.showColor(neopixel.rgb(0, 0, 0)) basic.forever(function () { // RG if (inc <= 0) { strip.showColor(neopixel.rgb(0, 0, 0)) } // RG if (inc == 16) { stepping(16711680, 65280) } // GR if (inc == 17) { stepping(65280, 16711680) } // BR if (inc == 18) { stepping(255, 16711680) } // RB if (inc == 19) { stepping(16711680, 255) } // GB if (inc == 20) { stepping(65280, 255) } // BG if (inc == 21) { stepping(255, 65280) } // BG if (inc == 22) { lrfade() } // BG if (inc == 23) { rud() } // BG if (inc == 24) { randomit() } // BG if (inc == 25) { rainbow2() } // BG if (inc == 26) { randoms() } })