Arduino ambilight для телевизора своими руками за несколько шагов

Подсветка ambilight для телевизора своими руками на Arduino

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

Имейте в виду, что Эмбилайт Ардуино будет работать только на ПК с программным обеспечением Bambilight (скачать библиотеку на GitHub).

Шаг 1. Комплектующие Ambilight Arduino

Вам понадобятся следующие компоненты:

  • Индивидуально адресуемая светодиодная лента RGB
  • Ардуино Нано
  • Макетная плата небольшого размера
  • Несколько кабелей
  • 12V DC адаптер питания
  • Двусторонний скотч
  • 4-5 Скрепки
  • Затяжки (стяжки) пластиковые для проводов

Шаг 2. Тестирование светодиодной ленты

Будет неприятно, если вы сначала установите ленту на ваш телевизор, но потом поймете, что один светодиод не работает и вам придется удалять ленту и начинать всё сначала.

Поэтому неплохо припаять временные провода к вашей светодиодной ленте и протестировать ее с помощью Arduino, адаптера питания и файла .ino (можно загрузить на следующих шагах). Загрузите .ino в свой Arduino. Здесь вам пока еще ничего не нужно настраивать. Вы должны увидеть несколько меняющихся цветов светодиодной ленты.

Шаг 3. Схема подключения

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

Наша светодиодная лента использует IC WS2811 для управления 3 светодиодами в отдельности.

Шаг 4. Установка ambilight на монитор/телевизор

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

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

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

Убедитесь, что стрелки на светодиодных полосах направлены вокруг вашего монитора! Если нет вам придется начать все заново!

Как только ленты на месте, вы сможете установить Arduino Nano на тыльную сторону монитора. Не забудьте установить её в удобное место, потому что вам нужно будет подключить USB-кабель к компьютеру позже.

Шаг 5. Пайка всей электроники

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

Теперь подключите светодиодную ленту к Arduino, используя ту же схему, что и на шаге выше. Подключите USB-кабель, установите библиотеку FastLED (скачать на GitHub) и загрузите код, указанный на следующем шаге, в ваш Arduino. А далее вам останется только подключить адаптер питания, так как мы сделали всю проводку.

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

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

Шаг 7. Настройка программного обеспечения

Загрузите файл bambilight.ino (ссылка и сам код вы найдете на предыдущем шаге).

Откройте файл .ino и отредактируйте следующие строки, чтобы они соответствовали вашей ситуации:

Теперь загрузите скетч в Arduino. Ранее вы должны были скачать библиотеку Bambilight, но если вы этого не сделали вы можете скачать библиотеку на GitHub сейчас.

Откройте Bambilight.exe, расположенную в:

[Местоположение, где вы сохранили папку Bambilight] Bambilight-master Bambilight-master Binary

Теперь настройте всё по своему усмотрению и протестируйте, используя тестовое видео, например, такое:

Как только вы будете удовлетворены результатом, вы можете минимизировать программу Bambilight.

В целом у вас должен быть такой результат работы подсветки ambilight для телевизора, которую вы сделали своими руками с помощью Arduino. Возьмите попкорн, пепси и наслаждайтесь результатом.

Klimofff › Блог › Ambilight для любого телевизора на базе HTPC

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

Поскольку технология запатентована, называть ее Ambilight незаконно =) и поскольку собирать мы ее будем на контроллере Arduino, проект будет именован Ardulight.

Что нам для этого понадобится:
Arduino Nano V.4 — 1шт. 780руб.
Транзисторы IRLR2905 — 9шт. по 20руб. = 180руб.
Резисторы 0,25W — 9шт. по 1руб. = 9руб.
Макетка 1шт. 40 руб.
Клеммная колодка на 2 провода 6шт. по 3руб. = 18руб
Лента светодиодная RGB — 3м по 750руб = 2250руб.

собираем по приведенной ниже схеме

Пока все собрано на макетной плате

но в дальнейшем будет вытравлена плата и увеличено количество зон.

далее необходимо прошить Arduino

#define D2_High PORTD |=B00000100 //red
#define D2_LOW PORTD &= B11111011
#define D3_High PORTD |=B00001000 //green
#define D3_LOW PORTD &= B11110111
#define D4_High PORTD |=B00010000 //blue
#define D4_LOW PORTD &= B11101111

#define D5_High PORTD |=B00100000
#define D5_LOW PORTD &= B11011111
#define D6_High PORTD |=B01000000
#define D6_LOW PORTD &= B10111111
#define D7_High PORTD |=B10000000
#define D7_LOW PORTD &= B01111111

#define D8_High PORTB |=B00000001
#define D8_LOW PORTB &= B11111110
#define D9_High PORTB |=B00000010
#define D9_LOW PORTB &= B11111101
#define D10_High PORTB |=B00000100
#define D10_LOW PORTB &= B11111011

#define D11_High PORTB |=B00001000
#define D11_LOW PORTB &= B11110111
#define D12_High PORTB |=B00010000
#define D12_LOW PORTB &= B11101111
#define D13_High PORTB |=B00100000
#define D13_LOW PORTB &= B11011111

volatile unsigned int tcnt2;
volatile byte pwm_time;
//byte pwm_time, Red_R_Old, Green_L_Old, Blue_T_Old;
unsigned long blank=0; //таймер простоя
byte volatile color[12]; //массив храннения цветов 12-ть каналов

void setup()
<
for (int i=2; i 12)
<
if (Serial.read() == 255) //проверка прификса
<
for (int i = 0; i 100000) < blank=0; for (byte i = 0; i pwm_time ) D2_High; else D2_LOW;
if(color[1] > pwm_time ) D3_High; else D3_LOW;
if(color[2] > pwm_time ) D4_High; else D4_LOW;

if(color[3] > pwm_time ) D5_High; else D5_LOW;
if(color[4] > pwm_time ) D6_High; else D6_LOW;
if(color[5] > pwm_time ) D7_High; else D7_LOW;

if(color[6] > pwm_time ) D8_High; else D8_LOW;
if(color[7] > pwm_time ) D9_High; else D9_LOW;
if(color[8] > pwm_time ) D10_High; else D10_LOW;

if(color[9] > pwm_time ) D11_High; else D11_LOW;
if(color[10] > pwm_time) D12_High; else D12_LOW;
if(color[11] > pwm_time) D13_High; else D13_LOW;
>

Далее на HTPC необходимо установить программу, за которую огромное спасибо Eraser’у с форума XBMC.
www.compcar.ru/download/Ambilight.rar

за реализацию идеи огромное спасибо форуму compcar.ru и отдельно Эдуарду.

Кстати, есть еще программа для работы этой подсветки с музыкой.

ВСЕМ ХОРОШЕГО ДНЯ И НОВЫХ ОЩУЩЕНИЙ ОТ ПРОСМОТРА ВИДЕО!

ДИНАМИЧЕСКАЯ ФОНОВАЯ ПОДСВЕТКА ЭКРАНА НА ARDUINO

02.12.2018 версия 1.3: Добавлено ограничение тока для всей системы, настройка CURRENT_LIMIT
21.10.2019: Вышел проект “Компактный Ambilight by Karman” – читай здесь

Динамическая фоновая подсветка экрана телевизора или монитора компьютера (аналог Philips Ambilight). Работает под управлением Arduino, на компьютере вертится программа Ambibox. Arduino управляет адресной светодиодной лентой на чипах WS2812. В схему добавлен фоторезистор для адаптивной подстройки яркости ленты в зависимости от интенсивности освещения в помещении.

  • Очень дешёвый аналог Ambilight для любого монитора/телевизора, подключенного к компьютеру
  • Разрешение самодельной фоновой подсветки гораздо выше, чем предлагают даже дорогие модели от Philips
  • Самая простая схема подключения среди всех моих проектов
  • Удобная программа Ambibox для настройки и персонализации фоновой подсветки

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

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

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

Теперь ставим программу амбибокс. Тут всё стандартно, далее далее продолжить далее далее завершить. В конце при выборе устройства нужно указать адалайт. Запускаем. Сразу можно поставить русский язык. И можно поставить автозапуск программы при старте компьютера. Чтобы она не мешала остальным, можно поставить задержку запуска. Теперь переходим на вторую вкладку и сразу жмём кнопку больше настроек. Не пугаемся. Вспоминаем номер порта, у меня это был порт номер 5, и указываем его. Далее в программе есть несколько методов захвата изображения, из них у меня работают вроде бы первые 6, можете их все потыкать посомтреть посмотреть какой будет меньше тормозить. Но. Все методы кроме GDI FS Aero включают классическую тему оформления виндоус, то есть без прозрачных окошек, они даже подписаны no aero. Я люблю прозрачные окошки так что оставил аэро. Теперь нажимаем показать зоны захвата и видим, что они не настроены. Зон должно быть столько же, сколько у вас светодиодов. 98. Оп, перезагрузилась. Теперь жмём мастера настрйоки зон. Я наклеивал ленту так, что она получилась без угловых светодиодов, ставлю галочку. Далее, по горизонтали у меня 31 светодиод, ориентироваться нужно не на это число, а сразу смотреть вниз на зоны. Соотношение сторон определяется автоматически, но я на всякий случай поставил как у своего монитора, 16 на 9. И ещё можно удлинить зоны, чтобы они брали источник цвета с большей площади, так результат будет более симпатичным. Ну и всё. Сохраняем настрйоки и ставим галку включить подсветку. Тадаааам. Поздравляю, теперь у нас есть динамическая подсветка монитора. С режимом виндоус аэро наблюдается небольшая задержка, в других режимах без аэро задержки почти нет. В папке с картинками для тестов вы найдёте несколько сочных картинок для проверки вашей фоновой подсветки.

Arduino ambilight для телевизора своими руками за несколько шагов

Обсуждение Adalight – аналог подсветки Ambilight своими руками

  • В теме действуют все Правила форума | Правила раздела «Технотрепалка»;
  • Полезные темы на заметку: FAQ по форуму | Экскурсовод «Технотрепалки» |
  • Пожалуйста, убирайте изображения под спойлеры! | Как убирать изображения под спойлер
  • Основное правило раздела: 1.3 Технотрепалка — не место для флуда. У нас, всё-таки, технический уклон. Для этого есть раздел «Трепалка»;
  • Вместо слов «Спасибо!» используйте . Если у Вас меньше 15 постов – нажмите на кнопку под тем сообщением, где Вам помогли, и напишите благодарность;

Обсуждение»
Тема создана для обсуждения подсветки Adalight. Здесь вы можете делится своим опытом, выкладывать фото и видео того, что у вас получилось, задавать интересующие вас вопросы по данной теме.

Куратор темы – MECHANISM . По вопросам наполнения шапки просьба писать в QMS .

Сообщение отредактировал MECHANISM – Сегодня, 17:48

Привет. 1. Видеокарта gtx970 не монстр, но хватать должно, я думаю. Попробовал разные виды захвата, win8 работает пошустрее, но выше 20 фпс нп видел, но это уже не плохо. И все игры (dx12 не проверял) работают.
2. Поигрался ползунаками, большой разницы не заметил, кстати, важный момент, перед настройкой нужно поставить галочку “для всех зон” иначе все настройки будут касаться одного поля/светодиода. Глянуть бы на чей-то хорошо настроенный амбибокс, по мне, синий перенасыщен.
3. У меня работало тоже. А вчера думал кирдык всему пришел, уж подумал из-за резистора: после нескольких дней норм работы вдруг не включилась система. Т.е. лента при запуске проходит свой тест тремя цветами, вся полностью, а в винде (вин 10) – ничего. Пляски с бубном, прозвоны, перепрошивка ардуины, переустановка амбибокса – ноль. Был в шоке от безысходности. На след день снес все и переустановил. Собрал дублирующую схему на 10 диодов, чтоб свои от телека не отдирать каждый раз, и на свежее все снова заработало, и там и там. Я так ничего и не понял, в чем была загвоздка, и это напрягает. Единственный момент – игрался в скетче скростью отклика или лагом, что-то типа того, там цифра по умолчанию 115000 была, я ставил 500000 как гдето читал, но все работало первое время. Хз, вернул 115к обратно

Добавлено 17.05.2017, 00:56:

Кстати хочу попробовать присобачить все это дело к телеку напрямую, у меня телек с андроидом, вроде через коди можно сделать. Буду курить интернет. И еще идея сделать примитивный контроль хотябы вкл-выкл общей подсветки без запуска компа

Источники:

http://www.drive2.ru/b/288230376151836737/

http://alexgyver.ru/arduino_ambilight/

http://4pda.ru/forum/index.php?showtopic=820121

http://arduinoplus.ru/arduino-budilnik/

Ссылка на основную публикацию