جدول المحتويات:

بناء وحدة تحكم Arduino MIDI: 9 خطوات (بالصور)
بناء وحدة تحكم Arduino MIDI: 9 خطوات (بالصور)

فيديو: بناء وحدة تحكم Arduino MIDI: 9 خطوات (بالصور)

فيديو: بناء وحدة تحكم Arduino MIDI: 9 خطوات (بالصور)
فيديو: مشروع أردوينو - التحكم في سيارة روبوت بهاتفك الذكي 2024, ديسمبر
Anonim

تم نشر هذه التعليمات في الأصل على مدونتي في 28 يونيو 2020

أستمتع ببناء الأشياء التي تتضمن الإلكترونيات ، وأردت دائمًا إنشاء شيء باستخدام Arduino.

واحدة من أكثر البنيات شيوعًا للمبتدئين التي وجدتها كانت وحدة تحكم MIDI. وحدة تحكم MIDI هي أي جهاز يرسل بيانات MIDI (الواجهة الرقمية للآلات الموسيقية) إلى جهاز لتشغيل الأصوات وإنشاء الموسيقى.

لقد وجدت أن العديد من التطبيقات معقدة ، حتى تلك المخصصة للمبتدئين. كان من المحبط للغاية أن أجد أنني بحاجة إلى استخدام مئات الأسطر من التعليمات البرمجية غير القابلة للقراءة. أو أنني بحاجة إلى لحام المقاوم في بعض الحالات ، من بين أمثلة أخرى.

المشروع

من خلال بناء وحدة تحكم Arduino MIDI الخاصة بي ، كنت أعتزم إنشاء مشروع ممتع ، مع الحفاظ على الضوضاء عند أدنى مستوى. شيء يمكن أن يتبعه أي مبتدئ. لتحقيق ذلك ، استخدمت MIDI Fighter 3D كمصدر إلهام أساسي وأزلت كل ميزة غير أساسية.

كانت التكلفة الإجمالية لمشروعي أقل من 30 دولارًا ، وكانت قائمة المواد قصيرة جدًا (الروابط التابعة):

  • Arduino Leonardo (أو استنساخ): ما بين 10 دولارات و 20 دولارًا.
  • 16 × أزرار Sanwa 24 مم (أو استنساخ): بين 1 دولار و 2.50 دولار لكل زر.
  • لحام حديد
  • 22 AWG سلك كهربائي

لوحة اردوينو

عندما بدأت هذا المشروع ، وجدت أن هناك مجموعة من نماذج Arduino الجديدة (لا تشمل مئات اللوحات المتوافقة). وكلهم يقدمون قدرات مختلفة قليلاً.

كنت بحاجة إلى إرسال إشارات MIDI إلى جهاز كمبيوتر وأبسط طريقة للقيام بذلك هي عبر USB. تحتوي أي لوحة Arduino تعتمد على متحكم ATmega32u4 على اتصال USB مدمج.

لوحات Arduino الرسمية مع دعم USB الأصلي هي Arduino Due و Arduino Zero و Arduino Leonardo و Arduino Micro. تحتوي هذه اللوحات على دعم USB مدمج مما يعني أنها يمكن أن تعمل كجهاز USB MIDI.

قررت أن أذهب مع نسخة من Arduino Leonardo. يحتوي على مدخلات كافية لهذا المشروع ويتضمن أيضًا رؤوسًا ، مما يسهل توصيل / فصل الأسلاك.

الخطوات الأولى

على الرغم من أنني سأشرح خطوة بخطوة كيف قمت بتنفيذ الكود لهذا المشروع ، يمكنك تنزيل الإصدار النهائي.

لتحميل الكود على اللوحة ، تحتاج إلى استخدام Arduino IDE. لديهم أيضًا محرر ويب مفيد جدًا ولكن لديهم حصة محدودة في أوقات كل يوم يمكنك فيها ترجمة التعليمات البرمجية.

الخطوة 1: وميض مصباح LED المدمج

من المضحك كيف تومض "Hello World" في عالم الأجهزة بمصباح LED.

لقد كانت مفاجأة رائعة بالنسبة لي عندما اكتشفت أن Arduino Leonardo لديه مصباح LED مدمج يمكنك وميضه لاختبار الكود الخاص بك. بهذه الطريقة لن تحتاج إلى بناء دائرة خارجية على لوح التجارب بمصباح LED ومقاوم.

الكود:

الخطوة 2: وميض مؤشر LED في الإدخال اليدوي

كانت الخطوة المنطقية التالية هي وميض نفس مؤشر LED كلما أرسلت إشارة. قمت بإزالة الغطاء البلاستيكي لأحد طرفي سلكين من نوع Dupont ، وقمت بتوصيل الطرف الآخر باللوحة:

  • رقم التعريف الشخصي 2: أحد المدخلات الرقمية (موجب). يمكن أن يكون أي دبوس رقمي.
  • Pin GND: أي دبوس أرضي (سلبي).

الآن ، في كل مرة أنضم فيها إلى الأطراف المكشوفة للأسلاك أقوم بإغلاق الدائرة وبالتالي يمكنني تنفيذ التعليمات البرمجية نتيجة لذلك

يحتوي كل من الدبابيس الرقمية العشرين الموجودة على ليوناردو على مقاوم داخلي (مفصول افتراضيًا) يمكن تمكينه باستخدام INPUT_PULLUP. ضع في اعتبارك أن إدخال السحب يعني أن حالة الزر معكوسة:

  • مرتفع عندما تكون الدائرة مفتوحة (لا يتم الضغط على الزر).
  • LOW عند إغلاق الدائرة (الضغط على الزر).

الكود:

الخطوة الثالثة: تثبيت مكتبة MIDIUSB

تسمح هذه المكتبة للوحة Arduino بإمكانيات USB للعمل كأداة MIDI عبر USB. تحقق من الوثائق الرسمية لمزيد من المعلومات.

باستخدام Arduino IDE ، يمكنك تثبيت مكتبات Arduino إضافية باستخدام Library Manager:

  1. افتح IDE وانقر على قائمة "Sketch" ، ثم "Include Library" ، ثم "Manage Libraries".
  2. ابحث عن MIDIUSB وانقر فوق تثبيت.
  3. بمجرد الانتهاء ، يجب أن تظهر علامة مثبتة بجوار مكتبة MIDIUSB.
  4. أغلق مدير المكتبة.

الآن يمكن ليوناردو إرسال رسائل MIDI عبر USB! لكن أولاً ، هناك حاجة إلى بعض البصيرة حول كيفية عمل MIDI.

كيف يعمل MIDI

"MIDI (الواجهة الرقمية للآلات الموسيقية) هو بروتوكول اتصال قياسي يربط بين الآلات الموسيقية الإلكترونية وأجهزة الكمبيوتر وأجهزة الصوت ذات الصلة لتشغيل الموسيقى." - ويكيبيديا

يتعامل مع رسائل الحدث مع بيانات الملعب وسرعة النغمة المعزوفة ، من بين تعليمات أخرى

في هذا المشروع المحدد ، يرسل الإدخال من الأزرار الـ 16 رسائل مختلفة عبر USB. يمكن تحويل هذه الرسائل إلى صوت على جهاز كمبيوتر باستخدام أي برنامج مناسب مثل GarageBand أو Ableton Live.

تشريح رسالة MIDI

لإرسال رسالة MIDI ، استخدمت طريقة sendMIDI () من مكتبة MIDIUSB التي قمت بتثبيتها في الخطوة 3.

يمكن أن تتلقى هذه الطريقة 4 معلمات:

  • نوع الحدث: يمكن أن يكون 0x09 للملاحظة قيد التشغيل (تشغيل ملاحظة) أو 0x08 لإيقاف تشغيل الملاحظة (إيقاف تشغيل الملاحظة).
  • ملاحظة تشغيل / إيقاف: نوع الحدث مدمج مع قناة MIDI (1-16). أنا أستخدم القناة 1 فقط لذا فهي إما 0x90 للملاحظة تشغيل أو 0x80 للملاحظة معطلة.
  • رقم الملاحظة: كل ملاحظة لها درجة رقمية مرتبطة (مقياس تردد).
  • السرعة: من 0 (بدون سرعة) إلى 127 (أسرع).

الخطوة 4: إرسال رسالة MIDI

قمت بتضمين مكتبة MIDIUSB وبدلاً من وميض مصباح LED المدمج ، أرسلت ملاحظة.

الكود:

⚠ هام: من هذه الخطوة فصاعدًا ، يتحول Arduino إلى وحدة تحكم MIDI USB ، ويتوقف عن تلقي الرمز عبر USB.

عندما تتعثر في وضع لا يمكن برمجة Arduino فيه بعد الآن ، اتبع الخطوات التالية:

  1. اضغط مع الاستمرار على زر إعادة الضبط المستدير على لوحة Arduino.
  2. انقر فوق تحميل على Arduino IDE.
  3. حرر زر إعادة الضبط.
  4. سيتم تحميل الكود المحدث على اللوحة.

الخطوة 5: إرسال رسالة MIDI من كل زر

إرسال رسالة MIDI من كل زر
إرسال رسالة MIDI من كل زر

كانت الخطوة الأخيرة هي تعيين كل خطوة على زر. بالنسبة للأزرار الستة عشر ، حددت مقياسًا من C2 إلى E3b ، وهي النغمات من 36 إلى 51 في تسلسل من أسفل إلى أعلى ومن اليسار إلى اليمين. تحقق من هذا الملف من Arduino Tutorials لمعرفة ما يتوافق مع كل ملاحظة.

لقد استخدمت دبابيس رقمية من 2 إلى 12 ودبابيس تمثيلية (باستخدامها كأرقام رقمية) من A0 إلى A4.

وهذه هي الطريقة التي يبدو بها الرمز النهائي

الخطوة 6: إنشاء القنوات أو البنوك (اختياري)

إنشاء القنوات أو البنوك (اختياري)
إنشاء القنوات أو البنوك (اختياري)

إذا كنت ترغب في إضافة المزيد من الأزرار مع القدرة على تبديل القنوات أو البنوك ، كما هو الحال في MIDI Fighter 3D (انظر الصورة) ، فإن Arduino Leonardo يحتوي على أربعة دبابيس أخرى يمكنك استخدامها. يحتوي Arduino Leonardo على 20 دبوس إدخال / إخراج رقمي ، 16 منها فقط قيد الاستخدام لتشغيل الملاحظات.

يمكنك استخدام هذه الأزرار الإضافية لتحديث متغير في الكود ، وإرسال قيمته كمعامل إلى طريقة MidiUSB.sendMIDI:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

الخطوة 7: القضية

القضية
القضية
القضية
القضية

لإبقاء هذا المشروع بسيطًا ، كنت صعب الإرضاء للغاية بشأن اختيار الميزات التي تتضمنها.

  • الأزرار فقط: 16 زر أركيد شبيه بـ Sanwa ، في شبكة 4x4. لا توجد مقابض أو منزلقات أو خافتات أو أي إدخال تناظري آخر.
  • علبة من قطعة واحدة: لا تستخدم مسامير أو صواميل أو براغي أو غراء للحاوية أو لتثبيت لوحة Arduino.
  • الأدوات اليومية: على سبيل المثال ، قمت بلحام الأسلاك بدلاً من شراء ماكينة قص أسلاك محددة لأزرار الممرات.

تصميم موحد

كان أحد التحديات التي واجهتها هو تصميم علبة بسيطة بما يكفي بحيث لا تحتاج إلى تجميع ويمكن طباعتها ثلاثية الأبعاد في عملية واحدة.

لتجنب استخدام البراغي أو الغراء ، كنت بحاجة لتصميم حاوية توفر أصغر وصول إلى الإلكترونيات. كان أكبر مصدر إلهامي للغلاف هو Mac Mini ، الذي يحتوي على فتحة على شكل دائرة في الأسفل. أردت أيضًا تصميم غطاء قابل للبرغي لذلك ، لكنني قررت تركه مفتوحًا لفضح الإلكترونيات.

قم بتنزيل العلبة ثلاثية الأبعاد القابلة للطباعة (322 كيلو بايت). الإعدادات الموصى بها: PLA ، وطبقات 0.15 مم ، وحشو 20٪ ، ودعم أدوات الإنفاذ على الأقل للفتحة السفلية المستديرة ، وحوامل Arduino ، و micro USB.

عقد اردوينو بدون مسامير

يحتوي ليوناردو على 4 فتحات لتثبيت اللوحة في أي حالة مناسبة ، لكن فكرتي كانت تسهيل إضافة اللوحة وإزالتها من العلبة.

كان العثور على حامل مشبك لـ Arduino على Thingiverse أمرًا سهلاً ، واستغرق الأمر 5 تكرارات لدمج هذا الحامل في تصميم الجسم الموحد. كان الجزء الأصعب هو جعل أرجلها لتجنب فتحات الأزرار ، ولجعل USB الصغير محاذيًا للحالة.

الخطوة 8: الجمعية

الجمعية
الجمعية
الجمعية
الجمعية
الجمعية
الجمعية

بعد إدخال جميع الأزرار في مكانها ، قمت بلحام أسلاك سوداء قصيرة تربط جميع الأرجل السلبية للأزرار فيما بينها.

ثم قمت بلحام أسلاك حمراء طويلة من كل ساق موجبة للاتصال مباشرة باللوحة.

لتوصيل الأسلاك بـ Arduino ، قمت بقص ولحام بعض نهايات Dupont وغطيتها بأنابيب الانكماش الحراري.

لقد قمت بتوصيل الأسلاك باللوحة باتباع نفس الترتيب كما في MIDI Fighter. من أسفل إلى أعلى ومن اليسار إلى اليمين

الخطوة 9: استخدام وحدة تحكم MIDI

باستخدام وحدة تحكم MIDI
باستخدام وحدة تحكم MIDI

يمكن استخدام أي برنامج موسيقى (أو جهاز مناسب) لاستقبال MIDI وعمل بعض الموسيقى. أكثرها موصى به هي Garage Band و Ableton Live وأعلم أن هناك مجموعة من التطبيقات لتثبيتها على الهاتف.

كل هذه الأدوات مفيدة في تحميل الأصوات المحددة مسبقًا لقرع طبول الأصابع ، لكنها صنعت لأغراض أكبر. قد تكون هذه الأدوات صعبة الإعداد للمبتدئين.

MIDI في مستعرض الويب

لجعل شيئًا أكثر انسجامًا مع هذا المشروع وبساطته ، قمت ببناء أداة ويب تركز تمامًا على وحدات تحكم MIDI.

Punchy: تطبيق WebMIDI و WebAudio لوحدات تحكم MIDI.

يمكنه قراءة رسائل MIDI على أي متصفح يدعم WebMIDI JavaScript API. ثم يقوم بتشغيل الأصوات في آلة النطق (باستخدام WebAudio API) أو في جهاز أخذ العينات ، وتحميل الأصوات المخصصة من أي حزمة صوت.

قم بإعداد Ableton Live

لجعل وحدة تحكم MIDI تعمل مع Ableton Live ، اتبع هذه الخطوات البسيطة من وثائقها الرسمية.

انتقل إلى التفضيلات ← ربط MIDI وتأكد من أن "الإدخال" به "Track" و "Remote" قيد التشغيل وأن الإخراج يحتوي على "Remote" قيد التشغيل كما هو مذكور في الدليل:

موصى به: