Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

MIDI-синтезатор на шаговых двигателях под управлением Arduino

Компоненты и материалы

Arduino UNO (или совместимая плата) 1 шт.
Драйверы шаговых двигателей A4988 4 шт.
Arduino CNC Shield V3 (опционально) 1 шт.
Блок питания 12 В 6 А 1 шт.
Шаговые двигатели NEMA 17 (OpenBuilds) 4 шт.

Инструменты и оборудование

Описание проекта

Проект преобразует MIDI-данные в звук, генерируемый четырьмя шаговыми двигателями. Идея возникла после просмотра видео с музыкой на флоппи-дисках. Цель — создать простой, легко модифицируемый код для управления несколькими двигателями одновременно.

Извлечение MIDI-данных

Используется библиотека MIDI для парсинга входящих сообщений и передачи нот в функцию управления скоростью двигателей.

Управление шаговыми двигателями

Драйверы A4988 имеют входы STEP и DIR. DIR фиксируется (например, LOW), а STEP пульсирует для выполнения шагов. Звук не зависит от направления вращения.

Главная задача: одновременный запуск нескольких двигателей

Функция delay() блокирует выполнение, поэтому используется micros() для точного тайминга пульсов. Скорости хранятся в массивах, индексы которых соответствуют номеру двигателя и MIDI-каналу. Это позволяет масштабировать количество двигателей простым изменением размера массива.

Расчёт скоростей (частот)

Экспериментально установлено: подача меандра 440 Гц на вход STEP даёт ноту Ля первой октавы (A440). Период в микросекундах для каждой MIDI-ноты предварительно вычисляется и сохраняется в массиве pitchValues. Нулевое значение означает паузу. Массив позволяет скорректировать частоты вблизи резонанса двигателя (у автора это F3 — ноты E3, F3, F#3 сдвинуты на октаву). Для настройки используется скетч Tune Stepper.ino.

Создание USB-MIDI-устройства

Для распознавания Arduino как MIDI-устройства прошивается AVR-чип (ATmega16U2/8U2) прошивкой mocoLUFA (поддерживает dual-boot: перемычка на ICSP переключает между USB-MIDI и USB-Serial, позволяя перепрошивать скетч без перепрошивки AVR).

Код и ресурсы

Полный код, инструкции по настройке и установке доступны в репозитории GitHub:

https://github.com/jzkmath/Arduino-MIDI-Stepper-Motor-Instrument

Печатные детали и корпуса

Схемы подключения

MIDI-синтезатор на шаговых двигателях под управлением Arduino
Расположение перемычек на CNC Shield V3
MIDI-синтезатор на шаговых двигателях под управлением Arduino
Подключение на макетной плате
MIDI-синтезатор на шаговых двигателях под управлением Arduino
Принципиальная схема (Fritzing) с номиналами элементов
MIDI-синтезатор на шаговых двигателях под управлением Arduino
Вариант с MIDI DIN-разъёмом

Производственный процесс

  1. Янтарь: от древней смолы к научному сокровищу — история, свойства и современное использование
  2. Гильотина: история, конструкция и наследие
  3. Кремний: свойства, производство и рыночный обзор
  4. Укулеле: от португальских корней к современному мастерству
  5. Полное руководство по американской куриной отрасли: история, производство и контроль качества
  6. Компост: идеальное решение для обогащения почвы
  7. Желатин: от древнего белка к современным применениям — производство, использование и безопасность
  8. Эволюция и производство современных цилиндровых замков с пин-тумблерами
  9. Водка: от древней дистилляции к современному производству
  10. Железо: свойства, история и повседневные применения