Как я свой эмбилайт делал
Всем привет.
Астрологи объявили пятницу. Количество постов с тегом "моё" увеличилось втрое.
А значит пришел черед и мне поделиться своей самоделкой. Для лл и тех, кому лениво читать пост о том, как я это всё делал, выкладываю видео с результатом в начале поста
А историю для заинтересовавшихся я начну издалека. Давным давно, в далекой -далекой галактике наткнулся я в свое время на такую флешку: 0x40 Hues (не для эпилептиков) . Её простота и эффектность настолько меня поразили, что я бросился ваять свои "loops", дабы приступы эпилепсии настигли даже здоровых . Здесь я попробовал собрать в кучу то, что у меня на данный момент получилось.
Но вскоре этого мне показалось мало, ибо организм окреп и вставлять перестало, и поэтому было решено: гулять так гулять.
Были закуплены три литра темной бархатной разливнухи и пакет рыбки, остальное всё было найдено в закромах. У меня было 3 полевых транзистра IRFZ44N, 3 резистора на 110 Ом, ардуина, блок питания на 12В и целое множество проводков всех сортов и расцветок, резисторов и трехцветных светодиодов 5050, заботливо напаянных китайцами на ленту, а также два вечера времени и безлимитный интернет. Не то чтобы это был необходимый запас для того, чтобы занять себя в выходной. Но если начал что-то ваять, становится трудно остановиться.
И я наваял.
RGB-лента была приклеена к монитору и подключена к ардуине по этой, с вашего позволения, недосхеме:
Самое сложное позади. Осталось просто давить на клавиши да попивать пивко, а прошивка для ардуины и программа появятся сразу, как только мы нажмем кнопку "Сделать круто". Ведь все знают, что программисты гребут бабло лопатой просто за то, что играются в компьютер
На самом деле нажатий клавиш было меньше, чем могло бы быть, ибо писалась (в широком понимании этого слова: с переменными, библиотеками, операторами и т.п.) только прошивка для ардуины. Что же касается компьютера, то тяжелую IDE, вроде RAD Studio, качать и ставить было влом, а в доступности двух кликов у меня всегда имеется простая легковесная среда визуального программирования HiASM, в которой я периодически набрасываю простые утилитарные программки, которые нужны здесь и сейчас.
Принцип был прост, как трусы по рупьдвадцать: дернуть из точки на экране цвет и передать его на контроллер, который в свою очередь уже рулил лентой. Но скоро менеджер распинается, да не скоро проект завершается.
Естественно, с первого подхода у меня ничего не получилось. Немудрено, ведь при взгляде в мои исходники у нормальных программистов начинает дергаться глаз и возникает желание напиться
Как выяснилось в процессе (само собой, именно тогда, когда большая часть всего уже сделана), софт отрабатывал цвета неправильно. Из-за этого трип хоть и получался, но был неконтролируемым, что мне совершенно не подходило.
Но я не унывал, и в стремлении к идеалу раз за разом переделывал как прошивку, так и программу, то тех пор, пока не заснул в счастливом забытьи
На следующий вечер, заправившись чаем и печеньками (воскресенье ведь - завтра на работу), наконец-то нашел косяк и заставил софт завестись, а поэтому его можно протестировать во всех мыслимых и немыслимых композициях
Хотя до окончания разработки еще далеко - неплохо было бы подправить вывод некоторых цветов, и добавить считывание нескольких точек, дабы наверняка попадать в цвет, может еще пару режимов в прошивку ардуины добавить, вроде простой цветомузыки и режима гирлянды - результатом я остался доволен. Довольны (и несколько удивлены) оказались и разработчики 0x40 Hues, которым я написал, когда почти всё было готово, и которые оказали неоценимую помощь в доработке прошивки. Финальный результат можно увидеть на видео в начале поста, а здесь же просто оставлю ссылку на исходники - вдруг найдется еще один извращенец, который захочет это повторить.
Спасибо всем, кто дочитал до этого момента. С вами был NosefU.
Открыт для вопросов и предложений здесь в комментариях, а также в лс Вконтакте
P.S. знающие люди, подскажите, на чем будет просто, дешево и сердито реализовать USB <> UART, с учетом того, что хочется организовать описанное в посте добро в законченное устройство, а возможности (да и желания) травить свою плату нет никакой (приходится обходиться самыми простыми макетками и МГТФом).
Но ведь это не цветомузыка, а Ambient Light, и даже проект так назван. :)
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/
На скоростях идет запаздывание эмбилайта от цвета отображенного на экране. Не тру.
Покажи пожалуйста, работу на другом видео.
Это дичайше круто, но я на столько рукожоп, что ничего не понимаю даже из текста, а до дела явно так руки не дойдут :с