Главная » Музыкантам
Призовой фонд
на январь 2017 г.
1. 5000 руб.
Академия Благородных Металлов
2. 1000 руб.
Radio-Sale
3. Регулируемый паяльник 60 Вт
Паяльник
4. 600 руб.
От пользователей
5. Тестер компонентов LCR-T4
Паяльник

Похожие статьи:


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

Клавиатура предназначена для подключения к внешнему саунд-модулю или компьютеру (при наличии соответствующего интерфейса) с использованием MIDI протокола – для записи музыки в секвенсерную программу или живого исполнения. Количество клавиш в предложенном варианте 48, может быть увеличено без переделки схемы до 64. Отличительной особенностью предлагаемой клавиатуры является чувствительность к силе удара по клавише.

История создания устройства

Некоторое время назад в связи с покупкой квартиры я вынужденно лишился шикарного инструмента, выполнявшего у меня роль MIDI клавиатуры – это была легендарная YAMAHA DX-7. Когда печаль поутихла, во всей остроте и неприглядности встал вопрос: а на чем же работать? Именно в этот момент стараниями моего приятеля в мои загребущие ручонки попала полусобранная схема на КР1816ВЕ39 (по супостатски этот процессор зовется 8048). Схема проста и в сборке, и в наладке, и, главное, подвернулась под руку в нужное время. Клавиатуру я  собрал в виде матрицы 8x6, применив КР1533ИД7 и КР1533КП7. Не обошлось и без ложки дегтя – два недостатка этой схемы насмерть убивают все ее достоинства: отсутствие чувствительности к скорости нажатия клавиши (динамики) и колеса PITCH WEEL. Ну, я когда-то программировал на Z-80 (и даже сделал работающий секвенсор) и решил тряхнуть стариной. Z-80 как CPU я решительно отмел, как морально устаревший. Кроме того, не хотелось много паять, и я решил взять за основу этот самый девайс на КР1816ВЕ39, оснастив его еще одним мультиплексором для размыкающих (верхних) контактов клавиш. Я отыскал документацию (вы не поверите – в библиотеке, книга «Проектирование цифровых устройств на однокристальных микропроцессорах») на ассемблер КР1816ВЕ39 и накарябал программу…  И тут выяснилось, что у приятеля сдох программатор ПЗУ, и зашить программу просто нечем... От горя я совсем потерял разум и решил переписать тот же алгоритм под PIC. За полдня был спаян программатор (LUDIPIPO), затем макет из панельки, КР1533ИД7 и пары КР1533КП7, а весь монтаж сделан МГТФом без всякой печатки. И процесс пошел…

Сначала был запущен нединамический вариант программы (его я тоже привожу для тех, у кого клавиатура имеет один контакт на клавишу). Потом запустилась динамическая версия. И тут созрела мысль добавить кнопки и индикатор. Дело в том, что у меня без дела давно валялась платка WAVEBLASTER (дочерний wavetable синтезатор для очень старых звуковух). Подключивши ее к моему творению, я получил нечто, на чем можно играть (в меру сил и таланта) без компьютера, что иногда довольно удобно. Это и определило набор функций на кнопках – он может пригодиться при подключении к звуковым модулям при  “живой” игре. Функции кнопок легко изменить, написав свои обработчики и используя мои процедуры опроса и индикации. Кое-как собранная в железном корпусе клавиатура оказалась удобнее, чем YAMAHA PSS (все же полноразмерные клавиши, педаль и, главное, динамика!). В разгаре творческого процесса возникло труднопреодолимое желание сделать версию MIDI клавиатуры чисто для компьютера – индикатор и кнопки необязательны, но нужны колеса PITCH WEEL и MODULATION. Некоторое время я с ним боролся, но, в конце концов, сдался и снова включил паяльник. Электронику собрать несложно, с механикой – несколько сложнее, и я начал морщить лоб над устройством колеса. Поразмыслив, я решил отказаться от второго колеса - все равно я никогда не кручу их сразу оба, обычно сначала пишу ноты и  pitch, затем дописываю modulation. Не последним соображением было и уменьшение в два раза объема столь любимых мною механических работ. Для менее ленивых я ниже объясню, как почти не усложняя схему сделать два колеса. Чтобы все-таки иметь возможность писать modulation, я решил организовать три режима работы колеса: pitch на 2 полутона, pitch на 1 полутон (удобно), и modulation. Переключать это все можно одной кнопкой, а индицировать режим – парой светодиодов. Чтобы упростить схему, остальные кнопки и индикаторы я ликвидировал, для работы с современными программами-секвенсорами это все не нужно.

Колесо, конечно же, должно быть надето на ось потенциометра, это-то понятно, а вот к чему его подключить? Первой мыслью было использовать одновибратор на таймере 555. Но расчет показал, что будет трудно добиться точности и стабильности измерения длительности импульса при попытке обеспечить приемлемую частоту опроса колеса, ведь процессор в основном занят измерением времени переключения клавиатурных контактов. Остался путь использования аналого-цифрового преобразователя (АЦП). Поскольку у меня использовался Pic16F84 без встроенного АЦП, я вспомнил инженерное прошлое (и родной завод) и сделал АЦП из нескольких резисторов с компаратором (и куска программы). Получилось просто, дешево и довольно точно.

Я привожу обе схемы – и с кнопками, и с колесом, а также программы для них. При желании обе схемы можно легко совместить, слегка изменив адреса внешних устройств, нужно только помнить, что режим CHORUS (STEREO) использует pitch для получения расстройки и его нужно или убрать, или озаботится передачей pitch с расстройкой по каналам.

Итак – собственно клавиатура

Схема устройства

Первым появился нединамический вариант, нечувствительный к силе удара по клавише – для проверки работоспособности макета.

Схема нединамического варианта

Я использовал PIC16F84 в качестве процессора из нескольких соображений: эта микросхема доступна, дешева и удобно программируется, кроме того – именно она оказалась у меня под руками. Внимание: PIC16C84 не годится - у него ОЗУ всего 36 ячеек и программа не будет работать. Впрочем, схема с колесом использует меньше ячеек ОЗУ и ее программу можно втиснуть и в PIC16C84, сократив еще пару ячеек, например MIDCH (присвоив постоянный MIDI канал всем передаваемым данным).

Схема динамической клавиатуры с индикацией приведена ниже:

Схема динамической клавиатуры с индикацией

Схема во многом традиционна - трудно изобрести велосипед без педалей и колес.J Порт B работает на передачу - младшие 7 бит выводят адрес клавиши в матрице или данные для внешних устройств (индикатор и ЦАП колеса). Старший бит используется для вывода MIDI данных последовательным кодом - преобразование и вывод сделаны программными. Поэтому кварц должен быть на 4 MHz, если вы не хотите переписывать процедуру вывода байта по MIDI. Два младших бита порта A работают на прием - на них поступают сигналы с мультиплексоров “отпущенных” и “нажатых” контактов клавиш, а три старших бита определяют адрес внешнего устройства (через еще один дешифратор КР1533ИД7). В схеме с колесом от дешифратора адреса внешнего устройства я отказался для упрощения схемы и освобождения старшего бита порта PA4 для ввода данных с компаратора, поэтому адреса клавиатуры и кнопок другие. При совмещении схем эту микросхему придется вернуть, для дешифрации адреса использовать биты порта PA2 и PA3,и адресовать 4 устройства: клавиатуру, кнопки, регистр данных динамической индикации и регистр знакоместа динамической индикации. Индикацию режимов колеса придется переписать.

Схема с колесом PITCH WEEL / MODULATION выглядит так:

Схема с колесом PITCH WEEL / MODULATION

На каждую клавишу ставится один диод для развязки. Резисторы на входах мультиплексоров не должны быть более 8k, иначе возможны глюки из-за емкости монтажа. Индикатор - любой с общим анодом на 3 разряда, если выводы сегментов каждого разряда выведены отдельно, выводы одноименных сегментов нужно объединить - индикация динамическая и разряды зажигаются последовательно. Кнопки любые, без фиксации, дребезг контактов давится программно. Светодиоды установлены возле одноименных кнопок и индицируют включение соответствующих режимов, кнопки «+» и «- » светодиодов не имеют. Транзисторы на индикаторе любые маломощные высокочастотные обратной проводимости. Два регистра КР1533ИР23 использованы для  поочередного защелкивания адреса и кода  текущего разряда индикатора (светодиоды тоже сгруппированы в два квазиразряда). У меня использована стандартная клавиатура от еще советских электроорганов на 48 клавиш (она выпускалась и отдельно как радиоконструктор «СТАРТ», и довольно широко распространена). Чтобы уменьшить высоту клавиатуры и толщину инструмента, из шести контактных групп под каждой клавишей оставлено две, и все это обрезано и переклеено. Вообще достаточно одной переключающей группы на клавишу, но так было удобней клеить. Сборные шины “отпущенных” и “нажатых” контактов имеют длину 8 клавиш. При желании можно использовать и клавиатуру, где вместо переключающей группы контактов используется две пары замыкающих контактов – одна пара замыкается в начале движения клавиши, другая в конце (как на инструментах YAMAHA). В этом случае сигнал на PA0 нужно подавать с инверсного выхода мультиплексора (вывод 6). Без изменений в схеме можно использовать клавиатуру на 64 клавиши (стандарт – 61, т.е. 5 октав). При необходимости число клавиш может быть увеличено хоть до 127, для этого в схему нужно ввести еще один дешифратор КР1533ИД7.

Очень важно хорошо отстроить механику - верхние контакты ОБЯЗАТЕЛЬНО должны замыкаться при отпускании клавиш. Если этого не сделать, программа считает такие клавиши нажатыми и пытается их обрабатывать, поэтому повторное нажатие этих клавиш звука не дает. Кроме того, максимальное количество одновременно звучащих нот – 10 (если у кого-нибудь на руках выросло больше пальцев, это количество легко изменить), и не отпущенные клавиши уменьшают это количество. Из этих же соображений число клавиш, указанное в процедуре опроса клавиатуры, должно ОБЯЗАТЕЛЬНО совпадать с количеством реальных клавиш. Дребезг контактов давится программно.

Для резистивной матрицы R-2R АЦП желательно подобрать резисторы с точностью 1–2%, причем абсолютные значения могут быть и другие, важно отношение. Впрочем, сильно увеличивать номинал не стоит, это увеличит время преобразования из-за входной емкости компаратора. Я использовал SMD резисторы без подбора, хотя измерения показали, что в одной монтажной полоске резисторы обычно согласованы с точностью выше 1%. Я уверен, что схема будет работать и с неточными резисторами, но линейность характеристики ухудшится. Само колесо сделано из ручки от старого телевизора и имеет пружинку на оси потенциометра, возвращающую его в среднее положение. Для удобства настройки механики, при включении питания с нажатой кнопкой режима, включается отладочная программа, зажигающая светодиод, когда колесо находится в среднем положении, это позволяет точно настроить нулевой положение колеса на оси потенциометра. Если есть потребность и желание сделать отдельное колесо MODULATION, его нужно подключить к свободному элементу компаратора (их там четыре), причем матрица R-2R у обоих колес общая. Для коммутации выходов компараторов лучше применить дополнительную микросхему, а в качестве управляющего сигнала использовать PA2.

При желании можно собрать динамический вариант клавиатуры и без индикации, кнопок и колеса PITCH WEEL / MODULATION – просто не собирая неиспользуемую часть схемы. Все изменяемые параметры будут установлены по умолчанию при включении питания…

Питать это все можно от чего угодно, ток потребления зависит от конкретного индикатора и не превышает 100 mA. У меня прямо на плате стоит стабилизатор 7805 без радиатора (его хорошо видно на фотографии). Небольшой радиатор нужен, если на него подавать более 9v. Компаратор питается напряжением 9 – 12 v, желательно стабилизированным. Да, я использовал микросхемы советского производства из старых запасов – существует большое количество их современных аналогов, замена возможна и даже желательна – современные аналоги имеют меньшее потребление.

Программа

Алгоритм обработки нажатых клавиш происходит от предложенного в журнале «Микропроцессорные средства и системы» №5 за 1986г. Именно эта публикация (а точнее, ошибка в предложенной программе) и побудила меня к изучению ассемблера. Собственно, оттуда взята лишь идея записывать номер каждой нажатой клавиши в специально выделенную область ОЗУ (CHAN), чтобы при повторном опросе клавиатуры не обрабатывать снова уже обработанную клавишу. У меня под каждую из нажатых клавиш (всего не более 10) отведено две ячейки ОЗУ: в первой записывается номер нажатой клавиши, во второй – ее VELOCITY (скорость нажатия). Повторюсь – этих ячеек всего 20 и начальный адрес задан именем CHAN. Признаком свободной пары является установленный старший бит первой ячейки. Установленный старший бит второй ячейки означает, что NOTE ON для этой клавиши уже передано и в дальнейшей обработке она не нуждается.

Подробно описывать всю программу я не буду, исходник изобилует комментариями и для подготовленного человека вполне доступен. Для остальных я даю сразу готовые прошивки в файле Dinamic.hex и Pitchmod.hex. Поясню только некоторые неочевидные моменты. Ну, прежде всего о динамике: в момент размыкания верхних контактов клавиши ее номер записывается в первую ячейку первой же свободной пары из области CHAN, одновременно сбрасывая признак свободной пары. Во вторую ячейку записывается начальное значение VELOCITY = 127. Чувствительность клавиатуры определяется частотой следования прерываний, так как обработка прерывания уменьшает значения VELOCITY для всех клавиш, NOTE ON которых еще не передано. Прерывания вызываются встроенным таймером. В момент замыкания нижних контактов клавиши в соответствующей ячейке CHAN  устанавливается признак «переданности» и передается NOTE ON с текущей VELOCITY. Для улучшения кривой чувствительности уменьшение значений VELOCITY идет по логарифмическому закону: из текущего значения VELOCITY вычитается 1/16 его часть, уменьшенная на 1. Таким образом, во время движения клавиши от верхнего контакта к нижнему значение VELOCITY в соответствующей ячейке CHAN уменьшается по логарифмическому закону, и чем быстрее движется клавиша, тем больше VELOCITY в момент замыкания нижних контактов клавиши и передачи NOTE ON. Прерывания также управляют динамической индикацией, это сделано для устранения мерцания индикатора.
Функции кнопок: TRANSPOSE - все тональности приводятся к любимому ля-минору: диапазон +/- 15 полутонов. PRG назначает тембр (инструмент) для заданного пресета (UP1-UP5), а VOL – его громкость. Текущий параметр выводится на индикатор и может изменяться кнопками «+» и «-».TWIN выводит «двойной» тембр – звучат одновременно один из пресетов (UP1-UP5) и, одновременно пресет LOWER. STEREO выводит звук текущего пресета в правый и левый стереоканалы с небольшой «расстройкой» (эффект «хорус»). Кнопка SPLIT не задействована. Педаль SUSTAIN схемотехнически выполнена, как одна из кнопок, емкость ее провода не должна быть очень большой. Адреса обработчиков кнопок собраны в таблицу в начале программы, при изменении функций кнопок можно подставить свои.

АЦП колеса наполовину программный, работает по алгоритму последовательных приближений, матрица R-2R выполняет преобразование “цифра - аналог”. Вначале на матрицу R-2R подается 1 в старшем разряде, и компаратор определяет, много это или мало. Если мало, в старшем разряде остается 1, если много – 0.Далее то же самое происходит с каждым следующим младшим разрядом (всего 6 шагов) и мы получаем шестибитное число, соответствующее углу поворота колеса. Такая точность мне представляется достаточной, но можно добавить еще один бит, увеличив матрицу и программу преобразования.

Конструкция

В качестве собственно клавиатуры я использовал конструктор «Старт» советского производства, сейчас, пожалуй, легче найти старую неработоспособную Ямаху или Касио, это решит и проблему изготовления корпуса – если он конечно у старого инструмента относительно цел…

Печатная плата не разрабатывалась – я посчитал нецелесообразным для изготовления единичного экземпляра устройства тратить время на разводку и изготовление платы, а макет был изготовлен на монтажной плате с помощью перемычек из МГТФа. В качестве разъема  и шлейфа к клавиатуре был использован шлейф от флоппи-дисководов из компьютера с соответствующим разъемом с каждой стороны – это облегчает сборку/разборку готового устройства.

Плата

В моем случае корпус был выгнут из тонкой листовой стали (что было под руками) – с деревянными боковинами (как у старых советских инструментов).

Ну вот, вкратце, и все. Творческих успехов!

MIDI-клавиатура

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Схема №1.
МикроконтроллерPIC16F841 Поиск в FivelВ блокнот
МикросхемаКР1533ИД71 Поиск в FivelВ блокнот
МикросхемаКР1533КП71 Поиск в FivelВ блокнот
Линейный регулятор
LM7805
1 Поиск в FivelВ блокнот
Диод
КД522А
64 Поиск в FivelВ блокнот
Конденсатор22 пФ2 Поиск в FivelВ блокнот
Конденсатор0.1 мкФ2 Поиск в FivelВ блокнот
Электролитический конденсатор100 мкФ2 Поиск в FivelВ блокнот
Резистор
220 Ом
2 Поиск в FivelВ блокнот
Резистор
6.8 кОм
8 Поиск в FivelВ блокнот
Кварцевый резонатор4 МГц1 Поиск в FivelВ блокнот
Клавишная кнопка64 Поиск в FivelВ блокнот
Схема №2.
МикроконтроллерPIC16F841 Поиск в FivelВ блокнот
МикросхемаКР1533ИД72 Поиск в FivelВ блокнот
МикросхемаКР1533КП72 Поиск в FivelВ блокнот
МикросхемаКР1533ИР232 Поиск в FivelВ блокнот
Линейный регулятор
LM7805
1 Поиск в FivelВ блокнот
Биполярный транзистор
КТ315А
5 Поиск в FivelВ блокнот
Диод
КД522А
80 Поиск в FivelВ блокнот
Конденсатор22 пФ2 Поиск в FivelВ блокнот
Конденсатор0.1 мкФ2 Поиск в FivelВ блокнот
Электролитический конденсатор100 мкФ2 Поиск в FivelВ блокнот
Резистор
180 Ом
7 Поиск в FivelВ блокнот
Резистор
220 Ом
2 Поиск в FivelВ блокнот
Резистор
6.8 кОм
16 Поиск в FivelВ блокнот
Резистор
8 кОм
1 Поиск в FivelВ блокнот
Кварцевый резонатор4 МГц1 Поиск в FivelВ блокнот
3-х разрядный светодиодный цифровой индикатор, с общими анодами.1 Поиск в FivelВ блокнот
СветодиодКрасный12 Поиск в FivelВ блокнот
Клавишный переключатель64 Поиск в FivelВ блокнот
Кнопка16 Поиск в FivelВ блокнот
Схема №3.
МикроконтроллерPIC16F841 Поиск в FivelВ блокнот
МикросхемаКР1533ИД71 Поиск в FivelВ блокнот
МикросхемаКР1533КП72 Поиск в FivelВ блокнот
Компаратор
LM339
1 Поиск в FivelВ блокнот
Линейный регулятор
LM7805
1 Поиск в FivelВ блокнот
Диод
КД522А
80 Поиск в FivelВ блокнот
Конденсатор22 пФ2 Поиск в FivelВ блокнот
Конденсатор0.1 мкФ4 Поиск в FivelВ блокнот
Электролитический конденсатор100 мкФ3 Поиск в FivelВ блокнот
Резистор
220 Ом
2 Поиск в FivelВ блокнот
Резистор
680 Ом
2 Поиск в FivelВ блокнот
Резистор
1 кОм
5 Поиск в FivelВ блокнот
Резистор
2 кОм
7 Поиск в FivelВ блокнот
Резистор
6.8 кОм
17 Поиск в FivelВ блокнот
Резистор
10 кОм
1 Поиск в FivelВ блокнот
Переменный резистор10 кОм1 Поиск в FivelВ блокнот
Кварцевый резонатор4 МГц1 Поиск в FivelВ блокнот
СветодиодКрасный1 Поиск в FivelВ блокнот
СветодиодЗеленый1 Поиск в FivelВ блокнот
Клавишный переключатель64 Поиск в FivelВ блокнот
Кнопка16 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Семенов Михаил Валентинович Опубликована: 2012 г. 0 2
Я собрал 1 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (71) | Я собрал (0) | Подписаться

0
barrak #
Видео работы можно увидеть плиз?
Ответить
0
weres #
Отличная статья, люди ищут такую схему, если бы заработала - респект!
Ответить
0
Vinchence #
Работает отлично, если исходник поправить (конфигурация, банк и помелочам F), очень доволен данной разработкай. Впихнул её в старый синтезатор "ионика" на 5 октав
Ответить
0
Эдуард #
динамическая клавиатура может работать с такой механикой ?
Прикрепленный файл: keyboard_button_sm.jpg
Ответить
0
revbishop #
Очень давно хотел сделать MIDI клавиатуру на молоточковой механике. Если эта схема работает это просто мечта! Жене очень дома нужна клавиша 88 нот. Можно будет в качестве тон генератора использовать комп. Срочно приступаю к изготовлению печатки.
ВОПРОС: как правильно подключить дополнительный КР1533ИД7? Я так понимаю на другие шины порта KB3, KB4, KB5? И что с прошивкой, доп подключение этой микросхемы уже прописано?
И ещё вопрос: в продаже нашёл только PIC16F84A. Я так понимаю прошивка на них должна быть откомпилирована по другому? Что делать? В ПИКах вообще не силён, умею их только прошивать когда всё готово.
Ответить
0
Владимир #
Не динамическая прошивка ругается на неверное ключевое слово. Программатор "Тритон". Что делать?
Ответить
0
Игорь #
Есть ли у кого рисунок печатной платы полной схемы с индикацией и Pitch Bend?
Ответить
0
Vadim #
Супер статья!
Подскажите как правильно организовать коммутацию выходов компараторов (PITCH WEEL / MODULATION) под управлением РА2 с применением какой микросхемы и е сли можно рисунок этой части схемы или более подробное описание.
Ответить
0
Sergey #
Здравствуйте Vadim. Подскажите пожалуйста вы смогли собрать эту плату и подключить?
Ответить
0
Vinchence #
Чтоб запустить эту схему, мне пришлось поизучать ASM, так как прошивка немножко корявая. Делал по схеме с индикацией на макетной плате, так в корпусе синтезатора и закрепил между винчестером и материнской платой, в качестве монитора навигатор на 5” с видео входом . Исходник ещё остался, прошивка в синтезаторе.
Ответить
0
Ingvar #
Здравствуйте Vinchence. Как можно получить вашу прошивку?
Ответить
0
Vinchence #
Разбирать синтезатор пока нет времени, вот мой исходник (наверное этот, много время прошло). Можно сравнить в Total Commander по содержимому.
Прикрепленный файл: Dinamic.asm
Ответить
0
Дмитрий #
Ну как прошивка? Тестировали? Скажите результат
Ответить
0
Vinchence #
Прошивка сыровата (необходим другой PIC c АЦП), а так работает на ура. Все навороты делают программы из винды, лагов при игре не выявлено.
Ответить
0
jpatay #
А не проще сделать МИДИ на PIC18F45K22? Вот по такой схеме:
Прикрепленный файл: 1432758e2e2ef76d1e02433714a82252589399207377276.png
Ответить
0
Vinchence #
Из этой линейки лучше брать PIC18F2550, у него есть USB, отпадёт необходимость в MIDI картах которые в WINDOWS 7 и выше не поддерживаются, так как их упразднили. Сам проверял, принудительно прикручиваешь драйвера, audio есть, а midi нет. Win XP осталась для старых материнок и банкоматов.
Ответить
0
jpatay #
Vinchence,у меня Windows 7. Звуковуха Creative SB live 5.1 с 15-ти штырьковым разъёмом GAME/MIDI, работает отлично. Клавиатуру собрал от двухрядного Эстрадина 9. Соединил две клавы последовательно и получил 88 клавиш. Всё отлично работает по той схеме. Но автор этой схемы дал мне глючную прошивку, а окончательную версию "зажал". Программы писать я не умею, вот и ищу рабочую прошивку под эту схему. Там есть и печатка в Lay. Погуглите-Изготовление MIDI-клавиатуры.Автор-Dmitry Dubrovenko.
Ответить
+1
Vinchence #
Твоя правда, это я попутал с game портом так как недавно писал джойстик, и была целая проблема с внешними картами. По поводу твоей прошивки, если есть исходник могу погонять в симуляторах. Прошивку под схему найти?! Каждый пишет для своих нужд или под заказ, интерес и т.д., это же не клон популярного девайса который делают универсальным для разных нужд.
Ответить
0
jpatay #
Исходник у него на форуме просили, не даёт.
Ответить
+1
63sergiostan #
Вот держи прошивку для MIDI-клавиатуры на PIC18F45K22. Нашёл на просторах интернета. Правда не знаю рабочая она или нет, но попробуй и отпишись, потому что я тоже надумал себе сделать МИДИ на базе Электроники ЭМ-5, но пока проверить не могу, так как жду посылку с PIC18F45K22
Прикрепленный файл: zConva_46k22_v02.hex
Ответить
0
jpatay #
63sergiostan, спасибо дружище! Зашил ПИК, всё заработало сразу. Играют все 88 клавиш. Пришлось, правда, при помощи настроек сдвинуть строй на одну октаву вниз и выбрать оптимальную динамику нажатия клавиш. Всё, теперь делаю корпус.
Ответить
0
jpatay #
Нарисовал печатку на третий вариант схемы в формате Lay. Печатка имеет вид со стороны дорожек, так что нужно зеркалить. Плату ещё не паял, могут быть ошибки, проверяйте. Компаратор применён LM393. Плата рассчитана на клавиатуру с двумя открытыми контактами (как у Ямахи), потому перемычка стоит на 6 ноге КР1533КП7. С перекидным контактом надо перемычку запаять на 5 вывод КР1533КП7.
Прикрепленный файл: midi.1.lay6
Ответить
0
jpatay #
Схема №3 МИДИ-клавиатуры (на двух открытых контактах)-работает. Проверено.
Ответить
0
jpatay #
Выкладываю схему матрицы и доработанную печатку:
Прикрепленный файл: матрица1.JPG
Ответить
0
jpatay #
Печатку нужно зеркалить.
Прикрепленный файл: midi.1.lay6
Ответить
0
erandess #
Вопрос по печатке. Справа вверху два резистора 6.8 кОм. Не понял - верхний резистор зачем? И второе - на выход 4 разъема MIDI,по идее, должно идти +5v, а не земля.
Ответить
0
jpatay #
Vinchence,подскажи,что нужно сделать,чтобы играли все 64 клавиши? Я собрал схему №3 и у меня звучат только 48 клавиш (как у автора). Кнопками настроек можно сдвинуть строй? Или надо переписывать прошивку? Кнопки я не устанавливал потому, что на схеме они не показаны.
Ответить
+1
Vinchence #
Открываешь исходник, ищешь строчку ( MOVLW D'48' ;кол-во клавиш- длина опроса !!! ) и меняешь 48 на 64, компилируешь и заливаешь в PIC.
Ответить
0
jpatay #
Выкладываю прошивку для схемы №3 на 64 клавиши,благо программисты мне помогли....
Прикрепленный файл: PitchMod.HEX
Ответить
0
Владимир #
Попробовал прошивку. Korg M1 не воспроизводит звук. По MIDI идут команды 40 88 80 и 00 88 FF FF.
А MIDI команды должны быть

Канальные сообщения:
8n nn vv - Note Off (выключение ноты)
9n nn vv - Note On (включение ноты)
Ответить
0
Алексей #
Товарищи, эту миди можно поставить на Форманту - ЭМС 01? Трёх октавная механика!
Ответить
0
jpatay #
Алексей, смотрел схему Форманты, но так и не понял какие там контакты. Кажется только на замыкание, стоят герконы. Но я не уверен. Надо, чтобы были перекидные контакты, тогда можно собрать схему динамической клавиатуры. А что это значит-трёх октавная механика? Открой и посмотри, какие там контакты под клавишами. Или сфоткай. Вот схема: http://download.qrz.ru/pub/hamradio/schemes/music/formanta-ems01.pdf
Ответить
0
jpatay #
Vinchence, спасибо. Я уже всё это сделал, правда не сам. Ты не мог бы помочь в разработке схемы и прошивки на 88 клавиш на базе схемы №3? Автор пишет, что нужно добавить ещё одну м/с КР1533ИД7.
Но я думаю, что надо две микры, так как есть два контакта. Я бы схему спаял, но в теории слабоват.
Ответить
0
jpatay #
erandess, 4-я ножка Пика- это MCLR,чистый плюс обычно туда не подаётся,а через резистор.В данном случае через 6,8 Ком.Можете поставить вместо резистора перемычку,как на схеме.
У меня выход МИДИ работает по двум проводам. Один- это выход МИДИ(5) и идёт на 15 ножку разъёма звуковой карты компа,а второй-корпус соединён с 4 и 5 ножкой звуковой карты.У меня звуковая карта имеет 15 пиновый разъём Game/Midi.Шнур МИДИ я спаял себе сам.Всё зависит от звуковой карты.
Кликните мышкой на зелёный прямоугольник,на котором написано "Я собрал". Он находится справа от "Вознаградить". Я там кратко всё описал и сфоткал.
Ответить
0
Эд #
Кто нибудь делал динамическую клавиатуру на такой механике?
Дополнительный вопрос: как переделать схему под открытые контакты, так понимаю - должна подойти 3-я схема
Прикрепленный файл: 37525_keyboard_button_sm.jpg
Ответить
0
jpatay #
Эд, механика как раз под 3-ю схему. Я с такой механикой клавиатуры себе спаял. Читай внимательно комментарии, там всё написано. Есть схема матрицы, печатка и прошивка на 64 клавиши.
Ответить
0
Владимир #
Собрал 3 схему, использую ttl-usb преобразователь,
программный синтезатор korg_M1, midi-yokeNT, loopbe1, звук не воспроизводится.По midi при не нажатой клавише идут байты 80 00 ff ff, при нажатии идут 80 00 ff ff 40 03 f7 ff и т.д. Раньше собирал midi_skorpion там звук был.
Подскажите что можно сделать?
Ответить
0
jpatay #
Владимир,надо попробовать на звуковую карту с GAME/MIDI портом.Найти старенький комп с звуковухой типа СОУНД-БЛАСТЕР.НУ и спаять шнур МИДИ.Сам разъём я взял от игровых приставок,15-ти пиновый.У меня тоже сначала не пошло,пока не убрал 1 кОм с 15-го пина в шнуре.Т.е. снял питание 5 Вольт с 15-го пина.Не знаю почему так, но заработало.Читал на форумах,что по USB всегда какие то заморочки.Может надо по выходу МИДИ поставить буфер-инвертор на к155ла3.
Почитай здесь,там и схема с буфером:
http://www.dubrovenko.ru/ddssite/forum/viewtopic.php?f=27&t=42&start=40
Отредактирован 01.12.2016 12:53
Ответить
0
Владимир #
Звуковую карту с GAME/MIDI с шиной PCI-E не найти, системный блок тоже сомнительно. И до этого с ttl-usb, korg_M1, midi-yokeNT, loopbe1с MIDI клавиатурой midi_skorpion всё работало. По MIDI при не нажатой клавише ничего не должно быть.
Попробовал прошивку PitchMod.HEX выложенную вами там при не нажатой чисто.
А при нажатии и отпускании клавиши идут команды 40 88 80 и 00 88 FF FF вместо 80 88 80 и 90 88 FF FF..
А MIDI команды должны быть
Канальные сообщения:
8n nn vv - Note Off (выключение ноты)
9n nn vv - Note On (включение ноты)
Ответить
0
jpatay #
Владимир,я не понял... Вы подключаете свою плату МИДИ в Корг или в комп? Матрицу правильно спаяли? По той схеме,что я выкладывал? У автора в схеме матрицы ошибка. Если подключаете в ПК,скачайте прогу MIDI-OX. По ней хорошо тестировать МИДИ. Выход МИДИ должен идти на 5-пин, а +5 В через резистор 1кОм на 4-пин пятиштырьковой "папки" DIN 5.
Теперь понял,это программный Корг.Значит играете через комп.Из Ваших слов, ПК видит нажатие клавиш.Значит сигнал проходит.Может попробуйте пропустить выход МИДИ через инвертор И-НЕ.
Лично я всё настраивал через MIDI-OX.
Ответить
0
Владимир #
С прошивкой Семёнова по MIDI даже при не нажатой клавише идут сигналы с кодом не соответствующей кодам включения или выключения ноты. С прошивкой выложенной вами при не нажатой клавише сигналов нет, как и должно быть. При нажатии клавиши идет код например 40 88 80 ,что не соответствует команде MIDI " включить ноту " . Первый байт должен быть 90h. Инвертировать 40h можно в уме ,будет Bh,что тоже не соответствует команде " включить ноту"
Ошибку в матрице видел сразу. У меня матрица на перключение т.е. верхние замкнуты нижние разомкнуты.
Ответить
0
Владимир #
Использовать midi-yokeNT, loopbe или MIDI-OX. нет разницы, с midi клавиатурой skorpion в KORG M!работало и стем и с этим
Ответить
0
jpatay #
Если делали по моей печатке и у Вас перекидные контакты, тогда PA0 нужно перекинуть с 6-го на 5-й вывод микросхемы (как у автора). У меня клавиатура с открытыми контактами, потому РА0 идёт на 6-ю ножку м/с.
Ответить
0
Владимир #
Печатку делал свою по схеме Семёнова. А вы выложили прошивку на вариант с разомкнутыми контактами? Тогда не смогут ли ваши знакомые программисты доработать прошивку на вариант с переключающимися контактами?
Ответить
0
jpatay #
Прошивка та же, разница только в схеме. Прошивку мне изменили на 64 клавиши, а было 48. У меня всё работает. Даже не знаю, что посоветовать. Клавиатура использовалась от какого инструмента? Заливайте мою прошивку, она рабочая. Попробуйте 4-ую ногу ПИКа посадить на + через 6,8 кОм и кондёр 0,1 мкФ на корпус. У меня так.
Ответить
0
Владимирv #
Прошивки всё же разные. Сравните прошивки total comander. Разница в прошивке для 64 и 48 клавиш была бы только в 1 байте. Ставить R и C необязательно. Просто в байте конфигурации нужно ставить задержку начала работы. Клавиатура доработанная от набора "Старт". И все же какие коды команд у вас идут по MIDI каналу?
Ответить
0
jpatay #
Есть три прошивки у автора: NEDYN.HEX, DINAMIC.HEX, PITCHMOD.HEX. Для схемы №3-PITCHMOD.HEX. Вот в ней цифры 48 заменены на 64, и всё.
Я купил себе цифровое пианино Alesis, а своё МИДИ отнёс в гараж. Сегодня или завтра заберу, попробую и отпишусь. Попробуйте отключить матрицу и припаять контакты одной клавиши (без диода), зазвучит или нет. Может ошибка есть в монтаже. Диод поставили как на картинке?
Прикрепленный файл: music28-3.png
Ответить
0
jpatay #
У меня с платы в шнур МИДИ идут два провода.Один-корпус,а другой- MIDI OUT,через резистор 220 Ом.Стал мультиметром на MIDI OUT.Там 4,9 Вольт.При нажатии клавиши-4,75 В.
В разъёме звуковухи корпус посадил на 5 пин(GND), а MIDI OUT-на 15 пин(midi RXD). И всё. Сделай так же в своём ЮСБи. Может прокатит.

Сейчас разберу свой шнур МИДИ и посмотрю,что я там натворил. У меня сначала тоже не работало. Вот отчёт с Мидиокса:
Прикрепленный файл: 1.png
Ответить
0
Владимир #
Это уже от пианино Alesis или как? Покажите настройки MIDI-OX. У меня такие. И команды какие идут.
Прикрепленный файл: com_monitor.png
Прикрепленный файл: midi_ox_1.png
Ответить
0
Владимир #
Vinchence, погоняйте пожалуйста ассемблер по 3 схеме в симуляторе и если можно поправьте исходник.
Ответить
0
jpatay #
Какое там пианино? Что мне больше заняться нечем? Схема рабочая 100%. Там даже дребезг присутствует, клавиатура не очень хорошая. Отлично работает эта схема с такими прогами: EZkeys-64,Kontakt 5,Absynth 5.
Вот мои настройки:
Прикрепленный файл: 1.png
Ответить
0
Владимир #
Это у вас с реальной звуковой картой. Диск от пианино Alesis не сможете выложить? А я подправил PITCHMOD.ASM как Vinchence в DINAMIC.ASM и получил .HEX файл,который очень сильно отличается от PITCHMOD.HEX. Завтра буду прошивать и пробовать.
Ответить
0
jpatay #
У пианино Alesis Coda Pro- диска нет. Если можете писать прошивы, так это классно. Обязательно напишите какой результат получится. Если сделать прошивку на 88 клавиш, вообще было бы супер. Просил я Винченсе, но он не ответил.
Ответить
0
Владимир #
Попробовал прошивку, вообще не работает, все выводы в висячем положении. Только кварц работает. Исходники подправлял не вдаваясь, ( разбираюсь не ахти ) просто сравнивая .asm от Vinchence c .asm автора и соответственно подправляя в PITCHMOD.ASM . У меня проблема видимо в том что MIDI программы почему то не понимают вертуалный COM порт, хотя другие программы ( serial port monitor ) команды видят правильно.
Ответить
0
Владимир #
В PITCHMOD.ASM подправил в 8 местах, потом полученный .HEX сравнивал с PITCHMOD.HEX разница в более чем 100 местах. Создаётся впечатление что скомпелирован не PITCHMOD.ASM.
Ответить
0
jpatay #
Я вообще в программировании слабак. В электронике ещё могу...
Мне кажется, что причина в переходнике МИДИ-ЮСБи. К нему же идёт какой-то драйвер? Попробовать бы напрямую в звуковуху с МИДИ-портом, чтобы убедиться, что схема работает, а потом уже разбираться с шнуром. В каком городе проживаете? Можно у меня попробовать, если не далеко
Ответить
0
jpatay #
Да, а Винченсе делал схему №2, с индикацией. Так что прошивка может не подойти. Для схемы №3 - моя прошивка работает отлично, даже колесо не плохо работает.
Ответить
0
Владимир #
Я понимаю что он делал схему 2 и подправлял DINAMIC.ASM. А я подправлял по аналогии PITCHMOD.ASM. Живу Казань. А вам программисты вернули подправленный PITCHMOD.ASM? С точно таким преобразователем у других работает.
Ответить
0
jpatay #
Нет, только HEX дали. Мне было этого достаточно. Далеко живём друг от друга. Я живу недалеко от Львова.
Ответить
0
Владимир #
Очень жаль. Хотелось сравнить.
Ответить
+1
Владимир #
Наконец то клавиатура у меня заработала. Проблема оказалась в небольшом несоответствии скорости передачи Midi 31250. А получается что преобразователь ttl-usb очень критичен к этому. Удалось подобрать скорость близко к 31000. Точнее можно с кварцем 8мгц, но там возникнут другие проблемы.
Ответить
0
jpatay #
Владимир, поздравляю. Я же говорил, что причина в переходнике. Кнопки вывели для смещения октав клавиатуры(транспозе)? Я поленился это сделать и не знаю работает эта функция или нет.
Ответить
0
Владимир #
Кнопки на днях только купил. Буду делать платку и приспосабливать в корпус. Тесновато сделал. Причина точнее была в некотором несоответствии скорости передачи 31250 на выходе MIDI ( 7 вывод ) PIC16F84A из за неточностей в программе PITCH MODE.ASM.
Ответить
+1
Владимир #
Выкладываю подправленный файл .ASM . В предыдущем хотел сказать бит 7 (вывод 13 ) порта B .
Прикрепленный файл: PitchMod_vl.asm
Ответить
0
Владимир #
Ещё немного подправил файл .ASM и теперь каждый бит, включая стартовый и стоповый, передаются по MIDI за 32 мкс, что точно соответствует скорости 31250.
Прикрепленный файл: PitchMod_vl.asm
Ответить
0
jpatay #
Владимир, задержка звука присутствует через ЮСБ-переходник?
Ответить
0
Владимир #
Может какие то миллисекунды, точнее оценить не могу.
Ответить
0
jpatay #
Владимир, к какому компьютеру подключаете своё МИДИ? К стационарному, ноуту? Хорошо бы какой-нибудь мини-комп (айпад,планшет) смонтировать прямо в корпусе МИДИ-клавиатуры и вырезать отверстие для дисплея.
Ответить
0
Владимир #
Подключаю к настольному компьютеру. Подключать к чему то другому нет необходимости. Да ещё и корпус у меня очень тесный.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Конструктор - Гитарная педаль Remote Delay 2.5
Конструктор - Гитарная педаль Remote Delay 2.5
Ветрогенератор Солнечная панель 10Вт 12В поликристаллическая
вверх