Ходил я седня по компутерным магазинам и видел всякие модные навороты... А потом увидел телек с функцией Ambilight - на задней панели по 4 сторонам стоят полноцветные диоды. Светятся эти диоды цветом, которого на данной части экрана больше всего. Эффект просто офигенный! Считай стена становится продолжением экрана, переферийным зрением это неплохо воспринимается.
Мысль: сделать девайс, реализующий это на обычном ПК. Тоесть лепим за монитор диоды, втыкаем плату управления в КОМ или ЛПТ, ставим на комп прогу - и дело в шляпе. Электронику я собиру за один вечер, а вот что делать с программой? В кодинге под винды я мало что смыслю... Конечно знаю что надо влезть в видеопамяти и поглядеть что там за цвет в данном углу в данный момент, но вот как это сделать в виндовзе - без понятия. Кто поможет?
Внимание! Последняя версия программы и прошивки находится здесь: http://alex-fox.org/?page=ambilight/ambilight Убедительно рекомендую прочитать всю эту тему перед тем, как что-либо делать. Исходник прошивки и софта там тоже есть.
-= Александр =- писал(а):Ходил я седня по компутерным магазинам и видел всякие модные навороты... А потом увидел телек с функцией Ambilight - на задней панели по 4 сторонам стоят полноцветные диоды. Светятся эти диоды цветом, которого на данной части экрана больше всего. Эффект просто офигенный! Считай стена становится продолжением экрана, переферийным зрением это неплохо воспринимается.
Мысль: сделать девайс, реализующий это на обычном ПК. Тоесть лепим за монитор диоды, втыкаем плату управления в КОМ или ЛПТ, ставим на комп прогу - и дело в шляпе. Электронику я собиру за один вечер, а вот что делать с программой? В кодинге под винды я мало что смыслю... Конечно знаю что надо влезть в видеопамяти и поглядеть что там за цвет в данном углу в данный момент, но вот как это сделать в виндовзе - без понятия. Кто поможет?
Не знаю как у вас в виндах, а у нас линуксе всё просто и раздельно: 1. Делаем драйвер ambilight (через какой порт - не важно), который регистрирует устройство /dev/ambilight. Само устройство можно сделать на простой CPLD и tps6140. Для любителей геморроя - на AVR. 2. В любимый плеер (например, mplayer) делаем постпроцессор, который работает c /dev/ambilight. Математика проста: строим гистограмму встречаемости цвета. Цвет, до этого, лучше сразу квантовать. Максимальный пик - тот цвет, которым нужно подсветить. Рекомендую поставить НЧ фильтр на решение, что б глаза не убить.
Смысл подобной ахинеи для меня ускользает... Подобные вещи хороши для телевизора (с очень низким разрешением картинки!) с большой диагональю, на большом удалении. Когда не хватает собственной светимости, для нивелирования шума изображения. Хотя у меня только 17-шка и настольная лампа, направленная за панель...
Довольно интересная задумка, программированием под винду я помочь думаю смогу, щас тока с делами другими разберусь и буду разрабатывать концепцию поиска цветов, ИМХО не такаю уж простая задача для Винды.
такая идея особенно актуальна для геймеров, во время игры это будет предавать огромный дополнительный эффект.
В общем я так прикинул (у меня 19" ЖК) - будем размещать излучатели так: Верх, лево, право, и по всем углам. Вниз делать смысла нет, там нога, а она черная, да и отражение от стола весь кайф испортит. На днях пойду погляжу какие есть полноцветные диоды в продаже...
dx40 писал(а):Есть 2 варианта: 1, простой - снимать скрин с экрана 2, сложнее - написать DirectShow фильтр
в общем-то и то и другое вполне реально
1. Снимать скрин и попиксельно считать цвета?:) Я знаю в фотошопе есть такая фишка Replace Color, так вот там можно выделить разом всё, что одного цвета, так что думаю задача реалезуемая, сразу возьмусь как только разберусь со своим программатором (http://roboforum.ru/viewtopic.htm?t=165 ... 38ee097dd4):)) 2. Думаю не имеет смысла, т.к. есть выход проще
1 вариант - может быть проблема с оверлеем (при снятии скрина вместо оверлея обычно черный цвет), мало фпс и большая нагрузка на процессор.
Есть еще 3 вариант, как мне кажется лучший - свой проигрыватель. Если кто займется аппаратной частью, могу помочь с програмной по третьему варианту - опыт есть...
dx40 писал(а):1 вариант - может быть проблема с оверлеем (при снятии скрина вместо оверлея обычно черный цвет), мало фпс и большая нагрузка на процессор.
Есть еще 3 вариант, как мне кажется лучший - свой проигрыватель. Если кто займется аппаратной частью, могу помочь с програмной по третьему варианту - опыт есть...
А можно попробовать сделать всё в Real-time и не париться со скринами
Свой плеер - ИМХО не катит, хочется и в игрушки с этой штукой погонять... :roll:
Раз уж с программой все реально - вопрос об электронной части.
1)Система управления и интерфейс:
Самое лечшее было бы USB + FTDI + контроллер. Самое простое - LPT + Altera.
Скорее всего буду делать первое - LPT у меня занято, а Альтеру покупать надо. К тому-же у меня аллергия на все эти ПЛМ... :roll: В ящике валяется ATMEGA48 - на ней и построю прототип.
2)Диоды
Что будет ярче при одинаковой стоимости - полноцветный диод или 3 диода разных цветов? Эстетически конечно полноцветный приятнее, но места за монитором полно и туда можно много диодов поставить.
З.ы. Можно ее еще и как цветомузыку юзать, к Винампу плагин сделать не трудно! :D
Я думаю, что не стоит писать софт на ПС - ведь на монитор идут сигналы RGB - может лучше оттуда инфу брать, сразу из кабеля? Сделать собственный предусилитель, интегратор и вперед.
Хм... Была такая идея, но ведь его придется цифровать, при том с нехилой скоростью. Придется привязываться к синхорнизации, четко отмерять выдержки, чтоб попасть в нужный пиксель... В общем трудно это, AVR не потянет даже на 60 Гц развертки. Про 120 я вообще молчу... :roll: Альтера там тоже не спасет - цифровать сигнал надо в любом случае. А внешние АЦП стоют недешево и огород вокруг них выростит нехилый... :(
А делать просто интегратор - прокатит разве-что для верхнего излучателя - там можно интегрировать по строкам прямо из видеоряда. А для левого и правого придется сочинять с коммутатором или чем-нить еще...
Все равно, я думаю, что это лучше, чем нагружать центральный процессор, тем более в играх. А если знать длительность строки по времени, то можно выделять начало и конец строки по синхроимпульсу и разрешать работать соответсвенно левому или правому интеграторам, которые в свою очередь высчитывают суммарную составляющую каждого цвета для своей стороны ("не их" сторона ни их вход не проходит)
Все это хорошо в теории... А на практике - надо искать коммутаторы, надо все это с аналоговой частью шаманить... Кстати есть ли в природе готовые интеграторы? Или тупо накапливать все это в конденсаторе? :roll: