Подсказки Природы — облачный ночник

    image


    Здравствуй, сообщество!

    Представляю собственную реализацию светильника-ночника в виде облака. Основная идея – сделать ночник с имитаций естественных природных процессов и какой-нибудь интерактивностью. Природа – лучший вдохновитель!

    За основу взял дешёвый микроконтроллер ATmega8-16PU. Код написан на С без Ардуино и реализует несколько световых эффектов с управлением от общей освещённости пространства и с управлением звуком.

    Подробности и фотки — далее…

    Электронные подробности


    Схема, кроме микроконтроллера, имеет 6 одноцветных светодиодов, один RGB светодиод, датчик освещённости (фоторезистор) и микрофон с усилителем и ВЧ-фильтром.

    Для плавного изменения яркости светодиодов используется ШИМ. Частота ШИМ равна 244 Гц при 64-х уровнях, бывает, что некоторые люди её видят. Увеличить частоту не получается – нужно ещё процессорное время для работы. Поэтому для сглаживания импульсов ШИМ применена схема на транзисторном повторителе со сглаживающим конденсатором. Транзистор взят с большим коэффициентом усиления, для увеличения входного сопротивления и уменьшения требуемой ёмкости. В итоге 1 мкФ оказалось вполне достаточно, импульсы сглаживаются почти полностью. Преимущества – дешевле, чем ЦАП и имеет большой выходной ток. Недостаток схемы – нелинейная зависимость яркости от уровня ШИМ на малых уровнях (до 15%).

    Схема из Micro-Cap 9
    image
    Схема сглаживания ШИМ. 4 диода примерно = 1 белый светодиод по ВАХ

    image
    График тока и напряжения на светодиоде при 56% ШИМ.

    Миниатюрный электретный микрофон через усилитель на двух транзисторах с выделением импульса (ВЧ фильтр) подключен к дискретному входу МК, уверенно ловит резкие звуки — хлопки в ладоши.

    Плату начертил и развёл в DipTrace, сделал ЛУТом, детали в основном smd. Травление делал в «убийце хлорного железа»: Перекись водорода + соль + лимонная кислота, получилось с первого раза, рекомендую. Здесь написаны все любительские способы.

    image
    Плата, сделанная ЛУТом

    Питание сделал через USB-разъём, что позволяет подключать в любой USB-порт. Максимальное потребление 78 мА.

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

    Связи по USB нет, в МК нет USB, да и вроде не нужно в законченном изделии. Для отладки использовал UART контроллера, в коде реализован обмен с компьютером, но там банально писано на коленке.


    В процессе пайки

    ЛУТ, пайка, написание программы, тесты и переделки, подгонка таймеров и коэффициентов заняло 3 недели.

    image
    Общий вид

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

    Режимы:


    Основной – ночник в виде облака. Разные части облака в случайном порядке плавно изменяют яркость, период изменения тоже случайный (4...25 сек), вид изменения – экспоненциальное сглаживание от задания (подробнее могу в комментах рассказать). Выглядит в целом, при доле воображения, как переливы света в настоящем облаке, когда оно закрывает Солнце. Максимальный уровень яркости зависит от уровня освещения согласно графику. Я подбирал разные зависимости, был вариант с выбором зависимости по кнопке, но остановился на одной этой.

    image
    График зависимости яркости облака от внешнего освещения.

    Так как при внешней темноте (ночь) облако почти не светится, а кратковременный яркий свет может понадобиться (например, встать ночью), то для этого придумал подрежим «Яркое облако». Он включается при двух хлопках в ладоши, здесь и используется микрофон, так как кнопки обычно вне досягаемости. Облако светится на полную яркость в течение минуты, также с переливом, потом плавно возвращается на основной режим облака согласно освещённости.

    image
    Режим облака, первые пробы. Видео ускорено в 5 раз

    Гроза – включается при резком снижении внешнего освещения (но не до полной темноты, чтобы не било по глазам в темноте) или трёх хлопках. Вспыхивают случайные светодиоды (от одного до 4х), со случайной паузой между вспышками. Немного заморочился и сделал «пробеги» молнии в облаке, когда светодиоды вспыхивают по временной цепочке. Тоже выглядит довольно похоже на грозу. Из-за режима грозы пришлось находить компромисс фильтрации ШИМ, чтобы вспышки получались резкие (77 мс). Длительность «грозы» зависит от внешнего освещения – чем темнее, тем дольше, от 4-х до 12-ти вспышек.

    Рассвет – включается при резком возрастании внешнего освещения. Самый сложный в настройке режим, получить «естественную смену цветов Солнца при рассвете в лёгкой дымке» было непросто. Балансировать RGB светодиод приходилось вручную почти на каждый уровень ШИМ, и подбирая зависимости. Но в итоге более-менее интерполяционную формулу получил. Рассвет длится 40 секунд, потом переход на обычный режим.

    image
    Рассвет

    Электроника и программная часть для интересующихся:

    Архив с исходниками

    Схема в pdf

    Разводка платы, одна сторона

    Конструктив


    Конструкция облака довольно простая, мной сделана из синтепуха (одна подушка 40х40 см), плата размещена внутри на подвесах из ниток. Светодиоды расположил по возможности равномерно в объёме, ну и RGB-светодиод – снизу, а фотодатчик сверху.


    В процессе облепливания пухом

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

    Вопросы, замечания, предложения пишите в комментариях.

    Всем отличной погоды!

    Поделиться публикацией

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

      +4
      Класс. Ваша идея сама по себе очень оригинальная и свежая; а еще воплощение в железе понравилось — пусть и грубовато немного, зато у Вас это самый настоящий DIY. Имхо, видео Вашего девайса в работе (в режиме Demo, например) где-нибудь на youtube было бы не лишним.
        0
        Спасибо! Процессы довольно медленные, кроме грозы, видео будет долгим), а gif из фоток — в статье. youtuba нет.
          0
          >в режиме Demo, например
          думаю имелся в виду режим, когда все процессы ускорены, вы же контролируете тайминги сами в любом случае
            0
            Ну да, именно это я в виду и имел. Автор, однако, в youtube не хочет.
              0
              Сделаю видео, через пару дней
        +1

        Пух выглядит весьма неэлектробезопасно. Особенно учитывая то, что плата никак не герметизирована, как и светодиоды.
        Что будет в случае нагрева или КЗ вследствие неплотного контакта?

          0
          Плата под лаком. Светодиоды проверены, нагрев не больше +5° от окружающей среды. Волокна из полиэфира, температура плавления 245°С. Пух на искру не проверял, пламя от зажигалки выдерживает 5 секунд, потом загорается.
          +3
          Пыль собирать не будет? Может под колпак лучше?
            +2
            Вот тоже подумал. Идея и результат интересные, но через пару месяцев из этого облака такой пылесборник получиться.
              0
              Тестовый вариант висит уже второй месяц, пока не заметно. Наверно пыль будет собирать, но можно аккуратно выдуть или слабым пылесосом собрать. Пух склеен, должен выдержать, не проверял.
                +2
                Значит, будем стирать облако. Звучит то как.
                В родной оболочке от подушки.
                0
                Весьма интересная идея, да и реализация не плоха!
                  0
                  Автору спасибо за идею+ совет такое изобретение хорошо себя зарекомендует на театральных сценах да и на других сценах только, чтобы заинтересовать более широкий круг специалистов, хорошо бы прикрутить к сему изобретению протокол DMX-512 где джамперами выставить адрес начала приёма команд.
                  ну и придется повысить мощность каждого светодиода до 10w…
                  тогда такая конструкция приобретет кучу заказчиков…
                    +1
                    Это же совсем другое. Там проще решить по-другому, узким лучом прожектора освещать кубометр ваты (кстати, больше поулметра — пух разваливается без поддержек). Не думаю, что для постановки будут заморачиваться на долговременное изделие с ПО, командами. Всякое бывает, арт-проекты разные, если кого-то знаете...))
                      0
                      Узкий луч прожектора на лампе 7r прожигает куртку на ура. Проверено.
                        0
                        узкий всмысле под размер театрального реквизита — ну метр-полтора в диаметре.
                    +3
                    Отличный DIY, хабр-торт
                      0
                      Очаровательный пылесборник — ваши женщины вас побьют.
                      Следовало завернуть хотя бы в такое www.аквалюбитель.рф/akvarium-kruglij-6-5l.html
                      Конечно, интересно создать своё, но с практической точки зрения оптимальней было использование светодиодная лампа RGB с пультом image при необходимости можно и прошивку поменять
                        0
                        Не, визуально колпак всё испортит. это как комнатные растения под колпак сунуть.
                        0
                        Если уж используете транзисторы в усилительном режиме, хоть поставьте операционник для стабилизации тока.
                          0
                          Хм, куда?
                            0
                            image

                            Вариант «а». На вход подать фильтрованый ШИМ, резистор выбрать такой, чтобы при максимальном токе диода на резисторе падало 5 вольт.
                              0
                              Для других случаев и ситуаций, наверно подойдёт. Здесь 8 каналов, я делал как можно дешевле, 5 рублей за биполярник против 8р за полевик. А цена 8 каналов ОУ вообще не вариант, проще поднять МК до 20 МГЦ и отказаться от транзисторов и ШИМ сглаживания.
                          +1
                          Плюсану, но справедливости ради, все началось еще лет пять назад с этой идеи: www.richardclarkson.com/shop/cloud
                          Но автор хотел сначала 5k$ (теперь 3k$), и умельцы DIY-щики начали мастерить их из ваты или синтепона. Я своё сделал из икеевского абажура, светодиодной ленты и добавил датчик AS3935, что детектировать настоящую грозу.
                            0
                            Вот так вот, рано я автора похвалил, получается; я-то думал, у автора данной статьи идея оригинальная, а оказывается вот оно что. Имхо, раз уж «подсмотрел» что-то у кого-то, то хотя бы можно было упоминание сделать в тексте. Не указывать же источник вовсе, мягко говоря, не красиво.
                              0
                              Идея не оригинальная, но этого источника я не видел. И не пытался повторить чей-то проект. Зря вы так сразу обвиняете)
                                0
                                Если Вы написали правду, то в таком случае прошу прощения. Но это также означает то, что перед воплощением задумки в железе Вы не гуглили вообще. Странно это все.
                                  0
                                  Не гуглил (кроме даташитов), чтобы не было мозгу подсказок, чтобы невольно не повторять чужих тех. решений. Что-то, конечно, совпадёт с предшественниками, но что-то будет оригинальным, именно из-за разных мозгов, а не из-за осознанной модернизации чужого прототипа. Мне интересен процесс своей реализации: я сделаю молоток, если мне будет интересно. ;)
                            0
                            Есть идея брать текущую погоду в вашем городе из интернета и на основе этого задавать режимы работы. Ну или с какой-нибудь web-камеры, используя компьютерное зрение.
                              0
                              Прикольно, можно подумать. У меня, правда, гроза 6 раз в год, будет скучно. А теперь (я искал для другого проекта) информацию о погоде можно получить только проходя регистрации на серверах. Общедоступного сайта с запросом не нашёл (они теперь не срабатывают). Что-нибудь знаете?
                                +1
                                Беглый поиск привёл к openweathermap.org/api
                                Как я понимаю, нужно зарегистрироваться, но использование бесплатное.

                                Ещё есть ресурс wttr.in
                                Можно прямо в консоли получать прогноз погоды
                                Например: curl wttr.in/Moscow
                                  0
                                  openweath я видел, там регистрация. wttr.in должен сработать, только там ещё псеводографика, парсить что ли придётся. но разберусь, спасибо!
                                    0
                                    Да, на нём нужно регистрироваться. Но поискав ещё и поковырявшись в исходных кодах, нашёл работающий ключ (регистрационный ID), текущую погоду тянуть можно. Это для другой идеи, облако точно будет автономным, без интернетов.

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

                              Самое читаемое