Звонок с MMC/SD картой памяти.
Автор: Олег Трифонов
В Сети водится большое множество разных схем дверных звонков на микроконтроллерах, но просмотрев их, не смог найти для себя ничего подходящего. Хотелось бы, чтобы звонок мог воспроизводить много мелодий, как простых, так и полифонических или просто аудиофрагменты, а так же любые их комбинации и чтобы набор мелодий можно было легко менять не отключая звонка. Самым простым решением для воспроизведения голоса и полифонии является проигрывание содержимого wav-файла через ЦАП или ШИМ-модулятор. Первый вариант проще в реализации (благо, выводов у меги8 для 8-битного ЦАПа хватает), и не требует последующей фильтрации сигнала.
Микроконтроллер ATMega8 включен по типовой схеме, к его порту D подключен ЦАП на резисторах R3 .. R10, R11 .. R17, с выхода которого (на схеме AUDIO OUT) сигнал поступает на усилитель. Карта памяти вставляется в разъем X1 и питается через стабилизатор IC2. Вывод PC5 МК подключен к джамперу, который используется загрузчиком кода прошивки. Выводы PC0.. PC4 остались незадействованы, поэтому, подключил к ним светодиоды (анодами к МК и катодами на землю), мигающие в зависимости от проигрываемой ноты или амплитуды аудиофрагмента. К выводу PB0 подключается кнопка "застопоривания" смены мелодий: если она не нажата, мелодии будут проигрываться одна за другой, по списку, если нажата - будет зациклена последняя проигрываемая мелодия. Вывод PB1 управляет реле, которая самоблокирует кнопку звонка. В схеме использован кварц на 11059200Гц, в случае использования другого резонатора, надо изменить значение F_CPU в файле config.h.
Схемы и разводка печатных плат прилагаются (Eagle). Надо заметить, что на плате аналоговой части микросхемы устанавливаются на общий радиатор, который одновременно соединяет их земли. Это позволило развести одностороннюю плату без перемычек.
В корпусе: Для компиляции мелодий написана утилита MelodyFlasher. Перед первой записью надо иннициализировать карту памяти - отформатировать ее и создать файл данных, занимающий все доступное место. Это делается следующей командой: mf i -d <имя диска карты памяти> Программа позволяет формировать мелодии из нотных фрагментов, записываемых в формате мелодий для телефонов Motorola T720. Для прослушивания и редактирования мелодий удобно использовать программу Melody Player for Motorola, в этой программе есть большая база разных мелодий. Аудиофрагменты надо преобразовать в формат WAV, обязательно нежатый и монофонический. После подготовки всех фрагментов создается файл списка (в прилагаемом примере - melodies.lst). В каждой строке этого файла описывается одна мелодия, которая может состоять из любого числа .mel-фрагментов (нотная запись) и .wav-фрагментов, имена файлов этих фрагментов просто записываются в одну строку через запятую (см. прилагаемый пример). Стоит заметить, что если один и тот же файл фрагмента используется в мелодиях несколько раз, то в скомпилированный файл файл данных он будет включен единожды, без дублирования, т.е., файлы получаются достаточно компактные. Компиляции мелодий и их запись на карту производится следующей командой: mf u -d <имя диска карты памяти> -f <имя файла списка мелодий> Для работы с MMC/SD использована библиотека Роладна Ригеля (Roland Riegel), которая была несколько модифицирована. Прошивка и все исходники прилагаются.
Файлы: Вопросы, как всегда в Форум.
Эти статьи вам тоже могут пригодиться: |
|
||||||||||||
|
||||