RolandE-DrumRack用のDAWボタンボックス
コンポーネントと消耗品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
ドラムトラックの録音中に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ファイル製造プロセス
- アドバンテック:インテリジェントな製造のためのコンパクトなDINレールファンレスエンベデッドボックスPC
- EKF:鉄道、自動車、産業用アプリケーション向けの頑丈な壁取り付けボックスプラットフォーム
- 視力:視覚障害者向け
- モーションコントロールされたAWSIoTボタン
- ラズベリーパイCDボックスロボット
- 射出成形:医療用ピペットチップの新しい自動化アプローチ
- 輸送中の損傷を避けるために箱を梱包するための5つのハック
- Box Build Assembly のレイアウトとトレース ルール
- Box Buildの組み立て工程をアウトソーシングする際の重要な考慮事項
- Box Build の組み立てプロセスに関する考慮事項
- 自動車メーカーとサプライヤー向けのカスタム コンテナの製造