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

Компактная MIDI-барабанная установка с 3D-печатью

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

Arduino UNO1 шт.
LCD 16x2 (White on Blue)1 шт.
Пьезоэлемент (SparkFun)1 шт.
Силовой резистивный датчик (FSR) Adafruit1 шт.
Резисторы: 10 кОм, 1 МОмпо 1 шт.
Стабилитрон 5.1В 1Вт1 шт.
Тактовая кнопка 12 мм1 шт.
Тумблер (Slide Switch)1 шт.
TRS-разъём (Jack 6.3 мм)1 шт.
USB A-B кабель1 шт.
Адаптер Lightning-USB (для iOS)1 шт.

Инструменты

Программное обеспечение

О проекте

Минималистичная электронная барабанная установка на Arduino UNO. Состоит из двух частей:

  1. Набивные тарелки (пэды), напечатанные на 3D-принтере и собранные из толстой бумаги/МДФ.
  2. МIDI-конвертер триггеров на Arduino UNO: сигналы от пьезо- и FSR-датчиков преобразуются в MIDI и передаются по USB на iPhone/ПК (GarageBand, Hydrogen и др.). Питание — от USB-устройства.

Вдохновлено проектом 3D Printed E-Drum Pad.

Необходимые материалы для барабанов

Шаг 1: 3D-печать

Модели на Thingiverse/GitHub (векторные файлы для лазера). Используйте версию 2 для ободка (rim).

Шаг 2: Сборка каркаса

Соединяйте детали болтами M3×10 мм. Центральная часть — M3×15/25 мм для фиксации дна.

Компактная MIDI-барабанная установка с 3D-печатью

Шаг 3: Изготовление оболочки (shell)

Шаг 4: Установка пьезоэлементов

Снейр (10″): два пьезо — на мембрану (tip) и ободок (ring). Пьезо головы помещается между слоями пены 10 мм (1 снизу, 3 сверху в форме конусов). Кабели проложите через отверстия сенсорной платы.

Кик (8″): один пьезо (только tip), смещённый от центра. Две прослойки пены под пьезо.

Хай-хэт (12″): один пьезо (tip), подложка из пены 10 мм.

Пьезо хрупки — избегайте изгибов.

Шаг 5: Снейр 10″

Установите датчик ободка, зафиксируйте сенсорную плату так, чтобы конусы пены выступали на 2–3 мм.

Шаг 6: Кик 8″

Распилите нержавеющую трубу: 2×200 мм и 2×365 мм. Соберите раму на болтах M3×15 мм (гайки закладываются внутрь деталей).

Шаг 7: Хай-хэт 12″

  1. Вырежьте 3 круга Ø300 мм из толстой бумаги.
  2. Сделайте два параллельных выреза (ширина 10 мм) от центра — получится три «Пакмана».
  3. Заклейте рты скотчем, формируя конус (цимбалу). Проклейте слои клеем, припрессуйте грузами.
  4. Для демпфирования вложите пену 5 мм, просверлите отверстие под датчик.
  5. Закрепите держатель датчика и кабель-канал на двустороннем скотче/клеевом пистолете.

Шаг 8: Контроллер хай-хэта (педаль)

FSR-датчик на нижней части, над ним пена 10 мм. При нажатии сопротивление меняется — Arduino определяет открытое/закрытое состояние. FSR позволяет в будущем реализовать многостадийное управление (как в Roland/Yamaha или EZ Drummer 2).

Шаг 9: USB-MIDI (прошивка ATmega16U2)

Стандартный Arduino UNO не распознаётся как MIDI-устройство. Нужно перепрошить ATmega16U2 прошивкой dualMoco.hex (проект MocoLUFA).

sudo dfu-programmer atmega16u2 flash dualMoco.hex

После перепрошивки Arduino виден как MIDI-устройство. Для загрузки скетчей — замкните контакты на плате (как на фото), вернёт режим обычного Arduino.

Шаг 10: Shield Trigger-to-MIDI

Схема на фото (Fritzing). Диоды защиты (возможно, избыточны — у UNO есть встроенная защита). Корпус печатается на 3D-принтере или режется лазером.

Шаг 11: Игра в GarageBand

Просто запустите GarageBand и подключите USB. Работает также с Hydrogen (бесплатно, для ПК).

Шаг 12: Настройка параметров (через LCD и кнопки)

Управление: INC/DEC — выбор инструмента, NEXT/BACK — параметр, EDIT — вход в редактирование значения.

Шаг 13: Fusion 360

Исходники в Fusion 360 на GitHub (папка Fusion360). История операций может быть нечистой — лучше не полагаться на неё.

Дополнительно

Полная инструкция на Instructables: Arduino Minimal Drum Kit. Блог автора с деталями.

Код

Hello Drum v2 (Arduino)

/* Drum MIDI Controller
   Created: 28/06/2017 by Ryo Kosaka as "HELLO DRUM" Ver.1.0
   Modified: 05/12/2019 by George Brotherston */
#include 
#include 

// Настройки инструментов: {threshold, sensitivity, note, flag, velocity, peak}
int aSNARE[6] = {150, 950, 38, 3, 0, 0};
int aSNARE_RIM[6] = {5, 500, 37, 3, 0, 0};
int aHIHAT[6] = {100, 800, 46, 1, 0, 0};
int aHIHAT_CLOSE[6] = {100, 800, 42, 1, 0, 0};
int aKICK[6] = {200, 700, 36, 1, 0, 0};
int aHIHAT_PEDAL[4] = {600, 0, 44, 0}; // {scantime, snare/rim, pedalVelocity, masktime}
int aSETTING[4] = {4, 500, 100, 1};    // {threshold, sensitivity, note, flag} для редактора

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {
  MIDI.begin(10);
  lcd.begin(16, 2);
  lcd.print("INITIALIZING...");
  lcd.setCursor(0, 1);
  lcd.print("DRUM MIDI CONTROLLER");
  pinMode(6, INPUT_PULLUP); // SET
  pinMode(7, INPUT_PULLUP); // UP
  pinMode(8, INPUT_PULLUP); // DOWN
  pinMode(9, INPUT_PULLUP); // NEXT
  pinMode(10, INPUT_PULLUP); // BACK
}

void loop() {
  // Чтение кнопок и пиезо (A0-A4) — см. полный код в исходнике
  // Логика редактирования параметров через LCD
  // Обработка ударов: поиск пика, масштабирование velocity, отправка MIDI NoteOn/NoteOff
  // Управление флагами повторных срабатываний
  // ... (полный код доступен в репозитории)
}

Схемы

Компактная MIDI-барабанная установка с 3D-печатью

Файл схемы: circuit_nZotR7rJMM.fzz

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

  1. Барабан: исчерпывающее руководство по истории, конструкции и мастерству
  2. Шанхайские хирурги напечатали кастомные титановые костные импланты для онкопациента
  3. MAXREFDES220# — Бесманжетный мониторинг артериального давления с оптическими датчиками
  4. Подключение GrabCAD Print к Stratasys 3D-принтеру: пошаговое руководство
  5. За пределами прототипов: реальные инновации, созданные с помощью 3D-печати
  6. Интерактивный гироскопический LED-дисплей на NeoPixel Ring и Arduino
  7. DIY-костюм «Облако»: LED-лента, Arduino Nano и детали SparkFun
  8. Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
  9. Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
  10. Освоение распознавания и синтеза речи на Arduino Due