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

Всем привет.

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

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

А историю для заинтересовавшихся я начну издалека. Давным давно, в далекой -далекой  галактике наткнулся я в свое время на такую флешку: 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, с учетом того, что хочется организовать описанное в посте добро в законченное устройство, а возможности (да и желания) травить свою плату нет никакой (приходится обходиться самыми простыми макетками и МГТФом).

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

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

раскрыть ветку
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/

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

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

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

Покажи пожалуйста, работу на другом видео. 

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

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