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

02.12.2018  версия 1.3: Добавлено ограничение тока для всей системы, настройка CURRENT_LIMIT

подписаться на обновления

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

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

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

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

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

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

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Обычная

Контроль яркости

Ноутбучная

На телевизор 1

На телевизор 2

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

Гайд по ленте:

  • Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
  • 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
  • 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
  • IP30 лента без влагозащиты (как на видео)
  • IP65 лента покрыта силиконом
  • IP67 лента полностью в силиконовом коробе
  • Для видео использовалась лента с плотностью 60 на метр и без влагозащиты: 1m 60 IP30
всё для пайки
аккумуляторы и модули
все arduino модули
мультиметры
инструменты
бп и преобразователи

ПРОШИВКА И НАСТРОЙКА

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате Arduino. Гайд по скачиванию и загрузке прошивки можно найти под спойлером на следующей строчке.

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

2. Скачайте архив со страницы проекта. Если вы зашли с GitHub – кликните справа вверху Clone or download, затем Download ZIP. Это тот же самый архив!

3. Извлеките архив. Содержимое папки libraries перетащите в пустое место папки с библиотеками Arduino C:/Program Files (x86)/Arduino/libraries/

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

5. Настройте прошивку (если нужно), выберите свою плату, процессор. Подключите Arduino к компьютеру, выберите её COM порт и нажмите загрузить.

6. При возникновении ошибок или красного текста в логе обратитесь к 5-ому пункту гайда для новичков – “Разбор ошибок загрузки и компиляции“.

Содержимое папок в архиве

  • Библиотеки – библиотеки для дисплея и прочего, скопировать в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Gyver_Ambilight – прошивка для Arduino, файл в папке открыть в Arduino IDE (читай FAQ)
  • Schemes – папка со схемами подключения
  • Test pictures – папка с ядрёными радугами для теста подсветки
скачать архив
страница на github
обсудить на форуме

Дополнительно

  • Может случиться так, что при работе от USB компьютер не выключается, пока не будет извлечён штекер, ведущий к Arduino
  • Мини FAQ:
    Ответы на большинство вопросов можно найти здесь: https://alexgyver.ru/ws2812_guide/

    В: Я купил ленту, на ней контакты G R B 12V. Как подключить?
    О: Молодец, можешь кинуть ей в собаку. Это не та лента.

    В: Не работает! Какие есть типичные ошибки?
    О: Скорее всего в подключении. В основном забывают объединить GND ленты и GND Ардуины.

Настройки в прошивке

#define NUM_LEDS 98          // число светодиодов в ленте
#define DI_PIN 13            // пин, к которому подключена лента

#define start_flashes 0      // проверка цветов при запуске (1 - включить, 0 - выключить)

#define auto_bright 0        // автоматическая подстройка яркости от уровня внешнего освещения (1 - включить, 0 - выключить)
#define max_bright 255       // максимальная яркость (0 - 255)
#define min_bright 50        // минимальная яркость (0 - 255)
#define bright_constant 500  // константа усиления от внешнего света (0 - 1023)
// чем МЕНЬШЕ константа, тем "резче" будет прибавляться яркость
2019-07-28T02:35:53+03:00