جدول المحتويات:
- اللوازم
- الخطوة 1: الإلكترونيات
- الخطوة 2: توصيل شريط LED
- الخطوة 3: تكييف المشروع مع لوحة المفاتيح الخاصة بك
- الخطوة 4: كود اردوينو
- الخطوة 5: التحسينات الممكنة …
- الخطوة 6: تم
فيديو: MIDI2LED - تأثير شريط إضاءة LED يتم التحكم فيه بواسطة MIDI: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
هذا هو أول تدريب لي ، لذا احمل معي.
أحب صنع الموسيقى ، وفي المواقف الحية مثل الحفلات الموسيقية في غرفة المعيشة ، أحبها عندما تكون هناك تأثيرات ضوئية متزامنة مع ما أعزفه. لذلك قمت ببناء صندوق قائم على Arduino يجعل شريط LED يضيء بلون عشوائي عندما أضرب ملاحظة على لوحة مفاتيح MIDI الخاصة بي ، وحيث أضربت النغمة.
اللوازم
- اردوينو اونو
- اردوينو بروتوشيلد
- مقبس MIDI
- 1N4148 ديود
- 6N138 المقرنة البصرية
- المقاومات: 2 × 220 أوم ، 1 × 10 كيلو أوم ، 1 × 470 أوم
- شريط WS2812B LED (60 ليد)
- بعض الأسلاك المتبقية
- أنابيب الانكماش الحراري
- غلاف مناسب لـ Arduino (أستخدم صندوق تقاطع بلاستيكي)
سوف تحتاج أيضا
- لحام الحديد ولحام
- لوحة مفاتيح MIDI وكابل MIDI
الخطوة 1: الإلكترونيات
الدائرة واضحة ومباشرة. يتكون من إدخال MIDI قياسي (يسار Arduino) والاتصال بشريط LED (يمين Arduino). ضع جميع الأجزاء على الدرع الأولي ، هناك مساحة كبيرة. يوصى عمومًا باستخدام مصدر طاقة خارجي لتشغيل شريط LED ، لكنني وجدت أنه عند اللعب ، يتم تشغيل عدد قليل فقط من مصابيح LED في نفس الوقت ، لذلك كان هناك لا توجد مشكلة في استخدام Arduino + 5V / GND كإخراج للطاقة. (حاول تجنب الضغط على جميع المفاتيح في نفس الوقت ، وبسرعة كاملة. ؛-)) إذا قررت استخدام مصدر طاقة خارجي ، فما عليك سوى توصيله بدبابيس Arduino + 5V و GND. يوصي بعض الأشخاص بإدخال مكثف 100 فائق التوهج (غير موضح في التخطيطي) بين هذين الخطين.
قم بلحام الأجزاء بالدرع الأولي وقم بتوصيل شريط LED كما هو موضح في التخطيطي.
الخطوة 2: توصيل شريط LED
من المهم توصيل الطرف الأيمن - طرف الإدخال - لشريط LED بالدائرة. يحتوي الشريط الخاص بي على موصل أنثى كمدخل ، ويحتوي على مثلثات صغيرة تشير بعيدًا عن المدخلات. في الإخراج ، كان هناك موصل ذكر (لتتمكن من توصيله بشريط آخر ، وهو ما لا نحتاجه) ، لذلك قمت بقطع ذلك ولحمه في الكابلات الثلاثة القادمة من Arduino. استخدم أنابيب الانكماش الحراري لربط الكابلات الثلاثة بشريط LED معًا ، ولجعلها أقل وضوحًا.
يأتي شريط LED الذي استخدمته مع شريط لاصق في الخلف ، بحيث يمكن لصقه بسهولة على الجزء الخلفي من لوحة مفاتيح MIDI.
الخطوة 3: تكييف المشروع مع لوحة المفاتيح الخاصة بك
قد تضطر إلى تكييف شريط LED وكود Arduino مع لوحة المفاتيح. يحتوي المنجم على 76 مفتاحًا ، ويبلغ طول الشريط تقريبًا عرض لوحة المفاتيح. إذا كان لديك على سبيل المثال 61 مفتاحًا ، قد تحتاج إلى شريط أقصر. يمكن قطع شريط LED بين أي مصباحين. فقط تأكد من قطع الجزء الصحيح ، وله نهاية إدخال (مع موصل أنثى) ونهاية إخراج (مع موصل ذكر) ، فأنت بحاجة إلى الاحتفاظ بنهاية الإدخال. في الكود ، قم بتغيير #defines ل
- NUMBER_OF_LEDS إلى عدد مصابيح LED المتبقية في الشريط الخاص بك بعد قطع النهاية ،
- NUMBER_OF_KEYS إلى عدد المفاتيح على لوحة المفاتيح و
- MIN_KEY إلى رقم درجة MIDI لأدنى مفتاح. قد تجد هذا في دليل مستخدم لوحة المفاتيح ؛ أو استخدم أداة تعرض رقم ملاحظة MIDI ، مثل KMidiMon لنظام التشغيل Linux أو Pocket MIDI لنظام التشغيل windows أو Mac ؛ أو جرب قيمًا مختلفة حتى يستجيب الجهاز لجميع المفاتيح الموجودة على لوحة المفاتيح
الخطوة 4: كود اردوينو
يستخدم كود Arduino مكتبة MIDI (الإصدار 4.3.1) بواسطة Forty Seven Effects ومكتبة Adafruit NeoPixel (الإصدار 1.3.4) بواسطة Adafruit. قم بتثبيت هذه المكتبات باستخدام Arduino IDE. ثم قم بتجميع الكود وتحميله على Arduino دون توصيل الدرع (يتم توصيل optocoupler بدبوس RX ، مما يعيق التحميل). قم بتشغيل Arduino عبر كابل USB (أستخدم ثؤلول جدار USB).
إذا كنت ترغب في تعديل الرمز حسب رغبتك ، فإليك نظرة عامة موجزة عن كيفية عمله: في كل حلقة ، تتم قراءة إدخال MIDI. إذا تم تلقي حدث "تشغيل الملاحظة" أو "إيقاف تشغيل الملاحظة" ، يتم استدعاء وظائف MyHandleNoteOn أو MyHandleNoteOff. كلاهما يستدعي وظيفة updateVelocityArray ، التي تخزن السرعة (أي مدى صعوبة الضغط على المفتاح) لرقم المفتاح. إذا كانت السرعة أعلى مما تم تخزينه من قبل ، فسيتم ضبط لون مؤشر LED المقابل على "اللون الحالي". بعد معالجة أحداث MIDI ، يتم استدعاء الوظيفة updateLedArray. يقوم هذا بتحديث "اللون الحالي" (قيم الأحمر والأخضر والأزرق التي تتغير بشكل مستقل بطريقة خطية ، حتى يتم الوصول إلى النهاية السفلية أو العليا ، وعند هذه النقطة يتم ضبط سرعة التغيير الخطي على رقم عشوائي) ، يقلل ببطء من سرعة الملاحظات المضغوطة ، ويحدّث قيم اللون لكل مصباح LED يجب أن يغير لونه (بسبب ضرب ملاحظة جديدة ، أو تقليل السرعة). تقوم وظيفة showLedArray بنقل الألوان إلى هيكل Adafruit_NeoPixel المسمى "البكسل" وتجعل مصابيح LED الفعلية تُظهر الألوان في بنية البكسل.
الخطوة 5: التحسينات الممكنة …
مشروع لا ينتهي ابدا. هناك دائمًا شيء يمكن القيام به لتحسينه:
- يحتوي الدرع الأولي على عدد قليل جدًا من الأجزاء ، وهو حقًا مضيعة ؛ يمكن للمرء بسهولة تحقيق نفس التأثير باستخدام Arduino Nano و 15x7 فتحات PCB بالإضافة إلى بعض رؤوس الدبوس الأنثوية.
- تضيع بعض إشارات MIDI. إذا كان NoteOn ، فلن يضيء مؤشر LED المقابل ؛ إذا كانت NoteOff ، فلن تنطفئ (لهذا السبب قدمت تقليل السرعة ، مما يضمن عدم بقاء مصابيح LED إلى أجل غير مسمى). ما زلت أحاول معرفة السبب. من المحتمل أنها مشكلة توقيت ، وينبغي استدعاء MIDI.read () في كثير من الأحيان.
- تمت قراءة بعض إشارات MIDI بشكل خاطئ ، أي تضيء مصابيح LED الخاطئة. يمكن أن تكون مرتبطة بالنقطة أعلاه. يحتاج إلى بعض التحقيق.
- تم تصميم الدائرة لإعطاء تأثير مرئي لطيف دون الكثير من تفاعل المستخدم (بصرف النظر عن العزف على لوحة المفاتيح). ومع ذلك ، يمكنني تخيل إضافة مقياس جهد تمت قراءته (باستخدام أحد مدخلات Arduino التناظرية) والتي يمكنك من خلالها تغيير السرعة القصوى التي تتغير بها الألوان (حاليًا # حدد على أنه MAX_COLOR_CHANGE_SPEED = 20). أو قم بقياس متوسط الوقت بين حدثين من أحداث NoteOn ، وقم بتغيير MAX_COLOR_CHANGE_SPEED وفقًا لذلك - في الأغاني البطيئة ، يجب أن يتغير اللون بشكل أبطأ.
الخطوة 6: تم
قم بتشغيل Arduino عبر كابل USB (أستخدم ثؤلول جدار USB). قم بتوصيل لوحة مفاتيح MIDI بمقبس MIDI ، وابدأ موسيقى الروك. شاهدني أعزف القليل من الموسيقى الخفيفة (التورية ، على الرغم من أنها سيئة كما هي ، مقصودة).
موصى به:
شريط مصفوفة LED يتم التحكم فيه بواسطة WiFi: 3 خطوات (مع صور)
ضوء ساعة عرض مصفوفة شريط LED يتم التحكم فيه بواسطة WiFi: شرائط LED قابلة للبرمجة ، على سبيل المثال على أساس WS2812 ، رائعة. التطبيقات متشعبة ويمكنك الحصول بسرعة على نتائج مبهرة. وبطريقة ما ، يبدو أن بناء الساعات مجال آخر أفكر فيه كثيرًا. البدء ببعض الخبرة في
كرسي متحرك يتم التحكم فيه بواسطة عصا التحكم بمساعدة متتبع العوائق: 3 خطوات (بالصور)
كرسي متحرك يتم التحكم فيه بواسطة عصا التحكم بمساعدة متتبع العوائق: من أجل تسهيل ركوب الأشخاص المعاقين جسديًا بأمان ، يتم استخدام جهاز استشعار بالموجات فوق الصوتية لتتبع العقبات الموجودة في الطريق. بناءً على حركة عصا التحكم ، ستقود المحركات الكرسي المتحرك في أي أربعة اتجاهات وسرعة في كل
مولد صوت 8 بت يتم التحكم فيه بواسطة MIDI / Arduino (AY-3-8910): 5 خطوات
MIDI / Arduino مولد صوت 8 بت (AY-3-8910): إنشاء مولد صوت ذي 8 بتات وتحكم فيه من خلال MIDI ، هذا التصميم مستوحى جزئيًا من عشاق Chiptune لبناء دوائر Arduino لتشغيل ملفات Chiptune وبعض من أفكاري الخاصة لدمج صوت سلبيات ألعاب الفيديو المبكرة
شريط RGB LED يتم التحكم فيه بواسطة WiFi مع ESP8266: 5 خطوات
شريط RGB LED يتم التحكم فيه بواسطة WiFi مع ESP8266: الفكرة هي إنشاء مصابيح LED يمكن التحكم فيها من WiFi. لدي بعض أشرطة LED الاحتياطية من الكريسماس ، لذلك أقوم بإعادة تدوير هذا إلى ESP8266 والذي يسمح بالتحكم في LED من شبكة WiFi. يمكن لـ ESP8266 أن يعمل كخادم ويب ، هذا
شريط ESP 8266 Nodemcu RGB LED يتم التحكم فيه بواسطة جهاز تحكم عن بعد لخادم الويب: 4 خطوات
ESP 8266 Nodemcu RGB LED Strip يتم التحكم فيه بواسطة جهاز تحكم عن بعد لخادم الويب: في هذه التعليمات سوف نتعلم كيفية تحويل nodemcu إلى جهاز تحكم عن بعد IR لشريط RGB LED ويجب التحكم في جهاز التحكم عن بعد nodemcu بواسطة صفحة ويب مستضافة على الهاتف المحمول أو الكمبيوتر الشخصي بواسطة nodemcu