• 1 Votes
    8 Posts
    1k Views
    SchamperS
    I did something similar back with Boblight a year or 2 ago. Had it working with configurable lighting effects and Facebook/Email too. https://www.youtube.com/watch?v=RM946iXWEx8 The lighting transition was generated as well since Boblight only took byte streams and didn’t know about any effects. Kind of related to this, I currently have my Hyperion set up with 2 different sources, Kodi and an USB video grabber but I needed a way to easily switch them. My first solution was to create a Kodi plugin that I could control using a simple HTTP request. It worked but was tedious. I recently learned about the existence of cec-client and it’s monitoring mode, so I whipped up a bash script that monitors the CEC traffic and changes Hyperion sources based on my AV receiver’s source. All configurable too. The only other thing I want now is to be able to change the HDMI OUT mode of my receiver but apparently that’s impossible using CEC. There’s an undocumented command you can send over telnet to do it though but I don’t want to get another ethernet cable there.
  • Arduino Powered PC Lighting

    Development and Coding arduino led ws2801
    2
    2 Votes
    2 Posts
    1k Views
    ScuzzS
    Code for the test. #include "FastLED.h" #define NUM_LEDS 41 #define DATA_PIN 11 #define CLOCK_PIN 13 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS); } void Pulse(CRGB colour) { for(int i = 0; i < NUM_LEDS; i++) { leds[i] = colour; leds[i].maximizeBrightness(); } FastLED.show(); for(int i = 0; i < 14; i++) { for(int k = 0; k < NUM_LEDS; k++) { leds[k].fadeLightBy( 64 ); } FastLED.show(); delay(50); } for(int i = 0; i < 14; i++) { for(int k = 0; k < NUM_LEDS; k++) { leds[k] *= 2; } FastLED.show(); delay(100); } } void UpDown(CRGB colour) { for(int i = 0; i < NUM_LEDS; i++) { leds[i] = colour; FastLED.show(); leds[i] = CRGB::Black; delay(30); } for(int i = NUM_LEDS-1; i >= 0; i--) { leds[i] = colour; FastLED.show(); leds[i] = CRGB::Black; delay(30); } } void loop() { UpDown(CRGB::Red); UpDown(CRGB::Red); for(int i = 0; i < 5; i++){ Pulse(CRGB::Red); } UpDown(CRGB::Purple); UpDown(CRGB::Purple); for(int i = 0; i < 5; i++){ Pulse(CRGB::Purple); } UpDown(CRGB::Blue); UpDown(CRGB::Blue); for(int i = 0; i < 5; i++){ Pulse(CRGB::Blue); } }