MIDI библиотека доработана

Собственно, первая цель достигнута.

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

Рис. 1

Идея жизнеспособна

Подключил я к макетке картридер, и немного поковырялся в потрохах библиотеки, которая умеет воспроизводить MIDI-файлы с карты памяти.

Для моих целей, надо уметь сканировать MIDI файл с целью анализа. Нужно убедиться, что в MIDI-файле, предназначенном для ритм-машины, нет «неправильных» команд. Исходная библиотека быстренько просканировать содержимое файлов не даёт; она их умеет только воспроизводить в режиме реального времени.

Опыт показал, что «быстренько просканировать» можно. Нужно будет только немного доработать библиотеку; дописать пару новых методов в существующие классы. В общем, теперь понятно, куда копать.

Рис. 1

К началу работ по написанию ритм-машины v2 готов

Собрал макетку, на которой буду отлаживать 2-ю версию ритм-машины. Настоящий, «живой» баян для этого использовать несподручно.

6 кнопок и 5 светодиодов должно хватить.

Возни там будет, конечно, много. И значительная часть этой возни будет связана с написанием UI.

Рис. 1

Переход на новый контроллер завершен.

Теперь мой баян полностью 3-вольтовый.

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

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

Баян теперь питается от аккумуляторов. Полного заряда хватает больше чем на 5 часов непрерывной работы.

Сижу, учу 2-ю страницу «Ленивого Дика». И заодно понимаю, что для того, чтобы нормально это произведение сыграть, нужна нормальная партия ударных для автоаккомпанемента. Простейший автоаккомпанемент, который сейчас реализован, не подойдет, потому что в двух местах меняется размер, а в конце мелодии (когда солирующая труба тянет ноту 5 «картошек» подряд) там вообще свой собственный ритм.

В общем, пришло время писать 2-ю версию ритм-машины, в основе которой теперь будут MIDI-файлы, хранящиеся на карте памяти.

Рис. 1

3-вольтовому баяну, пожалуй, быть

В одной из предыдущих заметок я докладывал, что при питании от 3.3 В (вместо 5 В) чувствительность датчиков Холла заметно уменьшилась, и надо заново перенастраивать положение датчиков.

Практика показала, что не всё так плохо, как могло бы быть.

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

А вот с левой рукой придётся повозиться (см. рис. 1). Примерно для 30-40% датчиков надо доклеивать вторые магниты рядом с первыми, чтобы датчики срабатывали во всех возможных положениях плоских рычагов. При 5 вольтах их чувствительности хватало, чтобы работать в крайних положениях рычагов, а при 3.3 В — уже не хватает. Дополнительные магниты помогают.

Занятие очень муторное, клеить неудобно. Но деваться некуда.

Рис. 1

Сделана индикация уровня заряда

Собрал как-бы начисто схему для измерения уровня заряда аккумулятора (см. рис. 1).

Рис. 1

Проблема была в том, что при подключённом «измерительном» входе (№2 на рис. 1) не стартовали модули питания. Что-то там им мешало. Однако, если подключить аккумулятор к измерительному входу после того, как заработают модули питания, то всё работает штатно.

Читать далее «Сделана индикация уровня заряда»

Попытка №2

Запаянная ранее плата — не завелась.

Преобразователи логических уровней чудят неуправляемым образом, хотя я их подключал в соответствии с документацией (ну, я так думаю). Уже опытным путём доказано, что они точно не работают на I2C шине. А из оставшихся 7 цифровых линий через преобразователи нормально проходит только одна. На остальных линиях — сильный мусор.

Товарищ, вместе с которым мы делаем 2-ю версию, запитал всю схему от 3.3 В, и оно заработало. Ну и я запаял 3-вольтовую версию платы (см. рис. 1). Не стал запаивать преобразователи уровней; вместо них запаял перемычки. Убрал делитель со входа датчика давления. Ну и все соединения сделал разъёмными (кроме питания). Чувствую, это далеко не последний вариант платы, так что пусть всё будет на разъёмах. Даже EEPROM память выпаял с предыдущей платы и вставил в панельку; она хоть и дешевая, но просто так выкидывать ее не хочется. Буду перетаскивать с платы на плату. Радиомодуль тоже запаивать не стал, а подключил через панельку.

Рис. 1

Баян от 3.3 В, конечно, заработал, но есть нюанс.

Читать далее «Попытка №2»

Перевёл баян на питание от аккумуляторов

Сегодня был сделан еще один шаг по переводу баяна на новую платформу.

Как показано на рис. 1, в качестве источника будут 2 аккумулятора 18650. Модули зарядки (1), стабилизатора на 5 В (2) и стабилизатора на 3.3 В (3) закреплены прямо на держателе аккумуляторов на двусторонний скотч. Сами аккумуляторы закреплены на держателе двумя кабельными стяжками, чтобы случайно они не выпали.

Модель зарядки использован такой. Стабилизаторы питания — такие.

Пока, как видите, задействован только 5-вольтовый стабилизатор. Работает без замечаний.

Неудобно, что пока нет возможности отслеживать степень разряда аккумуляторов. Это предусмотрено в новой версии платы, но пока не реализовано в прошивке. Собственно, баянной прошивки, адаптированной к контроллеру RP2040-Zero, пока нет. Работа в процессе.

Рис. 1

P.S. Оказалось, что модуль зарядки не справляется с зарядкой при работающей схеме баяна. Буду ставить реле, чтобы на время зарядки отключалась нагрузка.