Эмбилайт своими руками для телевизора

Технологии lack lzh

Шикарную светодиодную подсветку Ambilight Arduino своими руками можно выполнить, используя ПО и Processing для любого плазменного устройства. Такая система Ambilight дешевая, простая в модификации, не имеет сквозного устройства и подходит для телевизоров или мониторов разных размеров. Она обеспечивает рассеянный свет вокруг плоской панели, отражая цвета, видимые на экране. Специалисты называют этот проект Ozilight. Он, безусловно, сделает любой ТВ намного интереснее. Это вариант, позволяющий выполнить своими руками Ambilight для PC.

Система работает с компьютером. Поскольку будет использоваться компьютерная программа для захвата и анализа цветов, это означает, что телевизор или монитор будет вводить данные только с ПК, а не с любого другого источника мультимедиа, такого как DVD-плеер или телевизионный канал.

Необходимое оборудование:

  1. Компьютер.
  2. Arduino Uno, Nano или Mega, также будет работать любой микроконтроллер, поддерживающий SPI.
  3. Цифровые светодиодные ленты ws2812b.
  4. Источник питания постоянного тока для светодиодов с параметрами 5 В/2A, что зависит от того, сколько ленты будет использовано.

При покупке полос RGB лучше выбрать «цифровые» полоски RGB, например WS2811 или WS2801. Некоторые дешевые ленты не могут менять цвет каждого отдельного светодиода. Также можно приобрести одиночные светодиоды и подключить их к схеме. Хотя она будет очень громоздкой из-за кабелей, поскольку на каждый светодиод выходит 4 кабеля, резисторы и другие элементы.

Arduino Uno может работать только с 4 светодиодами RGB, в большинстве случаев использует ШИМ без каких-либо других внешних устройств. При использовании светодиодных лент WS2811 Arduino сможет управлять всеми светодиодами только с одним проводным соединением, исключая Vcc и GND.

WS2801 RGB светодиодная лента обеспечивает передовые технологии с очень коротким временем отклика, поэтому пользователь не замечает видимой задержки между экраном телевизора и светом. При выполнении своими руками подсветки телевизора Ambilight, Raspberry контролирует работу светодиодов. Стоимость ленты — около 12 долларов США за метр. Для того чтобы определить, сколько метров потребуются, проверяют размеры телевизора или монитора. Например, для с 47-дюймового телевизора потребуется примерно 3 метра.

Выбор источника питания будет зависеть от длины. Для рекомендуемых светодиодов требуется 8,64 Вт на метр. Поэтому рекомендуемый источник питания 5 В, 6 А может обеспечить до 3,4 м. Для более 3,5 м рекомендуют использовать блок питания 10А, который может поддерживать до 5,7 м светодиодов.

Световое шоу для Apple TV

Окружающее освещение для телевизора — дизайнерское улучшение просмотра любого фильма. И если экран не поддерживает эту функцию, можно легко выполнить ее самостоятельно.

Аппаратные средства для выполнения Ambilight своими руками:

  1. Raspberry Pi 3 модель B.
  2. Зарядное устройство с разъемом USB или блок питания.
  3. Micro USB.
  4. Три кабеля HDMI.
  5. SD-карта для Raspberry Pi.
  6. Светодиодная лента.
  7. HDMI разветвитель AC/DC.
  8. Программное обеспечение.

Прежде чем начать, загружают последнюю версию операционной системы Raspbian и устанавливают ее на SD-карту. Можно скачать программу на сайте производителя, там же найти руководство по установке.

Алгоритм реализации Ambilight своими руками:

  1. Подключают аудиоустройство. На этом этапе присоединяют мультимедийное устройство HDMI, например Apple TV, к разветвителю HDMI, а затем к телевизору. Начинают с подключения одного из кабелей HDMI от выхода мультимедийного устройства к входу разветвителя. Затем подключают второй кабель HDMI от выхода первого разветвителя к нужному порту на телевизоре.
  2. Со второго выхода сплиттера подключают третий и последний кабель HDMI к входному порту преобразователя HDMI/AV. Когда это будет сделано, подключают кабель RCA к желтому видеовыходу на сплиттере и к видеовходу на плате захвата.
  3. Далее продолжают выполнять подсветку Ambilight своими руками. Подключают светодиодную ленту к электросети и Raspberry Pi. Присоединяют положительный (5 В) и отрицательный (заземляющий) полюс к источнику питания 5 В и включают его. Проверяют правильность полярности. Как это сделать? Первый индикатор на полосе должен загореться синим цветом.
  4. Чтобы сделать Ambilight своими руками, подключают источника света к контактам Raspberry Pi GPIO, соединив следующие контакты: 9 (GND), 21 (DATA) и 23 (Clock). Цвета могут варьироваться в зависимости от светодиодной ленты. Лучший способ подключения полосы — это использование соединительных кабелей, но, в принципе, можно использовать все, что создает прочное электрическое соединение, — пайку и разъемы.
  5. Программное обеспечение, используемое для создания эффекта Ambilight, — это Hyperion — бесплатное ПО с открытым исходным кодом. Он довольно прост в настройке и даже поставляется с приложением Java для облегчения установки.
  6. Когда программа откроется, переходят непосредственно на вкладку SSH и подключают Raspberry.
  7. Перед тем как сделать Ambilight для телевизора своими руками, вводят правильный IP-адрес, имя пользователя и пароль, затем подключаются к Raspberry Pi.
  8. После входа в систему нажимают «показать трафик», чтобы увидеть полный журнал происходящего. Затем нажимают Inst./Upd. Hyperion для установки ПО и необходимых компонентов на Pi. Если процесс прошел успешно, то появятся цвета на светодиодной полосе при запуске Hyperion.
  9. Подробное пошаговое руководство по настройке ПО можно найти на сайте разработчика.
  10. Создают каркас для Ambilight, например несколько алюминиевых L-образных профилей, и обрезают их по размеру для телевизора. Просверливают отверстия в нужных местах и обрабатывают углы для прочности и эстетичности.
  11. Завершают выполнение подсветки Ambilight своими руками, прикрепив раму к задней части панели и убирая провода.

Прошивка (скетч Arduino)

Я уже не помню где я нашёл этот скетч, но с небольшими коррективами я использую его и по сей день:

//////////
//
// 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>   //Используется библиотека FastLed 3.1.0

///// User definitions /////
#define colorOrder GRB  //Порядок цветов

// Define the number of LEDs
#define NUM_LEDS 102  //Количество светодиодов

// Define SPI Pin
#define PIN 11  //Пин, по которому будет управляться лента

// Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
#define serialRate 2000000  //Скорость виртуального COM-порта

// 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;

void setup()
{
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  FastLED.addLeds<WS2812B, PIN, colorOrder>(leds, NUM_LEDS);  //Инициализация с указанием типа используемой ленты
  byte del=2;
  // initial RGB flash
  for(i=0;i<255;i++) {
  LEDS.showColor(CRGB(i, 0, 0));  
  delay(del);
  }
  for(i=1;i<255;i++) {
  LEDS.showColor(CRGB(255, i, 0));  
  delay(del);
  }
  for(i=255;i>1;i--) {
  LEDS.showColor(CRGB(i, 255, 0));  
  delay(del);
  }
  for(i=1;i<255;i++) {
  LEDS.showColor(CRGB(0, 255, i));  
  delay(del);
  }
  for(i=255;i>1;i--) {
  LEDS.showColor(CRGB(0, i, 255));  
  delay(del);
  }
  for(i=0;i<255;i++) {
  LEDS.showColor(CRGB(i, 0, 255));  
  delay(del);
  }
  for(i=255;i>1;i--) {
  LEDS.showColor(CRGB(255, 0, i));  
  delay(del);
  }
 for(i=255;i>1;i--) {
  LEDS.showColor(CRGB(i, 0, 0));  
  delay(del);
 }
  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 == 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.r = r;
    leds.g = g;
    leds.b = b;
  }
  // shows new values
 FastLED.show();
}

Обратите внимание: скорость COM-порта в скетче стоит 2 мегабода, это не ошибка, это необходимая скорость для управления таким большим количеством светодиодов с высокой частотой кадров! Очень важно, что такую скорость должен поддерживать не только ваш USB-контроллер на материнке и его драйвера, но и сам USB-COM чип на шилде Arduino, поэтому максимально дешёвые китайские шилды тут не подойдут – я пробовал, такую скорость они тянут с большим количеством ошибок. У меня китайский аналог оригинального шилда, с оригинальным МК Atmega16u2 для передачи данных. Вот в этом лоте, судя по описанию, такие продают за $5,57

Вот в этом лоте, судя по описанию, такие продают за $5,57.

Такую же скорость, соответственно, надо устанавливать и в управляющей программе, о ней я сейчас и расскажу.

Востребованные поколения

На сегодняшний день существует пять поколений технологии, однако при производстве телевизоров используются три:

  1. Ambilight Surround, внедряемая в техника с ЖК-дисплеями. Конструкция системы предполагает дополнительные лампы, интегрированные в верхнюю часть корпус. Зона, где размещена подсветка, стала больше, при этом обеспечен желаемый эффект – красивое, объемное изображение, позволяющее с головой погрузиться во все происходящее на экране. Теперь лампы, размещены справа, слева и вверху не зависят друг от друга. Фон получил детализацию, так как привязка выполняется к определённом цвету на всем поле.
  2. Ambilight Full Surround – доработанный вариант третьего поколения, в котором лампы реализованы со всех сторон. За работу системы отвечает процессор, который анализирует и обрабатывает данные, активируя необходимое количество ламп. Корпус оборудован специальной панелью, которая рассеивает свечение.
  3. Ambilight Spectra – последний вариант подсветки, который работает на базе алгоритма, обрабатываемого процессорами изображения. Технология анализирует отображаемые на экране цвета, формирует оптимальное освещение, адаптируясь под цветопередачу.

Производитель не останавливается на достигнутом, продолжая модернизировать технологию, привлекая исследовательские отделы. Имеющиеся на сегодняшний день результаты – это анализ процесса просмотра телевизора людьми в привычной домашней обстановке. Предложенное решение способствует улучшению восприятия изображения, обеспечивает отсутствие значительной нагрузки на глаза.

Программная настройка

Для создания подсветки телевизора своими руками следует претворить в жизнь следующий шаг – программная настройка компонентов. Есть множество вариантов для настройки ПО подсветки. Однако, предлагаем рассмотреть более простую и быструю.

В качестве медиасервера можно юзать микросхему «малина». На нее следует инсталлировать образ OSMC или Raspbian. Процедура не отличается повышенной сложность, и во многом напоминает запись образа ISO на флеш-накопитель. Далее следуйте инструкции по настройке адаптера Arduino или воспользуйтесь альтернативными способами.

Один из них – прога hyperion-remote, которую можно скачать и установить на компьютер. Она позволяет удаленно настраивать цветовую гамму. Также разработчики предлагают массу похожих приложений на смартфоны и планшеты, работающие под управлением разных операционных систем.

Многие приложения позволяют тонко регулировать настройку свечения. Как правило, включены следующие параметры:

  1. Захват экрана – классический режим функционирования подсветки;
  2. Функция «Ambilight», в рамках которой на стене, которая расположена за телевизором, отображаются оттенки, зависящие от происходящего на мониторе;
  3. Статический фон – подсветка функционирует в виде телевизионной лампы. Цвет диодов задается пользователем;
  4. Динамический фон – лента циклически меняет оттенки с определенной скоростью (настраивается пользователем);
  5. Цветомузыка – еще один популярный режим, который отлично взаимодействует с музыкой.

Названия опций могут отличаться в зависимости от приложения, однако, смысл остается неизменным. Более того, режимы могут оснащаться дополнительными настройками.

Телевизор Samsung UE65TU7090U 65 (2020)

Фото: market.yandex.ru

Ultra HD (4K) LED телевизор 65 Samsung UE65TU7090U с тонким корпусом отличается оптимальными габаритами: формат (соотношение ширины и высоты экрана) составляет 16:9. Его можно устанавливать на горизонтальную поверхность или крепить к стене. Четкость изображения, отсутствие помех и высокую детализацию обеспечивают разрешение экрана 3840х2160 пикселей и система цифрового шумоподавления. Телевизор легко интегрируется с интернетом, поскольку поддерживает Wi-Fi и оснащен системой Smart TV. Можно смотреть любимые ролики и программы онлайн, не боясь, что изображение будет «зависать». Собственный тюнер дает возможность подключаться к каналам телевещания без приобретения дополнительного оборудования. Мощная звуковая система Dolby Digital Plus гарантирует объемное качественное звучание с хорошей проработкой басов и высоких звонких нот. Многочисленные разъемы дают возможность присоединять к телевизору разные носители информации, просматривать видео, слушать треки, смотреть фото.

Телевизор Samsung UE65TU7090U 65 (2020)

Преимущества:

  • Тонкий корпус
  • Формат экрана 16:9
  • Четкость изображения
  • Отсутствие помех
  • Высокая детализация
  • Разрешение экрана 3840х2160 пикселей
  • Система цифрового шумоподавления
  • Wi-Fi модуль
  • Система Smart TV
  • Собственный тюнер
  • Звуковая система Dolby Digital Plus
  • Объемное качественное звучание

Ambilight

— ambilight — технология фоновой подсветки экрана. В данном случае корпус телевизора подсвечивает расположенную сзади стенку/перегородку, благодаря чему по контуру экрана появляется размытый ореол в цвет меняющихся сцен. Данный эффект визуально расширяет область экрана, что делает просмотр телевизора более увлекательным. По состоянию на начало 2021 года существует три разновидности фоновой подсветки: классическая Ambilight (подсветка только по бокам), Ambilight Surround (подсветка по бокам и сверху), Ambilight Full Surround (подсветка со всех сторон). Но производители продолжают работать над усовершенствованием фоновой подсветки. Так, относительно недавно появилась подсветка Ambilight Spectra, в которой существенно улучшен алгоритм подбора цветов и оптимизированы сами светодиоды.

сравнить

Экран:

50 “, 3840×2160 пикс, 60 Гц, идс 1600 к/с

Картинка:

HDR, Upscaling до 4K, улучшение яркости

Мультимедиа:

T2-тюнер, Wi-Fi, Android TV, LAN

Управление:

голосовое, ассистент, аэропульт

сравнить

Экран:

55 “, 3840×2160 пикс, 120 Гц, идс 5700 к/с

Картинка:

HDR, Upscaling до 4K

Мультимедиа:

T2-тюнер, Wi-Fi, Android TV, LAN, Сабвуфер

Управление:

голосовое, ассистент, аэропульт

сравнить

Экран:

55 “, 3840×2160 пикс, 60 Гц, идс 5000 к/с

Картинка:

HDR, Upscaling до 4K

Мультимедиа:

T2-тюнер, Wi-Fi, Android TV, LAN, Сабвуфер

Управление:

голосовое, ассистент, аэропульт

сравнить

Экран:

55 “, 3840×2160 пикс, 60 Гц, идс 2400 к/с

Картинка:

HDR, Upscaling до 4K

Мультимедиа:

T2-тюнер, Wi-Fi, Android TV, LAN, Сабвуфер

Управление:

голосовое, ассистент, аэропульт

Возможно, вас заинтересует

Шаг 6. Скетч Arduino Ambilight

Ниже вы можете скачать или скопировать  код для нашей подсветки Ардуино Эмбилайт.

#include "FastLED.h"

#define NUM_LEDS 38
#define LED_DATA_PIN 3
#define NUM_BYTES (NUM_LEDS*3) // 3 colors  

#define BRIGHTNESS 100
#define UPDATES_PER_SECOND 100

#define TIMEOUT 3000

#define MODE_ANIMATION 0
#define MODE_AMBILIGHT 1
uint8_t mode = MODE_ANIMATION;

byte MESSAGE_PREAMBLE[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
uint8_t PREAMBLE_LENGTH = 10;
uint8_t current_preamble_position = 0;

unsigned long last_serial_available = -1L;

uint8_t led_counter = 0;
uint8_t byte_counter = 0;

CRGB leds;
byte buffer;


// Filler animation attributes
CRGBPalette16 currentPalette = RainbowColors_p;
TBlendType    currentBlending = LINEARBLEND;
uint8_t startIndex = 0;

void setup()
{
  Serial.begin(115200);
  FastLED.clear(true);
  FastLED.addLeds<WS2811, LED_DATA_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHTNESS);
}

void loop()
{
	switch (mode) {
		case MODE_ANIMATION: 
			fillLEDsFromPaletteColors();
			break;
		
		case MODE_AMBILIGHT:
			processIncomingData();
			break;
	}
	
}

void processIncomingData()
{
	if (waitForPreamble(TIMEOUT))
	{
		Serial.readBytes(buffer, NUM_BYTES);

		/* DEBUG
		for (int i = 0; i < NUM_BYTES; i++)
		{
			Serial.write((char)buffer);
		}
		*/

		while (byte_counter < NUM_BYTES)
		{
			byte green = buffer;
      byte blue = buffer;
			byte red = buffer;

			leds = CRGB(red, green, blue);
		}

		FastLED.show();

		byte_counter = 0;
		led_counter = 0;
	}
	else
	{
		mode = MODE_ANIMATION;
	}
}

bool waitForPreamble(int timeout)
{
	last_serial_available = millis();
	while (current_preamble_position < PREAMBLE_LENGTH)
	{
		if (Serial.available() > 0)
		{
			last_serial_available = millis();

			if (Serial.read() == MESSAGE_PREAMBLE)
			{
				current_preamble_position++;
			}
			else
			{
				current_preamble_position = 0;
			}
		}

		if (millis() - last_serial_available > timeout)
		{
			return false;
		}
	}
	current_preamble_position = 0;
	return true;
}

void fillLEDsFromPaletteColors()
{
	startIndex++; // speed

	uint8_t colorIndex = startIndex;
	for( int i = 0; i < NUM_LEDS; i++) {
        leds = ColorFromPalette(currentPalette, colorIndex, BRIGHTNESS, currentBlending);
		colorIndex += 3;
    }

	FastLED.delay(1000 / UPDATES_PER_SECOND);

	if (Serial.available() > 0)
	{
		mode = MODE_AMBILIGHT;
	}
}

Основные настройки программы

Чтобы перейти к экрану основных настроек необходимо нажать на соответствующую кнопку на главном экране программы, как показано на картинке ниже:

Далее откроется окно основных настроек :

На этом экране представлены три раздела настроек: LED STRIP SETTINGS, DEVICE SETTINGS и SCREEN CAPTURE SETTINGS, рассмотрим эти разделы подробнее:

LED STRIP SETTINGS — В этом разделе собраны настройки описывающие конфигурацию и размещение вашей светодиодной ленты на телевизоре или мониторе. Этот раздел имеет несколько настроек, давайте рассмотрим их подробнее:

LEDs Horizontal — Эта настройка задает количество светодиодов в нашей светодиодной ленте по горизонтали, в моем случае, для экрана 42″ получилось 28 светодиодов:

LEDs Vertical — Эта настройка задает количество светодиодов по вертикали, в моем случае, для экрана 42″ получилось 16 светодиодов:

LEDs Bottom Gap — Если ваш экран стоит на подставке, вам может потребоваться промежуток, в котором нет светодиодов, в нижнем горизонтальном сегменте светодиодной ленты, данная настройка позволяет задать этот промежуток(измеряется в количестве светодиодов).

Если смотреть с обратной стороны экрана:

То же самое в настройках программы:

LED Strip Direction — Эта настройка задает направление вашей светодиодной ленты и должна соответствовать маркировке нанесенной на саму светодиодную ленту, может принимать значения «CW»(Clock Wise) что значит — По часовой стрелке и «CCW»(Counter Clock Wise) — Против часовой стрелки.

First LED Offset — Данная настройка отвечает за смещение расположения первого светодиода в ленте относительно левого верхнего угла экрана(если смотреть на него спереди). Эта настройка показывает, в каком месте у нашей ленты начало, куда мы будем подключать наш микроконтроллер(Arduino) и откуда сигнал пойдет по цепи в направлении указанном в настройке «LED Strip Direction».

Например, ниже на картинках показана настройка смещения на четыре светодиода от нулевой точки(левый верхний угол экрана) и выбор направления светодиодной ленты:

Смещение First LED Offset на четыре светодиода:

Направление светодиодной ленты «CW» — по часовой стрелке:

DEVICE SETTINGS — Данный раздел содержит базовые настройки программы, настройки скорости соединения с микроконтроллером(Arduino), настройки порядка вывода цветов при отправке данных на микроконтроллер, настройки автозагрузки программы при старте системы, настройки поведения программы при выключении экрана:

Рассмотрим эти настройки более подробно:

Serial Baud Rate — Данная настройка позволяет выбрать скрость передачи данных между вашим Android устройством и микроконтроллером Arduino

Важно понимать, что такая же скорость передачи данных должна быть выбрана и в настройках скетча(#define BAUD_RATE 115200) для Arduino AAA.ino о котором мы говорили в описании по сборке подсветки:

RGB Byte Order — Настройка определяет в какой последовательности отправлять данные о цвете на микроконтроллер Arduino, RGB, RBG, GBR, GRB и т.д. Если вы ипользуете скетч для Arduino из этого описания, то данный параметр менять не требуется, по умолчанию RGB:

Start On Boot — Настройка позволяет включить/выключить автозагрузку программы в последний активный режим работы на этапе загрузки операционной системы Android:

Screen Off Action — Настройка позволяет выбрать поведение подсветки при отключении дисплея, например можно включать режим «SINGLE COLOR MODE» или «COLOR EFFECT MODE». Так же есть возможность выключать все активные режимы или бездействовать при отключении дисплея. При повторном включении дисплея, программа вернется к последнему активному режиму работы, который был до выключения дисплея:

SCREEN CAPTURE SETTINGS — В данном разделе находятся настройки предназначенные для управления режимом работы подсветки «SCREEN CAPTURE MODE»:

Рассмотрим эти настройки более подробно:

Horizontal Depth — Настройка задает глубину зоны захвата изображения по горизонтали. Глубина зоны захвата измеряется в процентах от размера экрана по высоте. Желтая пунктирная линия на картинке показывет текущую глубину зоны захвата:

Vertical Depth — Настройка задает глубину зоны захвата изображения по вертикали. Глубина зоны захвата измеряется в процентах от размера экрана по ширине. Зеленая пунктирная линия на картинке показывет текущую глубину зоны захвата:

Capture Quality — Настройка задает уровень качества захватываемого изображения. Чем выше качество, тем более точно и детально подсветка будет соответствовать изображению на экране. Высокие значения данной настройки могут снизить производительность на слабых системах:

Альтернативы Ambilight? Как сделать Ambilight самому?

Ambilight — это решение, предназначенное исключительно для телевизоров Philips. Из-за патентов Ambilight недоступен для других производителей. Однако мы можем попытаться найти решения, которые хотя бы заменили эту технику. Прежде всего, мы можем поставить светодиодную ленту на заднюю часть телевизора. Одноцветное устройство стоит недорого и обеспечивает приятную для глаз подсветку за экраном. А также это может быть лента с изменяющимся цветом. Люди со страстью к DIY, используя, например, мини-компьютер Raspberry Pi и подходящую светодиодную ленту, могут заставить систему работать как Ambilight. И также существуют различные типы насадок с похожим эффектом. Даже Signify, производитель ламп Philips Hue, представила на рынке США адаптер Hue Play HDMI Sync с эффектом, подобным Ambilight, от источников HDMI, подключённых к телевизору. Имейте в виду, что эти решения ограничены, но могут быть интересной альтернативой.

Советы по настройке производительности

Как только Arduino заработал, настраивают программное обеспечение для достижения максимальной производительности. Доступны несколько вариантов.

Первый — это точность расчета цвета. Эта опция определяет, сколько пикселей будет использовано для расчета среднего цвета экрана. Если ползунок повернут вправо, алгоритм будет работать быстрее, но цвет будет определен менее точно, что может вызвать мерцание. Установка его влево даст наилучшие результаты, но это способно замедлить процесс, из-за чего светодиодные полосы будут медленнее менять цвета или мешать другим процессам, запущенным на ПК.

Второй вариант — порог темноты цвета. Эта опция устанавливает порог для пикселей, который превышает среднее значение. Она очень полезна, если видео, которое воспроизводится, не занимает весь экран, а оставляет часть монитора черным. Она частично осветляет цвета. Однако установка слишком высокого порога может вызвать некоторое мерцание.

Далее идет опция выделения цвета. Эта функция заставляет светодиоды уходить от серого и белого в сторону более привлекательного оттенка. Установка ползунка в положение «Выкл.» немного ускорит алгоритм. Если цвета, которые излучаются, вас устраивают, то следующий вариант не используют.

Если они кажутся совершенно другими, чем цвета на экране, можно попробовать установить флажок смены красных и синих значений. В некоторых системах способы обработки растровых изображений различны из-за того, что они хранятся в формате RGB вместо BGR. Установка этой опции исправит это, и правильные цвета будут отправлены в Arduino.

Далее идет калибровка. На большинстве светодиодных лент RGB и других источниках света красный, зеленый и синий свет не имеют одинаковой интенсивности света при одинаковых токах. Из-за этого смешанные цвета не будут отображаться правильно и станут, например, немного голубыми. Если это так, придется сдвинуть ползунок этого цвета обратно, чтобы уменьшить его доминирование.

Также нужно будет выполнить такую калибровку, если стена, на которую проецирует свет, не полностью белая. В любом случае хороший способ калибровки Ambione — это выбрать белый статический цвет для всех каналов (255, 255, 255) и перемещать ползунки до тех пор, пока белый свет не будет проецироваться на стену.

Также есть слайдер яркости. С помощью этого ползунка можно уменьшить всю интенсивность освещения установки Amblone. Последнее, что можно изменить, — это некоторые настройки производительности, например, приоритет процесса. Если возникли проблемы с запуском Amblone рядом с медиаплеером или видеоигрой, пробуют изменить этот параметр.

Рекомендации по цветовому захвату экрана

Очень просто и эффективно сделать снимки экрана и анализировать цвета с помощью некоторых библиотек JAVA.

Преимущества обработки в качестве среды программирования:

  1. ПО кроссплатформенный может работать на Windows, Mac и Linux.
  2. Использует синтаксис C ++.
  3. Имеет то же соглашение IDE программирования, что и Arduino. Фактически, Arduino IDE была основана для IDE обработки.
  4. Поддерживает некоторые очень мощные и удобные библиотеки Java.
  5. Бесплатный.

Для качественной цветопередачи анализируют цвета по краям экрана. После захвата снижают частоту пикселей в одной конкретной области, чтобы получить средний цвет. Выполняют это одновременно в нескольких областях по краю экрана. В конечном итоге можно использовать цвет каждой области для управления светодиодами RGB. Система светодиодной маркировки в коде соответствует шаблону. Если, например, имеется 25 светодиодов, края экрана делятся на 25 маленьких прямоугольников.

Можно построить роботизированный пульт дистанционного управления DIY Camera Gimbal. Это очень легкий проект.

Первая часть программного кода.

Подготавливают светодиодную ленту RGB из 25 элементов. Светодиоды RGB поставляются обычно в виде полосы, но лучше, чтобы они были разделены и спаяны между собой. Для этого используют горячий клей для укрепления точек пайки.

Вторая часть программного кода выглядит следующим образом.

Далее устанавливают ленту на телевизоре. Выбирают точное позиционирование диодов. Они должны быть направлен наружу под углом, таким образом они будут видны ярче спереди.

Третья часть программного кода представлена на фото.

Соединяют Arduino, Power для передачи данных. Используют внешний источник питания — адаптер питания 5V 2A. GND источника питания должен быть подключен к Arduino GND.

Четвертая часть программного кода — на фото.

Далее использую ПО на компьютере, прописывают все части программного кода.

Пятая часть его выглядит следующим образом.

Как протестировать Led-ленту

После приобретения подсветки некоторые покупатели сталкиваются с проблемой. Так, монтаж ленты выполняется сразу, а динамическое освещение не функционирует как положено. Чтобы обойти распространенную ошибку, стоит заранее протестировать ленту. Вполне вероятно, что освещение работает не полностью, например, когда один или несколько диодов повреждены.

Для теста контакты припаивают, на подготовленную микросхему загружают подходящее ПО, а потом подключают диоды. Если все функционирует стабильно, цвета меняются при выборе разных режимов, конструкция пригодна к конечному монтажу.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий