Официальный сайт компании Arduino по адресу arduino.cc
Ложный сигнал на аналоге Ambilight для android (адон Kodi , boblight)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Посоветуйте рецепт.
На android при воспроизведении видео и когда стоит на паузе (на паузе чащее) красный меняется на синий, сниний на красный, остоьно в глаза не бросается
прилогаю видео https://www.youtube.com/watch?v=17jiHAD1SBk
Баг за метин начиная с 1 минуты 10 секунды. Поставил на паузу специально па паузу чтоб быстрее поймать. Таоке происходит произвольно при просмотре любого видео, на разные отрезки времение с частастью до 2-5 минут.
Ставил лолипоп тоже самое
Подкючал к компьютеру через AmbiBox, никаких вышеописаных проблем нет!
Описание
- Светодиодная лента Ws2812b 5050 60\м (на данный момент 111 диодов, но пробовал и на 60)
- Arduino UNO R3
- Tronsmart Orion R28 meta (android 4.4.2)
схема расключения
Скетч
////////// // Requires: https://github.com/FastLED/FastLED/releases/tag/3.0.3 // // Arduino interface for the use of ws2812 operated LEDs // Uses Adalight protocol and is compatible with Boblight, Prismatik etc // "Magic Word" for synchronisation is 'Ada' followed by LED High, Low and Checksum // #include <FastLED.h> ///// User definitions ///// // Define YOUR number of LEDs #define NUM_LEDS 111 // Define YOUR Input Pin #define PIN 6 // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf) #define serialRate 115200 // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i; // initialise LED-array CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<WS2812B, PIN, GRB>(leds, NUM_LEDS); FastLED.setBrightness(40); // initial RGB flash LEDS.showColor(CRGB(255, 0, 0)); delay(500); LEDS.showColor(CRGB(0, 255, 0)); delay(500); LEDS.showColor(CRGB(0, 0, 255)); delay(500); LEDS.showColor(CRGB(0, 0, 0)); Serial.begin(serialRate); Serial.print("Ada\n"); // Send "Magic Word" string to host } void loop() { // wait for first byte of Magic Word for(i = 0; i < sizeof prefix; ++i) { waitLoop: while (!Serial.available()) ;; // Check next byte in Magic Word if(prefix[i] == Serial.read()) continue; // otherwise, start over i = 0; goto waitLoop; } // Hi, Lo, Checksum while (!Serial.available()) ;; hi=Serial.read(); while (!Serial.available()) ;; lo=Serial.read(); while (!Serial.available()) ;; chk=Serial.read(); // if checksum does not match go back to wait if (chk != (hi ^ lo ^ 0x55)) { i=0; goto waitLoop; } memset(leds, 0, NUM_LEDS * sizeof(struct CRGB)); // read the transmission data and set LED values for (uint8_t i = 0; i < NUM_LEDS; i++) { byte r, g, b; while(!Serial.available()); r = Serial.read(); while(!Serial.available()); g = Serial.read(); while(!Serial.available()); b = Serial.read(); leds[i].r = r; leds[i].g = g; leds[i].b = b; } // shows new values FastLED.show(); }
конфиг настроек boblight 2.0.7 - hyperion.config.json ()
// Automatically generated configuration file for 'Hyperion daemon' // Generated by: HyperCon (The Hyperion deamon configuration file builder { /// Device configuration contains the following fields: /// * 'name' : The user friendly name of the device (only used for display purposes) /// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'ldp8806', /// 'lpd6803', 'sedu', 'adalight', 'lightpack', 'test' and 'none') /// * 'output' : The output specification depends on selected device. This can for example be the /// device specifier, device serial number, or the output file name /// * 'rate' : The baudrate of the output to the device /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). "device" : { "name" : "Adalight", "type" : "adalight", "output" : "/dev/ttyACM0", "rate" : 115200, "colorOrder" : "rgb" }, /// Color manipulation configuration used to tune the output colors to specific surroundings. /// The configuration contains a list of color-transforms. Each transform contains the /// following fields: /// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following /// tuning parameters: /// - 'saturationGain' The gain adjustement of the saturation /// - 'valueGain' The gain adjustement of the value /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the /// following tuning parameters for each channel: /// - 'threshold' The minimum required input value for the channel to be on /// (else zero) /// - 'gamma' The gamma-curve correction factor /// - 'blacklevel' The lowest possible value (when the channel is black) /// - 'whitelevel' The highest possible value (when the channel is white) /// /// Next to the list with color transforms there is also a smoothing option. /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning /// parameters: /// - 'type' The type of smoothing algorithm ('linear' or 'none') /// - 'time_ms' The time constant for smoothing algorithm in milliseconds /// - 'updateFrequency' The update frequency of the leds in Hz "color" : { "transform" : [ { "id" : "default", "leds" : "*", "hsv" : { "saturationGain" : 1.0000, "valueGain" : 1.0000 }, "red" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 }, "green" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 }, "blue" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 } } ], "smoothing" : { "type" : "none", "time_ms" : 200, "updateFrequency" : 20.0000 } }, /// The configuration for each individual led. This contains the specification of the area /// averaged of an input image for each led to determine its color. Each item in the list /// contains the following fields: /// * index: The index of the led. This determines its location in the string of leds; zero /// being the first led. /// * hscan: The fractional part of the image along the horizontal used for the averaging /// (minimum and maximum inclusive) /// * vscan: The fractional part of the image along the vertical used for the averaging /// (minimum and maximum inclusive) "leds" : [ { "index" : 0, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.9667, "maximum" : 1.0000 } }, { "index" : 1, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.9333, "maximum" : 0.9667 } УДАЛИЛ КУСОК, ввиду экономии места { "index" : 109, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.9333, "maximum" : 0.9667 } }, { "index" : 110, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.9667, "maximum" : 1.0000 } } ], /// The black border configuration, contains the following items: /// * enable : true if the detector should be activated /// * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0) "blackborderdetector" : { "enable" : true, "threshold" : 0.01 }, /// The configuration of the effect engine, contains the following items: /// * paths : An array with absolute location(s) of directories with effects /// * bootsequence : The effect selected as 'boot sequence' "effects" : { "paths" : [ "/opt/hyperion/effects" ] }, "bootsequence" : { "effect" : "Rainbow swirl fast", "duration_ms" : 3000 }, /// The configuration for the frame-grabber, contains the following items: /// * width : The width of the grabbed frames [pixels] /// * height : The height of the grabbed frames [pixels] /// * frequency_Hz : The frequency of the frame grab [Hz] "framegrabber" : { "width" : 64, "height" : 64, "frequency_Hz" : 10.0 }, /// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: /// * xbmcAddress : The IP address of the XBMC-host /// * xbmcTcpPort : The TCP-port of the XBMC-server /// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback /// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show /// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback /// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu /// * grabScreensaver : Flag indicating that the frame-grabber is on(true) when XBMC is on screensaver /// * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing "xbmcVideoChecker" : { "xbmcAddress" : "127.0.0.1", "xbmcTcpPort" : 9090, "grabVideo" : true, "grabPictures" : true, "grabAudio" : true, "grabMenu" : false, "grabScreensaver" : true, "enable3DDetection" : true }, /// The configuration of the Json server which enables the json remote interface /// * port : Port at which the json server is started "jsonServer" : { "port" : 19444 }, /// The configuration of the Proto server which enables the protobuffer remote interface /// * port : Port at which the protobuffer server is started "protoServer" : { "port" : 19445 }, /// The configuration of the boblight server which enables the boblight remote interface /// * port : Port at which the boblight server is started // "boblightServer" : // { // "port" : 19333 // }, "endOfJson" : "endOfJson" }