جدول المحتويات:
- تم نشر هذه التعليمات في الأصل على مدونتي في 28 يونيو 2020
- الخطوة 1: وميض مصباح LED المدمج
- الخطوة 2: وميض مؤشر LED في الإدخال اليدوي
- الخطوة الثالثة: تثبيت مكتبة MIDIUSB
- الخطوة 4: إرسال رسالة MIDI
- الخطوة 5: إرسال رسالة MIDI من كل زر
- الخطوة 6: إنشاء القنوات أو البنوك (اختياري)
- الخطوة 7: القضية
- الخطوة 8: الجمعية
- الخطوة 9: استخدام وحدة تحكم MIDI
فيديو: بناء وحدة تحكم Arduino MIDI: 9 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
تم نشر هذه التعليمات في الأصل على مدونتي في 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:
- افتح IDE وانقر على قائمة "Sketch" ، ثم "Include Library" ، ثم "Manage Libraries".
- ابحث عن MIDIUSB وانقر فوق تثبيت.
- بمجرد الانتهاء ، يجب أن تظهر علامة مثبتة بجوار مكتبة MIDIUSB.
- أغلق مدير المكتبة.
الآن يمكن ليوناردو إرسال رسائل 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 فيه بعد الآن ، اتبع الخطوات التالية:
- اضغط مع الاستمرار على زر إعادة الضبط المستدير على لوحة Arduino.
- انقر فوق تحميل على Arduino IDE.
- حرر زر إعادة الضبط.
- سيتم تحميل الكود المحدث على اللوحة.
الخطوة 5: إرسال رسالة 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 وعمل بعض الموسيقى. أكثرها موصى به هي 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" قيد التشغيل كما هو مذكور في الدليل:
موصى به:
بناء وحدة تحكم Arduino MIDI: 5 خطوات (بالصور)
بناء وحدة تحكم Arduino MIDI: مرحبًا بالجميع! سأوضح لك في هذا الدليل كيفية إنشاء وحدة تحكم MIDI الخاصة بك التي تعمل بنظام Arduino. يرمز MIDI إلى الواجهة الرقمية للآلات الموسيقية وهو بروتوكول يسمح لأجهزة الكمبيوتر والآلات الموسيقية وغيرها من الأجهزة بالاتصال
Lune - وحدة تحكم MIDI مع Arduino (للدي جي أو الموسيقي): 5 خطوات (بالصور)
Lune - وحدة تحكم MIDI مع Arduino (للدي جي أو الموسيقي): اسم مشروع اردوينو الأول (متحكم دقيق) Lune. كنت أرغب في تعلم الأردوينو من خلال مشروع مفيد وكبير ، لذلك قررت أن أصنع وحدة تحكم دي جي ميدي تحتوي على جميع الوظائف اللازمة لتكون قائمة بذاتها للمزج
وحدة تحكم شريط RGBW LED معدلة ، تحكم PIR ، ESP8285: 3 خطوات
وحدة تحكم الشريط RGBW LED المعدلة ، التحكم PIR ، ESP8285: فوق مكتبي في المنزل قمت بتثبيت شريط RGBW LED. يجب أن تعمل وحدة التحكم WiFi LED RGBW مع تطبيق مثل تطبيق Magic Home. ومع ذلك ، لدي شريحة ESP8285 التي تومضها مع البرامج الثابتة الخاصة بي. أضفت PIR من خلاله يتحول شريط LED
وحدة تحكم محمولة مع وحدات تحكم ومستشعرات لاسلكية (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