Привет, Пикабу! С наступающим Новым годом. Решил сделать более-менее качественный новогодний пост т.к. в предыдущем прикола не оценили, ну и ладно, проехали. Итак, в интернете у китайцев (Aliexpress, Banggood), можно заказать вот такую вот музыкальную шкатулку:
(Фото взято с сайта Banggood). Шкатулка представляет из себя стандартный пружинно-маховиковый механизм, точно такой же, как используется в детских игрушках и часах. Он сопряжен с барабаном и специальной гребенкой ("расческой"), которая собственно и является музыкальным инструментом. Мне досталась одна такая шкатулочка, выглядит в точности, как на стоковом фото:
Сама платформа выполнена литьем, в неё вкручены детали. Коробочка с механикой завальцована. И тут в голову закралась мысль, а можно ли записать туда свою мелодию, чтобы муз. шкатулка её исполнила. Оказывается, можно. Но т.к. деталь очень точная, для этого придётся воспользоваться современными технологиями - а именно, 3D принтером. Но, для начала, надо разобрать механику и извлечь старый барабан. Для этого надо пассатижами выкрутить упорный центр. Развальцовывать деталь не надо:
Для удобства можно сразу снять гребенку, т.к. её все равно придётся снимать. Сам барабанчик разбирается просто: отделяется верхняя крышка и нижняя крышка-шестерня. Внутри он полый:
Скорее всего, после снятия барабана у вас соскочит пружина. Поэтому механику рекомендую разобрать сразу. Крышечка пружины приделана на заклёпки. Но их можно расклепать или срезать бормашиной, после чего механику снять. Чтобы зацепить пружину заново, нужно вытащить вал с трещоткой и установить пружину в нужное положение. Не будем сильно на этом останавливаться. Вот, как выглядит шкатулка со снятой механикой, видна коробка передач, маховик с червячной передачей, трещотка пружины.
Работает заводная шкатулка очень просто: пружина приводит в действие барабан. Червячная передача раскручивает маховик, но таким образом, что усилие можно приложить только в одну сторону - излишнее или недостаточное усилие будет скомпенсировано вращающимся маховиком, это обеспечивает стабильную скорость вращения и сопротивляемость нагрузкам (т.к. нагрузки при отклонении одного или пяти язычков отличаются). Трещотка нужна для того, чтобы барабан не вращался в обратную сторону во время закручивания. Пупырышки на барабане задевают язычки в определенный момент вращения и тогда шкатулка звучит. Теперь рассмотрим сам "инструмент":
Инструмент представляет собой расческу, выполненную из качественной инструментальной стали. Для меня стало открытием, что гребенка настраивается под конкретный барабан. Можно увидеть работу настройщика по бороздкам, проточенным при помощи бормашинки. Срезание тела язычка позволяет занизить тон до требуемого уровня, т.к. увеличивается подвижность средней части язычка, и верхняя часть превращается в своего рода "нагрузку" для неё. Стачивание пластинки таким образом влияет на громкость. При помощи тюнера я выяснил, каким нотам соответствует текущая настройка язычков:
Расческа имеет 18 звуков, соответствующих своим нотам. Некоторые ноты дублируются по высоте - это связано со временем восстановления язычка (т.к. после того, как язычок был активирован, ему надо время на то, чтобы соскочить и доиграть. В этот период повторно к нему обращаться нельзя. Потому и введены дублирующие язычки).
Настроена гребенка в тональность фа-мажор (ре минор), имеет неполный диатонический звукоряд - все ноты гаммы кроме ноты ми (её потом планирую позже сам добавить). Диапазон звучания: си-бемоль 1 октавы - ре 3 октавы. В нижней части диапазона звучат басы, а мелодия играется на верхней части расчески. Теперь понятна суть инструмента. Следующее, что нужно сделать: разработать 3D-модель барабана с пупырышками, которые отклоняют язычки. Но для того, чтобы изготовить модель, сначала производятся измерения. Нам нужны следующие величины: длина расчески, длина барабана, внутренний диаметр барабана, наружный диаметр барабана, диаметр пупырышка:
Допускаются погрешности в 0,1-0,2 мм, т.к. сами детали на шкатулке достаточно подвижны - можно сдвинуть и гребенку, и барабан при помощи центра. Особо точные измерения не потребовались. Теперь, ориентируясь на эти данные, создана 3D модель цилиндра:
Некоторые особенности модели: языки (Tool) располагаются с интервалом по Y в 16/18 т.е. 0,888 мм. Реальный их интервал примерно 0,893 мм. Но т.к. нарезаны они не совсем равномерно, то могут отклоняться в стороны на 50-60 микрон. Ось вращения инструментов (0-17) выставлена по оси вращения главного цилиндра. Это позволяет следующее: чтобы разместить какую-либо ноту на временной катушке, нужно повернуть на определенный угол относительно Y-проекции центральной оси цилиндра наш "инструмент". Вы можете заметить, что инструменты на модели плоские и отличаются от формы пупырышка - да, к такому пришлось придти ввиду несовершенства моего принтера. При качестве печати в 0,1мм достаточно одного слоя, чтобы сформировать пупырышек, т.к. нитка немного провисает. Позже всё увидите сами.
Теперь надо сформировать на барабане мелодию. Так как дело близится к Новому году, я решил взять песенку "В лесу родилась ёлочка". Я использую редактор MuseScore. Но для начала надо разместить все имеющиеся на гребенке ноты и присвоить им номера соответственно дорожкам на модели. Вот так это выглядит:
Теперь задача следующая: барабан вращается с постоянной уголовой скоростью w и делает полный оборот (360 градусов) примерно за 20 секунд. Т.е. Для мелодии с темпом Moderato (80 ударов/минута) мы сможем разместить только 80/60 = 1,3; 1,3 * 20 = 20,6 ударов. Отбросим дробную часть, т.е. примерно 20 четвертных нот можно разместить на барабане, что равно 10 тактам при размере песни "Ёлочка" в 2/4. Исходя из этого рассчитаем угловой поворот: на 1 такт барабан должен поворачиваться 360/10 = 36 градусов. Для удобства округлим до 40 градусов на такт. Теперь возьмём мелодию. При помощи текста системы я уже разделил такты по градусам. А внизу присваивается номер для каждой ноты соответственно номеру канала на барабане:
Песня заняла у меня 9 тактов. Т.к. мелодия играется восьмыми нотами, расстояние между каждой нотой или паузой будет равно 10 градусам поворота. С учетом округления её темп будет примерно равен 76 ударам, что вписывается в рамки moderato. Теперь нужно на исходной модели продублировать и отклонить каждую ноту на такой угол в градусах, чтобы она размещалась точно на своём месте:
Т.к. я был не уверен, что получится сразу, разместил только один голос мелодии. В дальнейшем планирую, если будет свободное время, написать программу, преобразующую MusicXML файл в углы поворота (градус) для автоматического расчета. Ещё не совсем подходит боковое крепление модели к родному барабану. Но, учитывая устройство шкатушки - а именно, наличию на ней невращающегося упорного центра, работе это совершенно не мешает. Для первого раза разместил все ноты вручную. Конечно, есть ошибки и неточности при размещении вручную. Также сделал один тестовый барабан для проверки расстояния язычков. Вот он:
Как видно на тестовом барабане, ввиду того, что шаг гребенки не совсем равен шагу печати 3D принтера, некоторые дорожки не пропечатались. Для исправления ситуации они были сдвинуты на несколько микрон, чтобы алгоритм пересчитал их заново. Также в самом начале добавил два пупырышка для того, чтобы можно было выровнять гребенку. В дальнейшем работа велась на скорректированной модели. И вот результат: шкатулка играет песню "В лесу родилась ёлочка".
Кстати говоря, моя шкатулка поставлялась с пластиковым корпусом, который значительно увеличивает резонанс и усиливает громкость звучания. Если ваша шкатулка оказалась без него - рекомендую изготовить из подручных материалов. Без этого корпуса звучание делается очень тихим. Всех с наступающим Новым годом, друзья! Не болейте и развивайте мозги. С вами был Kekovsky.