Выключатели

Закупил сегодня 2 варианта выключателей (см. рис. 1). Установка планируется в верхней части (верх — когда баян находится в рабочем положении). Клавиша/кнопка будет снаружи, а контакты — внутри герметичного объёма.

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

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

Рис. 1

Протестировал модули питания

Спаял модули почти начисто. «Почти» — это потому что в разрыв одного из проводов, идущего от аккумуляторов, ещё нужно будет врезать выключатель. (Который надо еще купить, кстати.)

Один стабилизатор я настроил на 5 В (перепаял перемычку). В результате он выдаёт 4.94 В. Этого вполне достаточно как для датчиков Холла, так и для датчика давления. Другой стабилизатор выдаёт 3.29 В (ну, это практически 3.3). Так всё и оставлю.

Рис. 1

Главный вопрос, который у меня был ко всему этому хозяйству — это смогут ли аккумуляторы заряжаться, когда включена вся схема.

Читать далее «Протестировал модули питания»

Собран комплект для питания второй версии баяна

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

Модули приклею на термоклей к торцам держалки. А весь комплект как-то закреплю уже внутри герметичного объёма. Рядом с платой микроконтроллера.

Рис. 1

Приехала рассыпуха

Сегодня забрал микросхемы согласователей уровней и рассыпуху для новой платы микроконтроллера.

Сама плата заказана (в pcbwave.com — они снова стали принимать платежи с российских карточек). Когда приедет — запаяю.

Рис. 1

Развёл плату микроконтроллера для 2 версии MIDI-баяна

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

Рис. 1

Заменил кнопки на баяне

Обстоятельства заставили меня разориться и купить новые кнопки для баяна (см. рис. 1). Кнопки итальянские, с красивым перламутровым отливом, на 1 мм больше диаметром, чем родные, и гораздо более комфортные для нажатия. Покупал здесь. Кнопки Z-0031 (белые) и Z-0032 (чёрные). Демпферы Z-0051 (чёрные).

Был некий соблазн купить красные демпферы, но всё-таки я решил, что это будет цыганщина, и купил чёрные. Довольно органично смотрится.

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

И раз уж я взялся крутить кнопки, я решил, насколько смогу, исправить замеченную мною ранее кривизну второго ряда. Для этого надо было передвинуть крепежные отверстия кнопок второго ряда примерно на 1 мм ближе к первому ряду.

Рис. 1

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

Читать далее «Заменил кнопки на баяне»

Теперь умеем читать MIDI файлы с SD карты

Сегодня у меня получилось завести библиотеку MD_MIDIFile на моей RP2040-Zero, на нестандартных выводах SPI.

Устройство инициализируется, файлы читаются. И содержимое файлов выводится в отладочный серийный порт.

Осталась небольшая проблема. Упомянутая библиотека умеет либо, собственно, проигрывать эти файлы, либо выводить их «дамп» в отладочный порт. Причём и то, и другое, она делает «в режиме реального времени» — т.е. с заданной скоростью проигрывания данного файла.

Мне же, для моих «баянных» задач надо будет выбранные файлы сначала сканировать, чтобы убедиться, что содержимое этих самых файлов «правильное», что в них нет ничего лишнего, что могло бы испортить настройки рабочих MIDI-каналов баяна, и что могло бы помешать управлению воспроизведением MIDI автоаккомпанемента (задавать теми, и т.п.). И сканировать надо не со скоростью воспроизведения, а со скоростью чтения файла.

И, судя по всему, придётся эту библиотеку дорабатывать под свои задачи. Хоть я такое и не люблю. Но это будет в любом случае быстрее (и идеологически правильнее), чем разводить ещё одну (свою) библиотеку только для сканирования файлов.

Рис. 1

Радиоканал со стороны RP2040

Ранее я писал о том, что научился искать свободный радиоканал. Но делать это надо будет не на стороне приёмника (который будет сделано на Arduino nano), а на стороне передатчика, который будет сделан на RP2040.

Ну и вот сегодня я скачал библиотеку RF24, адаптированную к RP2040, и перенес написанный ранее код на RP2040-Zero.

Работает.

Можно начинать писать классы радиоинтерфейса для обеих сторон.

Рис. 1

Вдогонку к заметке про EEPROM

Я недавно писал, что нашел хороший исходник для работы с EEPROM микросхемами AT24C16.

Оказалось, что он выгодно отличается от «доступных аналогов» тем, что работает очень быстро. Как говорится, «самая быстрая запись в EEPROM на Диком Западе». 🙂

Это потому, что в этом коде есть интересная изюминка. Микросхемы эти обрабатывают запросы на запись/чтение довольно медленно. Микроконтроллер должен ждать окончания предыдущей операции прежде чем отправлять в микруху новый запрос. В 99% примеров кода, доступных в сети, народ тупо лепит задержку на пару миллисекунд. Но в этом коде нет никаких задержек, зато там есть это:

static void at24cxx_wait(int i2c_address)
{
    int resault = 0;
    do
    {
        Wire.beginTransmission(i2c_address);
        resault = Wire.endTransmission();
    } while (resault != 0);
}

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

2048 байт (полная емкость) пишутся за 231 мс.

Рис. 1

Кстати о музыке из м/ф «Ловушка для кошек»

Я тут внезапно осознал, что:

  • Основную мелодию без проблем можно сыграть на баяне правой рукой, благо, в моем новом синтезаторе есть отличнейшие тембры духовых инструментов.
  • В композиции имеется второй голос (см. на подыгрывающих летучих мышей-вампиров); там немного другой тембр. И этот второй голос можно без проблем сыграть левой рукой на выборке!
  • Басовую линию при этом сыграть уже не получится. А если утащить второй голос в правую руку, чтобы левой играть бас, то тогда оба голоса будут звучать одним тембром, что не совсем правильно. Буду думать и пробовать.
  • А ударное сопровождение сам бог велел засунуть в авто-аккомпанемент. В ту его версию, которая будет во 2-й версии баяна на контроллере RP2040 (с проигрыванием MIDI файлов с флеш-карты SD).
Рис. 1