

Танцующая балерина создана для моей внучки.
Идея заключалась в том, чтобы создать балерину, которая медленно вращалась бы, пока мигало светодиодное кольцо RGB и играл вальс.
Я хочу поблагодарить Майтана за его балерину, которую я немного изменил для этого проекта.
Прилагаемая видеоанимация дает представление (без светодиодов) того, чего я пытался достичь.
Запчасти
- ATtiny85 (изначально я хотел использовать ATtiny13, но он не справлялся с музыкой)
- Адаптер гнезда ATtiny
- Пьезо-пассивный зуммер
- Червячный мотор-редуктор турбины (5-12 В, 5-12 об / мин)
- Светодиодное кольцо RGB (12 бит WS2812)
- Розетка постоянного тока
- RDP30N06LE Мосфет
- 1N4001 Диод
- Самоблокирующаяся / фиксирующаяся кнопка
- Стрипборд печатной платы
- Два самореза
- Резистор: 300-500 Ом и 10 кОм
- Конденсатор: 1000 мкФ, 6,3 В или выше
- Проволока
- Термоусадочные трубки
- Эпоксидный клей
- Супер клей
- Источник питания 5В
Программное обеспечение
- Блендер
- FreeCAD
- Frtizing
- Музыкальное ядро
- Arduino IDE
Инструменты
- 3д принтер
- Паяльник и припой
- Инструмент для зачистки проводов
- ATtiny Shield для Arduino
- Дрель
- Мультиметр
- Ножовка
Строительство этого проекта обошлось мне менее чем в 10 долларов.
Шаг 1: оригинальная концепция


Я включаю это просто для того, чтобы детализировать некоторые из моих знаний. Первоначальный дизайн был таким, как показано на фотографиях, то есть двигатель должен был быть установлен снизу с приклеенным держателем светодиода. Однако это не дало хорошей отделки относительно расположения держателя светодиода, а также не дало мне достаточно места для закрепления схемы.
Также изначально часть для крепления балерины к вращающемуся валу была полностью цельной, но, к сожалению, конструкция была недостаточно прочной, и модель сломалась в лодыжке, а также в точке крепления. Я смог приклеить лапку обратно, но как я ни старался, я не смог снова прикрепить нижнюю часть.
Я мог бы переделать и перепечатать всю балерину, но в конце концов выбрал другой подход, который, как мне кажется, сработал даже лучше.
Шаг 2: Печать деталей




Используя Blender, я отредактировал танцора Майтана, удалив основание и добавив небольшой пьедестал, который будет использоваться для крепления мотора. Здесь я обнаружил недостаток дизайна (или, может быть, это было результатом моих ограниченных знаний в области 3D-печати). Как вы увидите на моих фотографиях, во время уборки напечатанной танцовщицы и ступня, и пьедестал отломились. Используя эпоксидную смолу, мне удалось успешно вставить ступню, но я не смог повторно закрепить часть пьедестала. Поэтому я напечатал отдельный цилиндр, который будет плотно прикрепляться к валу двигателя и в который можно будет приклеить ногу балерины. Перед тем, как прикрепить цилиндр к валу, был напечатан купол, который был помещен на вал и вокруг него, чтобы закончить все это.
Основание, балерина и соединительные части купола были выполнены в контрастных цветах, что помогло добавить к общему эффекту.
Первоначально опора мотора была круглой, но затем я обнаружил, что когда переключатели были прикреплены к главному конусу, эта конструкция не давала мне достаточно места, чтобы вставить опору мотора в нужное положение. Поэтому я сделал его квадратным, срезав закругленные края (см. Комментарии к изображениям, чтобы лучше понять, что я имею в виду).
За исключением балерины, FreeCAD использовался для создания 3D-печатных деталей (файлы FreeCAD вместе с экспортированным файлом SLT прилагаются).
Примечание: Балерина не подходящего размера, поэтому ее необходимо масштабировать в программном обеспечении для 3D-печати так, чтобы расстояние между кончиками ее рук было примерно 140 мм в ширину.
Шаг 3: Подготовка музыки
Отказ от ответственности: я не музыкант и поэтому не знаю названий нот или части музыкальных произведений, поэтому, пожалуйста, прислушайтесь к моему плохому описанию ниже.
Загрузите файл MIDI в MuseScore (или программу, которая позволит вам редактировать файлы MIDI), а затем отредактируйте музыку следующим образом:
- Если в одном столбце есть заметки, оставьте только верхнюю заметку, удалите все заметки под ней.
- Удалите нижний набор заметок. Таким образом вы сократили бы музыку до отдельных нот.
- Экспортируйте новую партитуру в новый файл MIDI.
Теперь этот файл необходимо преобразовать в соответствующий код Arduino. Этого можно добиться с помощью:
Полученный код можно затем включить в окончательный код.
ПРИМЕЧАНИЕ
Я прикрепил оба аудиофайла, чтобы вы могли их сравнить (в MuseScore). Надеюсь, это поможет лучше объяснить мои шаги, описанные выше.
- Waltz_No._2_by_Shostakovich.mid (исходный файл)
- Waltz_No._2_by_Shostakovich-editted.mid
Поскольку ATtiny85 имеет только ограниченный объем памяти, мне также пришлось обрезать музыку, чтобы весь мой желаемый код поместился на чипе.
Шаг 4. Загрузка кода
Используя Arduino Uno и ATtiny Shield, загрузите прикрепленный код в свой ATtiny13.
Библиотека, которую я использовал для ATtiny85, была https://drazzy.com/package_drazzy.com_index.json. Добавьте к вам дополнительные платы (в файле, в настройках), а затем установите ATTinyCore от Spence Konde.
Основные моменты заключаются в следующем:
- Светодиоды питались от вывода 3.
- Пьезо динамик питался от вывода 1.
- Двигатель приводился в действие от контакта 0 и настроен таким образом, чтобы я мог замедлить его до желаемой скорости. Я использовал следующий учебник, чтобы узнать, как использовать MOSFET для достижения этой цели.
После этого чип можно вставить в гнездо ATtiny на плате.
Распиновку ATtiny85 можно найти здесь.
Шаг 5: Сборка проекта



Припаяйте провода к светодиодному кольцу. Я использовал черный провод, чтобы они не были заметны (убедитесь, что провода достаточно длинные, чтобы проходить под держателем светодиода, вниз по внутренней части конуса, а затем по внутренней части нижней части основания). Поскольку все они были одного цвета, я обмотал концы изоляционной лентой разного цвета, чтобы знать, к каким точкам они подключены. Пропустите провода через это отверстие, а затем приклейте светодиодное кольцо на место с помощью эпоксидной смолы.
На сегодняшний день это самая сложная схема, которую я собрал, и поэтому я уверен, что, вероятно, есть гораздо лучший и аккуратный способ сделать это. Я вырезал два куска картона по схеме. Один для ATtiny85 и один для mosfet и связанных компонентов.
Я выполнил следующие шаги:
- Присоедините провода к светодиодному кольцу
- С помощью эпоксидного клея приклейте отжим светодиода к держателю светодиода.
- Зафиксируйте двигатель, вкрутив его в держатель.
- Приклейте пьезо-динамик к опорной плите (включая все остальные клееные детали, которые сделаны с помощью суперклея).
- Вставьте переключатели и розетку в главный конус и припаяйте к ним соединительные провода. Контакт на переключателях необходимо согнуть, чтобы освободить место для крепления мотора (будьте осторожны при этом, так как при этом я сломал несколько переключателей). Очень важно убедиться, что вы правильно подключили электрическую розетку. Поэтому стоит подключить блок питания к вилке, а затем с помощью мультиметра проверить правильность полярности, прежде чем подключать его к печатной плате.
- Соберите плату ATtiny85
- Соберите доску Mosfet
- Приклейте два стрипбарда к опорной плите.
Перед установкой двигателя и опорной плиты на место необходимо запрограммировать ATtiny85 (см. Предыдущий шаг). После этого можно выполнить следующие шаги:
- Вставьте запрограммированный ATtiny85
- Вставьте двигатель и опорную плиту. Это очень плотная посадка, но ее можно добиться, ничего не сломав, если позаботиться о ней.
- Затем с помощью суперклея приклеивается основание.
- Перед тем, как прикрепить отделочный купол наверху держателя светодиода, с помощью ножовки обрежьте вал двигателя до нужного размера, чтобы цилиндр, используемый для крепления балерины, располагался на правильной высоте, то есть более или менее на уровне вершины. чистовой купол.
- Приклейте купол на место
- Приклейте лапку балерины к соединительному цилиндру.
- Вставьте соединительный цилиндр на вал двигателя.
Последние указатели:
- При необходимости можно использовать небольшое сверло, чтобы сломать необходимые секции на полосовых досках. Просто держите насадку между фигурами, вращая ее так, чтобы медь удалилась с доски.
- При необходимости использовались термоусадочные трубки для защиты соединений от случайного короткого замыкания.
Шаг 6: Заключительные примечания
В качестве прототипа я очень доволен конечным продуктом. При этом говорилось, что если бы я сделал это снова, я бы внес следующие изменения:
- Создавайте более качественные чертежи FreeCAD (для меня САПР все еще в стадии разработки, и мне еще предстоит многому научиться).
- Найдите способ лучше скрыть проводку и компоненты. Хотя это не очевидно, но можно заглянуть в верхнюю часть конуса и увидеть некоторые провода, переключатели и винты двигателя (что снижает общий эффект). Быстрым решением было бы покрасить внутренние детали в черный цвет перед окончательной сборкой. Лучшим решением было бы потратить больше времени на внутреннюю планировку.
- Я использовал библиотеку FastLED вместе с частью примера DemoReel для достижения эффекта светодиода. Я уверен, что есть более эффективные способы достичь конечного результата, но в данном случае это сработало для меня. Если бы я сделал это снова, я бы, вероятно, потратил больше времени, пытаясь улучшить этот раздел.
- Я не могу решить, двигается ли балерина по-прежнему слишком быстро. Я склонен еще немного замедлить его, но, увы, слишком сложно добраться до ATtiny85, чтобы его перепрограммировать.
- Выключатель, используемый для выключения звука, находится очень близко к розетке. Его положение затрудняет повторное включение, когда питание подключено. Этот переключатель, вероятно, следует изменить на тот, который похож на кнопку включения / выключения, используемую в этом проекте.
- Я должен был изменить последовательность запуска, чтобы включались свет, затем музыка, а затем начинала двигаться балерина. Сейчас движение начинается первым.
И последнее, но не менее важное: я хочу поблагодарить Unleash Space (и их замечательную команду) за то, что они открыли мне мир 3D-принтеров, лазерных резаков, электроники и т. Д. И заставили мои творческие соки гудеть безграничными возможностями (на сегодняшний день практически все мои проекты в результате того, что я могу работать в этом пространстве). Я также хочу поблагодарить Instructables за возможность поделиться своим путешествием в удивительный мир Makerspace.