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

Ambient Lighting (амбиентная подсветка салона)

Я как и многие владельцы классических BMw (читать — старых колымаг) засматривался-таки на яркий салон новых BMW (читать — корейские обмылки). Чего там стесняться — откровенно завидовал той светодискотеке, что творится в салоне автомобилей серии G.

Естественно сначала противился и невзлюбил «новое веяние маркетинга», а потом все же привык и даже больше! Захотел себе установить такое же.

Поиск подобного на мой несвежий кузов был весьма безуспешным. BMW X1 e84 не так популярен в тюнинге, как оказалось)

Помогли найти следующее:

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

Для начала был закуплен материал для реализации задуманного. Это оптоволокно с подсветкой. Я брал на 6 источников света в панелях и на 4 источника в ноги. Питание такой штуки идёт через стандартный разъём в прикуриватель и устанавливается через предохранитель.

Начал с того, что снял подлокотник и установил там «центр» всей подсветки — питание и блок с разводкой подсветки.

Внимательный читать может заметить, что коробки 2, а я описывал только одну систему подсветки. Все правильно: одна коробка для подсветки карт и торпедо, вторая — для подсветки ног.

Кстати, регулирование подсветки работает через Bluetooth приложение на телефоне. RGB цвета на любой цвет и выдумку. Режимов работы около 30: постоянный свет, стробоскоп, мигание, чередование и т д

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

Источник

Lightpack или ambilight для монитора своими руками

Когда то давно увидел у товарища на телевизоре Phillips штуку под названием «амбилайт» — две полоски RGB диодов на боках телевизора, которые светились в цвет изображения на экране.

И так мне эта функция понравилась, что захотел я и себе что-то подобное. Поиск показал, что есть много вариантов реализации такого эффекта, кто-то использовал для этого Arduino, кто-то сам делал плату на атмеге и реализовывал поддержку USB программно с помощью библиотеки V-USB. Но как то ни один проект не понравился, было у них куча косяков, и тут я наткнулся на хабре на статью про Lightpack, это проект по созданию открытого железа и ПО для амбилайт-подсветки, который получил финансирования на Kickstarter. Вот этот проект мне очень понравился, и решил я спаять платку. Как раз на «Космодроме» нашел в продаже микроконтроллер Atmel AT90USB162, драйверы светодиодов DM633 и отличные RGB диоды Cree CLV1A-FKB.
Печатную плату, для лайтпака решил немного переделать на использование элементов 0806 вместо 1206, которые оказалось гораздо труднее найти. Вытравил двухстороннюю плату первый раз в жизни, залудил в растворе «жидкого олова»:

Запаял все с помощью новоприобретенной паяльной станции yihua 995D+, пользоваться ей одно удовольствие по сравнению с советским паяльником… Диоды запаял с помощью паяльной пасты и фена — такая технология понравилась, надо только набить руку и точно дозировать пасту…
Первое включение — устройство не определяется… Погуглил, оказалось что флюс, который производитель рекомендует не смывать, оставив в качестве защиты на плате смывать очень даже нужно. Отмыл, подключил — заработало! В смысле определилось устройство, в микроконтроллере с завода прошит загрузчик для прошивки по USB.
Залил прошивку, (программатор не нужен), установил ПО на компьютер (есть версии для Windows, Linux, Mac и Android).

Закрепил плату на задней стенке монитора (совпадение — монитор как раз Phillips) с помощью двухстороннего скотча, пока без корпуса. Диоды тоже наклеил на скотч по краю монитора, вот такое расположение:

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

Источник

DIY: Универсальный Ambilight для домашней мультимедиа системы — Атмосвет

Для своей первой статьи я выбрал одну из самых успешных своих поделок: HDMI-passthrough аналог Ambilight от Philips, далее я будут называть эту композицию «Атмосвет».

Введение

В интернетах не очень сложно найти готовые/открытые решения и статьи как сделать Амбилайт для монитора/телевизора, если ты выводишь картинку с ПК. Но в моей мультимедиа системе вывод картинки на телевизор c ПК занимает только 5% времени использования, большее кол-во времени я играю с игровых консолей, а значит нужно было придумать что-то свое.

Исходные данные:
Требование:

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

Реализация

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

Единственный нюанс:
Я заметил, что внизу экрана идут странные мерцания, сначала погрешил на сигнал, перековырял дефликер, изменил ресазинг картинки и еще кучу всего перекопал, стало лучше, но от мерцания не помогло. Стал наблюдать. Оказалось, что мерцание было только в конце ленты и то при ярких сценах. Взяв мультиметр, я замерил напряжение на начале, середине и конце ленты и угадал с причиной мерцаний: в начале ленты было 4.9В( да китайский БП дает напряжение с отклонением, это не существенно), в середине 4.5 в конце 4.22 — Падение напряжение слишком существенно, пришлось решить проблему просто — к середине ленты я подвел питание от бп, провод пустил за телевизором. Помогло мгновенно, какие либо мерцания прекратились вообще.

Читайте также:  антарес дистанционное обучение на воспитателя
Захватываем картинку вебкамерой

Первая тестовая версия для обкатки идеи и её визуализации была выбрана через захват картинки через вебкамеру) выглядело это как-то так:

Низкая цветопередача и высокий latency показал, что эта реализация не может быть никак использована.

Захват картинки через HDMI

Почему я не использовал плату для HDMI захвата? Все просто: самый дешевый вариант и доступный — это Blackmagic Intensity Shuttle, но она не может работать с сигналом 1080p/60fps, только с 1080p/30fps — что не приемлемо, т.к. я не хотел понижать фреймрейт, чтобы можно было захватывать картинку. + это дело стоило в районе 10 тыc. рублей. — что не дешево при неизвестном результате.

Потери на конвертации HDMI to S-video несущественны для захвата цвета в разрешении 46х26 светодиодной подсветки.

Изначально для захвата S-video я пробовал использовать EasyCap( у него много китайских вариаций), но суть в том, что используемый там чип крайне убог, и с ним нельзя работать при помощи openCV.

Единственный минус — выходной сигнал S-Video содержал черные полосы по краям срезающий реальный контент(около 2-5%), выходную картинку с платы захвата я обрезал, чтобы удалить эти полосы, сама потеря изображения в тех областях на практике не сказалась на результате.

Для меня это была самая интересная часть, т.к. с железками я не очень люблю ковыряться.

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

Процесс обработки фрейма
1. Получение захваченного фрейма
2. Кроп фрейма, для исключения черных полос

Обрезаем 8 пикселей сверху, 8 справа и 18 снизу.(слева полосы нет)

3. Ресайзим фрейм в разрешение подсветки, незачем нам таскать с собой здоровую картинку

Тоже ничего сложного, делаем это средствами openCV:
frame.Resize(LedWidth — 2*LedSideOverEdge,
LedHeight — LedBottomOverEdge — LedTopOverEdge,
INTER.CV_INTER_LINEAR);
Внимательный читатель заметит, обилие переменных. Дело в том, что у меня рамка телевизора достаточно большая, занимая 1 светодиод по бокам, 1 сверху и 3 снизу, поэтому ресайз делается на светодиоды, которые находятся непосредственно напротив дисплея, а углы мы уже дополняем потом. При ресайзинге мы как раз получаем усредненные цвета, которые должны будут иметь пиксели светодиодов.

4. Выполняем мапинг светодиодов с отреcайзенного фрейма

Ну тут тоже все просто, тупо проходим по каждой стороне и последовательно заполняем массив из 136 значений цветом светодиодов. Так вышло, что на текущий момент все остальные операции проще выполнять с массивом светодиодов, чем с фреймом, который тяжелее в обработке. Также на будущее я добавил параметр «глубины» захвата(кол-во пикселей от границы экрана, для усреднения цвета светодиода), но в конечном сетапе, оказалось лучше без неё.

5. Выполняем коррекцию цвета (баланс белого/цветовой баланс)

Стены за телевизором у меня из бруса, брус желтый, поэтому нужно компенсировать желтизну.
var blue = 255.0f/(255.0f + blueLevelFloat)*pixelBuffer[k];
var green = 255.0f/(255.0f + greenLevelFloat)*pixelBuffer[k + 1];
var red = 255.0f/(255.0f + redLevelFloat)*pixelBuffer[k + 2];
Вообще я изначально из исходников какого-то опенсорс редактора взял цветовой баланс, но он не менял белый(белый оставался белым), я поменял формулы немного, опечатался, и получил прям то, что нужно: если level компонента цвета отрицательный(я поинмаю как — этого цвета не хватает), то мы добавляем его интенсивность и наоборот. Для моих стен это получилось: RGB(-30,5,85).

В кореркции цвета я также выполняю выравнивание уровня черного(черный приходит где-то на уровне 13,13,13 по RGB), просто вычитая 13 из каждой компоненты.

6. Выполняем десатурацию (уменьшение насыщенности изображения)
7. Дефликер

Так уж выходит, что входное изображение «дрожит» — это следствие конвертации в аналоговый сигнал, как я полагаю. Я сначала пытался решить по своему, потом подсмотрел в исходники Defliker фильтра, используемом в VirtualDub, переписал его на C#(он был на С++), понял, что он не работает, ибо он такое впечталение, что борется с мерцаниями между кадрами, в итоге я совместил свое решение и этот дефликер получив что-то странное, но работающее лучше чем ожидалось. Изначальный дефликер работал только с интенсивностью всего фрейма, мне нужно по каждому светодиоду отдельно. Изначальный дефликер сравнивал изменение интенсивности как суммы, мне больше нравится сравнение длинны вектора цвета, Изначальный дефликер сравнивал дельту изменения интенсивности по сравнению с предыдущим кадром, это не подходит, и я переделал на среднюю величину интенсивности в пределах окна предыдущих кадров. И еще много других мелочей, в результате чего от начального дефликера мало что осталось.
Основная идея: исходя из средней интенсивности предыдущих кадров, выполнять модификацию текущего кадра, если его интенсивность не выше определенного порога (у меня этот порог в конечном сетапе 25), если порог преодолевается, то производится сброс окна, без модификации.
Немного модифицированный (для читаемости вне контекста) код моего дефликера:

Пусть _leds — массив светодиодов класса Color, _ledsOld — значения кадра до конвертации, LedLumWindow — ширина окна предыдущих кадров, для оценки среднего изменения интенсивности, в конечном сетапе окно у меня было 100, что примерно при 30кад/с равняется 3-секундам. _lumData — массив значения интенсивности предыдущих кадров.

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

Читайте также:  что подстелить под каркасный бассейн на плитку
8. Сглаживание светодиодов по соседям.

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

9. Сохраняем текущий стейт, чтобы тред отправки пакетов схватил и отправил его на контроллер подсветки.

Я умышленно разделил процесс обработки кадров и отправки пакетов на контроллер: пакеты отправляются раз в определенный интервал(у меня это 40мс), чтобы ардуино спела обработать предыдущий, ибо чаще чем 30мс она захлебывается, таким образом выходит, что мы не зависим напрямую от частоты кадров захвата и не мешаем тому процессу(а ведь отправка пакета тоже тратит время).

Немного про ардуино

Нельзя просто так взять и отправить по сериалу здоровенный пакет на ардуино, ибо онв ыйдет за пределы дефолтного буфера HardwareSerial и ты потеряешь его конец.
Решается это довольно просто: выставляем значение размера буфера HardwareSerial достаточного размера, чтобы влезал весь отправляемый пакет с массивом цветов, для меня это 410.

Сам софт был реализован в виде win службы, чтобы настраивать все параметры + включать/отключать я сделал Web UI, который связывался с службой через WebService на службе. Итоговый интерфейс на экране мобильника выглядит так:

Сейчас планирую прикрутить голосовое управление через Kinect for Windows подключенном к HTCP.

Результат

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

Как общий результат работы я записал видео с работой атмосвета по моей схеме:

Испытуемый образец 1: Pacific Rim, сцена битвы в Шанхае, этот фильм хорошо подходит для тестирования и демонстрации, много ярких сцен и вспышек, ударов молнии и т.д.:

Испытуемый образец 2: Какой-то ролик из MLP, слитый с ютуба, очень хорошо подходит для теста сцен с яркими цветами(мне понравились полосы), а также быстро сменяющихся сцен(под конец виде можно разглядеть последствия задержки, видных только на видео, при реальном просмотре этого не заметно, пробовал измерить задержку по видео — получилось 10-20мс):

И на последок стоит заметить про потребление ресурсов от HTPC:
HTPC у меня ASRock Vision 3D на i3, служба атмосвета отжирает 5-10% CPU и 32MB RAM.

Спасибо за внимание, очень надеюсь, что кому-нибудь моя статья поможет.

Источник

Делаем активную фоновую подсветку для любого телевизора за 1 час. Сейчас научу

Одной из популярных технологий для домашних ТВ, которая делает просмотр контента более зрелищным и увлекательным, является фоновая подсветка. Она присутствует лишь на ограниченном количестве телевизоров бренда Philips и недоступна для остальных устройств.

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

Что такое Ambilight

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

Система анализирует цветовую палитру картинки на экране и включает аналогичное свечение по периметру телевизора. Работает все в динамическом режиме и создает эффект рассеивания изображения за пределы матрицы.

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

К сожалению, другие производители электроники не пытаются представить свои аналоги или купить у правообладателя права на использование Ambilight. Однако, при помощи некоторых гаджетов с AliExpress можно “наколхозить” нечто подобное.

Как работает Ambilight и его аналоги

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

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

Все решения, которые повторяют технологию Ambilight, делятся на два типа: на основе внешнего декодера или на основе телевизионной приставки.

◉ Первый тип представляет собой отдельную коробку с HDMI-входом и аналогичным выходом. Внутри находится небольшой одноплатный компьютер (чаще всего на основе Raspberry Pi), который принимает выводимый сигнал с любого источника. На вход могут быть подключены TV-приставки или консоли. Внутри происходит процесс захвата, а на выходе картинка выводится на телевизор.

Преимущество такого решения в простоте подключения. Никаких сложных схем, дополнительного ПО и настроек. Коробочка просто помещается между источником сигнала и его приемником (телевизором).

Минус такой коробки тоже очевиден – чаще всего она будет выдавать картинку хуже, чем на входе. Мощности модуля может не хватать, чтобы ретранслировать 4K, иногда не будет поддержки HDR, бывают случаи, когда коробки не поддерживают нужный показатель FPS или банально не передают объемный звук. Здесь все упирается либо в мощность начинки, либо в стандарт порта HDMI.

🛒 Купить готовое решение для фоновой подсветки – от 6528 руб.

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

Преимущество такой системы в ее цене. А вот главные недостатки в серьезных требованиях к используемой ТВ-приставке. Нужен достаточно мощный процессор, который справится как с воспроизведением контента, так и с захватом картинки для декодирования.

Читайте также:  sea of thieves обучение сундук

Кроме этого на некоторых чипах отсутствует физическая возможность захвата изображения из-за особенностей его вывода. Например, достаточно распространенные процессоры Amlogic при декодировании картинки создают специальный защитный слой, который не позволяет сделать захват изображения. Чаще всего выход из ситуации есть, но придется возиться с настройками приложения для захвата, искать подходящие плееры и подбирать удачную комбинацию параметров.

🛒 Купить набор для сборки фоновой подсветки на базе ТВ-приставки – от 831 руб.

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

Что нужно знать перед покупкой

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

Во-первых, обязательно придется использовать какую-то телевизионную приставку для вывода контента. Если пользуетесь возможностями своего Smart-TV – ничего не выйдет. Подойдет самодельная телевизионная приставка на основе Raspberry Pi, переделанный под приставку Windows-компьютер, большинство современных Android TV-боксов.

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

В-третьих, вокруг телевизора должно быть свободное место для подсветки. Если панель строго вписана в интерьер, установлена в шкафу или компактной мебели, ничего не выйдет. Желательно, чтобы по всему периметру на расстоянии минимум 30-40 см от телевизора ничего не было.

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

Перед заказом необходимо выбрать плотность диодов на адресной диодной ленте (30 на метр или 60 на метр) и её длину.

▶ для телевизоров диагональю 22″ и менее берите 1 метр ленты;
▶ на матрицы 22″-32″ потребуется 2 метра ленты;
▶ на экраны 32″-43″ рекомендуется заказывать 3 метра ленты;
▶ для экранов 43″-60″ выбирайте 4 метра;
▶ максимальную длину 5 метров берите при размере экрана более 60″.

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

Как все подключить

В коробке с устройством вы найдете: понятную инструкцию на английском с картинками, выбранный при заказе моток RGB-диодной ленты, сам блок управления подсветкой, внешний блок питания и кабели для подключения.

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

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

3. После этого подключите ленту к блоку питания согласно схеме.

4. Логический кабель подключите к блоку управления.

5. Подключите блок управления в свободный USB-порт на вашей приставке.

6. Устанавливаем приложение Ambient light Application for Android из Google Play. Утилита платная, стоит 199 руб.

7. Запускаем приложение и сразу же можем проверить работу ленты, включив режим свечения одним цветом или случайный эффект.

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

9. Настраиваем соответствующие параметры в настройках: задаем количество диодов по вертикали и горизонтали, направление ленты (по часовой стрелке или против),

10. Настройка LEDs Bottom Gap позволяет задать неактивную область под стойкой телевизора, а параметр First LED Offset позволяет выбрать место первого диода при разных вариантах поклейки ленты.

11. Ниже можно настроить частоту обновления экрана, область захвата цвета и качество воспроизводимых эффектов (частоту смены цвета ленты).

После внесения всех параметров можете проверить корректность работы подсветки в режиме Screen Capture Mode.

▣ Для корректной работы подсветки в разных приложениях рекомендуем использовать сторонний плеер – Vimu Media Player. В его настройках необходимо активировать пункт Выводить видео в текстуру.

▣ Для работы при просмотре IPTV используйте OTTPlayer с включенной опцией Decoder медиаплеер.

▣ Просмотр YouTube с фоновой подсветкой возможен через приложение Smart YouTube TV.

В играх фишка будет работать без дополнительных настроек и танцев с бубном.

Стоит ли заморачиваться

Фоновая подсветка выглядит очень эффектно, ее однозначно стоит попробовать всем любителям смотреть фильмы или сериалы на большом экране. При использовании Apple TV, для работы с игровыми консолями или просто для беспроблемной работы из коробки выбирайте более дорогое готовое решение.

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

В остальных случаях лучше попробовать более доступное и настраиваемое решение на базе телевизионной приставки. Если используете ТВ-бокс на основе Windows-компьютера, получите самую простую и беспроблемную настройку, а вот с боксами на Android придется повозиться с параметрами.

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

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

Источник

Автомобильный онлайн портал