Как стать автором
Обновить

Комментарии 43

Готовимся к новому году? :)
Давненько хотел попробовать сделать что нибудь на Raspberry Pi, спасибо за статью!
Хорошо получилось :) Особенно мобильное приложение порадовало :)
Вдохновили на написание своей статейки. :)
Еще хотелось спросить, учитывалась ли нелинейность розжига светодиода?
Рад, что понравилось :)
Что подразумевается под «нелинейностью розжига»?
Видимо, что светодиод горящий «на 0,5» выглядит «на 0,9».
А, если это, то да, замечал такое, но в проекте учёта не делал, как и не делал корректировки гаммы. Спасибо, что напомнили, запишу себе в ToDo, что нужно этим заняться.
Да, именно это :) решается банальным pow )
Мимопробегал, ambilight из конца статьи запиливал я.

В boblight, который использовался для создания ambilight уже используется гамма-коррекция. Можно настраивать из конфига, что кстати само по себе неудобно. Каждая правка конфига — рестарт демона boblight, на что болезненно реагирует и xbmc, приходится рестартовать и его, в итоге настройка цветности для ambilight превращается в муторный процесс — поправил конфиг -> выключил xbmc, boblight -> включил xbmc,boblight. Думаю над правкой кода boblight, для интерактивной настройки параметров гаммы в boblight.
Помимо гаммы(конечная разность яркости светодиодов ргб), есть еще такое понятие как нелинейность(когда светодиод разжигается при 40% ШИМ как буд-то уже на 80% и дальнейшее повышение ШИМ с 40% глазом почти не котируется. Получается снижается разрешающая способность и общая няшность). Я думаю что там уже оно сделано, но проверить не помешает, картинка должна стать лучше :)
В коде boblight самая простая такая коррекция, степенной ф-ией делается для каждого канала (r, g, b) отдельно.

  //gamma correction
  if (m_gamma != 1.0)
    outputvalue = pow(outputvalue, m_gamma);
  //adjust correction
  if (m_adjust != 1.0)
    outputvalue *= m_adjust;


code.google.com/p/boblight/source/browse/trunk/src/device/device.cpp#93
Банальным, но очень ресурсоёмким, проще табличным методом. Хотябы даже таблицы эти считать в процессе инициализвации.
извольте, у меня на stm32 56Mhz на 500 светодиодов считается с 60 кадрами в секунду и ничего ;)
Ничего конечно, но целая уйма энергии тратится впустую. Зачем? Лучше поспать подольше…
В моем проекте контроллер не спит, он всегда работает. если что то отображает )
ибо такое количество светодиодов жрут несоизмеримо больше чем контроллер считающий pow ))
Простите за оффтоп, но черт возьми! Отличный ковер!
Да еще и с эмбилайтом! Фантастика!
Жаль, что сейчас уже до НГ не дойдет, если заказывать. Но зато к следующему НГ можно подготовиться. Добавил в избранное. :)
Кстати, можно не обязательно из Китая заказывать эти гирлянды. Например у нас в городе есть такая замечательная вещь как «РадиоРынок», там я нашёл точно такие же гирлянды и просто ленты (одну из которых мы и подарили тов. Necrys, чтобы он потом сделал тот самый Ambilight, что в конце статьи). Разумеется, подороже, но некритично, процентов на 20, где-то. Так что, возможно и у Вас в городе можно приобрести такие же.
Класс! Очень полезный пост. Ждал я такого т.к. сам хочу смастерить что нить подобное
В этом посте есть все — Пай, котики, ковер, лего и новогоднее настроение. Спасибо =)
Жду статью «Простой мультвибратор на процессоре Intel i7»
А вообще эмбилайт приколол. Хорошо получилось.
Мультивибратор надо из двух i7 делать! Это же знает каждый школьник…
для защиты от «несанкцианированного доступа»… поле с паролем, а на клиенте посылал его первой командой.… если кто-то знает по какому имени/айпишнику и порту доступен мой пирожок, чтобы не смог попытаться поиграться гирляндой.


Обычный пароль перехватывается анализом трафика, раз уж у НЕГО есть доступ в вашу сеть… Лучше бы по принципу вопрос-ответ — сервер шлет вопрос а подключившийся клиент должен выдать правильный ответ, ответ является преобразованием вопроса какой-либо функцией которая и является секретом. Вычислить функцию прослушиванием трафика будет сложно и скорей всего ЖЕЛАЮЩИЙ просто оставить все свои попытки взлома. Или даже нет, не говорить ему что все плохо — просто поступившие данные отправить в утильdev/null, а на малинке зажечь красную лампочку.
Да, это понятно, что пароль прослушивается и лучше всё делать так, как Вы описали. Вариант, что сделан у меня — лишь пробный и, по большей части, сделан так «чтобы был», как говорится, и уж точно не претендовал на премию как самый правильный и безопасный :)
К тому же, весь код выложен в общественный доступ, так что, все желающие могут его обновлять и дополнять.
Эмбилайт немного не правильный. Сделайте так чтобы, когда картинка тёмная чуть света все равно было, чтобы не было нагрузки на глаза. Вообщем для общего фона света добавить чуть белого.
Только это всё-таки не эквалайзер, а визуальный анализатор спектра. Почему-то их многие путают.
А в итоге получилось соединить несколько гирлянд? Давно хочется забацать Кубик, но в пайке я профан. А тут из коробки почти все готово.
Я для эмбилайта ленту порезал на 4 части, соединил специальными коннекторами (хотя можно и спаять, но хроническое рукожопие, не стал рисковать) — она заработала. На конце ленты при этом есть специальный штеккер, для подключения ещё одной секции, но насколько я понял из схем, найденых в интернете, для следующей секции нужно дополнительно подключать питание. Но, я так сам себе думаю, что смысл такой, что запитать можно и в одном месте, но с мощного источника, чтобы хватило всем — иначе под конец цвета начнут съезжать. Какая конкретно мощность нужна — надо смотреть у конкретных лент/гирлянд.
Мощность нужно именно что подводить в нескольких местах — на лентах обычно тонкие дорожки, не рассчитанные на удвоение её длины. Если просто разные цвета зажигать ещё получится, то белый вдруг внезапно рассыпется в набор разноцветных отсветов.
Пока что использовалась только одна, на 50 «лампочек». Буквально только сегодня днём пришло извещение с почты о том, что прибыла ещё одна такая же гирлянда. Завтра буду подключать-соединять. Отпишусь по результатам.
Кубик я видел, но пока не рвусь к его созданию по нескольким причинам:
0. В пайке я тоже профан.
1. Маленький, 8х8х8 уже требует изрядного количества диодов. Даже если учесть, что они там одноцветные.
2. (частично вытекает из п.1.) одноцветный как-то не очень интересно. Мне хотелось поиграться с алгоритмами, ориентированными именно на цвета.
3. в этом случае сильно возрастает сложность создания алгоритмов. Я больше недели ночей потратил на создание пачки алгоритмов для «одномерной» ленты, в планах стоит создание алгоритмов для двух-мерного прямоугольника, что уже на порядок сложнее. А уж про сложность для 3х-мерного куба я даже думать не хочу. Во всяком случае пока что.
Отписываюсь:
соединить друг с другом проблемой не было, хоть и разные немного контакты были, но появилась проблема более глобального масштаба: под управление попадают только первые две лампочки. Третья рандомит цветами немного, потом просто становится белой. Дальше вообще ничего не делается.
При первом соединении с питанием они все моргают, так что в теории работают все.
Подключать новую гирлянду непосредственно к Паю тоже пробовал: та же ситуация.
В общем, я в немного расстроен, но руки пока не складываю.

P. S.: зато сделал ковёр радужным! :)
image
Предлагаю третью вырезать. Возможно она херит сигнал. У нас так было из 50 микросхем где то 25 была сбойная (брак или передержали паяльник). Через себя она пропускала мишуру и на стенде у нас получалась просто психоделика.
Да уже проэкспериментировали. Третья оказалась реально бракованной. Съездил вчера как раз на РадиоРынок, купил три штучки про запас, приехал домой, когла спаял первые две и оду из новых решил проверить работоспособность. Не заработали. Проверил остальные две ленты, даже первоначальную — тоже самое. Вот уже второй день бьюсь над проблемой. Кажется, что-то с Паем, а вот что — понять не могу
В итоге экспериментов сжог Пирог :( Благо нашёлся знакомый, который за полцены мне отдал свой. Ездил сегодня на тот же РР, решил купить новую, целую из 50 лампочек, из рассчёта в будущем всё же сделать куб 5х5х5. И на этом мои приключения не заканчиваются.
Приезжаю домой, радостный, подключаю новую ленту, а она горит странным цветом и не реагирует на «команды». Пригляделся к маркировке проводов. Оказалось (!) при тех же цветах у проводов другое назначение, только красный (+5V) тот же. Вот и одна из возможных причин поломки Пирога.
Ладно, поменял провода, сделал также как было на старой ленте. Реакция появилась, но неправильная. Тестил на pixelpi.py. Поигрался с чипами, выяснилось, что у свежекупленной чип LPD6803! Поеду на днях сдавать.
Надо было покупать на Ибее вторую у того же продавца, что и первую брал, а в итоге позарился на аукцион, который я выйграл и сэкономил 200р. В итоге проиграл уже больше раз в 10.
На ковре-самолете мимо ра-ду-ги...)
*вертолете ;)
Скажите, у вас в ссылках специально коннекторы на 5.5 мм, а блоки питания на 2.5 мм или по недогляду? Или я что-то пропустил и недопонимаю?
В ссылках ровно то, что я покупал. Я покупал бп на 2.5мм, обрезал и соединял с коннекторами из третьей ссылки. Процесс подключения ленты я повторял отсюда
Ambilight на видео запаздывает относительно картинки, это никак не исправить?
Уходит некоторое время на захват и обработку кадра. Захват на «железном» ambilight мне кажется будет быстрее, здесь можно ускорить. Чисто теоретически, если брать только обработку видеофайла, а не готового потока, можно попытаться синхронизировать видеопоток и ленту. Но тут много работы, в среднем при просмотре фильма латентность достаточная, чтобы не замечать эффекта торможения (если действительно смотреть фильм, а не разглядывать, как лента работает).

Мимопробегавший создатель наколенного ambilight из конца статьи.
Если сделать устройство обработки кадра более мощным, задержка сократится? Или она от процессора не зависит?
Во сколько обошёлся этот эмбилайт? Есть ли видео сравнения с настоящим? Мне казалось например что у настоящего больше зона свечения по бокам ТВ.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории