Mundarija:

MIDI tomonidan boshqariladigan LED strukturasi: 7 qadam
MIDI tomonidan boshqariladigan LED strukturasi: 7 qadam

Video: MIDI tomonidan boshqariladigan LED strukturasi: 7 qadam

Video: MIDI tomonidan boshqariladigan LED strukturasi: 7 qadam
Video: Pain Management in Dysautonomia 2024, Noyabr
Anonim
Image
Image

Haqiqiy musiqa ixlosmandlari va elektronika va informatika talabasi sifatida men har doim MIDI qurilmalarini yaratishni xohlardim, ular elektron musiqani yaratish uchun ishlatilishi mumkin edi.

Ko'plab shou va musiqiy festivallarda qatnashganimdan so'ng, men spektakllar paytida yorug'lik shoulariga juda qiziqa boshladim.

Ko'p izlanishlardan so'ng, men faqat mikrofondan foydalanadigan va LEDlarni xohlaganingizcha boshqarishga ruxsat bermaydigan qurilmalarni topdim.

DAW va MIDI signallari bilan tobora ko'proq tanishib, men bu loyihani boshlashga qaror qildim!

U LED -diodli 3D -tuzilmadan iborat bo'lib, ular MIDI signallari bilan boshqariladi (NoteOn, NoteOff va CC Messages).

Shunday qilib, musiqachi har bir LEDning rangini va qizg'inligini har qanday DAW tomonidan ishlab chiqarilgan MIDI signallari yordamida boshqarishi mumkin edi.

Bu g'oya bilan men yorug'lik namoyishlari orqali ijodkorlikni oshirishni va har kimga o'z ijodini yaratishga, har bir vizual spektaklni o'ziga xos qilishiga ruxsat berishni xohlardim.

1 -qadam: materiallar

Asosan, bu loyiha ikki qismdan iborat: MIDI qabul qilish sxemasi va LED tuzilishi; va bu qismlarni bog'lash va DAWdan keladigan LED chiziqlariga MIDI signallarini "tarjima qilish" uchun mikrokontroller. Bu erda har bir qism uchun zarur bo'lgan materiallar ro'yxati keltirilgan.

MIDI qabul qilish davri:

  • 1 x 6N138 optokupl
  • 1 x 1N914 diodli
  • 1 x 5-pinli Din Jek (MIDI Jek)
  • 2 x 220 Ohmli rezistorlar
  • 1 x 4,7K Ohmli rezistor
  • 1 USB/MIDI uyasi

LED tuzilishi:

Men faqat 1 ta raqamli port bilan boshqariladigan WS2812B LEDlariga asoslangan RGB LED chiziqlaridan foydalanardim. Agar siz ko'p sonli LEDni ishlatishni rejalashtirmoqchi bo'lsangiz, sizga kerak bo'lgan maksimal oqim haqida g'amxo'rlik qilishingiz kerak bo'lishi mumkin (1 LED maksimal 60mA iste'mol qilishi mumkin). Agar mikrokontroller bu maksimal qiymatni bajara olmasa, sizga yetarli tok etkazib beradigan yana 5V quvvat manbai kerak bo'ladi. Men 5V - 8A AC/DC adapterini maxsus chiqish adapteri va kalit bilan ishlatardim.

E'tibor bering: siz kompyuterni quvvat manbai bilan ishlatishingiz mumkin, chunki ular biladiki, ular haqiqatan ham yuqori tokni etkazib bera oladi, lekin siz uning 5V doimiy kuchlanishini, ehtimol, Er (qora) va 5V chiqish (qizil) o'rtasida 36 Ohm 5 Vt quvvat qarshiligi, rezistor orqali etarli oqim oqishini ta'minlash va shu tariqa barqaror 5V ta'minlash.

Nihoyat, men MIDI signallari va LED chiziqlar orasidagi bog'lanish uchun vintli qalqoni bo'lgan oddiy Arduino Uno -dan foydalandim.

2 -qadam: MIDI kirish sxemasini yaratish

MIDI kirish sxemasini yaratish
MIDI kirish sxemasini yaratish
MIDI kirish sxemasini yaratish
MIDI kirish sxemasini yaratish

Agar siz MIDI protokoli nima va u qanday ishlashi bilan qiziqsangiz, men sizga YouTube -dagi Notes va Volts kanalini tekshirishni tavsiya qilaman, u erda ko'plab qiziqarli va innovatsion darsliklar va MIDI Arduino loyihalari mavjud.

Bu bo'limda men faqat MIDI kirish sxemasiga e'tibor qarataman. Prototip taxtasida prototip yaratish va komponentlarni lehimlashdan oldin DAWdan keladigan MIDI signallari mikrokontroller tomonidan yaxshi qabul qilinganligini tekshirish maqsadga muvofiqdir.

Quyidagi ikkita videoda kontaktlarning zanglashiga olib borilishi va sinovdan o'tkazilishi tasvirlangan:

  • Zanjirni qurish
  • Zanjirni sinovdan o'tkazish

Nihoyat, CC xabarlarini tushunish uchun ushbu videoni tekshirish va masalan, LED yorqinligini boshqarish uchun sizning mikrokontrolleringiz avtomatlashtirish kliplarini qanday izohlashi mumkin.

3 -qadam: FL Studio -ni sozlash (ixtiyoriy)

FL Studio -ni sozlash (ixtiyoriy)
FL Studio -ni sozlash (ixtiyoriy)
FL Studio -ni sozlash (ixtiyoriy)
FL Studio -ni sozlash (ixtiyoriy)
FL Studio -ni sozlash (ixtiyoriy)
FL Studio -ni sozlash (ixtiyoriy)

FL Studio -dan foydalanish men uchun qulay bo'lganida, men uning MIDI interfeysini to'g'ri sozlashni tushuntiraman, lekin aminmanki, agar siz boshqa raqamli audio ish stantsiyasidan foydalanayotgan bo'lsangiz, bu protsedura tubdan farq qilmasligi kerak.

Avval siz USB/MIDI raz'emini kompyuteringizga ulashingiz kerak. Odatda, bunday qurilmalar o'rnatilgan dasturiy ta'minoti bilan birga keladi va ular yoqilmagan bo'lsa ham MIDI qurilmalari sifatida tan olinadi. Keyin "Sozlamalar" oynasini oching (F10 tugmachasini bosib). Agar hamma narsa to'g'ri ishlayotgan bo'lsa, chiqish qismida ba'zi MIDI qurilmalarini ko'rasiz. Qurilmangizni tanlang va uning yoqilganligiga ishonch hosil qiling.

Keyin siz port raqamingizni belgilashingiz va uni yodda tutishingiz kerak bo'ladi (masalan, 0). Bu oynani yoping (parametrlar avtomatik ravishda saqlanadi) va keyin yangi kanal qo'shing: MIDI Out.

So'ngra, siz qilishingiz kerak bo'lgan oxirgi narsa bu yangi kanalning portini aniqlashdir: "Sozlamalar" bo'limida siz belgilagan port raqamini tanlaganingizga ishonch hosil qiling: bu bilan sizning kanalingizdan keladigan MIDI xabarlari hozir. MIDI chiqishi bilan bog'liq.

Endi, MIDI Out kanali tomonidan nota ijro etilganda, MIDI interfeysi orqali "NoteOn" xabari yuboriladi. Xuddi shu tarzda, eslatma chiqarilganda "NoteOff" xabari yuboriladi.

MIDI Out kanalining yana bir qiziq xususiyati - har xil parametrlarni potentsiometrlar yordamida boshqarish. Ulardan birini sichqonchaning o'ng tugmasi bilan bosish va "Konfiguratsiya qilish …" ni tanlab, siz ularni LEDlar yorqinligini boshqarish uchun ishlatiladigan CCMessages (qiymati 0 dan 127 gacha) yuborishga majbur qilishingiz mumkin: CC ni tanlang va keyin Qabul qiling.

Odatda FL Studio endi MIDI interfeysiga ma'lumotlarni yuborishga tayyor! Keyingi - Arduino -da yonib turadigan kodni yozish va uni LED tuzilishiga moslashtirish.

4 -qadam: LEDlarni ulash

LEDlarni ulash
LEDlarni ulash

LED chiziqlarini ulash juda oddiy, chunki ularga +5V, GND va ma'lumotlar kerak. Biroq, men ulardan 20 dan ortig'ini ulashni rejalashtirganimda, har qanday kutilmagan kechikishni oldini olish uchun bir nechta Arduino PWM pinlarini ishlatishga qaror qildim va Adafruit_NeoPixel -ning bir nechta misollarini e'lon qildim.

Qo'shilgan rasm shuningdek, elektronika qanday ishlashini tushuntirmoqchi:

  • LED chiziqlar to'g'ridan -to'g'ri quvvat manbai bilan quvvatlanadi.
  • Arduino -ni yoqish uchun quvvat tugmasi ishlatiladi
  • MIDI kirish sxemasi kalitni yoqishda Arduino tomonidan quvvatlanadi

5 -qadam: 3D tuzilishini o'chirish

3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish
3D tuzilishini bekor qilish

Hozircha bu qism eng uzun qismi edi, chunki men 3D-bosib chiqarish (va modellashtirish) bilan mutlaqo yangi bo'lganman. Men yarim portlatilgan kesilgan ikosaedrga o'xshash tuzilmani loyihalashtirmoqchi edim (ha, shaklning aniq nomini topishga biroz vaqt ketdi).

Albatta, siz o'zingiz xohlagan shaklga muvofiq o'z modelingizni yaratishingiz mumkin! Men modellashtirish jarayonini batafsil bayon qilmayman, lekin agar siz ushbu tuzilmani loyihalashtirmoqchi bo'lsangiz, siz STL fayllarini topasiz.

Turli qismlarni yig'ish biroz vaqt talab qildi, chunki men har bir yuzga bitta LEDni qo'yishim kerak edi va ularning barchasini yadro ichidagi juda ko'p simlarni lehimlash orqali ulashim kerak edi, bu juda chalkash!

E'tibor bering: agar siz bunday tuzilmani loyihalashtirmoqchi bo'lsangiz, sizga 10 ta olti burchakli bo'lak (har birida PP3DP UP mini -printer yordamida har biri taxminan 3 soat) va 6 ta beshburchak bo'lak (2 soat) kerak bo'ladi.

Har bir qismda bitta LED bo'lgandan so'ng, siz har 5V va GND terminallarini bir -biriga ulashingiz va har bir LEDning bir nechta kirish va chiqish terminallarini ulanadigan tarzda ulashingiz kerak bo'ladi.

Va nihoyat, men har bir yuzni yopish uchun LED diffuziv akrildan foydalandim.

Shundan keyingina kod murakkab bo'lib qoladi, bu unchalik murakkab emas!

6 -qadam: Kod

Kodeks
Kodeks

Avvalgi bo'limda aytib o'tganimdek, kod juda oddiy ekanligini ko'rsatadi!

Aslida, u faqat bitta MIDI misolidan va bir nechta Adafruit_NeoPixel nusxalaridan iborat (qancha chiziqlar bo'lsa ham).

Umuman olganda, MIDI klassi "uzilishlar" bilan ishlaydi: NoteOn, NoteOff va CCMessage. MIDI kirish tsikruti o'ziga xos signallardan birini Arduino -ga uzatganda, yordamchi yordamchi dastur chaqiriladi. So'ngra, kod nima qilsa, NoteOn signalidagi ma'lum bir LEDni yoqadi, uni Associate NoteOff signalidan o'chiradi va CCMessage -dagi chiziqning yorqinligini yangilaydi.

Bundan tashqari, men NoteOn signalining tezligini o'qish orqali LEDlarning rangini tanlash imkoniyatini beradigan oddiy funktsiyani aniqladim va har bir LED qizil, binafsha, ko'k, turkuaz, yashil, sariq, to'q sariq yoki oq bo'lishi mumkin. 0 dan 127 gacha bo'lgan tezlik qiymatiga bog'liq.

E'tibor qilish kerak bo'lgan muhim narsa shundaki, siz eskizni yuklashda RX pinini (MIDI kirish pallasida) uzib qo'yishingiz kerak bo'ladi, chunki ketma -ket port (bu jarayonda ishlatiladi) shu pinga ulangan!

7 -qadam: Endi nima?

Hozir men barcha elektronikalarni joylashtirish uchun maxsus korpus ustida ishlayapman va men ham strukturaning nomini o'ylayapman! Iltimos, menga ayting -chi, bu loyiha sizga yoqdimi yoki yo'qmi, men boshqa ko'rsatuvlar ustida ishlayapman, chunki men bu ko'rsatmalarni ko'proq videolar bilan yangilashni rejalashtiryapman!

Tavsiya: