جدول المحتويات:
- اللوازم
- الخطوة 1: بناء اللوح
- الخطوة الثانية: تحميل الرسم التخطيطي
- الخطوة الثالثة: فهم حلقات MIDI الداخلية
- الخطوة 4: الاتصال بالمنصة الصوتية الرقمية الخاصة بك
- الخطوة 5: العب
فيديو: وحدة تحكم Arduino MIDI الأساسية: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
مقدمة:
أنا جديد في العمل مع Arduino ولكني آمل أن أقوم بتوسيع معرفتي من خلال تعليم الآخرين وتلقي التعليقات. هذه وحدة تحكم MIDI أساسية جدًا بأربعة أزرار ومقياس جهد. يبدو مخطط هذا المشروع كما يلي:
1. بناء اللوح
2. قم بتحميل المخطط على Arduino
3. فهم عديم الشعر MIDI وحلقة MIDI الداخلية (loopbe1)
4. قم بتوجيه MIDI الخاص بك إلى DAW (Ableton)
اللوازم
1 × أردوينو ميجا 2560
1 × لوحة الخبز
1 × كابل يو اس بي
1 × مقياس الجهد
4 × أزرار اللباقة
مقاومات 4 × 120 أوم
14 × كابلات توصيل للوح
الخطوة 1: بناء اللوح
قم بتوصيل اللوح الخاص بك حتى تتطابق جميع المكونات مع الصورة 1 أعلاه. يجب أن يبدو كل زر كما هو الحال في الصورة 2. مدخلات الزر هي 2 و 3 و 4 و 5 على Arduino ويتم توصيل الدبوس الأوسط لمقياس الجهد بمدخل ANALOG A0.
الخطوة الثانية: تحميل الرسم التخطيطي
انسخ والصق الكود أدناه في Arduino IDE. حدد اللوحة الصحيحة ضمن "الأدوات" وقم بتحميل المخطط على Arduino.
بايت noteON = 144 ؛ // ملاحظة على مذكرة الأوامر ؛ // تخزين لتشغيل الملاحظة int buttonPin1 = 2 ؛ int buttonPin2 = 3 ؛ int buttonPin3 = 4 ؛ int buttonPin4 = 5 ؛ int potPin = A0 ؛ boolean currentState = LOW؛ // stroage لحالة الزر الحالية boolean lastState = LOW؛ // تخزين لآخر حالة زر إعداد باطل () {pinMode (buttonPin1، INPUT) ؛ pinMode (buttonPin2 ، الإدخال) ؛ pinMode (buttonPin3 ، الإدخال) ؛ pinMode (buttonPin4 ، الإدخال) ؛ // هذه المرة سنقوم بتعيين الدبوس كـ INPUT Serial.begin (9600) ؛ // تهيئة الاتصال التسلسلي} حلقة فارغة () {int PotVal = analogRead (potPin) ؛ سرعة البايت = خريطة (PotVal ، 0 ، 1023 ، 0 ، 127) ؛ CurrentState = digitalRead (buttonPin1) ؛ if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON، 60، velocity)؛ // قم بتشغيل الملاحظة 60 مع تأخير 127 للسرعة (200) ؛ // شكل خام من زر debouncing} وإلا إذا (currentState == LOW && lastState == HIGH) {MIDImessage (noteON، 60، 0)؛ // turn note 60 off delay (2)؛ // raw form of button debouncing} lastState = currentState؛ CurrentState = digitalRead (buttonPin2) ؛ if (currentState == HIGH && lastState == LOW) {// إذا تم الضغط على الزر للتو MIDImessage (noteON، 61، velocity)؛ // قم بتشغيل الملاحظة 60 مع 127 سرعة تأخير (200)؛ // شكل خام من الزر debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON، 60، 0)؛ // turn note 60 off delay (2)؛ // raw form of button debouncing} lastState = currentState؛ CurrentState = digitalRead (buttonPin3) ؛ if (currentState == HIGH && lastState == LOW) {// إذا تم الضغط على الزر للتو MIDImessage (noteON، 62، velocity)؛ // قم بتشغيل الملاحظة 60 مع 127 سرعة تأخير (200)؛ // شكل خام من الزر debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON، 60، 0)؛ // turn note 60 off delay (2)؛ // raw form of button debouncing} lastState = currentState؛ CurrentState = digitalRead (buttonPin4) ؛ if (currentState == HIGH && lastState == LOW) {// إذا تم الضغط على الزر للتو MIDImessage (noteON، 63، velocity)؛ // قم بتشغيل الملاحظة 60 مع 127 سرعة تأخير (200) ؛ // شكل خام من الزر debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON، 60، 0)؛ // turn note 60 off delay (2)؛ // raw form of button debouncing} lastState = currentState؛ } // send MIDI message void MIDImessage (أمر بايت ، بيانات بايت 1 ، بيانات بايت 2) {Serial.write (أمر) ؛ Serial.write (data1) ؛ Serial.write (بيانات 2) ؛ }
ما زلت جديدًا جدًا في كتابة الكود بشكل عام….. يمكن لمن لديهم خبرة أكبر أن ينظفوا هذا الأمر على الأرجح …
الخطوة الثالثة: فهم حلقات MIDI الداخلية
يحتاج Arduino إلى المرور عبر جسر تسلسلي مثل Hairless MIDI ثم عبر حلقة MIDI داخلية مثل loopbe1 (أو ناقل IAC لنظام التشغيل Mac).
ملاحظة: لا يمكنك تحميل رسم تخطيطي إلى Arduino أثناء توصيله بجسر MIDI التسلسلي الخالي من الشعر.
حدد Arduino في المنفذ التسلسلي Hairless MIDI و loopbe1 أو ناقل IAC في مخرج MIDI.
ملاحظة: تأكد من عدم تشغيل كتم الصوت عند استخدام loopbe1.
الخطوة 4: الاتصال بالمنصة الصوتية الرقمية الخاصة بك
إذا كنت تتلقى إشارة إلى تطبيق Hairless MIDI عند الضغط على زر على لوحة التجارب (ستومض الأضواء) ، فيجب أن تكون قادرًا على إرسال بيانات MIDI إلى منصة DAW. لقد استخدمت Ableton ولكن يجب أن تعمل أي منصة عمل صوتية. تأكد من تمكين حلقة MIDI الداخلية (loopbe1) في تفضيلات DAW (في Ableton تريد تمكين "المسار"). بعد ذلك ، حدد أحد مدخلات مسار MIDI الخاص بك إلى حلقة MIDI (loopbe1) كما هو موضح في الصورة أعلاه.
الخطوة 5: العب
ستعمل الأزرار الآن مثل أي وحدة تحكم MIDI أخرى! سيغير مقياس الجهد سرعة الملاحظات التي يتم إرسالها إلى منصة العمل الصوتية. يُظهر مقطع الفيديو (المظلم جدًا …) أعلاه صوت بيانو كبير أثناء العمل!
موصى به:
وحدة تحكم شريط RGBW LED معدلة ، تحكم PIR ، ESP8285: 3 خطوات
وحدة تحكم الشريط RGBW LED المعدلة ، التحكم PIR ، ESP8285: فوق مكتبي في المنزل قمت بتثبيت شريط RGBW LED. يجب أن تعمل وحدة التحكم WiFi LED RGBW مع تطبيق مثل تطبيق Magic Home. ومع ذلك ، لدي شريحة ESP8285 التي تومضها مع البرامج الثابتة الخاصة بي. أضفت PIR من خلاله يتحول شريط LED
روبوت اردوينو مع وحدة تحكم PS2 (عصا تحكم بلاي ستيشن 2): 10 خطوات (مع صور)
Arduino Robot With PS2 Controller (PlayStation 2 Joystick): في هذا البرنامج التعليمي ، سأوضح لك كيفية استخدام عصا التحكم اللاسلكية Playstation 2 (PS2) لتجربة خزان آلي. تم استخدام لوحة Arduino Uno في صميم هذا المشروع. يستقبل أوامر من جهاز التحكم اللاسلكي ويضبط سرعة المحركات
تحكم في الذراع الآلية باستخدام Zio باستخدام وحدة تحكم PS2: 4 خطوات
التحكم في الذراع الروبوتية باستخدام وحدة تحكم Zio باستخدام PS2: تعد مشاركة المدونة هذه جزءًا من سلسلة Zio Robotics. المقدمة هذه هي الدفعة الأخيرة من منشور "التحكم في الذراع الآلية باستخدام Zio". في هذا البرنامج التعليمي ، سنضيف جزءًا آخر إلى ذراعنا الآلية. لا تتضمن البرامج التعليمية السابقة أساسًا لـ
وحدة تحكم محمولة مع وحدات تحكم ومستشعرات لاسلكية (Arduino MEGA & UNO): 10 خطوات (مع صور)
وحدة تحكم محمولة مع وحدات تحكم ومستشعرات لاسلكية (Arduino MEGA & UNO): ما استخدمته: - Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 & quot؛ شاشة لمس TFT 320x480 HXD8357D- صفارة- مكبر صوت 4 أوم 3 وات- مصابيح LED 5 مم- طابعة Ultimaker 2+ مع خيوط PLA سوداء- Lasercutter مع خشب MDF- طلاء بخاخ أسود (للخشب) - 3x nRF24
وحدة تحكم شريط إضاءة LED 5 فولت MIDI لجهاز Spielatron أو موالفة MIDI أخرى: 7 خطوات (مع صور)
MIDI 5V LED Strip Light Controller لـ Spielatron أو MIDI Synth الأخرى: وحدة التحكم هذه تومض أضواء شريط LED ثلاثية الألوان لمدة 50 مللي ثانية لكل ملاحظة.أزرق لـ G5 إلى D # 6 ، أحمر لـ E6 إلى B6 وأخضر لـ C7 إلى G7. وحدة التحكم عبارة عن جهاز ALSA MIDI بحيث يمكن لبرنامج MIDI الإخراج إلى مصابيح LED في نفس الوقت مثل جهاز موالفة MIDI