[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: -DimoN-  
ФОРУМ » ЭЛЕКТРОНИКА » Аудиотехника » MIDI-клавиатура на PIC16F628A
MIDI-клавиатура на PIC16F628A
AdminДата: Суббота, 27.06.2009, 17:40 | Сообщение # 1
сенсей сайта
Группа: Администраторы
Сообщений: 1259
Репутация: 21 []
Статус: Offline
.: Дополнительные данные :.
Бог сайта и форума За хорошую посещаемость на форуме За супер посещаемость За Генералиссимуса За помощь народу За супер посещаемость
Миди-клавиатура представляет из себя глухой клавишный инструмент и предназначена для совместной работы с компьютером или другим синтезатором имеющим MIDI-вход. Инструмент обладает достаточно неплохим набором сервисных функций, поэтому его нельзя назвать простым, но и, конечно же, вряд ли профессиональным, эта клавиатура инструмент среднего класса. Клавиатура является пассивной, т.е. она не измеряет силу нажатия (давления) на клавишу. Клавиатура 4-х октавная, начинается с ноты Фа (можно сделать и с До). А вот увеличить число октав конечно можно, но это потребует конкретной переделки всей схемы и управляющей программы.
Клавиатура позволяет:
Управлять встроенным в компьютер синтезатором передавая MIDI-сообщения.
Выбирать любой из 127 инструментов (звуков) имеющихся в синтезаторе звуковой платы.
Передавать данные по любому из 16 MIDI-каналов. (Кстати 10-й канал это ударные инструменты).
Установить произвольно границу деления клавиатуры на два трека (причем для каждого трека выбрать свой инструмент, свой канал, свою октаву и свою скорость нажатия).
Изменять строй инструмента на 12 полутонов в обе стороны.
Сдвигать строй целиком на октаву независимо для каждого трека.
Управлять модуляцией и подтяжкой (PITCH BAND).
Изменять скорость подтяжки и глубину модуляции.
Регулировать общую громкость.
Подключить педаль SUSTAIN
Использовать режим COMBY, когда одной клавишей можно извлекать звуки сразу из обоих треков.
Сохранять выбранные настройки в энергонезависимой памяти (EEPROM).

Рис.1. Вот что у меня получилось.

Схема устройства показана на рис.2. Управляет данным устройством микроконтроллер PIC16F628A, клавиатура и кнопки управления последовательно опрашивается через мультиплексоры K155КП1 и К555КП2, вывод данных на дисплей осуществляется последовательно, через регистры К1533ИР24. Отправка MIDI сообщений реализуется чисто программно. Единственная аналоговая часть инструмента это регулятор громкости, АЦП реализован очень просто, сначала заряжается конденсатор, а потом измеряется время его разряда, т.к. время разрядки напрямую зависит от положения движка переменного резистора, то это время и будет оцифрованным значением регулятора громкости.

Рис.2. Схема MIDI-клавиатуры

В микроконтроллер "зашита" управляющая программа, работает она следующим образом: сначала опрашиваются кнопки управления и устанавливаются соответствующие флажки и переменные, потом опрашивается клавиатура и в зависимости от состояния контактов клавиш передается MIDI-команда NOTE ON или NOTE OFF. Далее идет опрос кнопок оперативного контроля (МОDULATION и PITCH BAND) и в последнюю очередь обрабатывается регулятор громкости. Состояние регулятора громкости измеряется 4-раза и только если все 4 раза получены одинаковые значения передается команда изменения громкости, причем только если это значение не равно предыдущему переданному значению. Это исключает бесполезную передачу кучи ненужных сообщений из за разбросов аналоговой части. Внешний вид пульта управления показан на рисунке 3.

Рис.3. Пульт управления.

Назначение кнопок:
Кнопка SET - Позволяет загрузить или сохранить в EEPROM состояние инструмента, всего 10 программ. Дисплей индицирует Pr-х, где х это номер программы (0...9). Выбор программы осущетствляется кнопками +1/-1 Загрузка осуществляется нажатием кнопки SET еще раз, а сохранение нажатием кнопки START, а потом еще раз кнопки SET.
Кнопка START - запускает, а повторным нажатием останавливаем внешний синтезатор. Дисплей высвечивает Strt или StoP.
Кнопка MIDI - Включает режим изменения канала циклически для трека А и трека В. Дисплей высвечивает Acxx или Bcxx, где xx-номер MIDI канала 1-16.
Кнопки -1 и +1 - Увеличивают или уменьшают на единицу значение на дисплее. Не влияют на режим VOLUME и START
Кнопка SPLIT - Позволяет выбрать границу разделения клавиатуры на трек А и В. Дисплей высвечивает SPxx - где хх номер последней клавиши трека А. Чтобы произошло изменение границ не обязательно нажимать кнопки +1/-1, а достаточно нажать клавишу на клавиатуре, эта клавиша и будет последняя в треке А. Дисплей покажет новое значение границы.
Кнопка MOD - Изменяет глубину модуляции (25%,50%,75% и 100%). Дисплей отображает LF и цифры 1-4, 1 соответствует 25%, а 4-100% глубине.
Кнопка PITCH - Изменяет скорость подтяжек Pitch Band. Дисплей высвечивает Pb и числа от 1 до 4. 1-скорость минимальная, 4-максимальная.
Кнопки A VEL и B VEL - Эти кнопки задают силу нажатия на клавишу (можно сказать громкость) для каждого трека соответственно. Дисплей высвечивает Axxx и bxxx, где xxx - число от 0 до 127.
Кнопка VOLUME - На этот режим не влияют кнопки +1/-1. Этот режим служит для индикации уровня громкости. Вращая движок переменного резистора дисплей должен отобразить все 32 уровня (0..31). Громкость изменяется сразу для обоих треков. Дисплей индицирует Ldxx, где хх уровень громкости.
Кнопка COM - Самый "загадочный" и редкий режим для MIDI-клавиатур, режим COMBY. Данный режим позволяет при нажатии клавиши трека А, воспроизводить ноту одновременно из трека А и трека В! Т.е. как бы наслаивать два звуковых образца имеющихся в подключенном синтезаторе. Дисплей индицирует C.-(On/OF) - On - СOMBY включен, OF - выключен. Клавиши "сидящие" в треке В, извлекают звук только трека В и никак не связаны с треком А.
Кнопка TRANS - Транспонирование - смещение строя клавиатуры, дисплей отображает t(-12..0..12) 0-транспонирования нет, знак минуса показывает, что смещение идет вниз, отсутствие знака - вверх. Смещение осуществляется на один полутон, т.е. строй может быть сдвинут на октаву в любую сторону. Смещение происходит сразу обоих треков.
Кнопки OCT A и OCT B - Эти кнопки изменяют строй сразу на октаву, причем в отличии от предыдущей кнопки, независимо для каждого трека. Дисплей отображает Ao или bo и смещение (-1,0,+1). Т.е. смещение может быть на октаву вверх или вниз. Совместно с кнопкой транспонирования строй может быть смещен на 2 октавы вверх или вниз. Кроме кнопок пульта управления в инструменте имеются еще и кнопки оперативного управления: Расположены они слева клавиатуры.
Кнопка MODULATION - включает амплитудную модуляцию звука, действует на оба трека. Модуляция отключается при отпускании этой кнопки.
Кнопки Pitch+ и Pitch- - вызывают плавное смещение строя (подтяжку) вверх или вниз.При отпускании этих кнопок смещение возвращается в исходное состояние. Дополнительно к инструменту можно подключить педаль SUSTAIN, это может быть любая педаль с нормально разомкнутыми контактами. При нажатии на педаль происходит задержка реакции на MIDI-команды Note Off, действует на все звучащие ноты. Аналог педали на обычном фортепиано.

Рис.4. Корпус.

Корпус инструмента (рис.4) изготовлен из выброшенной кем то тумбочки. Как раз она оказалась удачных размеров, что пилить много не пришлось. Внутри жестко закреплена клавиатура, печатные платы, блок питания и гнезда. Соединения между платами и клавишами выполнены монтажным проводом во фторопластовой изоляции. Провода увязаны в жгуты. В качестве панели управления использован кусок оргстекла, в качестве кнопок - светодиоды. На передней панели установлены, пульт управления с дисплеем, кнопки оперативного контроля, регулятор громкости, выключатель питания и индикатор сети. На задней панели гнезда MIDI OUT и педали SUSTAIN, выведен сетевой шнур питания и установлен держатель предохранителя.

Архив содержит рисунки печатных плат в формате Spring Layout, исходный текст и откомпилированный HEX файл тестовой прошивки (не работает кнопка SET, могут вылезти другие бяки), программа Midi_Monitor, позволяющая видеть какие сообщения приняты MIDI портом и одновременно воспроизводить звук. Инструмент нельзя подключать напрямую к MIDI порту, нужен переходник о оптронной развязкой. Переходник очень простой, его можно сделать по схеме на рисунке 5, хотя есть и другие варианты, этот простейший.

Рис.5. Переходник.

Инверторы могут быть любыми из ТТЛ микросхем. Насчет оптронов не знаю, мною проверены АОТ127 и АОТ110.

Источник http://www.electroavto.narod.ru

Прикрепления: 1771927.jpg (18.3 Kb) · 8531205.jpg (161.3 Kb) · 1453594.jpg (11.7 Kb) · 9992342.jpg (25.4 Kb) · 5866299.gif (4.4 Kb) · midi.rar (46.4 Kb)


еще больше изделий http://presents.in.ua
IDIMAДата: Четверг, 25.06.2020, 21:34 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0 []
Статус: Offline
.: Дополнительные данные :.
Бог форума
Есть вопрос . По схеме не понятно как подключены выводы КП1 и КП2 к PIC , не подписаны выводы .
AdminДата: Пятница, 26.06.2020, 15:57 | Сообщение # 3
сенсей сайта
Группа: Администраторы
Сообщений: 1259
Репутация: 21 []
Статус: Offline
.: Дополнительные данные :.
Бог сайта и форума За хорошую посещаемость на форуме За супер посещаемость За Генералиссимуса За помощь народу За супер посещаемость
Это простые мультиплексоры, да и на плате все видно, просто паяете их на свое место и все.

еще больше изделий http://presents.in.ua
IDIMAДата: Воскресенье, 28.06.2020, 14:57 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0 []
Статус: Offline
.: Дополнительные данные :.
Бог форума
Да . Спасибо , по печатке разобрался . А в прошивке так и не работает кнопка SET ?
AdminДата: Воскресенье, 28.06.2020, 18:19 | Сообщение # 5
сенсей сайта
Группа: Администраторы
Сообщений: 1259
Репутация: 21 []
Статус: Offline
.: Дополнительные данные :.
Бог сайта и форума За хорошую посещаемость на форуме За супер посещаемость За Генералиссимуса За помощь народу За супер посещаемость
к сожалению я не автор этого девайса и помочь с прошивкой немогу.
Как вариант попробуйте загрузить ее в симуляторе Протэус и там посмотреть как там все работает.


еще больше изделий http://presents.in.ua
ФОРУМ » ЭЛЕКТРОНИКА » Аудиотехника » MIDI-клавиатура на PIC16F628A
  • Страница 1 из 1
  • 1
Поиск: