/*var sensor = require("HC-SR04").connect(C6,C7,function(dist) { console.log(dist+" cm away"); }); setInterval(function() { sensor.trigger(); // send pulse }, 500); */ SPI2.setup({baud:3200000, mosi:B15}); var rgb = new Uint8Array(50*3); var pos=0; function lightsOff() { clearInterval(cycle); pos++; for (var i=0;i<rgb.length;i+=3) { rgb[i ] = 0; rgb[i+1] = 0; rgb[i+2] = 0; } SPI2.send4bit(rgb, 0b0001, 0b0011); } var patterns = []; //patterns.push(lightsOff); patterns.push(function() { // Fading white lights LCD.clear(); pos++; for (var i=0;i<rgb.length;i+=3) { var col = (Math.sin(i+pos*0.2)+1) * 127; rgb[i ] = col; rgb[i+1] = col; rgb[i+2] = col; } }); patterns.push(function() { // Red Light pos++; for (var i=0;i<rgb.length;i+=3) { var col = 255; rgb[i ] = col; rgb[i+1] = 0; rgb[i+2] = 0; } }); patterns.push(function() { // Green Light pos++; for (var i=0;i<rgb.length;i+=3) { var col = 255; rgb[i ] = 0; rgb[i+1] = col; rgb[i+2] = 0; } }); patterns.push(function() { // Blue Light pos++; for (var i=0;i<rgb.length;i+=3) { var col = 255; rgb[i ] = 0; rgb[i+1] = 0; rgb[i+2] = col; } }); patterns.push(function() { // Yellow light pos++; for (var i=0;i<rgb.length;i+=3) { var col = 255; rgb[i ] = col; rgb[i+1] = col; rgb[i+2] = 0; } }); patterns.push(function() { // Cyan light pos++; for (var i=0;i<rgb.length;i+=3) { var col = 255; rgb[i ] = 0; rgb[i+1] = col; rgb[i+2] = col; } }); patterns.push(function() { // Fading colours pos++; for (var i=0;i<rgb.length;i+=3) { rgb[i ] = (1 + Math.sin((i+pos)*0.1324))*127; rgb[i+1] = (1 + Math.sin((i+pos)*0.1654))*127; rgb[i+2] = (1 + Math.sin((i+pos)*0.1)) * 127; } }); patterns.push(function() { // Random blue lights for (var i=0;i<rgb.length;i+=3) { rgb[i ] = 0; rgb[i+1] = 0; rgb[i+2] = Math.random()*255; } }); var getPattern = patterns[0]; function changePattern() { patternNumber = (patternNumber+1) % patterns.length; getPattern = patterns[patternNumber]; SPI2.send4bit(rgb, 0b0001, 0b0011); } var patternNumber = 0; function changePattern() { patternNumber = (patternNumber+1) % patterns.length; getPattern = patterns[patternNumber]; } setWatch(changePattern, BTN, { repeat: true, edge:'rising', debounce: 50 }); //cycle = setInterval(doLights,50); // this below was ^ function doLights() { getPattern(); for (var i=0;i<rgb.length;i+=3) { LCD.setColor(rgb[i+0]/256,rgb[i+1]/256,rgb[i+2]/256); LCD.fillRect(i,0,i+2,10); } SPI2.send4bit(rgb, 0b0001, 0b0011); }
@GarrettL started
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.