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

    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-светодиод – снизу, а фотодатчик сверху.


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

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

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

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

    Поделиться публикацией
    Комментарии 32
      +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 должен сработать, только там ещё псеводографика, парсить что ли придётся. но разберусь, спасибо!

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

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