commit
4695c3ff01
2 changed files with 187 additions and 0 deletions
-
75index.js
-
112simple/simple.ino
@ -0,0 +1,75 @@ |
|||
var express = require("express"); |
|||
var SerialPort = require("serialport").SerialPort; |
|||
var serialPort = new SerialPort("/dev/ttyACM0", { |
|||
baudrate: 9600 |
|||
}); |
|||
serialPort.on("open", function () { |
|||
/*serialPort.on('data', function(data) { |
|||
process.stderr.write(data); |
|||
});*/ |
|||
setTimeout(function () { |
|||
serialPort.write("2,3\n", function (err, results) { |
|||
setTimeout(function () { |
|||
serialPort.write("1,255\n", function (err, results) { |
|||
}); |
|||
}, 500); |
|||
}); |
|||
}, 2000); |
|||
}); |
|||
|
|||
var toHue = function (s) { |
|||
return Math.floor(s / 64 * 256 % 256); |
|||
}; |
|||
|
|||
var state = 42; |
|||
var h; |
|||
var i = toHue(state); |
|||
|
|||
var sp = 1; |
|||
|
|||
var app = express(); |
|||
|
|||
app.get("/get", function (req, res) { |
|||
res.end(state + ""); |
|||
}); |
|||
|
|||
app.get("/set/:i", function (req, res) { |
|||
|
|||
state = req.params.i; |
|||
//console.log("3," + Math.floor(state / 64 * 256 % 256));
|
|||
res.status(200).end(); |
|||
|
|||
if (h) { |
|||
clearInterval(h); |
|||
} |
|||
h = setInterval(function () { |
|||
if (i - toHue(state) > toHue(state) - i + 255) { |
|||
i += sp; |
|||
} |
|||
else if (toHue(state) - i > i - toHue(state) + 255) { |
|||
i -= sp; |
|||
} |
|||
else if (toHue(state) < i) { |
|||
i -= sp; |
|||
} |
|||
else if (toHue(state) > i) { |
|||
i += sp; |
|||
} |
|||
if (i > 255) { |
|||
i = 0; |
|||
} |
|||
else if (i < 0) { |
|||
i = 255; |
|||
} |
|||
if (Math.floor(toHue(state) / sp * 2) == Math.floor(i / sp * 2)) { |
|||
i = toHue(state); |
|||
console.log(i); |
|||
clearInterval(h); |
|||
} |
|||
serialPort.write("3," + Math.floor(i) + "\n", function (err, results) { |
|||
}); |
|||
}, 50) |
|||
|
|||
}); |
|||
|
|||
app.listen(8026); |
@ -0,0 +1,112 @@ |
|||
#include <Adafruit_NeoPixel.h>
|
|||
|
|||
#define PIN 6
|
|||
#define NUMPIXELS 37
|
|||
|
|||
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); |
|||
|
|||
int delayval = 16; |
|||
|
|||
bool off = false; |
|||
int brightness = 255; |
|||
int hue = 168; |
|||
int mode = 1; |
|||
|
|||
int counter = 0; |
|||
|
|||
uint32_t Wheel(byte WheelPos) { |
|||
WheelPos = 255 - WheelPos; |
|||
if(WheelPos < 85) { |
|||
return pixels.Color((255 - WheelPos * 3) * brightness / 255, 0, WheelPos * 3 * brightness / 255); |
|||
} |
|||
if(WheelPos < 170) { |
|||
WheelPos -= 85; |
|||
return pixels.Color(0, WheelPos * 3 * brightness / 255, (255 - WheelPos * 3) * brightness / 255); |
|||
} |
|||
WheelPos -= 170; |
|||
return pixels.Color(WheelPos * 3 * brightness / 255, (255 - WheelPos * 3) * brightness / 255, 0); |
|||
} |
|||
|
|||
void setup() { |
|||
Serial.begin(9600); |
|||
pixels.begin(); |
|||
} |
|||
|
|||
void loop() { |
|||
|
|||
if (off) { |
|||
|
|||
for (int i = 0; i < NUMPIXELS; i++){ |
|||
pixels.setPixelColor(i, pixels.Color(0,0,0)); |
|||
} |
|||
pixels.show(); |
|||
|
|||
} |
|||
else { |
|||
|
|||
if (mode == 1) { |
|||
for (int i = 0; i < NUMPIXELS; i++){ |
|||
pixels.setPixelColor(i, pixels.Color(0,0,brightness)); |
|||
} |
|||
pixels.show(); |
|||
} |
|||
else if (mode == 2) { |
|||
for (int i = 0; i < NUMPIXELS; i++){ |
|||
pixels.setPixelColor(i, Wheel((i * 2 + counter / 2) % 256)); |
|||
} |
|||
pixels.show(); |
|||
} |
|||
else if (mode == 3) { |
|||
for (int i = 0; i < NUMPIXELS; i++){ |
|||
pixels.setPixelColor(i, Wheel(hue % 256)); |
|||
} |
|||
pixels.show(); |
|||
} |
|||
|
|||
counter++; |
|||
|
|||
} |
|||
|
|||
delay(delayval); |
|||
|
|||
while (Serial.available() > 0) { |
|||
|
|||
int command = Serial.parseInt(); |
|||
int value = Serial.parseInt(); |
|||
|
|||
if (Serial.read() == '\n') { |
|||
Serial.print("Command: "); |
|||
Serial.println(command); |
|||
Serial.print("Value: "); |
|||
Serial.println(value); |
|||
switch (command) { |
|||
|
|||
case 0: |
|||
off = (value == 0); |
|||
break; |
|||
|
|||
case 1: |
|||
brightness = constrain(value, 0, 255); |
|||
Serial.print("Brightness: "); |
|||
Serial.println(brightness); |
|||
break; |
|||
|
|||
case 2: |
|||
mode = constrain(value, 1, 3); |
|||
Serial.print("Mode: "); |
|||
Serial.println(brightness); |
|||
break; |
|||
|
|||
case 3: |
|||
hue = constrain(value, 0, 255); |
|||
Serial.print("Hue: "); |
|||
Serial.println(hue); |
|||
break; |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue