Разработка под FreeRTOS

Начал я тут писать прошивку для контроллеров «активных» клавиатур. Поскольку пишу с чистого листа, решил использовать FreeRTOS.

Первое впечатление весьма интересное.

Реализуя задачи, «просто пишешь то, что задача должна делать». И вообще не паришься заботой о том, чтобы специально что-то делать для того, чтобы параллельные задачи продолжали выполняться. «Оно само».

И если между двумя действиями нужна пауза, например, 100 мс, то так и пишешь:

osDelay(100);

И оно под капотом «само» приостановит задачу на заданное время, а потом в нужный момент продолжит.

«Полезный» код в результате гораздо проще и понятней выглядит, чем при традиционном программировании под Arduino.

Пока всё очень нравится.

Рис. 1

P.S. Сайт FreeRTOS, кстати, оказывается, анально отгородился от РФ. Я уж думал, что РКН в порыве рвения его придавил. Но нет, они, оказывается, сами.

Столярный клей

Я тут сегодня обнаружил, что у меня оказывается клея нет.

Летом 2022 я брал вот этот клей (см .рис. 1). И сейчас он перестал быть клеем, хотя буквально недавно я им что-то клеил — и было норм.

Срок годности там написан 3 года, и, похоже, так оно и есть. 🙁 Клей этот хороший, но впрок его покупать нельзя. (А вот Клейберит, например, у меня нормально стоял годами.)

Рис. 1

Платы для 3-й версии MIDI-баяна

Прошло примерно 40 дней с момента заказа, и платы у меня.

3 с лишним килограмма плат.

Рекорд здесь у платы панели управления (показано стрелкой на рис. 1). Этих плат мне сделали аж 25 и весит эта стопка 1.2 кг. Это при том, что на самом деле мне надо по 2 платы (основная и запасная на всякий случай), а заказать пришлось по 5 плат — это минимальное количество плат.

Вот вместо того, чтобы заваливать меня лишними платами, которые мне аосблютно некуда деть, т.к. ценность они представляют исключительно для меня, лучше бы они на 50% меньше денег взяли. 🙂

Платы датчиков (которые с прямоугольными окнами) я заказал толщиной 0.6 мм. Тоненькие. Красота неописуемая.

Следующий шаг — запаять все платы и собрать всю схему на столе. А потом пробовать, как всё это хозяйство работает. Правда, для этого понадобится доработать прошивку самого баяна. И написать прошивки для контроллеров клавиатур — да, теперь у правой и у левой клавиатур будут свои контроллеры. Те же самые RP2040-zero, только в SMD исполнении. Чтобы можно было запаять плату контроллера прямо на плату датчиков. (На рис. 1 можно разглядеть соответствующие посадочные места). Как вы уже поняли, показания аналоговых датчиков будут читаться специально предназначенными для этого контроллерами. А информация о клавиатурных событиях будет отправляться в основную прошивку MIDI-баяна по SPI. (Этот способ двустороннего обмена информацией между «главным» контроллером и контроллерами клавиатур я уже отработал.)

Заодно и FreeRTOS освою, раз уж буду писать прошивки контроллеров клавиатур с нуля.

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

Рис. 1

Сегодня — день бирьяни

Сегодня я приготовил Checken Biryani.

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

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

Рис. 1

Джазовые обработки советских песен

Красота же.

Снова Lusta Dick

Отличия от предыдущего варианта:

  • Звук записан не на телефон, а через внешнюю звуковую карту
  • Во время игры используется гиро-датчик для «подтяжек» (bends)

Если я буду писать третий вариант, то к списку отличий добавится управление «экспрессией» в канале правой руки (где играет труба) с помощью меха.

P.S. бонус-трек 🙂

«Платформа», похоже, сдохла

Я тут, в связи с недоступностью ютубчика, приспособился было заливать видосы на https://plvideo.ru/.

А тут оно, похоже, сдохло на днях.

Печаль. 🙁 Рутуб мне гораздо меньше нравится. И «вэкашечка» тоже.

Рис. 1

Условные рефлексы

Я тут довожу до автоматизма «подтяжки» (AKA «bends») с помощью гиро-датчика. В «Ленивом Дике».

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

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

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

Рис. 1

Особенности настройки громкости при игре со включенным мехом

Если играть с выключенным мехом, то всё просто: достаточно настроить соотношение громкостей звучания в настройках клавиатур. В простейшем случае — это «везде по 127». После чего настроить комфортную громкость рукояткой громкости на модуле/усилителе.

Если играть со включенным мехом, то всё несколько сложнее.

  1. По-прежнему нужно настроить соотношение громкостей между клавиатурами. Чтобы, например, басы и аккорды не забивали мелодию.
  2. Общую громкость (в системных настройках баяна) нужно установить максимальной — 127.
  3. Громкость на модуле/усилителе следует настраивать так:
    • Выключить мех, чтобы получить максимальную громкость инструмента.
    • Регулятором громкости на модуле/усилителе настроить громкость «фортиссимо» — это будет та громкость, с которой баян будет звучать при максимальном усилии на мехе. «Фортиссимо» должно звучать «слишком громко для нормальной игры».
    • Снова включить мех.

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

Рис. 1 КДПВ

Улучшенная настройка меха

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

И теперь это можно настроить (см. рис. 1).

Рис. 1

По данной ссылке можно посмотреть тяп-ляп демонстрацию того, как это может звучать (музыкальной ценности видео не имеет).