В статье описан вариант переделки детской музыкальной игрушки в "музыкальную шкатулку" с несколькими десятками мелодий. Предлагаемое устройство можно использовать и как музыкальный дверной звонок.
Сегодня продаётся множество детских игрушек с музыкальным сопровождением. Как правило, внутри них имеются плата с микросхемой-капелькой, малогабаритный громкоговоритель, два-три элемента питания и мигающие лампочки или светодиоды. В памяти микросхемы обычно хранится небольшой фрагмент популярной песенки или мелодии, который быстро надоедает ребёнку, и он теряет к игрушке всякий интерес.
Однако совсем несложно вдохнуть в игрушку вторую жизнь, расширив набор мелодий до нескольких десятков и предусмотрев их автоматический перебор. Достаточно заменить установ-
ленную в ней плату другой, изготовленной по схеме, изображённой на рис. 1. Прототипом для неё явился музыкальный звонок на микроконтроллере ATtiny2313, проигрывающий пять мелодий, описание которого было найдено в Интернете.
В разработанном устройстве в качестве DD1 может быть установлен микроконтроллер ATmega8L-8PI или ATmega168-20PI. В памяти первого из них уместилось 37 мелодий, а второго — 71. Тактовая частота микроконтроллера выбрана равной 1 МГц и стабилизирована кварцевым или керамическим резонатором ZQ1. Отказаться от него не удаётся, так как при работе от встро-
енного в микроконтроллер тактового RC-генератора "плывут" тональность и | темп воспроизведения мелодий.
На транзисторах VT1 и VT2 построен узел управления питанием устройства. В исходном состоянии при разомкнутой кнопке SB1 оба транзистора закрыты, I напряжение питания на микросхемы' DD1 и DD2 не поступает. При кратковременном нажатии на кнопку SB1 транзистор VT1 открывается и открывает транзистор VT2. Напряжение гальванических элементов G1 и G2 поступает на микросхемы.
Программа микроконтроллера DD1, начав работу, устанавливает на его выходе РВО высокий уровень напряжения Поступая через резистор R3 на базу транзистора VT1, это напряжение поддерживает оба транзистора открытыми и после отпускания кнопки. Далее программа проигрывает мелодию, а её порядковый номер сохраняет в энергонезависимой памяти микроконтроллера. По завершении мелодии на выходе РВО будет установлен низкий уровень, что закроет транзисторы VT1, VT2 и выключит питание устройства. При следующем нажатии на кнопку SB1 будет проиграна следующая по порядку мелодия
Звуковые сигналы формируются на линиях РВ1 и РВ2 микроконтроллера (выходы таймера-счётчика 1) в проти-вофазе. Их усиливает микросхема DD2, Динамическая головка ВА1 для повышения громкости звучания и экономичности устройства подключена к выходам элементов этой микросхемы через согласующий трансформатор Т1 — выходной от старого транзисторного приёмника.
Такие трансформаторы имеют первичную обмотку с отводом от середины. В зависимости от параметров трансформатора и динамической головки наиболее громкое звучание достигается при подключении к микросхеме DD2
всей первичной обмотки трансформатора (установлена перемычка S1) либо её половины (установлена перемычка S2). Одновременно устанавливать обе перемычки нельзя.
Если подходящий трансформатор найти не удастся, динамическую головку можно подключить вместо его первичной обмотки к выходам микросхемы. Но последовательно с головкой в этом случае следует включить резистор такого сопротивления, чтобы ток нагрузки микросхемы не превышал 40 мА В крайнем случае динамическую голов-
ку можно подключить таким же образом и к выходам микроконтроллера. Во время воспроизведения мелодии све-тодиоды HL1 и HL2 мигают с частотой около 3 Гц.
Нажатием на кнопку SB2 можно перейти к воспроизведению не следующей, а предыдущей по списку мелодии. Но действует она только при использовании микроконтроллера ATmega168 Для реализации этой функции объём памяти микроконтроллера ATmega8L оказался недостаточным.
Для увеличения продолжительности работы "шкатулки" без замены элементов питания можно соединить последовательно с показанными на схеме элементами G1, G2 ещё один такой же. Как показала проверка, работоспособность устройства сохраняется при разрядке батареи питания до 2,5 В с микроконтроллером ATmega8L и до 1,8 В с ATmega168.
В устройстве могут быть использованы компоненты как обычной конструкции с выводами, монтируемыми в отверстия, так и в исполнении для поверхностного монтажа. Транзистор VT1 — любой маломощный структуры n-p-п с минимальным током утечки. Транзистор VT2 — структуры p-n-р с низким напряжением насыщения.
Разработанная автором печатная плата изображена на рис. 2. Её форма и размеры выбраны исходя из имевшегося в переделываемой игрушке места Особенность платы — применение вместо кнопки SB1 сенсорного датчика. Чтобы он сработал, достаточно замкнуть между собой зубцы двух образующих датчик фольговых гребёнок. В подвергнутой доработанной игрушке для этого имеется резиновая клавиша с металлизацией.
Для микроконтроллера на плате предусмотрена панель. Вставляют его
уже запрограммированным. Коды из файла muzshkat.hex, хранящегося в папке Muzshkat_8, предназначены для записи во FLASH-память микроконтроллера Atmega8L, а из одноимённого файла из папки Muzshkat_l68 — во FLASH-память микроконтроллера Atmega168.
Необходимая конфигурация, микроконтроллера зависит от его типа. Для ATmega8L:
CKSEL[3..0] = 1100;
SUT[1,0]=01.
Для ATmega168:
BODLEVEL[2..0]=110;
CKDIV=1;
CKSEL[3..0]=1010; SUT[1,0]=10.
В программе для ATmega168 часть мелодий расположена в EEPROM микроконтроллера. В имеющемся в папке Muzshkat_168 файле muzshkat.eep находится информация которую нужно загрузить в эту область памяти. Разряды конфигурации ВОDLEVEL устанавливают порог срабатывания встроенного в микроконтроллер детектора понижения напряжения питания равным 1,8 В. Это предотвращает повреждение хранящейся в EEPROM информации при
чрезмерной разрядке элементов питания
Программа микроконтроллера написана на языке С и скомпилирована в среде WinAVR-20060125. Следует учитывать, что программа имеет особенности, из-за которых версии WinAVR, выпущенные в 2007 г. и позже, для её компиляции не подходят.
Файлы к статье Музыкальная шкатулка