Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Огненные эффекты на светодиодных лентах и Arduino

    Огненные эффекты на светодиодных лентах и Arduino

    Приветствую, Самоделкины!
    В этой статье мы рассмотрим некоторые весьма полезные для интерьера эффекты, которые можно создать с помощью светодиодной ленты. Также поговорим об алгоритмах, о том, как математические расчёты позволяют светодиодам создавать иллюзию тепла и уюта, а именно - пламени, настоящего цифрового пламени.

    Все исходные коды, которые будут разобраны далее, можно скачать со страницы проекта автора (AlexGyver).

    Сперва давайте разберемся с электронной составляющей. Чтобы самостоятельно своими руками сделать такую красоту у себя дома необходимы следующие компоненты:
    - Драйвер для RGB ленты;
    - RGB лента;
    - Блок питания 12V для RGB ленты;
    - Arduinо Nano.



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

    Начнем, пожалуй, с самого простого, нулевого измерения – точки (или целой ленты точек).


    Это самая обыкновенная RGB светодиодная лента, которая питается от напряжения 12В и имеет трехканальное управление на каждый цвет.


    При помощи ШИМ сигнала (он у нас 8-битный), можно задать яркость каждого цвета, и получить таким образом 16 700 000 цветов и оттенков. Но нас интересует огонь, точнее его имитация. Для имитации пламени было решено работать в цветовом пространстве hsv (цвет, насыщенность, яркость).

    Эти 3 параметра позволяют получить 255 основных оттенков, плюс у каждого оттенка сделать 255 градаций насыщенности, т.е. смеси с белым цветом. Ну и третий параметр – яркость, простым языком - смесь оттенка с чёрным цветом.

    Существует несколько алгоритмов для перевода из удобного пространства hsv в RGB, просто используем один из них.

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

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



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

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

    На реальном примере, все работает как задумано.

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


    Запрограммируемую таким образом светодиодную ленту можно спрятать, например, за плинтус или за какой-нибудь выступ. Также такой лентой можно обеспечить фоновую подсветку, смотрится довольно интересно и необычно.

    Также ленту можно направить в пол с небольшого расстояния, и таким образом тоже добиться довольно интересного эффекта.

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

    Так как лента у нас RGB, то само собой огонь можно сделать любого цвета. Хотите мертвячно-зелёного – да запросто!

    Нужен огонь магически синего цвета – без проблем!

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


    Собственно, это был самый простейший способ заставить светодиодную ленту «гореть». Теперь давайте рассмотрим более интересные примеры. Для дальнейшей работы понадобится адресная светодиодная лента.

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

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


    Также такую ленту можно засунуть в обычный светопрофиль и использовать как самостоятельный элемент интерьера.

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

    Алгоритм оставим тот же. Разбиваем ленту на зоны различной ширины, у каждой зоны будет свой случайный процесс. Чтобы этот процесс был ещё больше похож на реальное пламя будем заполнять зоны от краев к центру, плавно повышая нашу случайную величину до ее текущего значения. Также в процессе «горения», размер зон должен меняться тоже случайным образом.

    Вот так это выглядит:


    Теперь давайте рассмотрим еще один интересный случайный процесс, который называется - шум Перлина, который придумал Кен Перлин в 1983 году.

    Шум Перлина позволяет создать случайное сглаженное распределение величины в любом количестве измерений. Известный многим фильтр «облака» в Фотошопе является примером двухмерного шума Перлина.

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

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

    Алгоритм как уже говорилось выше не очень сложный и Ардуино спокойно с ним справится. В результате получается вот такой очень крутой эффект, максимально плавный, случайный, и уже очень похожий на реальное пламя при торцевой подсветке.

    При прямой подсветке выглядит так:

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


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




    Выглядит, кстати, довольно-таки реалистично. Более подробно смотрите в оригинальном видеоролике автора:



    На этом все. Благодарю за внимание. До новых встреч!

    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Кибер глаз своими руками

    Поворотная платформа с автополивом для домашнего растения

    5.5
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    4
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    4
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 4.5 из 10 (голосов: 2 / История оценок)

    Добавить комментарий

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Опрос
    А Вы знаете, что на сайте оплачиваются отчеты о создании самоделок?

    Последние комментарии

    Все комментарии