Найти в Дзене
МСА

Ambilight подсветка для телевизора или ПК на arduino.

Оглавление
Подсветка выступает в качестве расширения картинки за рамки телевизора, что положительно сказывается на восприятии картинки. Снижается усталость глаз при длительном просмотре сериалов и фильмов в темноте. Усиливается эффект погружения в фильм.

В данной статье рассмотрим подключение напрямую и к андроид телевизору (смарт тв) и к ПК.

Что понадобится:

1. Arduino NANO v3 (на МК atmega 328p) - https://alii.pub/6pw19c

2. Адресная светодиодная лента WS2812 на 5в (или 12в), советую брать 30led/1m - https://alii.pub/6pw17z

3. Мощный блок питания на 5в (или 12в) с силой тока от 6-7А и выше для 5в (от 3а и выше для 12в) ленты. Можно меньше, но тогда нужно уменьшить максимальный ток в прошивке, максимальная яркость будет ниже. Если подсветка делается для компа, то можно запитать от БП самого системника. БП - https://alii.pub/6pw1fr / https://alii.pub/6pw1hb

4. Шнур USB для подключения ардуино к компу.

Итого по затратам выйдет около 700р + БП.

-2

ПО, библиотека и скетч:

Ambilight

1. Обрезка светодиодной ленты

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

Под мой телевизор 50 дюймов взял ровно 3м ленты (30led/m) на 4 стороны. Выставил количество светодиодов по горизонтали 29, по вертикали - 16.

-3

Чем больше количество светодиодов - тем сильнее нагружается процессор телевизора (компа) и сама ардуинка. При количестве светодиодов 150шт ардуинка лагает и на компе и на телике при захвате 30фпс (рандомные цветные вспышки по ленте).

2. Подключение ленты к ардуино

Подключаем GND (-) ленты к GND (-) ардуино и к (-) источника питания. Контакт DI (стрелочка на ленте ОТ ардуино) подключаем к 13 выводу ардуино. VCC (+) подключаем к (+) блока питания. Включаем БП, подключаем ардуино к USB компа.

3. Прошивка

  • Устанавливаем Arduino IDE. Меняем для удобства в настройках язык на русский.
  • Распаковываем архив FastLED по пути Documents\Arduino\libraries, перезапускаем прогу.
  • Открываем в проге прошивку v1.3 (автор прошивки Alex Giver). Меняем количество светодиодов под нашу ленту. Ставим ограничение по току процентов на 20 ниже, чем заявка на БП (у меня БП 2.5А, я ограничил до 2000мА).
  • Выбираем в Списке устройств (или во вкладке Инструменты) Arduino NANO и порт, к которому она подключена. Чтобы узнать порт - отключаем и подключаем ардуинку от компа. Соответственно в списке порт пропадет и появится.
  • Загружаем прошивку в ардуино. Должно появиться сообщение - загрузка завершена. Закрываем прогу.
-4
Если сообщение не появилось или вышли ошибки - заходим во вкладку Инструменты, в пункте Процессор выбираем *(Old).
-5

4. Запуск подсветки на компе

  • Скачиваем программу AmbiBOX. Устанавливаем её, выбрав при этом в списке "Adalight".
  • Запускаем, ставим русский язык в проге.
  • Заходим во вторую вкладку и жмём "Больше настроек". Выбираем нужный порт COM*.
-6
  • Меняем количество зон под наше количество светодиодов.
  • Жмём кнопку Показать зоны захвата и настраиваем количество светодиодов по горизонтали и вертикали.
  • Сохраняем настройки и ставим галочку Включить подсветку.

Если всё верно сделано, то подсветка сразу включится. Поперебирайте Методы захвата экрана и выберете вариант с бОльшим фпс. На этом основная настройка эмбибокс закончена.

5. Запуск подсветки на телевизоре

  • Скачиваем и устанавливаем на телик (или андроид приставку) Ambient light application, но она платная в плей маркете, я качнул с инета.
  • Заходим в настройки и выставляем количество светодиодов по горизонатали и вертикали. Выставляем направление ленты и начальную точку. Ставим захват 30фпс. Если лента будет по 3 сторонам, то в проге деактивируем все нижние светодиоды. Выходим из настроек.
  • Включаем БП питания ленты, подключаем ардуино к USB телика (приставки), включаем подсветку в проге, разрешаем запись экрана. Если сделано всё верно - подсветка запустится.
  • После тестов - приклеиваем ленту по периметру телевизора (монитора).
-7
  • Устанавливаем VLC плеер, с ним в комплекте идут необходимые видеокодеки, но через сам плеер VLC не во всех форматах видео запускается подсветка. Поэтому ставим ещё один видеоплеер - ViMu, через который смотрим фильмы. В нём для включения эмбилайт заходим в Настройки и в пункте Видео ставим галочку OpenGL. Оба приложения с плей маркета, бесплатные.
Что на компе и что на телике в программе имеется множество настроек - цветопередача, гамма, зоны захвата и т.д - настройте под себя. На телике у меня зависает приложение после каждой настройки, приходится передёргивать USB разъем.

Видео:

Несколько важных моментов работы подсветки на телевизорах

  • Не на всех телевизорах заработает подсветка.
  • Программа довольно сильно нагружает телик. Чем больше светодиодов - тем сильнее нагрузка. У меня подсветка по 4 сторонам, суммарно 90 светодиодов. Я подумываю отключить нижние светодиоды, чтобы снизить общее количество до 61шт и тем самым немного разгрузить телик.
  • Мой телик дорисовывает до 60 фпс во всех видео, фильмах и сериалах и я привык к плавному изображению. После подключения подсветки фпс падает, что вызывает дискомфорт первые несколько минут просмотра фильма, потом привыкаешь и становится нормально. Проседает не ниже оригинального значения в 24-30фпс, и не везде. Например в мультфильме (видео ниже) почти нету разницы что с подсветкой и что без - примерно 60 фпс и остается.
  • Не во всех приложениях будет работать подсветка. В оригинальном ютубе, например, она не работает. Ставил левое - работает (в настройках включить эмбилайт), но фпс становится, опять-же, низкий, приходится выбирать, либо плавность видео, либо с подсветкой. Фильмы смотрю в VoKino + TorServ, подсветка работает при воспроизведении через вышеописанный плеер.

Блок управления и питания

Ардуино и БП ленты запихал в корпус от трансформаторного адаптера питания. Помимо этого, поставил на корпус розетку, реле и повышающий преобразователь из 5 в 12в для питания реле.

-8
-9
-10

Логика работы такая:

При включении телевизора (или вывода его из спящего режима) на USB появляется напряжение 5в, которое запитывает ардуино, а также запитывает реле через преобразователь напряжения. Реле стоит в разрыв БП ленты и розетки. К розетке я подключил аудиосистему.

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

Итоги

Вживую подсветка смотрится эффектно, видео не передаёт всей красоты. Яркости от блока питания на 2.5А достаточно, для тестов я вообще запитывал ленту прямо от юсб телика (он до 0.9А), ограничив ток до 600мА, можно было так и оставить.