- PVSM.RU - https://www.pvsm.ru -

Карьера программиста и инженера вообще — очень интересная штука, и зачастую приводит к управлению проектами, как и случилось у меня в T-Systems. Руководство проектами – это прекрасно: и опыт, и почет, и уважение, но простора для инженерной деятельности там не остается. А руки-то помнят! (с)
Остается использовать полученные знания и навыки в своих сторонних проектах, благо, такая возможность есть.
Кроме всего прочего, я еще немного (лет 5-6) саксофонист. И все хорошо в этом прекрасном инструменте, но уж очень он громкий. И с первых своих уроков я мечтал о появлении в моей жизни такого же саксофона, но чтобы можно было играть на нем в наушниках и не донимать соседей, чтобы был этакий тренировочный инструмент.
Конечно, существуют электронные духовые инструменты, флагманы — AKAI EWI и Roland Aerophone, но, во-первых, они очень компромиссные с точки зрения положения пальцев и вообще эргономики (не говоря уже про амбушюр), а во-вторых, кроме них, ничего на рынке и нет, а эти стоят 60+к. Извините, но мой сакс — американец CONN — стоит в 2 раза дешевле (весьма подержанный, впрочем, но еще меня переживет). Так что задушили они меня вдвоем — жаба и жажда деятельности. Будем делать электросакс.
Очень желательно:
Что есть в наличии:
Чуть больше 2 лет назад я взял с собой в отпуск стартовый набор Arduino UNO, пару шприцов (не подумайте плохого), датчик давления BMP180 и желание попробовать это все на досуге.
Получилась такая смешная конструкция с 3 кнопками, но, на удивление, она заработала!
Когда я туда дул, появлялся звук, соответствующий комбинации кнопок. Звук, конечно, был системно-динамиковый, прямо в уши неискушенному пользователю.


Но опыт удался, а это означало, что всей птичке пропасть, коль увяз коготок.
Дальше будет некоторое количество промежуточных вех, кому не интересны детали, листайте до конца, там результаты и выводы.
Корпус — кабель-канал и пластиковые трубы, разводка кнопок на фольгированном стеклотекстолите резаком, очень похоже на игрушку, сделанную в гаражном кооперативе 90х. Датчик BMP180, MIDI, кнопки тактовые ардуинские. Первый мундштук из той же пластиковой трубы. Язык Си, среда разработки Arduino.
Очень большие задержки образовались (четверть-половина секунды), долго думал, что из-за MIDI (использовал MIDI-OX и Hairless MIDI). Решил делать встроенный звук.


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


Еще летом купил себе на день рождения 3д-принтер, самый простой, Anet A6. Решил подизайнить с ним. Кстати, этот дизайн мне нравится до сих пор, может быть, такой внешний вид будет у одного из готовых инструментов, но пока не уверен, слишком много возни.


Первый записанный звук (ужаснитесь), первая полностью работоспособная модель. https://www.youtube.com/watch?v=hhtxDk5x1P8 [1]
Кнопки от механической клавиатуры Cherry MX Blue (знакомый саксофонист оценил, говорит, похоже на настоящие щелчки клавиш. Мне тоже так показалось.)
Вот примерно так выглядел:

Сделал упор на технологичность и блочную компоновку: печатный монтаж (лазерный утюг, кто в теме, перекись водорода и лимонная кислота с солью), шлейфы и максимальное использование готовых модулей. На UNO не хватало пинов для всех кнопок, решил действовать пока экстенсивно — использовал Arduino Mega.
Получилась первая модель, которую можно вынести на улицу, поиграть у друзей, вернуть обратно, и все это — без единого разрыва (с).



Тем временем поменял цифровой датчик давления BMP180 на аналоговый от Motorola, переписав часть программы. Задержки исчезли. Совсем. Заодно добавил мундштуку возможность подтянуть звук тростью, как у настоящих саксов. Тензорезистор справа снизу.

Заработал Aux-in, теперь могу играть на электросаксе под минусы ночью, и все, что услышит наблюдатель — это пыхтение исполнителя и щелчки клавиш.
(3.5 мм джек, с телефона можно минус замешать в звук исполнителя)

Теперь он может складываться в 3 раза и помещается даже в женскую сумочку (не самую мелкую, впрочем, проверял на жене). Внутренности поменялись на еще более модульные, Arduino был Mega, стал Nano. Много 3d-печати, но еще не весь, для корпуса по-прежнему используется кабель-канал, очень уж удобно.


Это не точка, это внушительная запятая!

Нерешенные задачи:
Основная идея — построить это на реальных звуках (WAV). Боюсь, что это придумывание очень давно придуманного велосипеда под названием SoundFont, а еще мощи Arduino может не хватить. Но, может, еще и возьмусь.
Есть другая идея — уменьшить количество электроники и увеличить количество программирования: например, использование Raspberry PI вместо Arduino. SoundFont там применим программно. Возможные проблемы:
Raspberry завелся (пока что модель B), первые звуки получены, язык — снова C (хотя, наверное, можно и питона какого использовать, но пока не научился), использую свободно распространяемый синтезатор Fluidsynth как библиотеку, начинаю работать с GPIO. Про задержки пока непонятно, могут быть на стыке аналогового датчика и полностью цифровых GPIO.
Спасибо за внимание! Если есть интерес к проекту, то еще встретимся, и я расскажу о дальнейшем его развитии.
С вами был Сергей Балашов,
PM в компании T-Systems в рабочее время, а в свободное — инженер-саксофонист!
Следить за этим и другими моими проектами (вне рамок компании) можно тут:
https://vk.com/happy_sax [2]
P.S.: А если кто в Питере поджемить хочет, но стесняется — после карантина тоже приходите:
https://vk.com/eclectic_jam [3]
Про джемы в другой раз расскажу, может, и не здесь, тут все же про IT, не про музыку.
Автор: Сергей Балашов
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/arduino/355891
Ссылки в тексте:
[1] https://www.youtube.com/watch?v=hhtxDk5x1P8: https://www.youtube.com/watch?v=hhtxDk5x1P8
[2] https://vk.com/happy_sax: https://vk.com/happy_sax
[3] https://vk.com/eclectic_jam: https://vk.com/eclectic_jam
[4] Источник: https://habr.com/ru/post/514906/?utm_source=habrahabr&utm_medium=rss&utm_campaign=514906
Нажмите здесь для печати.