Музыкальная шкатулка на микроконтроллере своими руками

Добавил пользователь Алексей Ф.
Обновлено: 04.09.2024

Результатом стала программа для моего любимого AT90S2313 которая проигрывает 5 мелодий.

Мелодия из к/ф "Бумер" (Мобильник)
Мелодия из к/ф "Джентельмены удачи"
Мелодия из к/ф "Ва Банк"
Мелодия из к/ф "Служебный Роман"

Схема шкатулки:


Песня "Листья желтые"Это устройство можно использовать в качестве дверного звонка или музыкальной шкатулки. Сами исполныемые мелодии вынесены в отдельный файл "Muson.c". Ноты взяты из кодов мелодий для мобильного телефона NOKIA. Желающие могут сами написать свои мелодии. Программа занимает 995 байт ПЗУ. Так,что даже у 2313 еще есть куда расти :-)

Вместо 90S2313 можно использовать Tiny2313 (программа для Тини тож прилагается) При этом фузы у Тини должны быть записаны следующим образом:

CKSEL = F - Задана работа от внешнего кварца
CKDIV = 1 - Предделитель отключен.

Управляющая программа обеспечивает следующие действия:
Нажатие на кнопку 1 включает воспроизведение
Нажатие на кнопку 2 переключает мелодии
Пока проигрывается мелодия МК не реагирует на нажатие кнопок.


Перед вами статья о том, как сделать своими руками программируемую музыкальную шкатулку. К сожалению подробных описаний, по данной поделке, нет. Всё строилось по принципу – выбираем деталь, рассматриваем и изготавливаем её.

0

Шаг 1: Что будем использовать

1

Инструменты:

  • Ленточная пила;
  • Шлифовальный станок; ;
  • Коронка по дереву;
  • Зенкер.

Музыка:

Другие принадлежности:

  • Игрушечный ксилофон;
  • Деревянные обрезки: орех или вишня;
  • Резиновый клей для фиксации резиновых ножек на шкатулке;
  • Клей-спрей для дерева и бумаги;
  • Столярный клей;
  • Саморезы для гипсокартона;
  • Дюбели;
  • Металлические шайбы, что соответствуют осям;
  • Пчелиный воск с апельсиновым маслом.

2

Программное обеспечение:

Шаг 2: Изготавливаем барабан

3

У меня был ореховый чурбанчик, он и определил максимальную длину барабана. На ленточной пиле распилим его на 8 брусочков одинаковой длины, используя шлифовальный круг обработаем их поверхности, после чего склеим их по два вместе. После склеивания брусочков получим восьмиугольную трубку, которую следует шлифовать пока не получим цилиндр.

4

5

Для будущих отверстий сделаем отметки по следующему принципу. Начертим параллельные линии в 1 см друг от друга по окружности, затем продольно 4 линии на нотном стане. Перед сверлением установим барабан в раму, так он будет опираться на центральную ось.

6

Шестерёнки были начерчены, затем напечатаны, приклеены к фанере и вырезаны с помощью ленточной пилы. Рекомендую использовать фанеру, так как переменные направления её волокон обеспечат хорошую прочность.

7

Шаг 3: Изготавливаем молоточки

8

Для молоточков используем древесину такой же длины, что и ксилофон.

9

В шаге представлен файл к Inkscape, который следует распечатать и приклеить на деревянные направляющие. Кулачки из 3 мм березовой фанеры, молотки и ось из 1 см вишневых обрезков.

10

Шаг 4: Другие части

11

12

Изготовим базу для поддержки ксилофона, барабан для молотков, чтобы они попадали в ноты сразу, а не отскакивали и рукоятку для привода.

13

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

14

Шаг 5: Готовая шкатулка

15

16

Перед вами удивительный эффект работы пчелиного воска (до и после).

17

19

Как сделать музыкальную шкатулку своими руками

Обычно музыкальная шкатулка это механический музыкальный инструмент, который который размещен в красивом футляре. В век электроники механический музыкальный механизм можно заменить соответствующей схемой. Шкатулка будет с электронной начинкой. При стрительстве этой музыкальной шкатулки ставилась задача потратить минимум времени и средств на эту затею. И сделать шкатулку так, чтобы в ней можно было хранить вещи и чтобы музыка начинала звучать только после полного открытия крышки шкатулки.

Для изготовления музыкальной шкатулки Секрет Мастера необходимы следующие комплектующие:

Инструмент для сборки музыкальной шкатулки своими руками — паяльник, ножницы и термопистолет.

Пошаговая инструкция сборки музыкальной шкатулки

Автор собрал музыкальную шкатулку стараясь получить результат используя минимум сил и средств. Возможны и другие пути изготовления музыкальной шкатулки, например, установить готовый модуль с подходящей мелодией таким же способом. Смотрите продолжение темы.

Понравилась поделка? Поделитесь идеей в социальных сетях, так вы поддержите автора и оцените его поделки.

Структура WAV плеера


Окончательный вариант звонка был создан в несколько этапов, причем изначально я не намеревался всерьез делать данное устройство, просто иногда возникали мысли типа: а неплохо было бы разработать свой вариант проигрывателя музыкальных файлов с использованием карты памяти…

Все началось с изучения основных команд для работы с картой памяти MMC, это команды сброса, инициализации, чтения и т.д., причем все эти команды поддерживаются и SD картами. Для практической тренировки я решил собрать устройство для вывода картинок с карты памяти на дисплей Nokia 1110i. В качестве микроконтроллера был выбран PIC16F628A. Сначала я работал без файловой системы FAT, то есть записывал байты картинок в определенную область карты памяти, а точнее в область данных файловой системы. Картинка имела фиксированный адрес, по которому микроконтроллер считывал ее. Кстати записать данные на карту памяти по любому адресу можно с помощью программы WinHex.

Далее я начал изучать файловую систему FAT16, и написал новый код для микроконтроллера. Теперь можно было просто записать бинарный файл с картинками на карту памяти при помощи компьютера, а микроконтроллер находил этот файл по имени и расширению, используя возможности файловой системы.

Прошло некоторое время, и я решился уже сделать проигрыватель музыкальных файлов. На этот раз взял микроконтроллер помощнее PIC16F876A, у которого достаточно много ОЗУ и большая память программ, а также присутствуют множество периферийных модулей. К микроконтроллеру для удобства подключил дисплей от Nokia, для вывода имен файлов имеющихся на карте памяти, а также отображения различных ошибок. Музыкальными файлами являлись самые простые WAV файлы, которые использовались в других подобных устройствах найденных в сети. Итак, я написал новый код и прилепил к нему предыдущие наработки по работе с файловой системой. В качестве цифро-аналогового преобразователя для вывода звука в первое время использовал R-2R матрицу, составленную из резисторов, так как количество линий микроконтроллера позволяло использование такой матрицы. В дальнейшем под это дело начал использовать ШИМ модуль. Первоначально на дисплей выводились короткие имена файлов в формате 8.3, немалыми усилиями был расшифрован алгоритм записи длинных имен в системе FAT, после чего я подправил код микроконтроллера и теперь можно было лицезреть полные имена файлов на дисплее.

По прошествии еще некоторого количества времени, у меня появилась мысль: а не получится ли запихнуть этот код, убрав все лишнее в тот самый PIC16F628A? Естественно от дисплея пришлось отказаться, и вместе с ним сократился объем кода, путем выпиливания больших таблиц знакогенератора. И наконец, мне удалось перенести устройство на другой микроконтроллер.

Схема WAV проигрывателя

В предлагаемом звонке для хранения мелодий используются карты памяти SD или MMC, отформатированные под файловую систему FAT16 (c 2018 года есть версия с поддержкой файловой системы FAT32 и карт памяти SDHC, подробней в конце статьи). В качестве мелодий используются звуковые файлы формата WAV. Устройство может воспроизводить большое количество мелодий, а также его можно использовать в качестве простого проигрывателя WAV файлов.
Устройство собрано на широко распространенном микроконтроллере PIC16F628A, и имеет два режима работы, которые устанавливаются с помощью переключателя SA1. Верхнему положению переключателя соответствует режим “Проигрыватель”, а нижнему режим “Звонок”. Микроконтроллер проверяет состояние переключателя только один раз, после подачи питания. Для смены режима необходимо отключить питание, установить переключатель в требуемое положение, и снова подать питание на устройство.

На транзисторе VT1 собран управляемый стабилизатор напряжения на 3,3В, для питания карты памяти. Управление стабилизатором осуществляется по линии порта RA3, при низком логическом уровне на этой линии транзистор VT1 закрыт, напряжение на его эммитере равно нулю. При высоком логическом уровне на линии, транзистор открывается, тем самым подавая питание на карту памяти. Напряжение на базе транзистора стабилизируется стабилитроном VD1.

В режиме “Звонок” после подачи питания, микроконтроллер производит настройку внутренних регистров, после чего переходит в спящий режим. При нажатии кнопки SB1 (“Звонок/Воспроизведение”), микроконтроллер “просыпается”, о чем свидетельствует включение светодиода HL1, включает питание карты памяти, сбрасывает и инициализирует ее, далее ищет на ней звуковой файл. Поиск мелодий осуществляется по расширению WAV. Найдя нужный файл, микроконтроллер воспроизводит его, отключает питание карты памяти, после чего снова “засыпает”, а светодиод HL1 гаснет. При следующем нажатии на кнопку SB1 все повторится, но будет воспроизведен следующий звуковой файл.

На карту памяти можно записать до 512-ти мелодий, это максимальное количество записей в корневом каталоге для файловой системы FAT16. После воспроизведения всех мелодий, начнется их повторное проигрывание. Кнопки SB2, SB3, SB4 в этом режиме не задействованы.

В режиме “Проигрыватель” после подачи питания микроконтроллер также выполняет настройку внутренних регистров, включает питание карты памяти, производит процедуру ее сброса и инициализации, в случае успешного выполнения процедуры вспыхивает светодиод HL1. Далее выполняется поиск WAV файла, как только файл будет найден, микроконтроллер перейдет к опросу состояния кнопок.
При нажатии кнопки SB1 начнется непрерывное воспроизведение всех звуковых файлов имеющихся на карте памяти. Кнопкой SB2 (“Стоп”) можно остановить проигрывание на текущей мелодии, кнопками SB3 (“Следующий”) и SB4 (“Предыдущий”) переключаются между мелодиями, переключение возможно при проигрывании, а также после остановки.

При неудачной процедуре сброса и инициализации карты памяти, микроконтроллер предпримет еще одну попытку, и если она также будет неудачной, прозвучат два коротких сигнала низкого тона, после чего микроконтроллер уйдет в круговой цикл, и перестанет отвечать на команды. В этом случае необходимо проверить надежность соединения с картой памяти, или попробовать заменить ее. В режиме “Звонок”, при ошибке сброса и инициализации, также прозвучат два коротких сигнала низкого тона, после чего, как и прежде микроконтроллер отключит питание карты и перейдет в спящий режим. Если карта памяти перестанет отвечать на команды или просто “зависнет”, то в режиме “Проигрыватель”, микроконтроллер отключит и включит питание карты, затем заново сбросит и проинициализирует ее. В режиме “Звонок”, после “зависания” карты, микроконтроллер просто отключает питание карты и “засыпает”. При отсутствии WAV файлов на карте памяти, прозвучат три коротких сигнала низкого тона, после чего “Проигрыватель” перейдет к опросу кнопок, при нажатии которых будет звучать тот же предупреждающий сигнал, а в режиме “Звонок”, после сигнала об отсутствии файлов, микроконтроллер отключит питание карты памяти и “заснет”. Если параметры WAV файла не будут соответствовать требуемым значениям, например, неверная частота дискретизации, разрядность и т.д., прозвучит сигнал низкого тона длительностью в одну секунду, и в обоих режимах произойдет переход к следующей мелодии.

Для согласования логических уровней микроконтроллера и карты памяти, установлены делители напряжения на резисторах R6-R11.

Звук выводится с помощью востренного в микроконтроллер модуля ШИМ, частота которого в данном устройстве равна 78,12кГц. Звуковой сигнал сглаживается фильтром R14C9, далее поступает на усилитель мощности, построенный на микросхеме DA1 TDA2003. Переменным резистором R18 регулируют громкость звука. Элементы R15, C11 необходимо установить при самовозбуждении усилителя.

Устройство поддерживает звуковые файлы формата WAV (PCM, 16кГц, 8 бит, моно, несжатый), файлы с другими параметрами проигрываться не будут, поэтому, если необходимо, выбранные звуковые файлы преобразуют с помощью программ-конвертеров. При записи на карту памяти, WAV файлы могут иметь любые имена.

Файловая система FAT16 не поддерживает носители информации имеющие объем больше 2 Гб, поэтому это максимальный объем для карты памяти, которую можно использовать в устройстве. Были протестированы 4 карты формата microSD, разных фирм и объемов, это Kingston 1GB, Kingmax 512MB, Silicon Power 2GB, Transcend 1GB. MMC карты также должны работать, я не смог это проверить, из-за отсутствия такой карты.

В устройстве применены постоянные резисторы МЛТ. Переключатель SA1 – ПД 9-2. Кнопки SB1-SB4 тактовые TS-A3PS-130. Стабилитрон КС139А можно заменить на импортный, с напряжением стабилизации 3,9В. Динамическую головку BA1 можно использовать любую, мощностью 2 – 4 Вт с сопротивлением катушки 4 или 8 Ом. Вместо транзистора КТ503В можно установить КТ3102АМ. Микросхема TDA2003 заменима на TDA2002, TDA2008, К174УН14, ее необходимо установить на теплоотвод площадью не менее 60 см2.

Внешний вид WAV проигрывателя

Все детали размещены на печатной плате из односторонне фольгированного стеклотекстолита. На печатной плате предусмотрены отверстия для подключения внешней кнопки “Звонок”, которая дублирует кнопку SB1. Разъем для карты памяти самодельный. В качестве источника питания можно использовать нестабилизированный сетевой блок питания с выходным напряжением 9–12В и током не менее 0,5А. Программа для микроконтроллера написана на ассемблере в среде MPLAB.

Я заметил, что у некоторых людей возникают проблемы при повторении устройства, а именно звучит сигнал низкого тона длительностью в одну секунду, указывая на неправильные параметры WAV файла. Поэтому скажу немного о структуре WAV файла.
У каждого WAV файла в заголовке есть идентификатор в виде слова WAVE, а также идентификатор в виде слова data, а также есть такие параметры как: частота дискретизации, разрядность, параметр – сжатый/несжатый, параметр – моно/стерео. У файла должны быть правильные параметры указанные выше в статье. Если параметры не будут совпадать или микроконтроллер не найдет идентификаторы WAVE и data, появится сигнал об ошибке. Некоторые программы – конвертеры, возможно, записывают неправильные параметры. Поэтому если появляется ошибка, надо попробовать другую программу, я например, использовал Sound Forge. Также ниже можно скачать тестовые музыкальные файлы.

Ниже представлена обновленная версия прошивки. В этой версии в EEPROM микроконтроллера сохраняется номер проигранной мелодии (только для режима звонка). Таким образом после пропадания питания проигрывание начнется не с первой мелодии из папки, а продолжится с момента сохранения.

Обновление: мной разработана новая прошивка с поддержкой карт памяти SDHC и файловой системы FAT32, можно использовать карты емкостью 4-32ГБ, за прошивку я беру небольшую плату, связаться со мной можно по контактам указанным на странице Об авторе

Читайте также: