Mundarija:

Arduino MIDI boshqaruvchisini yaratish: 9 qadam (rasmlar bilan)
Arduino MIDI boshqaruvchisini yaratish: 9 qadam (rasmlar bilan)

Video: Arduino MIDI boshqaruvchisini yaratish: 9 qadam (rasmlar bilan)

Video: Arduino MIDI boshqaruvchisini yaratish: 9 qadam (rasmlar bilan)
Video: PCA9685 Module va Arduino V2 yordamida 16 Servo motorini boshqarish 2024, Noyabr
Anonim

Bu ko'rsatma dastlab mening blogimda 28 yil 2020 iyunda chop etilgan

Men elektronika o'z ichiga olgan narsalarni qurishni yaxshi ko'raman va men har doim Arduino yordamida biror narsa qurishni xohlardim.

Men topgan yangi boshlanuvchilar uchun eng keng tarqalgan tuzilmalardan biri bu MIDI tekshirgichi edi. MIDI tekshirgichi - bu MIDI ma'lumotlarini (Musical Instrument Digital Interface) tovushlarni ishga tushirish va musiqa qilish uchun qurilmaga yuboradigan har qanday uskuna.

Men shuni bildimki, ko'pgina ilovalar murakkab, hatto yangi boshlanuvchilar uchun ham. O'qilmaydigan kodning yuzlab satrlaridan foydalanishim kerakligini topish juda asabiylashdi. Yoki men boshqa misollar qatorida rezistorni lehimlashim kerak.

Loyiha

O'z Arduino MIDI Controller -ni qurib, mening maqsadim shovqinni eng past darajada ushlab, yoqimli loyiha qilish edi. Har qanday boshlang'ich kuzatishi mumkin bo'lgan narsa. Buni amalga oshirish uchun men MIDI Fighter 3D-dan ilhom manbai sifatida foydalandim va har bir muhim bo'lmagan xususiyatni olib tashladim.

Mening loyihamning umumiy qiymati 30 dollardan kam edi va materiallar ro'yxati haqiqatan ham qisqa edi (sheriklik havolalari):

  • Arduino Leonardo (yoki klon): 10 dan 20 dollargacha.
  • 16 x Sanwa tugmalari 24 mm (yoki klon): har bir tugma uchun 1 dollardan 2,50 dollargacha.
  • Lehimlash temir
  • 22 AWG elektr simlari

Arduino taxtasi

Men bu loyihani boshlaganimda, bir nechta yangi Arduino modellari borligini aniqladim (yuzlab mos keluvchi taxtalarni hisobga olmaganda). Va ularning barchasi bir oz boshqacha imkoniyatlarni taklif qiladi.

Men MIDI signallarini kompyuterga yuborishim kerak edi va buning eng oddiy usuli USB orqali. ATmega32u4 mikrokontrolleriga asoslangan har qanday Arduino kartasi o'rnatilgan USB aloqasiga ega.

USB -ni qo'llab -quvvatlaydigan rasmiy Arduino platalari Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Bu platalarda USB -quvvatlash o'rnatilgan bo'lib, ular USB MIDI qurilmasi vazifasini bajarishi mumkin.

Men Arduino Leonardoning klonini olishga qaror qildim. Bu loyiha uchun etarli kirishlar bor va u simlarni ulash/ajratishni osonlashtiradigan sarlavhalarni ham o'z ichiga oladi.

Birinchi qadamlar

Men ushbu loyihaning kodini qanday amalga oshirganimni bosqichma-bosqich tushuntirsam-da, siz oxirgi versiyani yuklab olishingiz mumkin.

Kodni taxtaga yuklash uchun Arduino IDE -dan foydalanish kerak. Ularda juda foydali bo'lgan veb -muharriri ham bor, lekin ular har kuni cheklangan kvotaga ega, siz kodni kompilyatsiya qila olasiz.

1-qadam: O'rnatilgan LEDni o'chirish

Uskunalar olamidagi "Salom dunyo" qanday qilib LEDni miltillatayotgani kulgili.

Arduino Leonardoda o'z kodini sinab ko'rish uchun miltillash mumkin bo'lgan o'rnatilgan LED borligini bilish men uchun ajablanib bo'ldi. Shunday qilib, siz LED va rezistorli non panelida tashqi sxemani qurishingiz shart emas.

Kod:

2 -qadam: LEDni qo'lda kiritish paytida miltillovchi

Keyingi mantiqiy qadam, men signal yuborganimda bir xil LEDni miltillatish edi. Men ikkita Dupont simining bir uchining plastik qopqog'ini olib tashladim va ikkinchi uchini taxtaga uladim:

  • Pin raqami 2: raqamli kirishlar biri (musbat). Bu har qanday raqamli pin bo'lishi mumkin.
  • Pin GND: har qanday tuproqli pin (salbiy).

Endi, men har safar simlarning ochiq uchlariga qo'shilganda, men kontaktlarning zanglashiga olib kelaman va shuning uchun kodni bajarishim mumkin

Leonardodagi 20 ta raqamli pinning har birida ichki qarshilik mavjud (sukut bo'yicha uzilgan), uni INPUT_PULLUP yordamida yoqish mumkin. Shuni esda tutingki, tortish usuli tugma holati teskari ekanligini bildiradi:

  • O'chirish ochiq bo'lganda (tugma bosilmagan) YUQORI.
  • O'chirish yopilganda (tugma bosilganda) LOW.

Kod:

3 -qadam: MIDIUSB kutubxonasini o'rnatish

Ushbu kutubxona USB imkoniyatiga ega Arduino kartasiga USB orqali MIDI vositasi sifatida ishlash imkonini beradi. Qo'shimcha ma'lumot olish uchun rasmiy hujjatlarni tekshiring.

Arduino IDE yordamida kutubxona menejeri yordamida qo'shimcha Arduino kutubxonalarini o'rnatishingiz mumkin:

  1. IDE -ni oching va "Sketch" menyusini, so'ng "Kutubxonani qo'shish" -ni, so'ng "Kutubxonalarni boshqarish" -ni bosing.
  2. MIDIUSB -ni qidiring va O'rnatish -ni bosing.
  3. U tugagandan so'ng, MIDIUSB kutubxonasi yonida O'rnatilgan teg paydo bo'lishi kerak.
  4. Kutubxona menejerini yoping.

Endi Leonardo USB orqali MIDI xabarlarini yuborishi mumkin! Birinchidan, MIDI qanday ishlashi haqida bir oz tushuncha kerak.

MIDI qanday ishlaydi

"MIDI (Musical Instrument Digital Interface) - musiqa ijro etish uchun elektron musiqa asboblari, kompyuterlar va tegishli audio qurilmalarni bog'laydigan standart aloqa protokoli." - Vikipediya

U voqea xabarlarini boshqa ko'rsatmalar bilan bir qatorda, notaning balandligi va tezligi haqidagi ma'lumotlarni boshqaradi

Ushbu maxsus loyihada 16 tugmachadan kirish USB orqali har xil xabarlarni yuboradi. Bu xabarlarni GarageBand yoki Ableton Live kabi har qanday mos dastur yordamida kompyuterda ovozga aylantirish mumkin.

MIDI xabarining anatomiyasi

MIDI xabarini yuborish uchun men 3 -qadamda o'rnatgan MIDIUSB kutubxonasidan sendMIDI () usulini qo'lladim.

Bu usul 4 parametrni qabul qilishi mumkin:

  • Voqea turi: "Yoqish" yozuvi uchun 0x09 yoki "O'chirish" yozuvi uchun 0x08 bo'lishi mumkin (notani ijro qilishni to'xtatish).
  • Eslatma yoqish/o'chirish: voqea turi MIDI kanali bilan birlashtirilgan (1-16). Men faqat 1 -kanalni ishlataman, shuning uchun "Yonish" uchun 0x90 yoki "O'chirish" uchun 0x80.
  • Eslatma raqami: Har bir eslatmaning raqamli balandligi (chastota shkalasi) bor.
  • Tezlik: 0dan (tezliksiz) 127gacha (eng tez).

4 -qadam: MIDI xabarini yuborish

Men MIDIUSB kutubxonasini o'z ichiga oldim va o'rnatilgan LEDni o'chirish o'rniga, men eslatma yubordim.

Kod:

Ant Muhim: Bu bosqichdan boshlab Arduino MIDI USB tekshirgichiga aylanadi va u USB orqali kod qabul qilishni to'xtatadi.

Agar siz Arduino dasturlashtirilmaydigan joyga tushib qolsangiz, quyidagi amallarni bajaring

  1. Arduino kartasidagi dumaloq tiklash tugmachasini bosib ushlab turing.
  2. Arduino IDE -da Yuklash -ni bosing.
  3. Qayta tiklash tugmachasini qo'yib yuboring.
  4. Yangilangan kod taxtaga yuklanadi.

5 -qadam: Har bir tugmachadan MIDI xabarini yuborish

Har bir tugmachadan MIDI xabarini yuborish
Har bir tugmachadan MIDI xabarini yuborish

Oxirgi qadam har bir qadamni tugmachaga solish edi. 16 tugma uchun men C2 dan E3b gacha bo'lgan o'lchovni aniqladim, ular pastdan yuqoriga va chapdan o'ngga ketma -ket 36 dan 51 gacha bo'lgan maydonlar. Bu faylni Arduino tutorials -dan tekshirib ko'ring, har bir notaga qanday ohang mos kelishini bilib oling.

Men 2 dan 12 gacha raqamli pinlardan va analog pinlardan (ularni raqamlar sifatida) A0 dan A4 gacha ishlatardim.

Va yakuniy kod shunday ko'rinadi

6 -qadam: Kanallar yoki banklarni sozlash (ixtiyoriy)

Kanallar yoki banklarni sozlash (ixtiyoriy)
Kanallar yoki banklarni sozlash (ixtiyoriy)

Agar siz MIDI Fighter 3D -da bo'lgani kabi kanallarni yoki banklarni almashtirish imkoniyatiga ega bo'lgan boshqa tugmachalarni qo'shmoqchi bo'lsangiz (rasmga qarang), Arduino Leonardoda siz foydalanishingiz mumkin bo'lgan yana to'rtta pin bor. Arduino Leonardoda 20 ta raqamli kirish/chiqish pinlari bor, ulardan faqat 16 tasi notalarni ijro etish uchun ishlatiladi.

Siz koddagi o'zgaruvchini yangilash va uning qiymatini parametr sifatida MidiUSB.sendMIDI usuliga yuborish uchun qo'shimcha tugmalardan foydalanishingiz mumkin:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

7 -qadam: ish

Ish
Ish
Ish
Ish

Loyihani soddalashtirish uchun men qaysi xususiyatlarni o'z ichiga olganini tanlashda juda ehtiyot bo'ldim.

  • Faqat tugmalar: 4 x 4 o'lchamdagi 16 ta Sanvaga o'xshash arja tugmalari. Hech qanday tugma, slayder, fader yoki boshqa analog kirish yo'q.
  • Yagona korpus: Arduino taxtasini mahkamlash uchun vintlar, yong'oqlar, murvat yoki elim ishlatmang.
  • Kundalik asboblar: Masalan, men arja tugmachalari uchun maxsus sim kesgich sotib olish o'rniga simlarni lehimladim.

Yagona tana dizayni

Men duch kelgan qiyinchiliklardan biri bu oddiy ishni tayyorlash edi, uni yig'ishga hojat yo'q va uni bir martalik 3d chop etish mumkin edi.

Vintlar yoki elim ishlatmaslik uchun men elektronga eng kichik kirishni ta'minlaydigan korpusni loyihalashim kerak edi. Qavs uchun mening eng katta ilhomim Mac Mini bo'ldi, uning pastki qismida aylana shaklidagi teshik bor. Men ham buning uchun vidalanadigan qopqoqni loyihalashtirmoqchi edim, lekin men elektronikani ochish uchun uni ochishga qaror qildim.

3D formatdagi bosma sumkani yuklab oling (322 KB). Tavsiya etilgan sozlamalar: PLA, 0,15 mm qatlamlar, 20% to'ldirish, hech bo'lmaganda dumaloq pastki teshik, Arduino ushlagichlari va mikro USB uchun qo'llab -quvvatlovchi.

Arduino -ni vintlarsiz ushlab turish

Leonardoda taxtani har qanday mos korpusga burab qo'yish uchun 4 teshik bor, lekin mening fikrimcha, taxtani korpusga qo'shish va olib tashlashni osonlashtirish edi.

Thingiverse -da Arduino uchun klip ushlagichini topish oson edi va men ushlagichni bir xil dizaynga qo'shish uchun 5 marta takrorladim. Eng qiyin narsa - bu tugmachalarning teshiklaridan qochish uchun oyoqlarini yasash va mikro USB -ni korpusga markazlashtirilgan qilib qo'yish.

8 -qadam: yig'ilish

Assambleya
Assambleya
Assambleya
Assambleya
Assambleya
Assambleya

Hamma tugmalarni joyiga qo'ygandan so'ng, men tugmalarning barcha salbiy oyoqlarini birlashtiruvchi qisqa qora simlarni lehimladim.

Keyin men to'g'ridan -to'g'ri taxtaga ulanish uchun har bir ijobiy oyog'idan uzun qizil simlarni lehimladim.

Simlarni Arduino-ga ulash uchun men Dupontning uchlarini kesib, lehimlab qo'ydim va ularni issiqlik o'tkazmaydigan quvurlar bilan yopdim.

Men simlarni doskaga MIDI Fighter -dagi tartibda uladim. Pastdan yuqoriga va chapdan o'ngga

9 -qadam: MIDI tekshirgichidan foydalanish

MIDI tekshirgichidan foydalanish
MIDI tekshirgichidan foydalanish

MIDI -ni qabul qilish va musiqa yaratish uchun har qanday musiqiy dasturiy ta'minot (yoki mos keladigan apparat) ishlatilishi mumkin. Eng ko'p tavsiya etilganlar - Garage Band, Ableton Live va men bilaman, telefonga o'rnatish uchun ko'plab dasturlar mavjud.

Bu asboblarning barchasi barmoq barabanlari uchun oldindan belgilangan tovushlarni yuklash uchun foydalidir, lekin ular katta maqsadlar uchun qilingan. Yangi boshlanuvchilar uchun bunday vositalarni o'rnatish qiyin bo'lishi mumkin.

MIDI veb -brauzerda

Biror narsani ushbu loyiha va uning soddaligi bilan uyg'unlashtirish uchun men MIDI kontrollerlariga to'liq yo'naltirilgan veb -vositasini yaratdim.

Punchy: MIDI kontrollerlari uchun WebMIDI va WebAudio dasturlari.

U MIDI xabarlarini WebMIDI JavaScript API -ni qo'llab -quvvatlaydigan har qanday brauzerda o'qishi mumkin. Keyin u tovushlarni sintezatorda (WebAudio API yordamida) yoki namuna oluvchida o'ynaydi, har qanday tovush to'plamidan maxsus tovushlarni yuklaydi.

Ableton Live -ni o'rnating

MIDI Controller -ni Ableton Live -da ishlash uchun ularning rasmiy hujjatlaridagi quyidagi oddiy amallarni bajaring.

"Preferences → Link MIDI" ga o'ting va "Kirish" da "Track" va "Remote" ON yoqilganligiga va yo'riqnomada aytilganidek "Masofadan boshqarish" yoqilganligiga ishonch hosil qiling:

Tavsiya: