工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

RolandE-DrumRack用のDAWボタンボックス

コンポーネントと消耗品

Arduino MicroPro
× 1
プッシュボタン(通常は開いている)
× 1
3Dプリントされたクランプとボックス
× 1

必要なツールとマシン

>
3Dプリンター(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

ドラムトラックの録音中にDAW(私の場合はCubase)を実行しているラップトップを操作するのは不便でした。そのため、スティックを落とさずに、開始/停止/記録などのいくつかの重要なコマンドをトリガーする、気を散らすことのない方法が必要でした。利用可能な商用ソリューションは、高すぎるか実用的ではありません。ラックに取り付けることは不可能です。そこで、有名な Arduino micro をベースにしたこのDIYボタンボックスを思いつきました。 。ボックスを保持するためにRolandラックで使用される標準の38mmチューブに取り付けることができます。

<図>

3Dプリンターをお持ちで、独自のリモートボックスを作成したい場合は、以下の手順を使用してください。

手順:

1.2つのラッククランプパーツとボックス本体を印刷します。 PLAは正常に機能しますが、より安定したい場合はPETGを使用してください。 2つの部品間の軸としてM4x40ネジでクランプを組み合わせ、ネジを締めますが、それでも簡単に回転できることを確認します。M6ウィングネジとナットを締め具として使用して、ラックをしっかりと固定します。2xM3x4ネジ(または同様のもの)を使用します。上部クランプ部分をボックスに結合するためのナット。

<図> <図> <図>

2.フロントパネルには、いくつかの選択肢があります。選択したボタンに応じて、独自のバリアントを設計することをお勧めします。 stl(3dプリンターの場合)またはsvg(CNCの場合)のいずれかで使用可能なフロントパネルテンプレートの1つを使用して、独自のフロントパネルを作成します(刻印されたデザインが気に入ったため、DIYCNCマシンでパネルを作成することにしました。 。ただし、3Dプリントパネルは問題なく機能します。)

<図> <図>

3.フロントパネルの準備ができたら、ボタンを挿入し、正しいArdunoポートにはんだ付けします(以下の割り当てを参照)。スペースを増やすために分離したPCBを使用することにしましたが、これは必須ではありません。これを行う場合は、角にある4つの穴を使用してPCBを保持します。最後に、2本のM3ネジでフロントパネルを閉じて固定します。

<図> <図> <図>

4. Arduinoのプログラミング:どのMicro Proでも可能ですが、USBが組み込まれているため、Adruino Micro PRO(標準のArduino microではありません!)であることを確認してください。 PCまたはラップトップに接続されたArduinoMicro Proは、USBキーボードをネイティブにエミュレートできるため、ファンクションキーやnumブロックキーなどのキーストロークをトリガーできます。Microproはさまざまなソースから入手できるため、コードを変更する必要がある場合があります。含まれているライブラリ。私の場合、最初に内部プルアップとして初期化されるデジタルポート2〜8を使用することにしました。接続されたプッシュボタン(通常は開いている)は、コードによって検出され、プログラムされたアクションをトリガーするGNDにピンをプルします。 (エミュレートされたキーの押下)。

DAW(Cubase)には、次のセットアップを使用することにしました。

ポートボタンキーCubase機能

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

2 Mcメトロノームのオン/オフ

3 L [Num] 1 Goto Left Locator

4>> [番号] +転送

5 <<[Num]-後方

6Pスペース再生/停止

7 Bb開始

8 R [数値] *記録

構成に合わせてコードで簡単に変更できます。同封のコードを例として使用してください。

お楽しみください。

コード

  • ラックボタンボックス用のArduinoMicroProコード
ラックボタンボックス用のArduinoMicroProコード C / C ++
必ずarduinoIDEにmicroproを設定してください
 / * ROLAND RACK BUTTON BOX注:これはArduino ProMicro用です!キーボードをエミュレートして、DAW用に接続されたPC(ここではSteinberg Cubase)のキーを押します。オプション:マイクロボード上のUSB(デバッグ用)およびLED(RXおよびTX LED)を介してエミュレートされたUART COMポートを使用しますキー:Cubaseの設定:https://steinberg.help/cubase_elements_le_ai/v9/de/cubase_nuendo/topics/key_commands/ key_commands_default_c.html割り当て:Arduinoマイクロポート->ボタンボックスのスイッチ->キーボードのエミュレートされたキー-> Cubaseポートの機能スイッチキーCubaseの機能-------------------- ---------------------- 2 M c Metronome On 3 L [Num] 1 Goto Left Locator 4>> [Num] + Forward 5 <<[Num] --Backward 6 P SPACE Play / Stop 7 B b Begin 8 R [Num] * Record mac70 13.01.2021 * /#define DEBUG_OUTPUT 0 // 1と定義すると、debugging#include  // NUM-KEYコード: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 / * //必要な場合... Shift、Controlなどの他のキーコード:https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers/char ShiftKey =KEY_LEFT_SHIFT; char LeftKey =KEY_LEFT_ARROW; char RightKey =KEY_RIGHT_ARROW; * / int RXLED =17; // RXLEDには定義されたArduinopinvoid setup(){//ボタンが次のデジタル入力ピンに接続されています//(ボタンは通常開いています。アクティブにすると->ピンはGNDに接続されます)pinMode(2、INPUT_PULLUP); //ピン2は内部抵抗で入力されますpinMode(3、INPUT_PULLUP); //ピン3は内部抵抗で入力されますpinMode(4、INPUT_PULLUP); //ピン4は内部抵抗で入力されますpinMode(5、INPUT_PULLUP); //ピン5は内部抵抗で入力されますpinMode(6、INPUT_PULLUP); //ピン6は内部抵抗で入力されますpinMode(7、INPUT_PULLUP); //ピン7は内部抵抗で入力されますpinMode(8、INPUT_PULLUP); //ピン8は内部抵抗で入力されますpinMode(RXLED、OUTPUT); // RX LEDを出力として設定digitalWrite(RXLED、HIGH); // RX LEDをオフに設定Keyboard.begin(); //キーボードエミュレーションを開始しますSerial.begin(9600); //これによりシリアルモニターが開始されますSerial.println( ""); if(DEBUG_OUTPUT ==1)Serial.println( "ボタンボックスシリアルモニター"); } void loop(){Keyboard.releaseAll(); digitalWrite(RXLED、HIGH); // RX LEDをオフに設定delay(50); //短い遅延//ボタンの処理if(digitalRead(2)==0)// M {if(DEBUG_OUTPUT ==1)Serial.println( "Button M"); //シリアルモニターに出力digitalWrite(RXLED、LOW); // LEDが点灯してアクティビティを通知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); // LEDが点灯してアクティビティを通知します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); // LEDが点灯してアクティビティを通知しますKeyboard.press(KEYPAD_PLUS); while(digitalRead(4)==0); //ボタンが離されるのを待ちます... PCからの繰り返し機能はこのキーを再トリガーします! Keyboard.releaseAll(); } if(digitalRead(5)==0)// <<{if(DEBUG_OUTPUT ==1)Serial.println( "Button <<"); //シリアルモニターに出力digitalWrite(RXLED、LOW); // LEDが点灯してアクティビティを通知Keyboard.press(KEYPAD_MINUS); while(digitalRead(5)==0); //ボタンが離されるのを待ちます... PCからの繰り返し機能はこのキーを再トリガーします! Keyboard.releaseAll(); } if(digitalRead(6)==0)// PLAY STOP {if(DEBUG_OUTPUT ==1)Serial.println( "Button PLAY / STOP"); //シリアルモニターに出力digitalWrite(RXLED、LOW); // LEDが点灯してアクティビティを通知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); // LEDが点灯してアクティビティを通知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); // LEDが点灯してアクティビティを通知Keyboard.press(KEYPAD_ASTERIX); delay(5); Keyboard.releaseAll(); while(digitalRead(8)==0); //ボタンが離されるのを待ちます}} 

カスタムパーツとエンクロージャー

私の3Dファイルへのリンク
thingsiverse.comのthingiverseCADファイル

製造プロセス

  1. アドバンテック:インテリジェントな製造のためのコンパクトなDINレールファンレスエンベデッドボックスPC
  2. EKF:鉄道、自動車、産業用アプリケーション向けの頑丈な壁取り付けボックスプラットフォーム
  3. 視力:視覚障害者向け
  4. モーションコントロールされたAWSIoTボタン
  5. ラズベリーパイCDボックスロボット
  6. 射出成形:医療用ピペットチップの新しい自動化アプローチ
  7. 輸送中の損傷を避けるために箱を梱包するための5つのハック
  8. Box Build Assembly のレイアウトとトレース ルール
  9. Box Buildの組み立て工程をアウトソーシングする際の重要な考慮事項
  10. Box Build の組み立てプロセスに関する考慮事項
  11. 自動車メーカーとサプライヤー向けのカスタム コンテナの製造