Музыкальный
Звонок. Part II.
(полифония
наносит ответный удар)
Давным-давно в
далёкой галактике,
когда с ума
сошли роботы…
Собирая предыдущий вариант
«Музыкального Звонка», даже не мог подумать
насколько популярной окажется эта незамысловатая затея поиграть музыку при
помощи микроконтроллера. Ну что ж, раз «пипл хавает», - продолжим внедрять культуру в массы J.
Понятно, что простые однотональные мелодии на сегодняшний день уже не могут
вызвать восторга у благодарных слушателей. За примерами далеко ходить не надо –
вспомним звонки для сотовых телефонов. Еще совсем недавно они были простые, а
сегодня все MP3, MIDI да WAV. Иными словами –
наступила эра полифонии.
Как оказалось – AVR довольно слабенький контроллер и программно
воспроизводить MIDI или MP3 ему не по зубам. А вот WAV, точнее разновидность его
PCM, да с небольшой частотой дискретизации он
довольно неплохо воспроизводит. Вот только размер этих WAV файлов не внушает оптимизма. Памяти никакого AVR не хватит, чтобы хранить в
ней аудиоданные. Хорошо, что умные дяденьки придумали флэш-карты,
которые позволяют записать на них целую кучу полезной информации. Итак начнем:
Схема:
· На резисторах R1-R16 собран простейший R-2R ЦАП.
· Вместо транзистора можно подключить усилитель, например на TDA2003.
· Можно использовать как MMC так и SD карту.
· На схеме не показаны стабилизаторы напряжения на 12 В и 3,3 В.
Отмазки: Я понимаю, что запускать мегу16 на 16 МГц и
3,3 В – это любительство, но у меня все работает
стабильно, чего и Вам желаю J.
Описание работы:
Карта должна быть отформатирована под файловую систему FAT16. Мелодии для воспроизведения необходимо сохранить в формате WAV 8 бит 16000 КГц Моно. Сделать это можно любым редактором WAV файлов, например этим. Допускается записать на карту до 10 мелодий под именами «muson01.wav» – «muson10.wav». Файлы другого формата и с другими именами воспроизводиться не будут.
После подачи питания устройство инициализирует MMC/SD карту и готово к работе. Нажатие на кнопку SB1 включает воспроизведение текущей мелодии (сразу после подачи питания это мелодия с именем «muson01.wav»). Нажатие на кнопку SB2 – воспроизводит следующую мелодию. Переключение мелодий осуществляется по кругу. Т.е. после последней найденной мелодии с именем «muson» (максимально – «muson10.wav») будет воспроизводиться мелодия с именем «muson01.wav».
Программа занимает 5200 байт ПЗУ. Исходные коды программы прилагаются, так что никто не мешает добавить поддержку хоть ста мелодий или еще каких либо «нужных» функций.
Прилагаемые файлы:
Да пребудет с вами Сила !
J