Музыкальный инструмент

Описание и внешний вид

Устройство представляет собой клавишный музыкальный инструмент, с несколькими режимами работы, предназначеный в основном для детей от 2х лет и старше.

Был использован корпус от промышлено выпускаемого детского электромузыкального иструмента. Собраный инструмент показан на фотографии ниже. А послушать как он звучит можно здесь: MP3 150Kb.

Музыкальный инструмент

Схема

Электронная часть полностью заменена, собрана на основе микроконтроллера AT90S2313 (аналог ATTINY2313). Схема показана на рисунке.

Схема музыкального инструмента

В процессе работы микроконтроллер с помощью регистров выполняет сканирование клавиатуры, и при обнаружении нажатой клавиши выводит соответствующий звук на динамик с использованием АЦП собранного на резисторах R1-R8. Частота сканирования клавиатуры около 60 Гц, частота дискретизации при выводе звука 15625 Гц. АЦП объединен с усилителем мощности и собран по самой простой схеме, поэтому для получения хорошего качества звука возможно придется подбирать транзистор КТ209.

Питание берется от 3х или 4х батареек AA, никаких дополнительных стабилизаторов не требуется, к выводам питания микроконтроллера надо подключить керамический конденсатор 0,1 мкФ (на схеме не показан).

В схеме предусмотрен автоматический переход в режим пониженного энергопотребления при отсутствии нажатий на клавиатуру в течении 5 минут. Ток потребления снижается примерно в 2 раза с 10 до 5 мА, для экономии батареек конечно лучше использовать обычный выключатель. Вывод PORTD,2 переходит в Z состояние при отключении микроконтроллера (в нормально режиме там 0), это можно использовать для автоматического выключения питания с помощью дополнительной схемы.

Программа

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

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

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

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

Во время работы программы, с вывода RXD микроконтроллера постоянно выдаются данные о состоянии клавиатуры, это позволяет использовать схему только для опроса клавиатуры, а звук синтезировать с помощью компьютера, написав соответствующую программу. Данные выдаются в стандартном последовательном протоколе на скорости 9600 бит/с, без четности. Блок данных состоит из 4х байт, три из них содержат текущие состояния клавиш (1-нажата) и четвертый байт, предназначенный для синхронизации, всегда равен 255.

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

Эта статья опубликована в в журнале "Радиолюбитель" и книге М.Голубцова "Микроконтроллеры AVR от простого к сложному"
Скачать (7 KБ).