Комментарии 38
Недостаток один — через пару дней перестаёшь обращать внимание на наличие этой подсветки т.к. фильмы есть и с чёрным рамками, это отдельный гемор с расстановкой захвата зон в видео 4:3 и 21:9 почти к 1/4 ширины и длины экрана 16:9, в играх все зависит от граббера, встроенного в управляющий софт dx9, dx11 и т.п., где то будет работать, где то нет. Для себя отмечу, что интересно собрать и настроить, но не использовать ((. Включил в итоге как подсветку при работе в тёмном помещении. Эффекта ВАУ нет в общем, только на нескольких тестовых видео.
В играх только в авто-симуляторах вау-эффект есть, когда под мостом проезжаешь — только ради этого можно какой-нибудь дешёвый амбилайт купить, впечатляет сильнее 3D очков в этой же игре (не VR шлем, а 3D с поляризованными очками, шлем-то вау-эффектнет посильнее).
Как дилетант, могу предположить, что при просмотре без дополнительного освещения (ночника/торшера/бра и т.п. фоновое) в темное время суток, глаза не так устают от яркого источника света монитор/тв при адаптивной подсветке. Пойду погуглю. Если у кого-нибудь есть ссылки на пользу/вред/бесполезность, поделитесь, если не сложно.
1. ОЧЕНЬ. МНОГО. ПРОВОДОВ. Да, HDMI сплиттер запитывается прямо с HDMI, это хорошо, но, например, HDMI -> AV надо запитывать отдельно (провод + блок питания). Также, отдельный HDMI кабель между сплиттером и конвертером, а так же RCA кабель между конвертером и AV capture донглом. Плюс, это три отдельных девайса, которые тоже занимают место (а если не хотите, чтобы донгл из RPi торчал, то надо еще и USB папа-мама удлинитель).
2. Не знаю как у автора, но у меня весь этот сетап давал очень плохую картинку, она заметно отставала и часто имела помехи.
В итоге я плюнул и купил нормальный HDMI capture девайс (на Амазоне ищется по «HDMI Capture,HDMI to USB 3.0»). Стоит эта балалайка $90, но после неудачи с предыдущим сетапом я был готов попробовать. И, о боже, насколько она лучше. Первое, она уже сама по себе — HDMI сплиттер, т.е. у нее есть HDMI вход и HDMI выход и она гонит сигнал со входа на выход. Также, USB кабелем подключаем к RPi и оно там видится как USB камера. Захват быстрый, задержка маленькая, минимум проводов, все компактно. Тем, кто намучается с предыдущим сетапом, рекомендую.
Далее, Hyperion. Я начинал с простого скрипта на OpenCV и питоне, чтобы считать цвета по краям и выдавать их на RGB ленту, но уперся в скорость и перешел на Hyperion. Лично меня Hyperion всегда отталкивал вот этими костылями, что есть какой-то конфиг, но там хрен разберешься и надо качать стороннюю программу, чтобы этот конфиг генерить. Ладно. Потом уперся в то, что мой супер девайс захвата выдает картинку в формате, который Hyperion не умеет всасывать. Пришлось напилить новый драйвер для захвата через OpenCV (и, да, не благодарите, оно уже вмержено в мастер). Но пока я ходил за разработчиками и упрашивал их вмержить мой патч, они мне рассказали, что «забей ты на Hyperion, у нас теперь есть Hyperion.NG, новый, блестящий, и он из коробки умеет захватывать твои форматы». Действительно умеет, но там были другие грабли — драйвер управления RGB лентой через RPi PWM просто крэшился. Пришлось разбираться и чинить (патч уже в мастере).
Я всем рекомендую сразу брать Hyperion.NG, там есть встроенный web интерфейс (а также API) для настройки и управления, не надо делать этих приседаний с HyperCon.
Насчет ИК порта: я сам его не делал, у меня всегда работает режим с дублированием цветов края картинки, но я таки прикрутил ИК интерфейс для других нужд. Я считаю, проще вариант — взять готовый ИК декодер YS-IRTM. Единственный недостаток — он работает на 5V, а RPi пины — 3.3v, поэтому пришлось городить logic level shifter (и вот это станет барьером для многих хоббистов). Зато, там понятный serial интерфейс и есть возможность использовать его как передатчик (что я, собссно, и делаю, чтобы уметь включать/выключать ТВ и контроллировать громкость. Да. я в курсе, что это можно делать и через CEC, но мой CEC оказался обрезанным).
Уже лет 5 как у меня работает подобный сетап с конвертером с hdmi на AV. Да, проводов в такой схеме не мало, даже пришлось городить подобие небольшого "стенда" и крепить его за телевизором (правда блок питания у меня один — этого достаточно). Но вот по части наличия каких-либо проблем с такой схемой не соглашусь: всё работает чётко и без глюков.
Все же, я всем, кто собирается повторить это, рекомендую брать нормальный девайс захвата. Это будет слегка дороже, но значительно меньше возни и гемора. У меня тоже один блок питания (кажется, 5V 8A), от него запитывается RGB лента и малина (через пины). Девайс захвата запитывается по USB.
Делал по вот этому мануалу: http://awesomepi.com/part-3-using-ambilight-for-every-hdmi-device-an-ultimate-step-by-step-tutorial/
В нем настоятельно советуют брать граббер на конкретном чипсете, на нём и брал.
Ну, для согласования уровней в подавляющем большинстве случаев достаточно одного токоограничивающего резистора. А для тех кому лень разбираться можно купить готовый модуль типа такого — aliexpress.ru/item/32848861724.html Или более продвинутый вариант — aliexpress.ru/item/32404824354.html
А по поводу вашего варианта — можно подробнее? Я не в теме про всякие cофтовые примочки для RPi, но очень хотелось бы повторить.
Я поверх этого наворчивал всякие дополнительную функциональность. Например, одно из неудобств сетапа (и, думаю, в HDMI-to-AV будет то же самое) — RPi не знает, когда телевизор выключен. Поэтому подсветка светит всегда. Надо было как-то понимать, когда телевизор включен. Поэтому я подключил RPi к телевизору посредством HDMI (что, немного неудобно, потому что съедает один HDMI вход на телевизоре), и использовал скрипт на Python для мониторинга HDMI CEC, понимал, когда телевизор вылкючился/включился и посылал команду Hyperion.NG включить/выключить подсветку.
Потом я использовал HAP-python для написания программы, которая притворяется телевизором для Apple HomeKit (фреймворк домашней автоматизации от Apple) и использовал YS-IRTM для посылки IR команд телевизору, чтобы включать/выключать/менять громкость. Также, поскольку у моего телевизора всего два HDMI входа (у меня что называется «Dumb TV») и один уже занят RPi, у меня стоит HDMI свитч, чтобы переключаться между источниками и у него тоже есть ИК пульт. Поэтому, я использую YS-IRTM для посылки команд туда (по команде от HomeKit). Это все написано на Python.
Насчет RPi PWM — вот здесь можно почитать. По сути, там используется DMA и PWM для отсылки сигналов.
Под Windows 10 на ПК в настройках придется найти и включить поддержку SMB, так как она по умолчанию в ней отключенаЭта галочка включает не поддержку SMB вообще, а поддержку SMB 1.0 — стандарта времён Windows 95. Никакой необходимости включать его нет, так как libreelec вполне понимает протоколы 2.0 и 3.0.
Set-SmbServerConfiguration –EnableSMB2Protocol $true
Не совсем понял, что и как включает адруина, но… Под гребёнкой малинки есть пин "RUN", импульс на котором разбудит её из любого состояния.
Но демо-ролик выглядит офигенно!
В винде можно поставить софтинку (типа такой https://github.com/fabsenet/adrilight), она будет грабить экран прямо на месте, никаких дублирований и vga. Потом подключают arduino nano по USB, которая по нехитрому протоколу получает цвета и выставляет их на rgb ленте.
Ещё есть вариант — грабить кадры из HDMI с помощью FPGA и им же управлять лентой. Тогда получится всего один или два девайса если использовать сплиттер. Правда учитывая трудозатраты проще купить уже готовое устройство.
А how-to’шкой кинете, как это сделать, если есть? Для тех, кто про fpga только слышал)
Про вторую половину было на муське))
Пока сам только начинаю вникать в FPGA. В сети есть примеры работы с HDMI и спеки протокола. На базовом уровне он, кстати, не такой сложный. Но все равно без опыта тяжело. Я пока что играюсь с выводом картинки на http://maximator-fpga.org
Адаптивная фоновая подсветка для телевизора на Raspberry Pi – аналог Ambilight