126

Как я свой эмбилайт делал

Всем привет.

Астрологи объявили пятницу. Количество постов с тегом "моё" увеличилось втрое. 

А значит пришел черед и мне поделиться своей самоделкой. Для лл и тех, кому лениво читать пост о том, как я это всё делал, выкладываю видео с результатом в начале поста

А историю для заинтересовавшихся я начну издалека. Давным давно, в далекой -далекой  галактике наткнулся я в свое время на такую флешку: 0x40 Hues   (не для эпилептиков) . Её простота и эффектность настолько меня поразили, что я бросился ваять свои "loops",  дабы приступы эпилепсии настигли даже здоровых . Здесь я попробовал собрать в кучу то, что у меня на данный момент получилось. 

Но вскоре этого мне показалось мало,  ибо организм окреп и вставлять перестало, и поэтому было решено: гулять так гулять.


Были закуплены три литра темной бархатной разливнухи и пакет рыбки, остальное всё было найдено в закромах. У меня было 3 полевых транзистра IRFZ44N, 3 резистора на 110 Ом, ардуина, блок питания на 12В и целое множество проводков всех сортов и расцветок,  резисторов и трехцветных светодиодов 5050, заботливо напаянных китайцами на ленту, а также два вечера времени и безлимитный интернет. Не то чтобы это был необходимый запас для того, чтобы занять себя в выходной. Но если начал что-то ваять, становится трудно остановиться.

И я наваял. 

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

На самом деле нажатий клавиш было меньше, чем могло бы быть, ибо писалась (в широком понимании этого слова: с переменными, библиотеками, операторами и т.п.) только прошивка для ардуины. Что же касается компьютера, то тяжелую IDE, вроде RAD Studio, качать и ставить было влом, а в доступности двух кликов у меня всегда имеется простая легковесная среда визуального программирования HiASM, в которой я периодически набрасываю простые утилитарные программки, которые нужны здесь и сейчас. 

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

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

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

Как я свой эмбилайт делал Светомузыка, Эмбилайт, Arduino, Своими руками, Видео, Гифка, Длиннопост

Хотя до окончания разработки еще далеко - неплохо было бы подправить вывод некоторых цветов, и добавить считывание нескольких точек, дабы наверняка попадать в цвет, может еще пару режимов в прошивку ардуины добавить, вроде простой цветомузыки и режима гирлянды - результатом я остался доволен. Довольны (и несколько удивлены) оказались и разработчики 0x40 Hues, которым я написал, когда почти всё было готово, и которые оказали неоценимую помощь в доработке прошивки. Финальный результат можно увидеть на видео в начале поста, а здесь же просто оставлю ссылку на исходники - вдруг найдется еще один извращенец, который захочет это повторить. 

Исходники этого безобразия можно найти здесь

Спасибо всем, кто дочитал до этого момента. С вами был NosefU. 

Открыт для вопросов и предложений здесь в комментариях, а также в лс Вконтакте


P.S. знающие люди, подскажите, на чем будет просто, дешево и сердито реализовать USB <> UART, с учетом того, что хочется организовать описанное в посте добро в законченное устройство, а возможности (да и желания) травить свою плату нет никакой (приходится обходиться самыми простыми макетками и МГТФом).

1
Автор поста оценил этот комментарий

это шикарный клип!!!!

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Рекомендую еще этот заценить https://www.youtube.com/watch?v=52Gg9CqhbP8

показать ответы
0
Автор поста оценил этот комментарий

Да я видел. Пока такой попробую. А на 50 зон же тоже можно сделать и на 25 зон что бы 2 диода на 1 зону? Хочу потом на телик подрубить когда с компа смотрю.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

да. скорее всего шину данных двух линеек пикселей параллельно сажать придется

показать ответы
0
Автор поста оценил этот комментарий

Спасибо за информацию. Хочу пока такой сделать из ргб ленты потом ргб пиксели прикуплю на 25 зон сделаю.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

@NosefU а Arduino Nano V3.0 пойдёт? Плохо схемку подключения видно.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

ардуина подойдет любая, которая подключается по usb - если необходимо, то просто переназначаете в прошивке пины для тех или иных цветов на нужные вам пины с шим

показать ответы
Автор поста оценил этот комментарий

Мне эмбик понравился, но вот ремикс как-то больше зацепил)))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Nero - Me & You (Dirtyphonics Remix)

https://www.youtube.com/watch?v=ZFykqOXnZlg


На нам светомузыкальную прошивку проверял)

http://vk.com/video25833442_171628476

0
DELETED
Автор поста оценил этот комментарий

мне кажется или свет с экраном в рассинхроне?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

По таймингам там всё норм (просто снимал на тапок), а вот цвета, из-за нелинейности изменения яркости диодов и разной яркости красного, синего и зелёного диодов при одной частоте шим, я ещё долго подгонять пытался

0
Автор поста оценил этот комментарий

@NosefU зачем нужны тут резисторы на базе? Нужное напряжение можно выставить на arduino же.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий

а блок питания у вас на сколько ампер ? и не будет ли плохо uno от 12в ,а то вроде nano у меня как раз от этого загнулась ....

диоды заказал ,а вместо 5в они привезли на 12в ..вот теперь мучаюсь...думаю как это всё запилить

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

бп у меня на 5А. ардуина запитывается от usb компа, ибо всё равно данные тащатся. если бы было необходимо автономное устройство, то взял бы голый мк (атмега8 например), кварц, да пару кондеров на 22пф, и запитал бы это добро от 12в через кренку (lm7805).
для коммутации 12В как раз и используются полевики (управляем большим током с помощью малого напряжения).
у вас какой бп? или пока только диоды?

0
Автор поста оценил этот комментарий

Не знаю, как с тобой связаться поэтому решил сюда написать. Я решил фотошоп с нуля освоить( ПРЯМ С НУЛЯ )-форумы почитал и пришёл к выводу, что оптимальной версией является CS5. Можешь подсказать какие-нибудь сайты или каналы на "тытрубе" с обучающими видео. Гугл выдаёт мильён результатов, но хотелось бы для начала спросить у людей с этого портала) Спасибо заранее

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

можешь подсказать для чего мосфеты стоят? спасибо

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Мосфеты служат как раз для управления мощной нагрузкой, в данном случае 12В светодиодной лентой

показать ответы
0
Автор поста оценил этот комментарий

я про это:

<rhythm>oi::x:::::oix.:.:.o.x..:.:.o.x...o...x+-+-+o+x+-+</rhythm>

Вручную или с помощью какой проги?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

вручную. несколько часов на отрывок в 60-80 секунд

показать ответы
5
Автор поста оценил этот комментарий

http://cxem.net/arduino/arduino26.php

поскрольте до середины:


Программное обеспечение ( https://github.com/adafruit/Adalight )

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


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

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

==========================================================


Для тех у кого руки не совсем прямые но амбилайт таки хочется

http://geektimes.ru/post/209626/ 

http://lightpack.tv/

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Как раз жду сейчас ленту на WS2812, дабы на основе того, что уже сделано и описано в посте, наколхозить свой велосипед

0
Автор поста оценил этот комментарий

Дай сурс откуда резал фотки с фанк-оверлоад.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Slightly Left of Centre - Love The Way You Move
https://youtu.be/Wga5A6R9BJg
показать ответы
10
Автор поста оценил этот комментарий

Но ведь это не цветомузыка, а Ambient Light, и даже проект так назван. :)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну, эмбилайт, я думаю, поймут меньше людей, чем светомузыка. Хотя да, вы правы)
показать ответы
0
Автор поста оценил этот комментарий

Скиньте плз трек из 0x40 Hues. ВК такого трека нет, гугл молчит, конвертеры не могут извлечь музыку из свф -_-

раскрыть ветку (1)
Автор поста оценил этот комментарий

какой? они там все подписаны, при нажатии на названии трека происходит переход по ссылке на трек

показать ответы
0
Автор поста оценил этот комментарий

Можешь поподробнее про ритмы написать? Сам подбирал?

раскрыть ветку (1)
Автор поста оценил этот комментарий

ритмы чего?

показать ответы
2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

скорее, в наиболее динамичных моментах идет colorskip. Нужно будет еще разбираться

1
Автор поста оценил этот комментарий

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


А по этому проекту интереснее, наверное, даже не ардуинная часть, которая служит просто драйвером для светодиодов, а десктопная - на которой основная часть кода и крутится.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Тоже на самом деле ничего интересного. GetPixel, несколько преобразований для правильного отображения и передачи цвета, немного оптимизации, чтобы не каждый проход в порт плеваться, да и в общем-то все. Чуть позже добиваться фильтрация нескольких точек, и автозамена некоторых цветов в целях подстройки цвета. Самое интересное в прошивке ардуины - это массив, используемый для линеризации яркости свечения диодов
0
Автор поста оценил этот комментарий

LPT порт в компе есть?
Просто, если да - ардуина была лишней, можно простенькую утилиту набросать и в автозагрузку поставить.

раскрыть ветку (1)
Автор поста оценил этот комментарий

какой лпт в современном компе? вы о чем? наоборот, хочу по, совету одного знакомого, попробовать под hid переписать