Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Caja de Control DAW Personalizada para Racks de Batería Electrónica Roland

Componentes y Suministros

Herramientas y Máquinas Necesarias

Aplicaciones y Servicios Online

Sobre este Proyecto

Me resultaba incómodo operar mi portátil ejecutando un DAW (en mi caso Cubase) mientras grababa una pista de batería. Quería un método libre de distracciones para activar comandos esenciales como inicio/parada/grabación sin soltar las baquetas. Las soluciones comerciales disponibles eran demasiado caras o no prácticas porque, por ejemplo, imposibles de montar en mi rack. Así que ideé esta caja de botones DIY basada en el famoso Arduino Micro Pro. Se puede montar en tubos estándar de 38mm usados por racks Roland para sujetar la caja.

Instrucciones

  1. Imprime las piezas: Imprime las 2 partes de la abrazadera del rack y el cuerpo de la caja. PLA funciona bien, pero para más estabilidad usa PETG. Une la abrazadera con un tornillo M4x40 como eje entre las 2 partes, aprieta pero asegúrate que pueda girar fácilmente. Usa un tornillo de ala M6 y tuerca como tensor para sujetar firmemente a tu rack. Usa 2 tornillos M3x4 (o similar) y tuercas para unir la parte superior de la abrazadera a la caja.
  2. Panel frontal: Tienes varias opciones. Puedes diseñar tu propia variante según tus botones. Usa una de las plantillas de panel frontal disponibles en STL (para impresora 3D) o SVG (para CNC) para crear tu propio panel. (Decidí hacer el panel en mi fresadora CNC casera porque me gustaba el diseño grabado... pero un panel impreso en 3D funcionará perfectamente).
  3. Montaje: Una vez listo el panel frontal, inserta los botones y suelda a los pines correctos de Arduino (ver asignación abajo). Decidí usar un PCB separado para tener más espacio, pero no es obligatorio. Si lo haces, usa los 4 agujeros en las esquinas para sujetar el PCB. Finalmente cierra y asegura el panel frontal con 2 tornillos M3.
  4. Programar el Arduino: Cualquier Micro Pro servirá, pero asegúrate que sea Arduino Micro PRO (no el Arduino Micro estándar) por el USB integrado. Un Arduino Micro Pro conectado a cualquier PC puede emular nativamente un teclado USB y así activar cualquier pulsación, incluso teclas de función y teclado numérico. Los Micro Pro vienen de distintas fuentes, así que podrías necesitar modificar tu código según las librerías incluidas. En mi caso, usé los puertos digitales 2-8 inicializados como pull-ups internos. Los pulsadores (normalmente abiertos) conectan los pines a GND, lo que el código detecta y activa la acción programada (pulsación de tecla emulada).

Para mi DAW (Cubase), decidí usar esta configuración:

PuertoBotónTeclaFunción en Cubase
2McMetrónomo On/Off
3L[Num] 1Ir a Locator Izquierdo
4>>[Num] +Avanzar
5<<[Num] -Retroceder
6PESPACIOPlay/Stop
7BbInicio
8R[Num] *Grabar

Se puede cambiar fácilmente en el código para adaptarlo a tu configuración. Usa mi código adjunto como ejemplo.

Código

Código Arduino Micro Pro para Caja de Botones de Rack

Asegúrate de seleccionar "Micro Pro" en tu Arduino IDE

/* ROLAND RACK BUTTON BOX 
Nota: Esto es para Arduino Pro Micro! Emula un teclado para pulsar teclas en un PC conectado para un DAW (aquí: Steinberg Cubase).
Opcional: usa puerto COM UART emulado via USB (para depuración) y LEDs (RX y TX) en placa Micro.
TECLAS: config para Cubase: https://steinberg.help/cubase_elements_le_ai/v9/de/cubase_nuendo/topics/key_commands/key_commands_default_c.html
Asignación:
Puerto Arduino Micro -> Switch en Caja -> Tecla emulada -> Función en Cubase
------------------------------------------
2  M  c  Metrónomo On
3  L  [Num] 1  Ir a Locator Izquierdo
4  >>  [Num] +  Avanzar
5  <<  [Num] -  Retroceder
6  P  ESPACIO  Play/Stop
7  B  b  Inicio
8  R  [Num] *  Grabar
mac70 13.01.2021 */

#define DEBUG_OUTPUT 0 // si es 1, genera salida serial adicional para depuración
#include <Keyboard.h>

#define KEYPAD_1 225
#define KEYPAD_PLUS 223
#define KEYPAD_MINUS 222
#define KEYPAD_ASTERIX 221

int RXLED = 17; // El LED RX tiene un pin Arduino definido

void setup() {
  // Botones conectados a pines de entrada digital (normalmente abiertos, al activarse -> pin a GND)
  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); // LED RX APAGADO
  Keyboard.begin(); // iniciar emulación teclado
  Serial.begin(9600);
  Serial.println("");
  if (DEBUG_OUTPUT == 1) Serial.println("Button Box Serial Monitor");
}

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

  // Procesar botones
  if (digitalRead(2) == 0) { // M
    if (DEBUG_OUTPUT == 1) 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 == 1) 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 == 1) Serial.println("Button >>");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_PLUS);
    while(digitalRead(4) == 0);
    Keyboard.releaseAll();
  }
  if (digitalRead(5) == 0) { // <<
    if (DEBUG_OUTPUT == 1) 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 == 1) Serial.println("Button PLAY/STOP");
    digitalWrite(RXLED, LOW);
    Keyboard.press(' ');
    delay(5);
    Keyboard.releaseAll();
    while(digitalRead(6) == 0);
  }
  if (digitalRead(7) == 0) { // BACK TO START
    if (DEBUG_OUTPUT == 1) 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 == 1) Serial.println("Button REC");
    digitalWrite(RXLED, LOW);
    Keyboard.press(KEYPAD_ASTERIX);
    delay(5);
    Keyboard.releaseAll();
    while(digitalRead(8) == 0);
  }
}

Piezas Personalizadas y Carcasas

Archivos 3D disponibles en Thingiverse: CAD file on thingiverse.com

Proceso de manufactura

  1. 5 Trucos de Embalaje Comprobados para Prevenir Daños en Envío
  2. SIGHT: Gafas Inteligentes para Capacitar a Personas Ciegas
  3. Botón IoT AWS Controlado por Movimiento con Raspberry Pi, Sensor PIR y MQTT
  4. Robot DIY inspirado en Wall‑E con Raspberry Pi y caja de CD
  5. Nueva automatización moldeo inyección Hekuma mejora producción puntas pipeta médicas
  6. Directrices Optimizadas de Layout y Enrutado para Ensamblaje Box Build
  7. Factores clave al externalizar servicios de ensamblaje Box Build
  8. Directrices esenciales para un ensamblaje de caja exitoso
  9. Contenedores de envío personalizados: soluciones a medida para fabricantes y proveedores de automóviles
  10. Advantech lanza ARK‑1220: PC DIN‑Rail compacto fan‑less para smart manufacturing
  11. EKF SRS-1201-BLUBRICK: Caja Robusta Montaje Pared para CPUs CompactPCI Serial en Ferroviario, Automotriz e Industrial