Думал я, что реализация займёт значительно больше времени. Но оказалось, что работы там меньше, чем я думал.
Рубрика: MIDI баян
MIDI библиотека доработана
Собственно, первая цель достигнута.
Теперь библиотека MD_MIDIFile умеет просто сканировать MIDI файл, а не проигрывать его. Т.е. просто перебирать все-все командочки из всех дорожечек нужного MIDI файла, чтобы я мог посмотреть, что там за командочки такие, и нет ли среди них таких, которые могут поломать работу ритм-машины.
Идея жизнеспособна
Подключил я к макетке картридер, и немного поковырялся в потрохах библиотеки, которая умеет воспроизводить MIDI-файлы с карты памяти.
Для моих целей, надо уметь сканировать MIDI файл с целью анализа. Нужно убедиться, что в MIDI-файле, предназначенном для ритм-машины, нет «неправильных» команд. Исходная библиотека быстренько просканировать содержимое файлов не даёт; она их умеет только воспроизводить в режиме реального времени.
Опыт показал, что «быстренько просканировать» можно. Нужно будет только немного доработать библиотеку; дописать пару новых методов в существующие классы. В общем, теперь понятно, куда копать.
К началу работ по написанию ритм-машины v2 готов
Переход на новый контроллер завершен.
Теперь мой баян полностью 3-вольтовый.
В левой клавиатуре пришлось серьёзно повозиться с доклеиванием вторых магнитов на плоские рычаги, чтобы компенсировать уменьшившуюся чувствительность датчиков.
Но, воспользовавшись вчерашней новогодней ночью, я всё закончил, и теперь баян играет лучше прежнего. Теперь во всём диапазоне перемещений рычагов в левой клавиатуре магниты не выходят из чувствительной зоны датчиков и звук не прерывается, если, например, глубоко прожать кнопку.
Баян теперь питается от аккумуляторов. Полного заряда хватает больше чем на 5 часов непрерывной работы.
Сижу, учу 2-ю страницу «Ленивого Дика». И заодно понимаю, что для того, чтобы нормально это произведение сыграть, нужна нормальная партия ударных для автоаккомпанемента. Простейший автоаккомпанемент, который сейчас реализован, не подойдет, потому что в двух местах меняется размер, а в конце мелодии (когда солирующая труба тянет ноту 5 «картошек» подряд) там вообще свой собственный ритм.
В общем, пришло время писать 2-ю версию ритм-машины, в основе которой теперь будут MIDI-файлы, хранящиеся на карте памяти.
3-вольтовому баяну, пожалуй, быть
В одной из предыдущих заметок я докладывал, что при питании от 3.3 В (вместо 5 В) чувствительность датчиков Холла заметно уменьшилась, и надо заново перенастраивать положение датчиков.
Практика показала, что не всё так плохо, как могло бы быть.
Правую клавиатуру я подстроил довольно быстро. Пришлось подогнуть меньше десятка датчиков, и правая рука теперь играет как надо.
А вот с левой рукой придётся повозиться (см. рис. 1). Примерно для 30-40% датчиков надо доклеивать вторые магниты рядом с первыми, чтобы датчики срабатывали во всех возможных положениях плоских рычагов. При 5 вольтах их чувствительности хватало, чтобы работать в крайних положениях рычагов, а при 3.3 В — уже не хватает. Дополнительные магниты помогают.
Занятие очень муторное, клеить неудобно. Но деваться некуда.
Сделана индикация уровня заряда
Собрал как-бы начисто схему для измерения уровня заряда аккумулятора (см. рис. 1).
Проблема была в том, что при подключённом «измерительном» входе (№2 на рис. 1) не стартовали модули питания. Что-то там им мешало. Однако, если подключить аккумулятор к измерительному входу после того, как заработают модули питания, то всё работает штатно.
Читать далее «Сделана индикация уровня заряда»Попытка №2
Запаянная ранее плата — не завелась.
Преобразователи логических уровней чудят неуправляемым образом, хотя я их подключал в соответствии с документацией (ну, я так думаю). Уже опытным путём доказано, что они точно не работают на I2C шине. А из оставшихся 7 цифровых линий через преобразователи нормально проходит только одна. На остальных линиях — сильный мусор.
Товарищ, вместе с которым мы делаем 2-ю версию, запитал всю схему от 3.3 В, и оно заработало. Ну и я запаял 3-вольтовую версию платы (см. рис. 1). Не стал запаивать преобразователи уровней; вместо них запаял перемычки. Убрал делитель со входа датчика давления. Ну и все соединения сделал разъёмными (кроме питания). Чувствую, это далеко не последний вариант платы, так что пусть всё будет на разъёмах. Даже EEPROM память выпаял с предыдущей платы и вставил в панельку; она хоть и дешевая, но просто так выкидывать ее не хочется. Буду перетаскивать с платы на плату. Радиомодуль тоже запаивать не стал, а подключил через панельку.
Баян от 3.3 В, конечно, заработал, но есть нюанс.
Читать далее «Попытка №2»MIDI-баян v2 ещё пока не может играть, но уже может измерять заряд аккумулятора
Перевёл баян на питание от аккумуляторов
Сегодня был сделан еще один шаг по переводу баяна на новую платформу.
Как показано на рис. 1, в качестве источника будут 2 аккумулятора 18650. Модули зарядки (1), стабилизатора на 5 В (2) и стабилизатора на 3.3 В (3) закреплены прямо на держателе аккумуляторов на двусторонний скотч. Сами аккумуляторы закреплены на держателе двумя кабельными стяжками, чтобы случайно они не выпали.
Модель зарядки использован такой. Стабилизаторы питания — такие.
Пока, как видите, задействован только 5-вольтовый стабилизатор. Работает без замечаний.
Неудобно, что пока нет возможности отслеживать степень разряда аккумуляторов. Это предусмотрено в новой версии платы, но пока не реализовано в прошивке. Собственно, баянной прошивки, адаптированной к контроллеру RP2040-Zero, пока нет. Работа в процессе.
P.S. Оказалось, что модуль зарядки не справляется с зарядкой при работающей схеме баяна. Буду ставить реле, чтобы на время зарядки отключалась нагрузка.