Ambilight своими копытами! [v1.1]
Говорят, не стоит забирать с собой в Новый год незаконченные дела. Поэтому, наконец-то, мне удалось заставить себя завершить давно начатый проект обвешивания своего окна в виртуальный мир ambilight-подобной системой. Столкнувшись с, казалось бы, нерешаемой проблемой, проект был заброшен, но снизошло чудо и решение оказалось чрезвычайно простым!
А что из этого получилось и как сделать такую же — Прошу под кат :)
Всё это началось полгода назад, когда, натолкнувшись на отечественный проект paintpack, я узнал, что хвалёная ambilight, фирменная технология Philips «расширения» изображения за границы экрана, доступна каждому. Сие поделие и было куплено. На первый взгляд, конечно, производит впечатление!
//к сожалению, видео из ВК не прикрепляется, поэтому оставлю в виде ссылки: vk.com/video107108312_456239032
Однако, у этого paintpack есть один существенный недостаток: он создаёт всего 10 независимых зон, которые, в свою очередь, создаются отрезками RGB лент. Погуляв по интернетам, натолкнулся на множество DIY версий на базе великолепной штуки Arduino! загуглено-сделано: воистину волшебная светодиодная лента WS2812b и Arduino отправились ко мне!
Алиэкспрессы (нет, это не реклама)
Ссылки:
ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-5V-16MHz-ATMega-32U4-Module-with-2-row-pin-header-For/2035459911.html?spm=2114.13010608.0.0.koW8aB
ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-strip-Black-White-PCB-30-60-144-leds/32337440906.html?spm=2114.13010608.0.0.koW8aB&detailNewVersion=&categoryId=200001051
На самом деле, можно использовать почти любую не совсем оригинальную arduino, Важно, чтобы она была на основе чипа AtMega32U4, но никак не ~16U2 поскольку в таком случае аппаратных возможностей arduinы не хватит на обработку всех светодиодов :(
Чем же волшебна эта лента? А тем, что в ней реализована давняя мечта: независимые светодиоды! В каждом из них свой микроконтроллер, который из всего потока данных отбирает предназначенный ему пакет данных с цветом. И это создаёт огромный потенциал для создания чего угодно, даже низкоDPIшных дисплеев!
примеры
А вот и посылка нагрянула!
Спойлер
На фотографии от ленты осталось метра полтора, изначально в ней было ровно 5 метров
Этапы:
1 — замерить длину и ширину экрана монитора
ну тут несложно, берем рулетку и отмеряем длину и ширину экрана, либо идём сюда и узнаем нужные
параметры
2 — разрезать ленту по размеру экрана и последовательно соединить отрезки
по полученным данным отмеряем нужную длину ленты и отрезаем. Далее раскладываем так, как это будет расположено за монитором. Важно!
необходимо, чтобы лента распологалась последовательно, по стрелочкам
Стрелочки
получится что-то вроде этого:
Осторожно, мыло!
3 — присоединить Arduino и ленты между собой
Собственно, самая трудоёмкая часть. Я соединял по такой схеме:
Схема
Важно! Земля у arduino, ленты и питания должна быть одна! Это необходимо для корректного распознавания ленты ардуиной
Важно[2]! Чем толще провода, тем лучше! Рекомендую использовать провода от Molex переходников, с ними потери будут минимальные!
В качестве питания я использовал зарядки от мобилок и раскуроченные USB провода. Желательно, конечно, поставить нормальный блок питания
на 5 вольт, но у меня и так работает с:
После загрузки первого попавшегося FastLED скетча в ардуину, всё это великолепие
стало выглядеть так:
Спойлер
Как загрузить скетч в ардуино? Очень просто! Для начала надо поставить программу c
официального сайта, в моём случае версию 1.6.10, поскольку последующие версии работали у меня некорректно :(
Установить методом «Далее->Далее->...->Готово», закрыть программу, перейти в папку со скетчем, найти там файл с расширением .ino,
даблклик, затем в открывшемся окне свежеустановленной программы Инструменты->выбираем порт с нашей ардуиной и кликаем на «загрузить».
Если всё прошло хорошо, то в конце лога будет что-то вроде «Done» или «Complete». Всё, плата готова к работе!
Именно тут у меня и возникла проблема, поскольку по какой-то причине fastled гонял радужный узор, но ни в какую не хотел делать что-
либо ещё с более чем ~60 светодиодами (у меня их оказалось 136). Ну и ладно, оставил пока так. Повесил ленты на двухсторонний скотч, на
заводском клее ленты отказались держаться
Промежуточный результат
Далее дело было заброшено, но недавно-таки я натолкнулся на великолепную библиотеку Adalight, которая-таки у меня заработала в связке с приложением Ambibox! Это был запах… Победы! :)
Чтобы всё заработало так как надо, нужно изменить 3 строчки в этом скетче:
1- выставить количество светодиодов
2- выставить номер того порта, от которого идёт «зеленый» провод схемы, он же DATA
3- выставить яркость в пределах от 0 до 255. Настоятельно рекомендую не увлекаться, попробуйте сначала яркость 100. И если всё работает
стабильно, нигде ничего не мерцает и не меняет цвет, можно и поднять этот параметр.
Спойлер
После чего загружаем этот скетч в нашу ардуину, потом идём в Ambibox и проводим настройку там: Сначала выбираем устройство
(adalight), выставляем COM порт ардуины (номер USB порта, к которому она подсоединена), количество светодиодов, а затем в мастер настройки зон.
Спойлер
Затем идём во вкладку «дополнительная настройка зон», компенсируем цвет стены за монитором, играемся с настройками… И проверяем
результат!
//Если вдруг видео отвалится, то вот ссылка: youtu.be/XY9VaYNC-PM
ПостскриптумыДа, я знаю, что инструкций на подобные штуки в интернетах много, но почему бы не добавить ещё одну, да ещё и с теми нюансами, которые
кому-нибудь (например мне:) ) были непонятны…
И отвечая на вопрос «зачем?»: данная система это не «нужно», это «можно!». Помимо снижения нагрузки на глаза при сидении в темноте,
появляется некоторая «атмосферность», которую трудно передать словами:)
И да, я сдуру удалил первую версию поста, поскольку половины всего там почему-то не оказалось… Впредь обещаю быть внимательнее >_<
и самое главное!
— С наступающим Новым Годом, Табун! Пусть в наступающем году будет больше светлых моментов^^
Fix1.0: починены гиперссылки
Fix1.1: добавлены некоторые пояснения
Fix1.2: добавлены ссылки на али
А что из этого получилось и как сделать такую же — Прошу под кат :)
Всё это началось полгода назад, когда, натолкнувшись на отечественный проект paintpack, я узнал, что хвалёная ambilight, фирменная технология Philips «расширения» изображения за границы экрана, доступна каждому. Сие поделие и было куплено. На первый взгляд, конечно, производит впечатление!
//к сожалению, видео из ВК не прикрепляется, поэтому оставлю в виде ссылки: vk.com/video107108312_456239032
Однако, у этого paintpack есть один существенный недостаток: он создаёт всего 10 независимых зон, которые, в свою очередь, создаются отрезками RGB лент. Погуляв по интернетам, натолкнулся на множество DIY версий на базе великолепной штуки Arduino! загуглено-сделано: воистину волшебная светодиодная лента WS2812b и Arduino отправились ко мне!
Алиэкспрессы (нет, это не реклама)
Ссылки:
ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-5V-16MHz-ATMega-32U4-Module-with-2-row-pin-header-For/2035459911.html?spm=2114.13010608.0.0.koW8aB
ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-strip-Black-White-PCB-30-60-144-leds/32337440906.html?spm=2114.13010608.0.0.koW8aB&detailNewVersion=&categoryId=200001051
На самом деле, можно использовать почти любую не совсем оригинальную arduino, Важно, чтобы она была на основе чипа AtMega32U4, но никак не ~16U2 поскольку в таком случае аппаратных возможностей arduinы не хватит на обработку всех светодиодов :(
Чем же волшебна эта лента? А тем, что в ней реализована давняя мечта: независимые светодиоды! В каждом из них свой микроконтроллер, который из всего потока данных отбирает предназначенный ему пакет данных с цветом. И это создаёт огромный потенциал для создания чего угодно, даже низкоDPIшных дисплеев!
примеры
А вот и посылка нагрянула!
Спойлер
На фотографии от ленты осталось метра полтора, изначально в ней было ровно 5 метров
Этапы:
1 — замерить длину и ширину экрана монитора
ну тут несложно, берем рулетку и отмеряем длину и ширину экрана, либо идём сюда и узнаем нужные
параметры
2 — разрезать ленту по размеру экрана и последовательно соединить отрезки
по полученным данным отмеряем нужную длину ленты и отрезаем. Далее раскладываем так, как это будет расположено за монитором. Важно!
необходимо, чтобы лента распологалась последовательно, по стрелочкам
Стрелочки
получится что-то вроде этого:
Осторожно, мыло!
3 — присоединить Arduino и ленты между собой
Собственно, самая трудоёмкая часть. Я соединял по такой схеме:
Схема
Важно! Земля у arduino, ленты и питания должна быть одна! Это необходимо для корректного распознавания ленты ардуиной
Важно[2]! Чем толще провода, тем лучше! Рекомендую использовать провода от Molex переходников, с ними потери будут минимальные!
В качестве питания я использовал зарядки от мобилок и раскуроченные USB провода. Желательно, конечно, поставить нормальный блок питания
на 5 вольт, но у меня и так работает с:
После загрузки первого попавшегося FastLED скетча в ардуину, всё это великолепие
стало выглядеть так:
Спойлер
Как загрузить скетч в ардуино? Очень просто! Для начала надо поставить программу c
официального сайта, в моём случае версию 1.6.10, поскольку последующие версии работали у меня некорректно :(
Установить методом «Далее->Далее->...->Готово», закрыть программу, перейти в папку со скетчем, найти там файл с расширением .ino,
даблклик, затем в открывшемся окне свежеустановленной программы Инструменты->выбираем порт с нашей ардуиной и кликаем на «загрузить».
Если всё прошло хорошо, то в конце лога будет что-то вроде «Done» или «Complete». Всё, плата готова к работе!
Именно тут у меня и возникла проблема, поскольку по какой-то причине fastled гонял радужный узор, но ни в какую не хотел делать что-
либо ещё с более чем ~60 светодиодами (у меня их оказалось 136). Ну и ладно, оставил пока так. Повесил ленты на двухсторонний скотч, на
заводском клее ленты отказались держаться
Промежуточный результат
Далее дело было заброшено, но недавно-таки я натолкнулся на великолепную библиотеку Adalight, которая-таки у меня заработала в связке с приложением Ambibox! Это был запах… Победы! :)
Чтобы всё заработало так как надо, нужно изменить 3 строчки в этом скетче:
1- выставить количество светодиодов
2- выставить номер того порта, от которого идёт «зеленый» провод схемы, он же DATA
3- выставить яркость в пределах от 0 до 255. Настоятельно рекомендую не увлекаться, попробуйте сначала яркость 100. И если всё работает
стабильно, нигде ничего не мерцает и не меняет цвет, можно и поднять этот параметр.
Спойлер
После чего загружаем этот скетч в нашу ардуину, потом идём в Ambibox и проводим настройку там: Сначала выбираем устройство
(adalight), выставляем COM порт ардуины (номер USB порта, к которому она подсоединена), количество светодиодов, а затем в мастер настройки зон.
Спойлер
Затем идём во вкладку «дополнительная настройка зон», компенсируем цвет стены за монитором, играемся с настройками… И проверяем
результат!
//Если вдруг видео отвалится, то вот ссылка: youtu.be/XY9VaYNC-PM
ПостскриптумыДа, я знаю, что инструкций на подобные штуки в интернетах много, но почему бы не добавить ещё одну, да ещё и с теми нюансами, которые
кому-нибудь (например мне:) ) были непонятны…
И отвечая на вопрос «зачем?»: данная система это не «нужно», это «можно!». Помимо снижения нагрузки на глаза при сидении в темноте,
появляется некоторая «атмосферность», которую трудно передать словами:)
И да, я сдуру удалил первую версию поста, поскольку половины всего там почему-то не оказалось… Впредь обещаю быть внимательнее >_<
и самое главное!
— С наступающим Новым Годом, Табун! Пусть в наступающем году будет больше светлых моментов^^
Fix1.0: починены гиперссылки
Fix1.1: добавлены некоторые пояснения
Fix1.2: добавлены ссылки на али
45 комментариев
Скидыдыщ в ленту!
А тут твой пост. Лови плюсов.
Тут прелесть в том, что единственное требование- уметь держать в руках паяльник, всё остальное уже готово, «бери и делай». Вовсе необязательно быть электронщиком/сварщиком/мастером Йода
Жаль времени сейчас нет, как-нибудь обязательно зумучу себе такое же.
Другу тоже сделал тпкую штуку и у него, как раз, монитор с тонкими рамками
Получилось вот так:
Я так думаю, существует способ крепления самого монитора без защитного корпуса на стену, дабы избавиться от рамки совсем.
Кстати, может мне показалось, но у системы установленной у друга имеется «мертвая зона» примерно посередине снизу.
Но для этого нужны проекторы и ну очень умный алгоритм обработки изображения, но это уже не DIY проект, доступный каждому «чайнику»
А ваще при современных ценах на мониторы, можно купить 50" телевизор с низким разрешением и повесить его за экраном.
P.S. Уже отвык, что редактировать сообщения можно. Жаль только время редактирования ограничено…
В играх тогда проще поставить 3 монитора, эффект будет куда круче, но тут упрёмся в возможности видеокарты
Детали ландшафта/интерьера в фильмах вычисляются по известной информации ровно так же, как мозг бы сам достроил эти детали. К тому же мелкие погрешности вычислений всё равно незаметны из-за низкого разрешения подсветки.
В играх вообще не проблема — рендерить там можно хоть панораму целиком, в реальном времени. Высокое разрешение не требуется, на этом можно сэкономить.
Пришёл народ подразнить?)
Про кляксу в центре монитора уже спрашивали?
2)полторы тысячи за такую штуку мне отдать не жалко, готовые аналоги стоят гораздо дороже
кусок изоленты отмечает середину экрана, в шутерах помогает
http://bash.im/quote/400360