diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d87b1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/* diff --git a/USBStrip/USBStrip.ino b/USBStrip/USBStrip.ino new file mode 100644 index 0000000..d306ce1 --- /dev/null +++ b/USBStrip/USBStrip.ino @@ -0,0 +1,41 @@ +#include +#include + +#define LEDCount 37 +#define outputPin 1 +WS2812 LED(LEDCount); +cRGB value; + +void setup() { + SerialUSB.begin(); + LED.setOutput(outputPin); +} + +void loop() { + if (SerialUSB.available() > 1 && SerialUSB.read() == 0x10) { + byte command = SerialUSB.read(); + if (command == 0x11) { + LED.sync(); + + SerialUSB.write(0x1f); + } + else if (command == 0x12) { + while (SerialUSB.available() < 4) { + } + + int pos = SerialUSB.read(); + value.r = SerialUSB.read(); + value.g = SerialUSB.read(); + value.b = SerialUSB.read(); + + LED.set_crgb_at(pos, value); + + SerialUSB.write(0x1f); + } + else { + SerialUSB.write(0x1e); + } + SerialUSB.flush(); + } +} + diff --git a/package.json b/package.json new file mode 100644 index 0000000..17cebf6 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "USBStrip", + "version": "0.0.1", + "description": "USBStrip", + "scripts": { + "start": "node index.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/ambrosechua/USBStrip.git" + }, + "dependencies": { + "express": "^4.12.4", + "serialport": "^2.0.5" + } +} diff --git a/simple/simple.ino b/simple/simple.ino deleted file mode 100644 index 137813e..0000000 --- a/simple/simple.ino +++ /dev/null @@ -1,112 +0,0 @@ -#include - -#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; - - } - } - - } - -} -