MIDI-интеграция для цифровых органов: превращение старой консоли в MIDI-контроллер на Arduino Mega
Компоненты и материалы
- Arduino Mega 2560 — 1 шт.
- DIN-разъём MIDI (5-пиновый) — 1 шт.
- Резистор 220 Ом — 1 шт. (на выход TX для MIDI Out)
- USB-кабель A–B — 1 шт. (питание и прошивка)
- Провод AWM (многожильный, 10 жил) — 1 м (для разводки клавиатур)
- Пинхेडер 40 pin (1 ряд, 2,54 мм) — 1 шт. (для подключения к Arduino)
- Потенциометр-слайдер 10 кОм (линейный) — 1 шт. (для педали экспрессии)
- IDC-разъём (гнездо) — 1 шт. (опционально, вместо пайки к пинхедерам)
- Перемычки Male-Male — 1 набор (опционально, для IDC)
Инструменты
- Паяльник и припой (бесоловенный)
- Флюс для пайки
- Кусачки, обкусыватели, плоскогубцы
- Стриппер для снятия изоляции
- Дрель, сверла, мелкая пила, тиски, зажимы
- Мультиметр (для проверки типа ключей)
Программное обеспечение
- Arduino IDE
О проекте
Проект показывает, как преобразовать старую органную консоль в MIDI-контроллер, отправляющий сообщения Note On/Off с клавиатур (manuals) и педального клавиатура на один Arduino Mega. Исходная схема генерации звука сохраняться не может — она слишком сложна для реверс-инжиниринга. Автор разработал код для двух типов клавиатур:
- Матричные (matrixed): ключи организованы в матрицу строк/столбцов с диодами на каждом контакте.
- Шинные (bussed): общая шина для группы ключей, диоды паяются к нешинному контакту каждого ключа.
- Оригинальная коммутация клавиатур перестанет работать.
- Внутри старых органов могут быть опасные напряжения. Работайте только с отключенным прибором. При сомнениях — консультируйтесь с квалифицированным техником.
- Компоненты старых органов часто изношены; модификация может привести к повреждению. Автор не несёт ответственности за ущерб.
Пошаговая инструкция
Шаг 1: Осмотр органа
- Определите тип клавиатур: матричные (с диодами) или шинные. В примере: две клавиатуры 6×11 (61 клавиша) и педальная 6×7.
- Проверьте тип ключей мультиметром: нормально открытые (NO) или нормально закрытые (NC). В примере клавиатуры — NO, педали — NC (код инвертирует сигнал для педалей).
- Найдите доступ к контактам клавиатур и педалей, место для установки Arduino, питания и MIDI-разъёма. В примере: 3-пиновый розетка для питания Arduino внутри корпуса, отверстия под DIN-разъём.
- Если матрица органа не 6×11, придётся переделать проводку или адаптировать код.
Шаг 2: Установка Arduino
Прикрепите плату (на пластиковой основке) к деревянному корпусу органи шурупками. Разместите её так, чтобы длина кабелей была минимальной, но с запасом. Предусмотрите питание (USB или 5 В от внутреннего блока).
Шаг 3: Подготовка кабелей
Матричная клавиатура: каждая клавиатура — 61 ключ. В примере 6 строк (провод от 1-го контакта каждого 6-го ключа) и 11 столбцов (2-й контакт → диод → столбец). Для каждой клавиатуры и педалей нарежьте два куска AWM-провода (строки + столбцы) с запасом длины.
Шинная клавиатура: разделите на 6 кабелей AWM (по 10 жил) + 1 обычный провод для 61-й клавиши.
Снимите изоляцию с концов жил (2–3 мм).
Шаг 4: Пайка кабелей к пинхедерам
Припаяйте концы кабелей к контактам пинхедера 40 pin (или используйте клеммник / IDC-разъёмы для разъёмного соединения — удобно для отладки).
Шаг 5: Пайка к контактам ключей
Матрица: отпаяйте/отрежьте оригинальные провода. Сохраните рядовые перемычки между ключами (если они 6×11). К столбцам (после диодов) припаяйте свои провода. Уложите кабели аккуратно, закрепите стяжками. Для педалей может потребоваться снять переднюю панель.
Шина: к нешинному контакту каждого ключа припаяйте диод (катод к ключу!), от диода — к жиле кабеля. Повторите для всех 61 ключа и 6 кабелей.
Шаг 6: MIDI Out — резистор и разъём
Паяйте резистор 220 Ом к пину 5 DIN-разъёма (MIDI Out), второй вывод резистора — к TX1 (пин 18) Arduino. Пины 4 и 2 DIN — к GND и +5V Arduino соответственно (по схеме MIDI Out).
Шаг 7: Подключение пинхедера к Arduino
Вставьте пинхэдер в соответствующие выводы Mega (см. схему). Если используете IDC — соединитеMale-Male перемычками.
Шаг 8: Загрузка прошивки
- Подключите Arduino USB к ПК.
- Выберите нужный скетч: Matrixed Keyboard code или Bussed Keyboard Code.
- В Arduino IDE создайте новый скетч, вставьте код, нажмите «Загрузить».
Шаг 9: Тестирование
- Подключите MIDI-адаптер к ПК, орган — к адаптеру.
- Запустите MIDI-монитор (например, MIDI-OX, Hairless MIDI Monitor).
- Проверьте каждую клавишу и педаль: при нажатии — Note On (velocity 100), при отпускании — Note Off.
- Для автономной работы запитайте Arduino от 5 В БП (встроенного в орган или USB-зарядки).
Важные примечания
- Код для шинных клавиатур не тестировался на железе — сообщайте о багах в комментариях.
- Для шинной схемы диоды обязательны, катод к ключу. Для матричной — катод от ключа (к столбцу).
- Добавлена поддержка потенциометров (педали экспрессии) на аналоговых входах A0, A1 (матричный код) / A13–A15 (шинный код).
- Для шинного кода на пине 13 (встроенный LED) нужно отключить светодиод на плате (аккуратно сдавить плоскогубцами или отпаять двумя паяльниками).
- Шинная схема может работать нестабильно на шинах из фосфорной бронзы — рекомендуется соединить все шины одной клавиатуры вместе и все контакты одной клавиши вместе. Для фосфорной бронзы лучше 12-вольтовая коммутация (этот проект не поддерживает).
Механика педали экспрессии (подробно)
Автор предлагает конструкцию на линейном потенциометере 10 кОм, управляемой существующей педалью органа.
Детали и материалы
- Акриловый лист 8×10 дюймов (прозрачный)
- Блок PTFE (фторопласт) — скользящий втулка для штока
- Алюминиевый стержень 1/4″ (6,35 мм)
- JB Weld (холодная сварка)
- Линейный потенциометр (сладйер)
- Маленькая мебельная петля и уголок
- Болт с кольцом (eye bolt) для штока
- Шурупы #4 (деревянные и машинные), шайбы, гайки, стопорная шайба (желательно PTFE)
Инструменты
- Канцелярский нож, металлическая линейка, набор микросверл, электродрель, лобзик для хобби, тиски, зажим, наждачка, палочки для мороженого/картона для смешивания JB Weld, влажная салфетка, очки.
Сборка (кратко)
- Разрежьте акрил: основание 3×4,5″, подставка под потенциометр 3×0,5″, маленькая пластина 2,4×0,3″.
- Отпилите кусок PTFE 3/4″, просверлите отверстие под шток 1/4″ (средний сверлом, расширяя).
- Зашкурьте поверхности потенциометра и акрила, обезжирьте. Смешайте JB Weld, приклейте подставку → потенциометр. Закрепите зажимом на 24 ч.
- Прикрепите петлю к низу основания (2 винта), уголок — к маленькой пластине, петлю — к уголку. PTFE-блок — к верху основания (2 винта).
- Вставьте шток в PTFE. На подвижный контакт потенциометра — болт с кольцом (JB Weld или механически). На другом конце штока — мебельный уголок (винт).
- Закрепите петлю на полу органа шурупами так, чтобы ход педали соответствовал ходу потенциометра. Используйте стопорную шайбу на оси педали для свободного вращения.
Код прошивки
Два варианта: для матричных и шинных клавиатур. Оба отправляют MIDI-сообщения по Serial1 (31250 baud) на TX1 (пин 18).
Matrixed Keyboard Code (основные моменты)
- Три клавиатуры: A (пины 2, 22–52 чётные — строки; 32–52 чётные — столбцы), B (пины 3, 23–53 нечётные — строки; 33–53 нечётные — столбцы), C (аналоговые A2–A14 — педали, инвертированные NC).
- Сканирование: строки подтягиваются INPUT_PULLUP, столбцы по очереди ставятся OUTPUT LOW, читаются строки.
- Дебаунс/состояние: массивы
keysиlast; отправка Note On при переходе 0→1, Note Off при 1→0 (для NO) или наоборот для NC (педали). - MIDI-каналы: клавиатура A — канал 1 (noteOn=144), B — канал 2 (145), C — канал 3 (146).
- Педали экспрессии: аналоговые входы 0 и 1 → CC#11 (Expression) на каналах 6 и 7 (status 181, 182). Порог изменения — 8 единиц АЦП.
Bussed Keyboard Code (основные моменты)
- Четыре клавиатуры (A, B, C, D) по 61 ключ, общие 61 вход (пины 2–53, A0–A8) и 4 столбца (A9–A12).
- Сканирование: все 61 вход в INPUT_PULLUP, по очереди столбцы A9–A12 в OUTPUT LOW, читаются все 61 ключ.
- MIDI-каналы: 1–4 (noteOn 144, 145, 146, 147).
- Три педали экспрессии на A13–A15 → CC#11 на каналах 6, 7, 8 (status 181, 182, 183).
- В коде закомментирован блок инверсии для NC-ключей (пример для первых 32 нот клавиатуры C).
Полные листинги (очень большие — по ~2000 строк каждый) приведены в исходном проекте. Здесь даны ключевые фрагменты логики сканирования и отправки MIDI.
Схемы подключения
- Схема для матричных клавиатур 6×11 + педали + потенциометры.
- Схема для шинных клавиатур + потенциометры.
Схемы доступны в разделе Schematics проекта (файлы изображений).
Заключение
Проект даёт вторую жизнь старым органам, превращая их в полноценные MIDI-контроллеры для работы с VST-инструментами, сэмплерами или внешними звуковыми модулями. Главное — внимательно определить тип клавиатуры и тип ключей перед началом работ. Для вопросов автор рекомендует форум (ссылка в оригинале), так как уведомления на Project Hub не работают.
Производственный процесс
- Достижение сертификации ISO 26262 для программных компонентов автомобилей
- Eclipse Ditto 1.0 — платформа Device-as-a-Service для разработки Digital Twin
- Надёжные облачные OTA-апдейты для IoT-устройств
- Цифровые резальные решения для ковровой индустрии — OMNI CNC
- Управление цифровыми активами: комплексная стратегия для совершенства управления активами на основе данных
- Комплексное тестирование UL огнестойких пластиковых компонентов
- Передовое стекловолокно PET для превосходных автокомпонентов наружного исполнения
- Топ-3 тренда цифрового производства, формирующие 2020 год
- Стратегический чертеж успеха цифровой трансформации
- Компоненты из Инвара 36: материалы, свойства и надежная закупка