README.md

MIDI-баян

Данный проект - это разработка MIDI системы на основе платы Arduino Nano.

Первоисточник

Основная информация по проекту и начальная информация была взята в теме Самодельная MIDI система для баяна или гармони на форуме Русская гармонь

Самая первая (мне так кажется) версия прошивки из темы на форуме была выложена на github. Там же можно найти кое-какую документацию, которую я скопировал в этот проект. Для меня она оказалась полезной, т.к. дала понимание, с чего нужно начинать и в каком направлении двигаться. И самое главное: мне стало очевидно, что построение собственного MIDI-баяна - это вполне осуществимая для меня задача.

Почему появился этот проект

Та версия прошивки, которую я взял на форуме (отсюда), для моего баяна не подходила, т.к. мой “Рубин-5” - готово-выборный, а значит нужно существенным образом дорабатывать прошивку, добавляя возможность работы не с 24, а с 52 клапанами в левой клавиатуре. Сразу стало понятно, что примененный в оригинальной прошивке способ чтения клавиш в этом случае работать не будет из-за технических ограничений. Т.е. чтение клавиш надо переделывать. А заодно я решил, что обязательно нужно сделать панель управления, подобную той, что на MIDI-системе Бутусова, только лучше (с OLED-экраном и с более интуитивно-понятной логикой работы управляющих кнопок).

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

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

Прошивка

Исходные файлы прошивки расположены в папке tes_midi_bayan. Для загрузки прошивки в микроконтроллер Arduino Nano нужно открыть файл tes_midi_bayan.ino в Arduino IDE и нажать кнопку “загрузить”.

Для компиляции прошивки очень желательно использовать ядро GyverCore, причём в нём стоит включить собственную реализацию порта UART. (Читайте документацию на ядро.) Это нужно для того, чтобы максимально увеличить объём доступной оперативной памяти. Использование ядра GyverCore позволило мне сэкономить 97 байт ОЗУ.

Без изменений прошивку можно использовать только в том случае, если вы устанавливаете MIDI систему в баян “Рубин-5”, используя схему и платы из каталога boards без изменений. Для установки MIDI системы в какой-нибудь другой баян, вам скорее всего понадобится адаптировать приведённую здесь схему для вашего баяна, и, соответственно, разработать ваш собственный вариант печатных плат.

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

Использованные библиотеки

  • Для работы с OLED-дисплеем: GyverOLED

И это всё.

Все остальные использованные функции, константы и прочее входят в состав стандартных библиотех Arduino, которые устанавливаются в составе Arduino IDE.

Принципиальная схема

Исходные файлы принципиальной схемы находятся в папке boards. Разработка схемы и печатных плат велась в онлайн-редакторе EasyEDA. Приведенные файлы нужно открывать в онлайн-редакторе:

fig1

Для точной разметки расположения датчиков Холла и остальных деталей на платах датчиков правой и левой клавиатур а также кнопок и светодиодов на плате панели управления были нарисованы чертежи, расположенные в папке 2D_and_3D_models. Затем эти чертежи были экспортированы в виде графических файлов и вставлены в слой “Documentation” редактора печатных плат EasyEDA. С соответствующим масштабированием, чтобы расстановку деталей на печатной плате можно было делать просто “поверх” отметок, сделанных на чертежах.

Чертежи разработаны в программе “Компас 3D Home”.

Корпус панели управления

Для корпуса панели управления разработаны 3 детали:

  • сам корпус;
  • кнопка диаметром 15 мм
  • кнопка диаметром 10 мм

Для большего удобства проектирования была также нарисована габаритная модель самой платы панели управления.

Все файлы находятся в папке 2D_and_3D_models. Всё разработано в программе “Компас 3D Home”.

Ссылки

  1. Исходная тема на форуме “Русская гармонь”
  2. Синтезаторный модуль ATEMP MIDI HW Synth, к которому адаптирована прошивка
  3. Ядро для Arduino nano GyverCore
  4. Библиотека для OLED дисплея: GyverOLED
  5. История проекта в моём блоге
  6. Руководство пользователя MIDI-баяна
Описание

Данный проект - это разработка MIDI системы на основе платы Arduino Nano.

Релизы
v1.00 2024-09-29
Конвейеры
0 успешных
0 с ошибкой