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

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 контроллера, в коде реализован обмен с компьютером, но там банально писано на коленке.

7ufyh5cpydbcvzj50ojtwibyeik.jpeg
В процессе пайки

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

image
Общий вид

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

Режимы:


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

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

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

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

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

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

image
Рассвет

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

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

Схема в pdf

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

Конструктив


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

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

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

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

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

k2jpiamrczanxcsod6-l-rh-nmi.jpeg

© Habrahabr.ru