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

DIY пульт управления DAW для стоек Roland E-Drum: Arduino Micro Pro

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

Arduino Micro Pro 1
Тактильные кнопки (нормально открытые) 7
3D-печатные зажим и корпус 1

Инструменты

Приложения

О проекте

Неудобно управлять ноутбуком с DAW (у меня Cubase) во время записи ударных — не хочется бросать палочки. Готовые решения дорогие или не крепятся на стойку Roland. Сделал свой бокс на Arduino Micro Pro. Крепится на стандартные трубы 38 мм стоек Roland.

Инструкция

  1. Печать деталей: 2 части зажима + корпус. PLA нормально, PETG — прочнее. Зажим: болт M4×40 как ось между частями, затяните, но чтобы вращалось. М6 винт-бабочка с гайкой — зажим на стойке. 2× M3×4 болта+гайки — крепление верхней части зажима к коробу.
  2. Фронтальная панель: Несколько вариантов. Можно самому спроектировать под свои кнопки. Используйте шаблоны STL (для 3D-печати) или SVG (для ЧПУ). Я фрезеровал на своем ЧПУ — нравится гравировка, но 3D-печать тоже ок.
  3. Монтаж кнопок и пайка: Вставьте кнопки в панель, припаяйте к пинам Arduino (см. назначение ниже). Я использовал отдельную PCB для места — не обязательно. 4 угловых отверстия для фиксации PCB. Закройте панель 2× M3 винтами.
  4. Прошивка Arduino: Любой Micro Pro, но именно Arduino Micro PRO (не обычный Micro!) — у него встроенный USB и нативная эмуляция клавиатуры (HID). Может эмулировать любые клавиши, включая F-клавиши и нумпад. Библиотеки могут отличаться — поправьте код под свою плату. Я использовал пины 2-8 как INPUT_PULLUP. Кнопки замыкают на GND — код детектирует и эмулирует нажатие.

Моя раскладка для Cubase:

ПинКнопкаКлавишаФункция в Cubase
2McМетроном Вкл/Выкл
3LNum 1Переход к левому локатору
4>>Num +Вперёд
5<<Num -Назад
6PSPACEPlay/Stop
7BbНачало (Begin)
8RNum *Record

Легко меняется в коде. Используйте мой как пример.

Удачи!

Код

Arduino Micro Pro код для Rack Button Box (C/C++)

В Arduino IDE выберите плату Arduino Micro Pro.

/* ROLAND RACK BUTTON BOX
 * Для Arduino Pro Micro! Эмулирует клавиатуру для DAW (Steinberg Cubase).
 * Опционально: сериал для отладки, светодиоды RX/TX на плате.
 * Коды Num-клавиш: https://forum.arduino.cc/index.php?topic=659117.0
 */
#define DEBUG_OUTPUT 0
#include <Keyboard.h>
#define KEYPAD_1 225
#define KEYPAD_PLUS 223
#define KEYPAD_MINUS 222
#define KEYPAD_ASTERIX 221

int RXLED = 17;

void setup() {
  pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP);
  pinMode(8, INPUT_PULLUP);
  pinMode(RXLED, OUTPUT);
  digitalWrite(RXLED, HIGH);
  Keyboard.begin();
  Serial.begin(9600);
  if (DEBUG_OUTPUT == 1) Serial.println("Button Box Serial Monitor");
}

void loop() {
  Keyboard.releaseAll();
  digitalWrite(RXLED, HIGH);
  delay(50);

  if (digitalRead(2) == 0) { // M
    if (DEBUG_OUTPUT) Serial.println("Button M");
    digitalWrite(RXLED, LOW);
    Keyboard.press('c'); delay(5); Keyboard.releaseAll();
    while(digitalRead(2) == 0);
  }
  if (digitalRead(3) == 0) { // L
    if (DEBUG_OUTPUT) Serial.println("Button L");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_1); delay(5); Keyboard.releaseAll();
    while(digitalRead(3) == 0);
  }
  if (digitalRead(4) == 0) { // >>
    if (DEBUG_OUTPUT) Serial.println("Button >>");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_PLUS);
    while(digitalRead(4) == 0); // повтор при удержании
    Keyboard.releaseAll();
  }
  if (digitalRead(5) == 0) { // <<
    if (DEBUG_OUTPUT) Serial.println("Button <<");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_MINUS);
    while(digitalRead(5) == 0);
    Keyboard.releaseAll();
  }
  if (digitalRead(6) == 0) { // PLAY/STOP
    if (DEBUG_OUTPUT) Serial.println("Button PLAY/STOP");
    digitalWrite(RXLED, LOW);
    Keyboard.press(' '); delay(5); Keyboard.releaseAll();
    while(digitalRead(6) == 0);
  }
  if (digitalRead(7) == 0) { // BACK
    if (DEBUG_OUTPUT) Serial.println("Button BACK");
    digitalWrite(RXLED, LOW);
    Keyboard.press('b'); delay(5); Keyboard.releaseAll();
    while(digitalRead(7) == 0);
  }
  if (digitalRead(8) == 0) { // REC
    if (DEBUG_OUTPUT) Serial.println("Button REC");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_ASTERIX); delay(5); Keyboard.releaseAll();
    while(digitalRead(8) == 0);
  }
}

3D-модели

Файлы на Thingiverse: ссылка на профиль автора

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

  1. Advantech запустила ARK-1220: компактный безвентиляторный DIN-рельсовый ПК для умного производства
  2. EKF SRS-1201-BLUBRICK: Надежный настенный корпус для CompactPCI Serial CPU в железной дороге, авто и промышленности
  3. SIGHT: умные очки для слабовидящих на Raspberry Pi
  4. Создание кнопки AWS IoT с управлением движением на Raspberry Pi, PIR-датчике и MQTT
  5. DIY робот в стиле Wall‑E на Raspberry Pi из коробки от CD
  6. Новая автоматизация литья Hekuma улучшает производство медицинских пипетных кончиков
  7. 5 проверенных лайфхаков упаковки для предотвращения повреждений при перевозке
  8. Оптимизированные правила компоновки и трассировки для коробочной сборки
  9. Ключевые факторы при аутсорсинге услуг сборки Box Build
  10. Основные рекомендации для успешной сборки коробочных блоков (Box Build Assembly)