Динамическая MIDI-клавиатура

Динамическая MIDI-клавиатура

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



MIDI-клавиатуры, описания которых опубликованы в [1—3], относятся к разряду статических. Они не реагируют на силу нажатия на клавиши исполнителем, что в значительной степени снижает выразительность звучания. Предлагаемая конструкция — динамическая. В ней предусмотрено косвенное измерение силы нажатия — по времени перемещения клавиши из одного положения в другое. Устройство способно обслуживать 16 каналов формирования звука, 128 инструментов. Можно смещать музыкальный строй на три октавы вверх или вниз, управлять громкостью, панорамой и одновременно оперировать тремя различными контроллерами. Клавиатура позволяет посылать команды сброса звучащих нот, контроллеров и всей системы. К ней можно подключить педали "Sustain", "Sostenuto" и "Soft", которые дублированы кнопками на панели управления.

Клавиатура запоминает все установленные режимы работы и сразу после включения питания автоматически передает команды, настраивающие текущий канал. Аналогичным образом команды настройки вновь выбранного канала передаются каждый раз при его смене. Набирать и корректировать ко¬манды смены режимов можно и во вре¬мя исполнения музыкального произведения, не внося никаких помех. Любая команда начнет действовать лишь после нажатия на кнопку "Enter".

Блок управления клавиатурой, схема которого приведена на рис. 1, собран на базе микропроцессора Z80 (DD4). Хотя его быстродействие по современным меркам невелико, удалось реализовать почти все необходимые для динамической клавиатуры функции. Правда, при этом пришлось отказаться от управления ритмом, активной проверки интерфейса и приема MIDI сообщении. Схемы узлов сброса микроконтроллера (на транзисторах VT1, VT2) и резервного питания микросхемы ОЗУ (DS3) заимствованы из [2]. Объем ОЗУ — 2 Кбайт. Рабочая программа хранится в ПЗУ емкостью 4 Кбайт, состоящем из микросхем DS1, DS2 (К572РФ5).



Тактовый генератор на 8 МГц выполнен на элементах DD1.1— DD1.3. С выходов двоичного счетчика DD5 синхронизирующие импульсы необходимых частот поступают на микросхемы микропроцессора DD4, адаптера последовательного интерфейса DD9 и контроллера клавиатуры (пульта управления) и дисплея DD10. Микросхема DD8 служит дешифратором адреса. Она формирует сигналы выбора различных периферийных устройств и памяти. Низкий логический уровень на выходе дополнительного дешифратора — микросхемы DD2 — разрешает работу узла опроса состояния клавиш, состоящего из дешифратора DD3 и мультиплексоров DD6 DD7.

Схема одной клавиши показана на рис. 2.



В отличие от большинства других конструкций она снабжена не нормально разомкнутой, а переключающей группой контактов SB1. Это позволяет по размыканию цепи А—В фиксировать начало, а по замыканию цепи А—С — завершение процесса нажатия на клавишу исполнителем. Чем интенсивнее нажатие, тем меньшим будет интервал между этими событиями. Диоды VD1 позволяют микропроцессору избежать логических ошибок при опросе. Хотя программа микропроцессора DD4 рассчитана на обслуживание 64 клавиш, в реальной конструкции их всего 60 и подключены они к выводам микросхем DD3, DD6, DD7 согласно табл. 1.



Клавиши условно объединены в четыре группы, в каждой из которых цепи В и С связаны с одними и теми же выводами микросхем. Это позволило выполнить неподвижные контакты в виде струн, натянутых параллельно вдоль клавиатуры с зазором примерно 4 мм. В результате подвижные контакты всех клавиш при нажатии "проходят" одинаковые расстояния, что важно для точного измерения времени переключения. В исходном режиме работы клавише 1 соответствует нота ДО большой октавы, 60 — СИ третьей октавы.

Узел опроса состояния кнопок управления SB4—SB25 и управления светодиодными индикаторами HG1— HG4 собран на микросхеме К580ВВ79 (DD10), включенной по стандартной схеме. Это освободило микропроцессор DD4 от выполнения многих рутинных операций. Определив, что нажата одна из кнопок SB4—SB8, SB11—SB25, микросхема DD10 сообщает об этом сигналом на своем выходе INT, соединенном со входом В3 мультиплексора DD7. Получив в процессе опроса клавиатуры этот сигнал, микропроцессор считывает из выходного регистра микросхемы DD10 код нажатой кнопки. Считанное значение зависит и от того, была ли нажата одна из функциональных кнопок SB9 " Alt 1" или SB 10 "Alt2".

К входам ВО—В2 мультиплексора DD7 через инверторы DD1.4—DD1.6 подключены кнопки SB1— SB3, дублирующие педали "Soft", "Sostenuto" и "Sustain", а через разъем XS2 — сами педали. Конденсаторы СЗ—С5 защищают устройство от помех. Входы В0— В3 мультиплексора DD6 на схеме рис. 1 показаны соединенными с общим проводом, но при совершенствовании клавиатуры на них можно подать дополнительные управляющие сигналы.

Диоды VD2—VD5 служат для развязки выходов SO—S3 микросхемы DD10 коммутирующих также анодные цепи индикаторов HG1—HG4. Шинный формирователь DD11 — усилитель сигналов управления катодными цепями этих индикаторов. Выходные сигналы MIDI интерфейса формирует по командам микропроцессора DD4 контроллер последовательного интерфейса DD9, тактируемый частотой 31,25 кГц.

Клавиатуру питают напряжением 5 В от блока, состоящего из понижающего трансформатора мощностью 5...6 Вт, диодного моста КЦ407А, сглаживающего конденсатора емкостью 1000 мкФ и интегрального стабилизатора КР142ЕН5А, соединенных по стандартной схеме. Потребляемый ток не превышает 0,5 А. Схема цепей питания блока управления клавиатурой показана на рис. 3, причем нумерация элементов на ней продолжает начатую на рис. 1.



Напряжение 5 В от внешнего блока питания через разъем ХР1 подается на все микросхемы, при этом вывод 12 микросхемы ОЗУ DS3 связан с общим проводом через открытый диод VD6 а аккумуляторная батарея GB1 подзаряжается. Ток зарядки ограничен резистором R28. После отключения внешнего источника питания батарея остается соединенной с выводами питания микросхемы DS3, чем гарантируется сохранность находящихся в ней данных. На все остальные микросхемы напряжение батареи не поступает, так как диод VD6 в этом режиме закрыт.

В качестве основы конструкции была использована клавиатура от электрооргана "Лель", помещенная в корпус, согнутый из металлического листа толщиной 0,5 мм, покрытого декоративной пленкой. Об особенностях устройства неподвижных контактов клавиш было сказано выше. Подчеркнем еще раз, что особенно важно выдержать одинаковый "ход" всех клавиш.

Элементы блока управления размещены на трех печатных платах, установленных внутри корпуса. Первая из них — "системная". На ней находятся микропроцессор DD4 с цепями сброса, синхронизации и управления, микросхемы ОЗУ и ПЗУ, контроллер последовательного интерфейса DD10. Розетки XS1 и XS2 выведены на заднюю панель корпуса. Вторая плата — пульт управления с кнопками SB4—SB25, светодиодными индикаторами HG1 — HG4 и микросхемами DD10, DD11. Кнопки SB1—SB3 установлены отдельно. На третьей плате находятся микросхемы DD3, DD6, DD7 и резисторы R7—R14. Она размещена таким образом, чтобы длина проводов, идущих к контактам клавиш, была минимальной. В противном случае неизбежны проблемы с наводками и помехами. Разделительные диоды (VD1 по схеме, приведенной на рис. 2) размещены непосредственно у контактов клавиш. Все узлы соединены между собой с помощью многопроводных плоских шлейфов и разъемов серии IDC.

При повторении устройства транзисторы VT1—VT6 можно заменять любыми маломощными соответствующей структуры, а микросхемы — функциональными аналогами из других серий, в том числе импортными. Например, К580ВВ79 — на i8279. КР580ВВ51 на i8251. К537РУ10 — на 6116, К573РФ5 — на К573РФ2 или 2716. Микросхемы ПЗУ рекомендуется устанавливать в панели. Аккумуляторная батарея GB1 на 3,6 В — от компьютера, но подойдут и три элемента Д-0.06, соединенных последовательно.

После сборки и проверки правильности монтажа необходимо подключить к клавиатуре через миллиамперметр блок питания и убедиться, что потребляемый ток не превышает указанного выше значения. Затем следует проверить работоспособность тактового генератора и измерить частоту импульсов на выходах делителя DD5. При номинальном напряжении питания логический уровень на выводе 26 микросхемы DD4 должен быть высоким, сменяясь низким при уменьшении напряжения примерно до 4,6 В. Когда внешнее питание отключено, а батарея GB1 заряжена, напряжение между выводами 24 и 12 микросхемы DS3 должно составлять 3...3,6 В, а между выводами питания других микросхем — отсутствовать. В остальных узлах достаточно проверить отсутствие обрывов и замыканий. После того, как устройство заработало и по интерфейсу MIDI пошла информация, поочередно нажимая на каждую кнопку и клавишу, проверяют их работу и при необходимости регулируют контакты.

Перед тем как рассказать о правилах работы с клавиатурой, остановимся на некоторых особенностях программного обеспечения. Микропроцессор, прежде всего, задает начальные значения системных переменных, настраивает контроллеры КР580ВВ51 и К580ВВ79. Затем он проверяет текущий канал формирования звука и передает по MIDI-интерфейсу команды его настройки. На этом инициализация заканчивается и начинается циклический опрос клавиш.

Если зафиксировано изменение состояния (например, размыкание нормально замкнутой цепи какой-либо клавиши), в ОЗУ запоминаются номера клавиши и цикла, в котором это произошло. После замыкания нормально разомкнутой цепи той же клавиши будет вычислена и передана по MIDI интерфейсу пропорциональная скорости нажатия разность номеров циклов. В программе приняты меры, исключающие обработку незавершенных действий, когда, например, клавиша была отпущена, не дойдя до "нажатого" состояния. В каждом цикле опрашиваются все клавиши и проверяются состояния педалей и кнопок пульта управления. При необходимости обрабатываются поступившие команды.

Распределение адресного пространства микроконтроллера следующее: 0000H-07FFH — ПЗУ (DS1); 0800H-0FFFH — ПЗУ (DS2); 1000Н—27FFH — свободно: 2800Н—2FFFH — контроллер последовательного интерфейса (DD9), используются только адреса 2800Н и 2801Н. 3000Н—37FFH — контроллер клавиатуры и дисплея(DD10) используются только адреса 3000Н и 3001Н; 3800Н—3FFFH — ОЗУ (DS3); 4000Н—0FEFFH — свободно; 0FF00H—0FF0FH клавиши; 0FF10H—0FF1FH — педали и сигнал INT DD10; 0FF20H-0FFFFH — не используется.

Функциональное назначение кнопок и их сочетаний указано в табл. 2. Клавиатура передает по MIDI интерфейсу команды смены режимов только после нажатия на кнопку SB25 "Enter". До этого, не прерывая исполнения музыки, можно набирать любые команды и корректировать их.



Для выбора команды нажимают на соответствующую кнопку, в некоторых случаях вместе с кнопками SB9 ("Alt1") или SB10 ("Alt2"). Числовые значения вводят, начиная с разряда сотен. В нем могут находиться только цифры 0 или 1. В противном случае в этом разряде светодиодного индикатора (табло) появится знак "-", а значение будет интерпретировано программой как нулевое. После сотен вводят цифры десятков и единиц. Если набранное значение превышает максимально допустимое для большинства команд 127 (исключение — номер канала, который должен находиться в пределах 1 — 16), на табло будет выведено ">127", а нажатие на кнопку SB25 "Enter" не приведет к передаче команды. Ее набор придется повторить с самого начала.

Полный исходный текст программы MlDI-клавиатуры.
Прошивка ПЗУ

ЛИТЕРАТУРА
1. Студнев А. МIDI клавиатура — Радио, 1993. № 11, с. 32—34
2. Кононов С. МIDI - клавиатура для мультимедиа-компьютеров и МIDI синтезаторов — Радио. 1997, № 3. с. 40—42. № 4. с 42,43.
3. Оборотов Н. Простая MIDI клавиатура для ПК — Радио, 2000. № 3, с. 25, 26, 44.
В. ЛУЗЯНИН, г. Кирово-Чепецк Кировской обл.
Радио 8-2001






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.