Здравствуй, сообщество!
Представляю собственную реализацию светильника-ночника в виде облака. Основная идея – сделать ночник с имитаций естественных природных процессов и какой-нибудь интерактивностью. Природа – лучший вдохновитель!
За основу взял дешёвый микроконтроллер ATmega8-16PU. Код написан на С без Ардуино и реализует несколько световых эффектов с управлением от общей освещённости пространства и с управлением звуком.
Подробности и фотки — далее…
Электронные подробности
Схема, кроме микроконтроллера, имеет 6 одноцветных светодиодов, один RGB светодиод, датчик освещённости (фоторезистор) и микрофон с усилителем и ВЧ-фильтром.
Для плавного изменения яркости светодиодов используется ШИМ. Частота ШИМ равна 244 Гц при 64-х уровнях, бывает, что некоторые люди её видят. Увеличить частоту не получается – нужно ещё процессорное время для работы. Поэтому для сглаживания импульсов ШИМ применена схема на транзисторном повторителе со сглаживающим конденсатором. Транзистор взят с большим коэффициентом усиления, для увеличения входного сопротивления и уменьшения требуемой ёмкости. В итоге 1 мкФ оказалось вполне достаточно, импульсы сглаживаются почти полностью. Преимущества – дешевле, чем ЦАП и имеет большой выходной ток. Недостаток схемы – нелинейная зависимость яркости от уровня ШИМ на малых уровнях (до 15%).
Схема сглаживания ШИМ. 4 диода примерно = 1 белый светодиод по ВАХ
График тока и напряжения на светодиоде при 56% ШИМ.
Миниатюрный электретный микрофон через усилитель на двух транзисторах с выделением импульса (ВЧ фильтр) подключен к дискретному входу МК, уверенно ловит резкие звуки — хлопки в ладоши.
Плату начертил и развёл в DipTrace, сделал ЛУТом, детали в основном smd. Травление делал в «убийце хлорного железа»: Перекись водорода + соль + лимонная кислота, получилось с первого раза, рекомендую. Здесь написаны все любительские способы.
Плата, сделанная ЛУТом
Питание сделал через USB-разъём, что позволяет подключать в любой USB-порт. Максимальное потребление 78 мА.
В предыдущих версиях на кабеле была микрокнопка для настроек режимов, но потом её убрал, так как не дотянуться, если облако под потолком.
Связи по USB нет, в МК нет USB, да и вроде не нужно в законченном изделии. Для отладки использовал UART контроллера, в коде реализован обмен с компьютером, но там банально писано на коленке.
В процессе пайки
ЛУТ, пайка, написание программы, тесты и переделки, подгонка таймеров и коэффициентов заняло 3 недели.
Общий вид
В итоге реализовал 3 режима свечения и световых эффектов. Старался, чтобы было поинтереснее лава-лампы, но и не стало диско-цветомузыкой с свистелками-перделками.
Режимы:
Основной – ночник в виде облака. Разные части облака в случайном порядке плавно изменяют яркость, период изменения тоже случайный (4...25 сек), вид изменения – экспоненциальное сглаживание от задания (подробнее могу в комментах рассказать). Выглядит в целом, при доле воображения, как переливы света в настоящем облаке, когда оно закрывает Солнце. Максимальный уровень яркости зависит от уровня освещения согласно графику. Я подбирал разные зависимости, был вариант с выбором зависимости по кнопке, но остановился на одной этой.
График зависимости яркости облака от внешнего освещения.
Так как при внешней темноте (ночь) облако почти не светится, а кратковременный яркий свет может понадобиться (например, встать ночью), то для этого придумал подрежим «Яркое облако». Он включается при двух хлопках в ладоши, здесь и используется микрофон, так как кнопки обычно вне досягаемости. Облако светится на полную яркость в течение минуты, также с переливом, потом плавно возвращается на основной режим облака согласно освещённости.
Режим облака, первые пробы. Видео ускорено в 5 раз
Гроза – включается при резком снижении внешнего освещения (но не до полной темноты, чтобы не било по глазам в темноте) или трёх хлопках. Вспыхивают случайные светодиоды (от одного до 4х), со случайной паузой между вспышками. Немного заморочился и сделал «пробеги» молнии в облаке, когда светодиоды вспыхивают по временной цепочке. Тоже выглядит довольно похоже на грозу. Из-за режима грозы пришлось находить компромисс фильтрации ШИМ, чтобы вспышки получались резкие (77 мс). Длительность «грозы» зависит от внешнего освещения – чем темнее, тем дольше, от 4-х до 12-ти вспышек.
Рассвет – включается при резком возрастании внешнего освещения. Самый сложный в настройке режим, получить «естественную смену цветов Солнца при рассвете в лёгкой дымке» было непросто. Балансировать RGB светодиод приходилось вручную почти на каждый уровень ШИМ, и подбирая зависимости. Но в итоге более-менее интерполяционную формулу получил. Рассвет длится 40 секунд, потом переход на обычный режим.
Рассвет
Электроника и программная часть для интересующихся:
Конструктив
Конструкция облака довольно простая, мной сделана из синтепуха (одна подушка 40х40 см), плата размещена внутри на подвесах из ниток. Светодиоды расположил по возможности равномерно в объёме, ну и RGB-светодиод – снизу, а фотодатчик сверху.
В процессе облепливания пухом
Были сложности в фиксации синтепуха, так как он покрыт силиконом для противодействия слёживанию. Нижняя часть облака поддерживается узкими полосками скотча на проволочной рамке.
Вопросы, замечания, предложения пишите в комментариях.
Всем отличной погоды!
Автор: Affdey