Интересные лайфхаки для работы по дому и на даче

Светомузыкальная ёлочная звезда на адресных светодиодах и ATmega328


Здравствуйте, товарищи Самоделкины! Приближается Новый год, и по уже сложившейся традиции я снова своими руками ваяю домой праздничные украшения. В прошлом году я делился с вами проектом ёлочной звезды на адресных светодиодах. Ещё тогда я говорил о том, что неплохой идеей было бы добавить туда светомузыку. И вот, спустя год, руки наконец-то дошли. Как вы можете помнить, вся система состоит из двух компонентов – непосредственно самой звезды, и блока управления, внутри которого микроконтроллер управляет миганием светодиодов. Вот этот самый блок и было нужно доработать. Но я решил не допиливать старый, а сделать с нуля новый. Во-первых, зная мою криворукость, не хотелось случайно что-то испортить. Во-вторых, ещё в процессе написания кода стало ясно, что 8 КБ флеш-памяти 85-й Тиньки не хватает для реализации всех идей (а как выяснилось в процессе написания кода, для полноценной светомузыки этого объёма памяти в принципе не хватит, даже если отказаться от всех остальных режимов мигания). Поэтому было принято решение сделать новый блок на гораздо более мощном (в сравнении с ATtiny85) МК ATmega 328 P . Итак, для начала список компонентов. Непосредственно для самой звезды: - Светодиоды WS2812B - Конденсаторы на 0.1 мкФ по количеству светодиодов - Стеклотекстолит - Конденсатор 1000 мкФ - Резистор на 200-500 Ом Для блока управления – тут уже есть некая «разбежка». Я решил делать проект не на плате Arduino, а на голом МК, то есть самому травить плату, паять обвязку и вот это вот всё. Почему так? Ну, во-первых, у меня завалялся микроконтроллер, и я решил наконец-то пустить его в дело. Во-вторых – это просто интереснее и… Ламповее, что ли? Не брать готовые модули, а сделать всё самому, с нуля, и даже когда вся схема находится внутри корпуса и её никто не видит, ты всё равно знаешь, что она целиком и полностью сделана своими руками – по-моему, это офигенное чувство. Ну ладно, отвлеклись. В общем, дальше приведу два списка деталей, для обоих вариантов исполнения (кое-где компоненты будут повторяться). На Arduino: - Плата Arduino Nano - Разъём Mini - Jack 3.5 мм - 2 потенциометра на 50 кОм - тактовая кнопка - диод – с как можно меньшим падением напряжения, в идеале вообще взять диод Шоттки - конденсатор 470 мкФ 6.7 В и выше - провода по высоте ёлки - Разъём для питания от 5 вольт На голом МК: - Микроконтроллер ATmega 328 P в SMD-корпусе (обратите внимание, чтобы он был именно с индексом P на конце – распространённые нынче PB имеют другую распиновку, и плата на них не рассчитана) - Разъём Mini - Jack 3.5 мм - 2 конденсатора 0.1 мкФ типоразмера 0402 - конденсатор 0.01 мкФ типоразмера 0603 - резистор 10 кОм типоразмера 0402 - кварцевый резонатор 16 МГц со встроенными конденсаторами (я брал модель CSTCE16M0V53-R0) - диод – то же самое, чем меньше падение напряжения, тем лучше. Я взял ll4148, но в идеале заменить его на более подходящий вариант - конденсатор 470 мкФ 6.7 В и выше - 2 потенциометра на 50 кОм - тактовая кнопка - штырьковый разъём 2.54 мм 2х3 - провода по высоте ёлки - Разъём для питания от 5 вольт Типоразмеры элементов я указал непосредственно для своей платы, в целом вам ничего не мешает её переделать – файл lay6 я оставлю в конце статьи, как и код прошивки. Ну и инструменты – паяльник и/или паяльный фен, программатор USB asp , шуруповёрт и свёрла, чтобы сделать отверстия под компоненты в корпусе. Итак, приступим к сборке. Первым делом травим платы. Вначале пару слов о плате БУ – как вы можете видеть, на ней есть некоторая обвязка для МК, а именно: внешний источник тактирования, конденсатор на 0.1 мкФ по питанию для сглаживания микропульсаций, подтягивающий резистор на 10 кОм от пина RST, чтобы контроллер случайно не перезагрузился от какой-нибудь прилетевшей наводки, конденсатор на пине AREF, конденсатор на 470мкФ и диод. На двух крайних элементах остановимся чуть подробнее. Для чего они вообще нужны? Дело в том, что светодиодная лента – это довольно мощная нагрузка, и как следствие для неё нужен довольно мощный источник питания. А что будет, если мы подключим к плате программатор, забыв перед этим воткнуть туда внешний мощный источник питания? Правильно, питание пойдёт от USB-порта, через программатор, и очень маловероятно, что это приведёт к чему-то хорошему. При полностью включённой ленте программатор можно просто спалить, а если лента достаточно длинная, то и порт компьютера вам спасибо не скажет. Поэтому во избежание подобных ситуаций перед мощной нагрузкой в схеме ставится диод, чтобы питание на неё шло только от внешнего БП. Однако тут мы сталкиваемся с другой проблемкой – напряжение на диоде просаживается, и МК получает не положенные 5 вольт, а чуть меньше. Как правило, это не критично, ведь ATmega может работать и от гораздо более низкого напряжения, но лента вызывает помехи по питанию, от чего МК может начать чуть подглючивать (я с этой проблемой столкнулся, когда отключил программатор от USB-порта – питание на МК пошло не напрямую, а через диод, и звезда тут же начала вести себя неадекватно, но как только я замкнул контакты диода проводами, всё тут же прекратилось). Поэтому рядом с диодом был добавлен конденсатор, для сглаживания этих самых помех, ну и диод лучше брать с как можно меньшей просадкой по напряжению. Ладно, ликбез провели, возвращаемся к нашей звёздочке. Для самой звезды у меня тоже есть два варианта трассировки, и написанная мной программа рассчитана именно под второй вариант, где больше диодов. Почему он выглядит именно так – можно узнать, прочитав предыдущую статью ;) Вырезаем полученные заготовки. Сверлим и лудим. Запаиваем компоненты. Для тех, кто делает блок управления на Arduino, накидал схемку, что и куда паять. После этого соединяем звезду и блок управления проводами, и помещаем всё в корпуса – звезду в звезду, блок управления в блок управления. Далее прошивка. На Arduino всё просто – открываем код, загружаем. На голом МК всё чуточку интереснее. Во-первых, необходимо установить в вашу среду разработки ядро для работы с ATmega 328 P . В Arduino IDE открываем Файл -> Настройки -> Дополнительные ссылки для Менеджер плат и вписываем туда строку «https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json» Далее заходим в Инструменты -> Плата -> Менеджер плат и вписываем в поиск «MiniCore». Устанавливаем и перезапускаем IDE. Теперь мы можем работать с микроконтроллерами линейки ATmega. Выбираем в менеджере плат ATmega328, в дополнительных настройках ставим 328 P /328PA, тактирования «External 16 MHz», остальное оставляем по умолчанию. Всё, теперь можно прошивать. Нажимаем Записать загрузчик и Загрузить через программатор. Всё готово) После этого остаётся только подключить схему к компьютеру через Mini - Jack и настроить передачу звука – по умолчанию при подключении любого устройства для приёма звука трансляция на динамики прекращается. В Windows это обходится следующим образом. Открываем Панель управления -> Звук. Нажимаем правой кнопкой мыши по иконке динамиков и ставим галочку «Использовать по умолчанию». Далее переходим во вкладку Запись. Выбираем устройство Stereo Mix и нажатием правой кнопки мыши выбираем «Включить» и «Использовать по умолчанию». После чего переходим в его свойства и во вкладке Прослушать ставим галочку возле пункта «Прослушать с данного устройства», после чего в выпадающем меню ниже выбираем устройство, на которое будет транслироваться звук (я поставил наушники). Если вы всё сделали правильно, то теперь звезда должна начать реагировать на звуки с комьютера. Только не забудьте вернуть настройки обратно, если вдруг захотите подключить вместо звезды наушники) Управление осуществляется следующим образом – одиночное нажатие отвечает за переключение режимов мигания (весь функционал предыдущей версии сохранён), двойное включает и выключает зацикливание (по умолчанию режимы сменяют друг друга раз в 30 секунд), а тройное переключает звезду на музыкальные функции. Музыкальных функций тоже несколько – первая, самая спокойная, когда диоды мерцают в такт музыке. Вторая представляет собой частотный анализатор – каждый луч вспыхивает в зависимости от интенсивности тех или иных частот аудио-спектра. И третий можно описать как «бегущие волны» - от центра и по лучам разбегаются волны, цвет которых также зависит от частоты звука. [media=https://youtu.be/OT4R8hv8Fgo] Пример работы Обратите внимание, что перед запуском музыкальных функций необходимо выключить все поступающие с компьютера или телефона звуки – это нужно для автоматической калибровки, чтобы избежать ненужных шумов. Повторную калибровку можно произвести двойным нажатием кнопки. Регулировка светомузыки осуществляется двумя потенциометрами – первым настраивается чувствительность эффектов к звуку, а второй используется только для настройки третьего эффекта, чтобы указать скорость распространения "волн". Также было добавлено сохранение текущего режима в EEPROM-память, и теперь после отключения питания не надо выщёлкивать нужное мигание среди всех прочих) Кроме того есть «секретный режим», который включается длительным удержанием кнопки управления, как из обычных, так и из музыкальных функций) [media=https://youtu.be/gzR_5HmQGKg] В целом, проект, как и любой проект, сделанный на микроконтроллере, можно дорабатывать, и при этом даже необязательно менять компонентную базу. К примеру, можно добавить новых режимов мигания или светомузыки, или доработать уже существующие для работы со стерео (сейчас в программе используются только данные с правого аудио-канала, но на плате к МК они подключены оба). Или можно заменить аудио-разъём на микрофон, чтобы не мучиться с проводами. К слову, изначально и задумывалось использовать микрофонный модуль MAX9814, однако в процессе я отказался от этой идеи. Словом, придумать можно уйму всего! Но я скорее всего оставлю этот проект таким, каким он получился сейчас. Если, конечно, вы не подкинете каких-нибудь особенно интересных идей) Ну и на этом у меня всё) С праздниками всех, счастья и успехов в Новом году!

Источник: Светомузыкальная ёлочная звезда на адресных светодиодах и ATmega328
Опубликовал:
Теги: Arduino

Комментарии (0)

Сортировка: Рейтинг | Дата
Пока комментариев к статье нет, но вы можете стать первым.
Написать комментарий:
Напишите ответ :
"Месяц под косой блестит, а в 3,14зде звезда горит"
"Месяц под косой блестит, а в 3,14зде звезда горит"
17
Мужской журнал 09:13 16 авг 2017
Звезда PLAYBOY Мария Лиман разделась в горах перед пастухами
Звезда PLAYBOY Мария Лиман разделась в горах перед пастухами
7
Мужской журнал 01:09 17 сен 2017
В небе скоро вспыхнет новая звезда, видимая невооруженным глазом
В небе скоро вспыхнет новая звезда, видимая невооруженным глазом
1
Мужской журнал 04:20 12 сен 2025
Святая блудница: как угасла звезда Марлен Дитрих
Святая блудница: как угасла звезда Марлен Дитрих
1
Мужской журнал 12:00 15 ноя 2021
За рулем сидит звезда, значит это не езда
За рулем сидит звезда, значит это не езда
6
Авто-Тема 13:32 24 дек 2018
Упавшая звезда
Упавшая звезда
6
Мужской журнал 08:01 13 июн 2018
Горячая звезда WWE Лана вышла на прогулку в провокационном наряде
Горячая звезда WWE Лана вышла на прогулку в провокационном наряде
1
Мужской журнал 10:11 21 окт 2017
Путешествие в центр ада - нейтронная звезда
Путешествие в центр ада - нейтронная звезда
1
Мужской журнал 07:01 12 янв 2018
Звезда фильмов для взрослых, принявшая ислам, рассказывает о новой жизни
Звезда фильмов для взрослых, принявшая ислам, рассказывает о новой жизни
0
Мужской журнал 21:40 18 сен 2025
«Звезда», разрушенная потопом
«Звезда», разрушенная потопом
0
Мужской журнал 07:01 30 июл 2018
Звезда украинского Playboy стала проституткой в Москве
Звезда украинского Playboy стала проституткой в Москве
11
Мужской журнал 16:01 06 июн 2018
Звезда украинского Playboy попалась на проституции в Москве
Звезда украинского Playboy попалась на проституции в Москве
10
Ваши новости 09:02 07 июн 2018

Выберете причину обращения:

Выберите действие

Укажите ваш емейл:

Укажите емейл

Такого емейла у нас нет.

Проверьте ваш емейл:

Укажите емейл

Почему-то мы не можем найти ваши данные. Напишите, пожалуйста, в специальный раздел обратной связи: Не смогли найти емейл. Наш менеджер разберется в сложившейся ситуации.

Ваши данные удалены

Просим прощения за доставленные неудобства