Skip to content

Instantly share code, notes, and snippets.

@kekyo
Created October 6, 2018 13:57
Show Gist options
  • Save kekyo/47834bff8e71198eea5aeafe697e14b4 to your computer and use it in GitHub Desktop.
Save kekyo/47834bff8e71198eea5aeafe697e14b4 to your computer and use it in GitHub Desktop.
BrainPad - Christmas light demo (Using APA102 LED belt, from BrainPad Beginners guide)
let center = 12
let startRed = 0
let startGreen = 0
let startBlue = 0
let red = 0
let green = 0
let blue = 0
let data: Buffer = pins.createBuffer(4)
let dummy: Buffer = pins.createBuffer(4)
pins.spiFrequency(1000000)
function SendStart() {
data[0] = 0
data[1] = 0
data[2] = 0
data[3] = 0
pins.spiTransfer(data, dummy)
}
function SendRGB(red: number, green: number, blue: number) {
data[0] = 255
data[1] = blue
data[2] = green
data[3] = red
pins.spiTransfer(data, dummy)
}
forever(function () {
startRed = Math.constrain(startRed + Math.randomRange(-20, 20), 0, 255)
startGreen = Math.constrain(startGreen + Math.randomRange(-20, 20), 0, 255)
startBlue = Math.constrain(startBlue + Math.randomRange(-20, 20), 0, 255)
SendStart()
for (let index = 0; index <= 24; index = index + 1) {
red = Math.constrain(startRed - Math.abs(index - center) * 16, 0, 255)
green = Math.constrain(startGreen - Math.abs(index - center) * 16, 0, 255)
blue = Math.constrain(startBlue - Math.abs(index - center) * 16, 0, 255)
SendRGB(red, green, blue)
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment