Updated for better switching
parent
822539db4a
commit
acc07ecee8
|
@ -1,4 +1,7 @@
|
||||||
|
// TODO: Rewrite everything
|
||||||
|
|
||||||
#include <WS2812.h>
|
#include <WS2812.h>
|
||||||
|
// TODO: switch to FastLED.io
|
||||||
#include <CapacitiveSensor.h>
|
#include <CapacitiveSensor.h>
|
||||||
|
|
||||||
#define LEDCount 37
|
#define LEDCount 37
|
||||||
|
@ -16,27 +19,30 @@ void setup() {
|
||||||
capv_btn1.set_CS_AutocaL_Millis(0xFFFFFFFF);
|
capv_btn1.set_CS_AutocaL_Millis(0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int capv_btn1_v;
|
||||||
void loop() {
|
void loop() {
|
||||||
//int capv_btn1_v = capv_btn1.capacitiveSensor(1);
|
//int capv_btn1_v = capv_btn1.capacitiveSensor(1);
|
||||||
capv_btn1_avg = (capv_btn1.capacitiveSensor(1) + capv_btn1_avg * 7) / 8;
|
capv_btn1_avg = (capv_btn1.capacitiveSensor(1) + capv_btn1_avg * 20) / 21;
|
||||||
int capv_btn1_v = capv_btn1_avg;
|
capv_btn1_v = capv_btn1_avg;
|
||||||
if (capv_btn1_v > 60 && !capv_btn1_state) {
|
if (capv_btn1_v > 70 && !capv_btn1_state) {
|
||||||
Serial.write(0x17);
|
Serial.write(0x17);
|
||||||
Serial.write(0xff);
|
Serial.write(0xff);
|
||||||
capv_btn1_avg += 600;
|
capv_btn1_avg += 1000000;
|
||||||
capv_btn1_state = true;
|
capv_btn1_state = true;
|
||||||
|
digitalWrite(13, HIGH);
|
||||||
}
|
}
|
||||||
else if (capv_btn1_v < 25 && capv_btn1_state) {
|
else if (capv_btn1_v < 30 && capv_btn1_state) {
|
||||||
Serial.write(0x17);
|
Serial.write(0x17);
|
||||||
Serial.write(0x00);
|
Serial.write(0x00);
|
||||||
capv_btn1_state = false;
|
capv_btn1_state = false;
|
||||||
|
digitalWrite(13, LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Serial.available() > 0) {
|
if (Serial.available() > 0) {
|
||||||
byte command = Serial.read();
|
byte command = Serial.read();
|
||||||
if (command == 0x11) {
|
if (command == 0x11) {
|
||||||
LED.sync();
|
LED.sync();
|
||||||
//Serial.write(0x1a);
|
Serial.write(0x1a);
|
||||||
}
|
}
|
||||||
else if (command == 0x12) {
|
else if (command == 0x12) {
|
||||||
while (Serial.available() < 4) {
|
while (Serial.available() < 4) {
|
||||||
|
@ -46,10 +52,10 @@ void loop() {
|
||||||
value.g = Serial.read();
|
value.g = Serial.read();
|
||||||
value.b = Serial.read();
|
value.b = Serial.read();
|
||||||
LED.set_crgb_at(pos, value);
|
LED.set_crgb_at(pos, value);
|
||||||
//Serial.write(0x1b);
|
Serial.write(0x1b);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Serial.write(0x1e);
|
Serial.write(0x1e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
64
index.js
64
index.js
|
@ -1,14 +1,20 @@
|
||||||
var express = require("express");
|
var express = require("express");
|
||||||
|
|
||||||
var SerialPort = require("serialport").SerialPort;
|
var serialport = require("serialport");
|
||||||
|
var SerialPort = serialport.SerialPort;
|
||||||
var serialPort = new SerialPort(process.argv[2], {
|
var serialPort = new SerialPort(process.argv[2], {
|
||||||
baudrate: 115200
|
baudrate: 115200,
|
||||||
|
flowControl: false
|
||||||
});
|
});
|
||||||
|
|
||||||
var lightstate = false;
|
/*serialport.list((err, ports) => {
|
||||||
|
console.log(ports);
|
||||||
|
});*/
|
||||||
|
|
||||||
|
var lightstate = true;
|
||||||
|
|
||||||
var tT;
|
var tT;
|
||||||
var leds = 37;
|
var leds = 16;//273;
|
||||||
|
|
||||||
var toHue = function (s) {
|
var toHue = function (s) {
|
||||||
return Math.floor(s / 64 * 256 % 256);
|
return Math.floor(s / 64 * 256 % 256);
|
||||||
|
@ -36,8 +42,8 @@ var hslToRgb = function (h, s, l) {
|
||||||
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
|
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
|
||||||
};
|
};
|
||||||
|
|
||||||
var state = 42;
|
var state = 3;//42;
|
||||||
var lightness = 0.5;
|
var lightness = 0.8;
|
||||||
var h;
|
var h;
|
||||||
var i = toHue(state);
|
var i = toHue(state);
|
||||||
|
|
||||||
|
@ -114,6 +120,8 @@ var fade = function (color, cb) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var isdone = true;
|
||||||
|
|
||||||
serialPort.on("open", function () {
|
serialPort.on("open", function () {
|
||||||
serialPort.on("data", function (d) {
|
serialPort.on("data", function (d) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
@ -129,12 +137,33 @@ serialPort.on("open", function () {
|
||||||
if (n === null) {
|
if (n === null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var state = n == 0xff;
|
var lstate = n == 0xff;
|
||||||
// state
|
// lstate
|
||||||
//state slide(() => { return [0, 0, 0]; }, () => {}, 20);
|
//lstate slide(() => { return [0, 0, 0]; }, () => {}, 20);
|
||||||
if (state) {
|
if (lstate) {
|
||||||
lightstate = !lightstate;
|
//console.log("Tapped");
|
||||||
lightstate ? setLightness(0) : setLightness(1);
|
//var a = () => {
|
||||||
|
// if (isdone) {
|
||||||
|
lightstate = !lightstate;
|
||||||
|
// isdone = false;
|
||||||
|
//setLightness(lightstate ? 0 : 0.8, () => {
|
||||||
|
// isdone = true;
|
||||||
|
//});
|
||||||
|
var color = hslToRgb(toHue(state) / 256, 1, lightstate ? lightness : 0);
|
||||||
|
flash(() => {
|
||||||
|
return color;
|
||||||
|
}, () => {
|
||||||
|
// isdone = true;
|
||||||
|
});
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// setTimeout(a, 10);
|
||||||
|
// }
|
||||||
|
//};
|
||||||
|
//a();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//console.log("down");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -221,9 +250,9 @@ app.get("/set/:i", function (req, res) {
|
||||||
});
|
});
|
||||||
|
|
||||||
var lightnessT;
|
var lightnessT;
|
||||||
var setLightness = (l) => {
|
var setLightness = (l, done, delay) => {
|
||||||
clearTimeout(lightnessT);
|
//clearTimeout(lightnessT);
|
||||||
clearTimeout(tT);
|
//clearTimeout(tT);
|
||||||
|
|
||||||
var from = lightness;
|
var from = lightness;
|
||||||
var to = l * 1;
|
var to = l * 1;
|
||||||
|
@ -236,7 +265,7 @@ var setLightness = (l) => {
|
||||||
if ((to - from) < 0 ? lightness > to : lightness < to) {
|
if ((to - from) < 0 ? lightness > to : lightness < to) {
|
||||||
lightnessT = setTimeout(function () {
|
lightnessT = setTimeout(function () {
|
||||||
a();
|
a();
|
||||||
}, 16);
|
}, delay == undefined ? 16 : delay);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lightness = to;
|
lightness = to;
|
||||||
|
@ -244,8 +273,9 @@ var setLightness = (l) => {
|
||||||
flash(() => {
|
flash(() => {
|
||||||
return hslToRgb(toHue(state) / 256, 1, lightness);
|
return hslToRgb(toHue(state) / 256, 1, lightness);
|
||||||
}, () => {
|
}, () => {
|
||||||
|
done && done();
|
||||||
});
|
});
|
||||||
}, 16);
|
}, delay == undefined ? 16 : delay);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue