Главная » Arduino
Призовой фонд
на май 2017 г.
1. Тестер компонентов MG328
Паяльник
2. Осциллограф DSO138
Паяльник
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Ambilight своими руками

Ниже представлен проект изготовления подсветки Ambilight для телевизора или монитора. В предыдущей статье "Динамическая подсветка ТВ" использовался простой подход с использованием четырех RGB светодиодных лент, что позволяло отображать на каждой стороне ТВ только один цвет.
В данном статье мы усовершенствуем нашу подсветку, использовав для этого RGB LED пиксели, которые позволяют управлять каждым RGB-светодиодом. Подробнее читайте здесь: RGB LED Pixels.

Итак, что нам понадобится:
- лента цифровых RGB LED Pixels на основе нового контроллера WS2801. Одной такой ленты (25 светодиодов) вполне хватит на обычный среднестатический монитор. Расстояние между RGB-модулями около 10 см. Для большого телевизора могут понадобиться 2 такие ленты
- стабилизированный источник питания 5В для питания RGB LED. Максимальный ток БП нужно подбирать исходя из энергопотребления RGB LED модулей. Если будет использоваться одна лента (25 RGB LED), то ток БП нужен 1.5А, если 2 ленты, то соответственно 3А.
- контроллер Arduino, разъемы и др. мелочи.

Монтаж

Для облегчения подключения к Arduino и БП с лентой были произведены небольшие доработки. Для линии data и clock ленты, были припаяны соединительные коннекторы, чтобы их можно было надежно вставить в разъемы Arduino. Для подключения блока питания припаяли разъем. От разъема, к Arduino припаяли общую "землю". На фото ниже я думаю все вполне понятно:

Подпаиваем разъемы

В Arduino 13-ый пин использовался для clock, а 11-ый пин для data. Плюс, не забудьте "землю".

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

Шаблон

Затем, необходимо равномерно расположить 25 LED RGB светодиодов. У меня вышло расстояние между светодиодами около 50мм.

Закрепляем RGB LED

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

После того, как все RGB LED пиксели закреплены, осталось прикрепить контроллер Arduino. Для этих целей лучше всего подойдет двухсторонний скотч. Подсоединяем USB кабель к Arduino и источник питания 5В к RGB LED ленте.

Подсоединение Arduino

Программное обеспечение

Все необходимое ПО вы можете скачать с GitHub. В папке Arduino->LEDstream находится скетч для Arduino. Скомпилируйте его и загрузите в контроллер.

Для компьютера используется ПО под Processing IDE, который необходимо скачать и установить отдельно (не путать с Arduino Processing!). Если в вашей конфигурации не 25 RGB LED, то в скетч необходимо будет внести изменения. Также, необходимо выбрать COM-порт, к которому подключен контроллер Arduino, чтобы передавать данные (см. скриншот ниже).

Подсоединение Arduino

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

Подсоединение Arduino

Код программы рассматривать не будем, т.к. он хорошо комментирован. Кстати в папке Colorswirl находится небольшой пример демо-скетча, который выводит на RGB светодиоды радугу.
Некоторое старое железо, может не справиться с нагрузкой (к примеру первые Atom'ы на нетбуках), т.к. постоянно делаются скриншоты. В этом случае может помочь уменьшение разрешения, к примеру 800х600.

Оригинал статьи

Теги:

Колтыков А.В. Опубликована: 2011 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (19) | Я собрал (0) | Подписаться

0
чайник #
А сколько денег потребуется на это дело (в часности arduino)?
Ответить
0
talibanich #
На eBay на сегодняшний день Arduino UNO стоит 19$ с бесплатной доставкой.
Ответить
0
xmax #
А для телевизора не реально сделать? В плане, чтобы без компа было.
Ответить
0
talibanich #
Самому это практически не реально.
Ответить
0
Hydrogen #
Зачем так пессимистично? Можно поднять фронтальную крышку ТВ, поместить сенсор на каждую из 25ти точек и вывести провода на индивидуальные контроллеры, можно использовать любой самый дешевый PIC или AVR и сенсор на cmos основе с RGB фильтрами, вроде этого https://www.sparkfun.com/products/10656. Сенсор считывает интенсивность цветов, контроллер обрабатывает и зажигает нужные LED-ы с нужной интенсивностью.
Ответить
0
talibanich #
Я же не сказал, что вообще нереально, я сказал практически. То, что вы предлагаете это единственный способ реализовать это в домашних условиях, такой проект есть в открытом доступе на англ. языке со всеми исходниками, кому надо нагуглит. Но стоимость и трудозатраты великоваты...
Ставили еще сенсор перед экраном, результат был, но далеко не идеальный...
Ответить
0
Den #
Кто-нибудь уже собрал?
У меня встало на уровне програмированния.
Ответить
0
malahov_aleks #
Тоже самое. Тестовая радуга проходит нормально, а вот когда пытаешься самое основное запустить, ну не работает. processing ошибку выдает и все.
При запуске выделяется вот такая строка кода: static final short minBrightness = 120;
и processing пишет cannot find anything named "leds"
А дальше вот такая фигня
line 39:14: unexpected token: short
line 47:14: unexpected token: short
line 51:14: unexpected token: int
line 59:14: unexpected token: boolean
line 65:14: unexpected token: int
line 86:14: unexpected token: int
line 105:14: unexpected token: int
Кто нибудь может уже запустил и расскажет, что да как?
Ответить
0
mike #
Есть RGB лента. Можно ли с ней что-то сделать так, чтобы один отрезок ленты занимал 1 контакт, а не 3 на каждый цвет? Иначе только 4 умещается, а это вообще не вариант. Я полный профан пока что в этом деле, потому и спрашиваю
Ответить
0
Илья #
TCL5940 должен помочь.
Ответить
0
Ringo_Roma #
Собери лучше из этой статьи подсветку, там твоя RGB лента подойдет.
Для обсуждаемой схемы лучше наш отечественный софт ambibox скачать, он в разы лучше.
Ответить
0
Сергей #
А обязательно брать на контроллере WS2801 или можно на каком либо другом?
Ответить
0
S #
У меня в RGB Pixel только 3 провода вместо четырех. Возможно как нибудь сделать из них Ambilight?
Ответить
0
Vova #
А можно сделать на основе Arduino, но вместо RGB LED использовать светодиодные ленты (так как на огригинальном PaintPack)?
Ответить
0
RK #
А в какие каналы на ардуино нужно все подсоединять?
Ответить
0
Brain2d #
У меня все глючило, цвета отражались неправильно (вместо сплошного цвета мигал тремя цветами) и яркость не изменялась. Долго не мог понять в чем дело, думал в гирлянде косяк. После удаления 2ух этих строк в LEDstream.ino все зарботало:
hold = 100 + (32 - bytesBuffered) * 10;
mode = MODE_HOLD;
Ответить
0
владимир #
Огромное вам спасибо. Два дня мудохался. Тоже помогло. А то я все помехи искал да блоки питания менял с проводами
Ответить
0
Injive #
Чуваааак, ты даже не представляешь как ты помог своим комментом, ооочень долго копался и в итоге наткнулся на твой комментарий и все заработало! Спасибо!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Квадрокоптер Syma X11 Солнечная панель 10Вт 12В поликристаллическая
вверх