Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DAW Button Box für Roland E-Drum-Racks

Komponenten und Verbrauchsmaterialien

Arduino MicroPro
× 1
Drucktasten (normalerweise geöffnet)
× 1
3D-gedruckte Klemme und Box
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Es war für mich unpraktisch, meinen Laptop mit einer DAW (in meinem Fall Cubase) zu betreiben, während ich einen Schlagzeug-Track aufnahm. Ich wollte also eine ablenkungsfreie Methode haben, um einige wichtige Befehle wie Start/Stopp/Aufnahme usw. auszulösen, ohne meine Sticks fallen zu lassen. Die verfügbaren kommerziellen Lösungen waren zu teuer oder nicht praktikabel, weil z.B. Kann nicht an meinem Rack montiert werden. Also habe ich mir diese DIY-Knopfbox ausgedacht, die auf dem berühmten Arduino Micro basiert .Es kann auf Standard-38-mm-Rohre montiert werden, die von Roland-Racks verwendet werden, um die Box zu halten.

Wenn Sie einen 3D-Drucker haben und Ihre eigene Remote-Box bauen möchten, verwenden Sie die folgenden Anweisungen.

Anleitung:

1. Drucken Sie die 2 Rack-Klemmteile und den Kofferaufbau aus. PLA funktioniert gut, aber wenn Sie mehr Stabilität wünschen, verwenden Sie PETG. Kombinieren Sie die Klemme mit einer M4x40-Schraube als Achse zwischen den 2 Teilen, ziehen Sie die Schraube fest, aber stellen Sie sicher, dass sie sich noch leicht drehen lässt. Verwenden Sie eine M6-Flügelschraube und eine Mutter als Spanner, um sie fest an Ihrem Rack zu halten. Verwenden Sie 2x M3x4-Schrauben (oder ähnliches) und Muttern zum Verbinden des oberen Klemmteils mit der Box.

2. Für das Frontpanel haben Sie mehrere Möglichkeiten. Vielleicht möchten Sie Ihre eigene Variante je nach Ihren bevorzugten Schaltflächen entwerfen. Verwenden Sie eine der verfügbaren Frontplatten-Vorlagen in STL (für 3D-Drucker) oder SVG (für CNC), um Ihre eigene Frontplatte zu erstellen. (Ich habe mich entschieden, die Platte auf meiner DIY-CNC-Maschine zu machen, weil mir das gravierte Design gefallen hat. .aber ein 3D-gedrucktes Panel wird gut funktionieren.)

3. Nachdem Ihre Frontplatte fertig ist, setzen Sie die Tasten ein und löten Sie an die richtigen Arduno-Ports (siehe Belegung unten). Ich habe mich für eine separate Platine entschieden, um mehr Platz zu haben, aber das ist nicht zwingend. Wenn Sie dies tun, verwenden Sie die 4 Löcher in der Ecke, um die Platine zu halten. Schließen Sie die Frontplatte und befestigen Sie sie mit 2 M3-Schrauben.

4. Programmierung des Arduino:Jeder Micro Pro ist geeignet, stellen Sie nur sicher, dass es sich um den Adruino Micro PRO (nicht den Standard-Arduino-Mikro!) Ein Arduino Micro Pro, das an einen PC oder Laptop angeschlossen ist, kann nativ eine USB-Tastatur emulieren und kann so jeden Tastendruck auslösen, sogar Funktionstasten und Numblock-Tasten usw. Micro-Profis sind aus verschiedenen Quellen erhältlich, sodass Sie Ihren Code je nach Bedarf ändern müssen die enthaltenen Bibliotheken. In meinem Fall habe ich mich entschieden, die digitalen Ports 2-8 zu verwenden, die zuerst als interne Pullups initialisiert werden. Die angeschlossenen Taster (normalerweise offen) ziehen die Pins auf GND, was vom Code erkannt wird und die programmierte Aktion auslöst (emulierter Tastendruck).

Für meine DAW (Cubase) habe ich mich für folgendes Setup entschieden:

Port-Tasten-Taste Cubase-Funktion

------------------------------------------

2 M c Metronom Ein/Aus

3 L [Num] 1 Gehe zum linken Locator

4>> [Num] + Vorwärts

5 <<[Num] - Rückwärts

6 P SPACE Wiedergabe/Stopp

7 B b Beginn

8 R [Num] * Datensatz

Sie kann im Code leicht an Ihre Konfiguration angepasst werden. Verwenden Sie meinen beiliegenden Code als Beispiel.

Viel Spaß.

Code

  • Arduino Micro Pro Code für Rack Button Box
Arduino Micro Pro Code für Rack Button BoxC/C++
Stellen Sie sicher, dass Sie das Micro Pro in Ihrem Arduino IDE
 / * ROLAND RACK BUTTON BOX einstellen Hinweis:Dies ist für das Arduino Pro Micro! Emuliert eine Tastatur zum Drücken von Tasten eines angeschlossenen PCs für eine DAW (hier:Steinberg Cubase). optional :verwendet emulierten UART COM Port über USB (zum Debuggen) und LEDs (RX und TX LED) auf Microboard KEYS :config für Cubase:https://steinberg.help/cubase_elements_le_ai/v9/de/cubase_nuendo/topics/key_commands/ key_commands_default_c.html Belegung :Arduino Micro Port -> Button Box einschalten -> emulierte Taste auf Tastatur -> Funktion in Cubase Port Switch Key Cubase Funktion -------------------- ---------------------- 2 M c Metronom Ein 3 L [Num] 1 Goto Left Locator 4>> [Num] + Forward 5 <<[Num] - Rückwärts 6 P SPACE Play/Stop 7 B b Begin 8 R [Num] * Record mac70 13.01.2021*/#define DEBUG_OUTPUT 0 // wenn als 1 definiert, wird ein zusätzlicher serieller Monitorausgang zum Debuggen generiert#include // NUM-KEY-Codes :https://forum.arduino.cc/index.php?topic=659117.0#define KEYPAD_1 225 #define KEYPAD_PLUS 223 #define KEYPAD_MINUS 222 #define KEYPAD_ASTERIX 221 /*// falls erforderlich ... andere Tastencodes wie Shift, Control etc :https://www.arduino.cc/reference/en/language/fu nctions/usb/keyboard/keyboardmodifiers/char ShiftKey =KEY_LEFT_SHIFT;char LeftKey =KEY_LEFT_ARROW;char RightKey =KEY_RIGHT_ARROW;*/int RXLED =17; // Die RX-LED hat ein definiertes Arduino-Pinvoid-Setup () { // Tasten sind mit den folgenden digitalen Eingangspins verbunden // (Taste normalerweise geöffnet, wenn aktiviert -> Pin wird mit GND verbunden) PinMode (2, INPUT_PULLUP); // Pin 2 wird mit internem Widerstand PinMode (3, INPUT_PULLUP) eingegeben; // Pin 3 wird mit internem Widerstand PinMode (4, INPUT_PULLUP) eingegeben; // Pin 4 wird mit internem Widerstand PinMode (5, INPUT_PULLUP) eingegeben; // Pin 5 wird mit internem Widerstand PinMode (6, INPUT_PULLUP) eingegeben; // Pin 6 wird mit internem Widerstand PinMode (7, INPUT_PULLUP) eingegeben; // Pin 7 wird mit internem Widerstand PinMode (8, INPUT_PULLUP) eingegeben; // Pin 8 wird mit internem Widerstand PinMode (RXLED, OUTPUT) eingegeben; // RX-LED als Ausgang setzen digitalWrite (RXLED, HIGH); // setze die RX-LED AUS Keyboard.begin (); // Tastaturemulation starten Serial.begin (9600); // Dies startet den seriellen Monitor Serial.println (""); if (DEBUG_OUTPUT ==1) Serial.println ("Button Box Serial Monitor"); }void loop () { Keyboard.releaseAll (); digitalWrite (RXLED, HOCH); // setze die RX-LED AUS-Verzögerung (50); // kurze Verzögerung // Schaltflächen verarbeiten if (digitalRead (2) ==0) // M { if (DEBUG_OUTPUT ==1) Serial.println ("Button M"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press('c'); Verzögerung(5); Keyboard.releaseAll(); while(digitalRead(2) ==0); // warten, bis die Taste losgelassen wird} if (digitalRead (3) ==0) // L { if (DEBUG_OUTPUT ==1) Serial.println ("Button L"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press (KEYPAD_1); Verzögerung(5); Keyboard.releaseAll(); while(digitalRead(3) ==0); // warten, bis die Taste losgelassen wird} if (digitalRead (4) ==0) //>> { if (DEBUG_OUTPUT ==1) Serial.println ("Button>>"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press(KEYPAD_PLUS); while (digitalRead (4) ==0); // warten bis die Taste losgelassen wird ... Wiederholungsfunktion vom PC löst diese Taste erneut aus! Keyboard.releaseAll(); } if (digitalRead (5) ==0) // <<{ if (DEBUG_OUTPUT ==1) Serial.println ("Button <<"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press(KEYPAD_MINUS); while(digitalRead(5) ==0); // warten bis die Taste losgelassen wird ... Wiederholungsfunktion vom PC löst diese Taste erneut aus! Keyboard.releaseAll(); aufrechtzuerhalten. Wenn (digitalRead (6) ==0) // PLAY STOP { if (DEBUG_OUTPUT ==1) Serial.println ("Button PLAY/STOP"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press(' '); Verzögerung(5); Keyboard.releaseAll(); while(digitalRead(6) ==0); // warten, bis die Taste losgelassen wird} if (digitalRead (7) ==0) // ZURÜCK ZUM START { if (DEBUG_OUTPUT ==1) Serial.println ("Button BACK"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press('b'); Verzögerung(5); Keyboard.releaseAll(); while(digitalRead(7) ==0); // warten, bis die Taste losgelassen wird} if (digitalRead (8) ==0) // REC { if (DEBUG_OUTPUT ==1) Serial.println ("Button REC"); // Auf den seriellen Monitor drucken digitalWrite (RXLED, LOW); // LED an, um Aktivität zu signalisieren Keyboard.press(KEYPAD_ASTERIX); Verzögerung(5); Keyboard.releaseAll(); while(digitalRead(8) ==0); // warten bis die Taste losgelassen wird } }

Kundenspezifische Teile und Gehäuse

Link zu meinen 3D-Dateien
in der thingiverseCAD-Datei auf thingiverse.com

Herstellungsprozess

  1. Advantech:kompakter lüfterloser DIN-Rail-Embedded-Box-PC für intelligente Fertigung
  2. EKF:robuste Box-Plattform für die Wandmontage für Bahn-, Automobil- und Industrieanwendungen
  3. SICHT:Für Blinde
  4. Bewegungsgesteuerte AWS IoT-Schaltfläche
  5. Raspberry Pi CD-Box-Roboter
  6. Spritzgießen:Neuer Automatisierungsansatz für medizinische Pipettenspitzen
  7. 5 Hacks zum Verpacken einer Kiste, um Transportschäden zu vermeiden
  8. Layout- und Ablaufverfolgungsregeln für die Box-Build-Assembly
  9. Wichtige Faktoren, die für die Auslagerung eines Montageprozesses für den Kartonbau zu berücksichtigen sind
  10. Dinge, die beim Box-Build-Montageprozess zu beachten sind