Теперь мой баян полностью 3-вольтовый.
В левой клавиатуре пришлось серьёзно повозиться с доклеиванием вторых магнитов на плоские рычаги, чтобы компенсировать уменьшившуюся чувствительность датчиков.
Но, воспользовавшись вчерашней новогодней ночью, я всё закончил, и теперь баян играет лучше прежнего. Теперь во всём диапазоне перемещений рычагов в левой клавиатуре магниты не выходят из чувствительной зоны датчиков и звук не прерывается, если, например, глубоко прожать кнопку.
Баян теперь питается от аккумуляторов. Полного заряда хватает больше чем на 5 часов непрерывной работы.
Сижу, учу 2-ю страницу «Ленивого Дика». И заодно понимаю, что для того, чтобы нормально это произведение сыграть, нужна нормальная партия ударных для автоаккомпанемента. Простейший автоаккомпанемент, который сейчас реализован, не подойдет, потому что в двух местах меняется размер, а в конце мелодии (когда солирующая труба тянет ноту 5 «картошек» подряд) там вообще свой собственный ритм.
В общем, пришло время писать 2-ю версию ритм-машины, в основе которой теперь будут MIDI-файлы, хранящиеся на карте памяти.
Круто!
Мне тоже платы с JLCPCB успели дойти 31го числа, дык что будет чем разбавить новогоднюю маету. Наброски скетчей собираю на гитхабе
https://github.com/melnikov-ivan/midi-bayan-keyboard
Ишь ты, питон. 🙂
Хотя при такой памяти, как в RP2040, оно может и нормально.
Базовый функционал программы готов. Еще осталось выделить пару кнопок под Командные.
Вместе с библиотекой midi_usb потребляет 20кб памяти (
gc.mem_alloc()
), свободно 130кб. Остальное видимо сам интерпретатор питона, я еще не разбирался в устройстве памяти RP.Ну и скорость медленного питона — 1000 циклов мигают аккурат раз в 1 секунду.
Ну, для сравнения, в моем баяне происходит примерно 8500 полных циклов чтения всех кнопок, включая панель управления.
Почти 10к раз в секунду! Только мы с вами врядли нажмем кнопки на баяне больше 10 раз в секунду. Ну ладно, пусть 20 раз секунду.
Моя мысль, что такие скорости в 99.9% проектов «на ардуино» не нужны. Когда я занимался автоматизацией радиоуправляемой подводной лодки, то там такая инерция, что можно вообще раз в секунду отправлять команды 😉
В любительских проектах гораздо важнее не скорость работы контроллера, а скорость с которой разработчик все настроит, наличие библиотек, наличие плат/модулей, наличие примеров в интернете.
Я по началу удивлялся почему протокол midi родом из 80-х годов до сих пор жив. CD-диски уже давно умерли, сотовая связь тех годов — тоже уже никто не помнит названия, а midi жив. А потому что везде росли скорости/биты/пакеты, а в миди самый медленный был и остается человек. У него все так же 2 руки, 2 ноги и каждым пальцем он может нажать не больше 10 раз в секунду.
Скорость опроса важна не сама по себе.
Она определяет, сколько времени контроллер может потратить «на свои дела», т.е на всякую обработку и т.п.
Опыт показывает, что человек начинает замечать задержки примерно с 50-80 мс.
Поэтому всегда полезно знать запас быстродействия для выбранной платформы.
В моём случае это запас таков, что можно его считать условно-бесконечным. 😁
Ну кстати, механическая кнопка тоже двигается с какой-то скоростью (нам даже важнее ход назад). Можно оценить (вроде 80-100гр усилие пружины, ну и массу кнопки по плотности дерева и размерам). И механический голос возбуждается и начинает звучать не сразу.