Mündəricat:

Arduino MIDI Nəzarətçisi qurmaq: 9 addım (şəkillərlə birlikdə)
Arduino MIDI Nəzarətçisi qurmaq: 9 addım (şəkillərlə birlikdə)

Video: Arduino MIDI Nəzarətçisi qurmaq: 9 addım (şəkillərlə birlikdə)

Video: Arduino MIDI Nəzarətçisi qurmaq: 9 addım (şəkillərlə birlikdə)
Video: MIDI nəzarətçi: Arduino, klaviatura, fırlanan kodlayıcı, ssd1306 OLED, Roland SC-55 2024, Noyabr
Anonim

Bu təlimat, ilk olaraq 28 iyun 2020 -ci ildə blogumda yayımlandı

Elektronikadan ibarət əşyalar tikməkdən zövq alıram və həmişə Arduino ilə bir şeylər qurmaq istəyirdim.

Yeni başlayanlar üçün ən çox yayılmış quruluşlardan biri MIDI nəzarətçi idi. MIDI nəzarətçi, MIDI məlumatlarını (Musiqili Alətlərin Rəqəmsal İnterfeysi) səsləri işə salmaq və musiqi etmək üçün bir cihaza göndərən hər hansı bir cihazdır.

Bir çox tətbiqin, hətta yeni başlayanlar üçün də çətin olduğunu gördüm. Yüzlərlə sətir oxunmayan koddan istifadə etməyim lazım olduğunu tapmaq çox sinir bozucu idi. Və ya bəzi hallarda, digər nümunələr arasında bir rezistoru lehimləməliyəm.

Layihə

Öz Arduino MIDI Controller quraraq niyyətim səs -küyü ən aşağı səviyyədə saxlamaqla xoş bir layihə etmək idi. Hər hansı bir yeni başlayanın izləyə biləcəyi bir şey. Bunu həyata keçirmək üçün MIDI Fighter 3D-ni əsas ilham olaraq istifadə etdim və hər bir vacib olmayan xüsusiyyəti sildim.

Layihəmin ümumi dəyəri 30 dollardan aşağı idi və materialların siyahısı həqiqətən qısa idi (ortaq bağlantılar):

  • Arduino Leonardo (və ya klon): 10 ilə 20 dollar arasında.
  • 16 x Sanwa düymələri 24mm (və ya klon): hər düymə üçün 1 ilə 2.50 dollar arasında.
  • Lehimleme dəmir
  • 22 AWG Elektrik Teli

Arduino lövhəsi

Bu layihəyə başlayanda gördüm ki, bir çox yeni Arduino modeli var (yüzlərlə uyğun lövhə daxil deyil). Və hamısı bir az fərqli qabiliyyətlər təklif edir.

MIDI siqnallarını kompüterə göndərməli idim və bunun ən sadə yolu USB -dir. ATmega32u4 mikro nəzarətçisinə əsaslanan hər hansı bir Arduino lövhəsi daxili USB əlaqəsinə malikdir.

Yerli USB dəstəyi olan rəsmi Arduino lövhələri Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Microdur. Bu lövhələrdə USB MIDI cihazı kimi çıxış edə biləcəkləri birləşmiş USB dəstəyi var.

Arduino Leonardonun klonu ilə getməyə qərar verdim. Bu layihə üçün kifayət qədər girişə malikdir və telləri bağlamağı/çıxarmağı asanlaşdıran başlıqları da ehtiva edir.

İlk addımlar

Bu layihənin kodunu necə tətbiq etdiyimi addım-addım izah etsəm də, son versiyanı yükləyə bilərsiniz.

Kodu taxtaya yükləmək üçün Arduino IDE -dən istifadə etməlisiniz. Həm də çox faydalı bir veb redaktoru var, ancaq gündə kompilyasiya edə biləcəyiniz məhdud bir kvota var.

Addım 1: Daxili LED-in yanıb-sönməsi

Təchizat dünyasındakı "Salam Dünya" nın bir LED -in necə yanıb -sönməsi gülməlidir.

Arduino Leonardonun kodunuzu sınamaq üçün yanıb-sönə biləcəyiniz daxili bir LED-ə sahib olduğunu öyrənmək mənim üçün xoş bir sürpriz oldu. Bu şəkildə bir LED və bir rezistorlu bir çörək taxtasında xarici bir dövrə qurmağa ehtiyac yoxdur.

Kod:

Addım 2: Manuel Girişdə LED -in yanıb -sönməsi

Növbəti məntiqi addım, bir siqnal göndərəndə eyni LED -in yanıb -sönməsi idi. 2 Dupont telinin bir ucunun plastik qapağını çıxarıb digər ucunu lövhəyə bağladım:

  • Pin nömrəsi 2: Rəqəmsal girişlərdən biri (müsbət). Hər hansı bir rəqəmsal pin ola bilər.
  • Pin GND: Hər hansı bir torpaq pin (mənfi).

İndi, hər dəfə tellərin açıq hissələrinə qoşulduğumda dövrəni bağlayıram və nəticədə kodu icra edə bilirəm

Leonardodakı 20 rəqəmsal sancağın hər birində INPUT_PULLUP istifadə edərək aktivləşdirilə bilən daxili müqavimət var (standart olaraq ayrılıb). Unutmayın ki, açılan giriş düymə vəziyyətinin ters çevrildiyini bildirir:

  • Dövrə açıq olduqda YÜKSƏK (düyməyə basılmır).
  • Dövrə bağlandıqda LOW (düyməyə basıldıqda).

Kod:

Addım 3: MIDIUSB Kitabxanasının quraşdırılması

Bu kitabxana, USB qabiliyyətinə malik bir Arduino lövhəsinin USB üzərində MIDI aləti kimi çıxış etməsinə imkan verir. Daha çox məlumat üçün rəsmi sənədləri yoxlayın.

Arduino IDE -dən istifadə edərək Kitabxana Menecerindən istifadə edərək əlavə Arduino Kitabxanaları quraşdıra bilərsiniz:

  1. IDE -ni açın və "Eskiz" menyusuna, sonra "Kitabxana daxil et" ə, sonra "Kitabxanaları İdarə et" ə basın.
  2. MIDIUSB axtarın və Quraşdır düyməsini basın.
  3. Bitirdikdən sonra MIDIUSB kitabxanasının yanında Quraşdırılmış etiket görünməlidir.
  4. Kitabxana Menecerini bağlayın.

İndi Leonardo USB vasitəsilə MIDI mesajları göndərə bilər! Ancaq əvvəlcə MIDI -nin necə işlədiyinə dair bəzi fikirlərə ehtiyac var.

MIDI necə işləyir

"MIDI (Musical Instrument Digital Interface), musiqi çalmaq üçün elektron musiqi alətlərini, kompüterləri və əlaqəli səs cihazlarını birləşdirən standart bir ünsiyyət protokoludur." - Vikipediya

O, digər təlimatlar arasında səslənən notun meydançası və sürəti haqqında məlumatlar olan hadisə mesajlarını idarə edir

Bu xüsusi layihədə, 16 düymənin girişi USB vasitəsilə fərqli mesajlar göndərir. Bu mesajlar GarageBand və ya Ableton Live kimi uyğun proqramlardan istifadə edərək kompüterdə səsə çevrilə bilər.

MIDI mesajının anatomiyası

MIDI mesajı göndərmək üçün 3 -cü addımda quraşdırdığım MIDIUSB Kitabxanasından sendMIDI () metodundan istifadə etdim.

Bu üsul 4 parametr ala bilər:

  • Hadisə növü: Açıq qeyd üçün 0x09 ola bilər (çalma notu) və ya Off üçün 0x08 (not çalmağı dayandırın).
  • Qeyd Açıq/Kapalı: MIDI kanalı ilə birləşən hadisə növü (1-16). Mən yalnız kanal 1 -dən istifadə edirəm, ya qeyd üçün 0x90, ya da qeyd üçün 0x80.
  • Qeyd nömrəsi: Hər bir notun əlaqəli sayısal meydançası var (tezlik miqyası).
  • Sürət: 0 -dan (sürət yoxdur) 127 -ə (ən sürətli).

Addım 4: MIDI Mesajı Göndərin

MIDIUSB Kitabxanasını daxil etdim və quraşdırılmış LED-i yandırmaq əvəzinə bir qeyd göndərdim.

Kod:

⚠ Mühüm: Bu addımdan sonra Arduino MIDI USB Nəzarətçisinə çevrilir və USB vasitəsilə kod qəbul etməyi dayandırır.

Arduinonun artıq proqramlaşdırıla bilməyəcəyi bir vəziyyətdə qaldığınız zaman bu addımları izləyin:

  1. Arduino lövhəsindəki yuvarlaqlaşdırılmış sıfırlama düyməsini basıb saxlayın.
  2. Arduino IDE -də Yüklə vurun.
  3. Sıfırlama düyməsini buraxın.
  4. Yenilənmiş kod lövhəyə yüklənəcək.

Addım 5: Hər Düymədən Bir MIDI Mesajı Göndərin

Hər Düymədən Bir MIDI Mesajı Göndərmək
Hər Düymədən Bir MIDI Mesajı Göndərmək

Son addım, hər meydançanı bir düyməyə uyğunlaşdırmaq idi. 16 düymə üçün aşağıdan yuxarıya və soldan sağa ardıcıllıqla 36 -dan 51 -ə qədər olan C2 -dən E3b -ə qədər bir miqyas təyin etdim. Hər bir nota nə uyğun gəldiyini görmək üçün Arduino Dərsliklərindən bu fayla baxın.

2 -dən 12 -ə qədər rəqəmsal pinlərdən və A0 -dan A4 -ə qədər analog pinlərdən (rəqəmsal olaraq istifadə edərək) istifadə etdim.

Və son kod belə görünür

Addım 6: Kanalların və ya Bankların Qurulması (isteğe bağlı)

Kanallar və ya Banklar qurmaq (isteğe bağlı)
Kanallar və ya Banklar qurmaq (isteğe bağlı)

MIDI Fighter 3D -də olduğu kimi kanalları və ya bankları dəyişdirmə qabiliyyətinə malik daha çox düymə əlavə etmək istəsəniz (şəkilə bax), Arduino Leonardo'da istifadə edə biləcəyiniz daha dörd pin var. Arduino Leonardo'da 20 rəqəmsal giriş/çıxış pinləri var ki, onlardan yalnız 16 -sı notlar üçün istifadə olunur.

Koddakı bir dəyişəni yeniləmək və dəyərini parametr olaraq MidiUSB.sendMIDI metoduna göndərmək üçün bu əlavə düymələrdən istifadə edə bilərsiniz:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Addım 7: Dava

Hal
Hal
Hal
Hal

Bu layihəni sadə saxlamaq üçün hansı xüsusiyyətlərin daxil olduğunu seçməkdə son dərəcə seçici idim.

  • Yalnız düymələr: 4x4 ölçüdə 16 Sanwa bənzər arcade düymələri. Düymələr, sürgülər, faderlər və ya başqa analoq giriş yoxdur.
  • Unibody qutusu: Arduino lövhəsini tutmaq üçün vida, qoz -fındıq, bolt və ya yapışqan istifadə etməyin.
  • Gündəlik alətlər: Məsələn, arcade düymələri üçün xüsusi bir tel kəsici almaq əvəzinə telləri lehimlədim.

Unibody Dizaynı

Qarşılaşdığım problemlərdən biri, montaja ehtiyacı olmayan və bir işdə 3d çap edilə bilən bir iş dizaynı idi.

Vida və ya yapışqan istifadə etməmək üçün elektronikaya ən kiçik girişi təmin edən bir korpus hazırlamalı oldum. Qapı üçün ən böyük ilhamım, altındakı dairə şəklində bir çuxura sahib olan Mac Mini idi. Bunun üçün vidalana bilən bir qapaq da hazırlamaq istədim, amma elektronikanı açmaq üçün açmağa icazə verdim.

3d çaplı çantanı yükləyin (322 KB). Tövsiyə olunan parametrlər: PLA, 0.15 mm təbəqələr, 20% doldurma, ən azı yuvarlaq alt çuxur, Arduino tutacaqları və mikro USB üçün dəstəkləyicilər.

Vidasız bir Arduino tutmaq

Leonardoda lövhəni hər hansı bir uyğun qutuya vida etmək üçün 4 deşik var, amma fikrim lövhəni korpusdan əlavə edib çıxarmağı asanlaşdırmaq idi.

Thingiverse -də Arduino üçün klip tutucu tapmaq asan idi və o tutucunu unibody dizaynına birləşdirmək üçün 5 dəfə təkrarlamalı oldum. Ən çətin şey, düymələrin deliklərindən qaçmaq üçün ayaqlarını düzəltmək və mikro USB -ni korpusa mərkəzləşdirilmiş etmək idi.

Addım 8: Məclis

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Bütün düymələri yerinə qoyduqdan sonra düymələrin bütün mənfi ayaqlarını birləşdirən qısa qara telləri lehimlədim.

Sonra birbaşa lövhəyə qoşulmaq üçün hər bir müsbət ayağından uzun qırmızı telləri lehimlədim.

Telləri Arduino-ya bağlamaq üçün bəzi Dupont uclarını kəsib lehimlədim və istilik büzücü borularla örtdüm.

Telləri MIDI Fighter -da olduğu kimi eyni qaydada lövhəyə bağladım. Aşağıdan yuxarıya və soldan sağa

Addım 9: MIDI Controller istifadə edin

MIDI nəzarətçisindən istifadə
MIDI nəzarətçisindən istifadə

Hər hansı bir musiqi proqramı (və ya uyğun aparat) MIDI almaq və bəzi musiqi etmək üçün istifadə edilə bilər. Ən çox tövsiyə edilənlər Garage Band, Ableton Live -dır və bilirəm ki, bir telefona quraşdırmaq üçün bir çox proqram var.

Bütün bu alətlər barmaq zərb alətləri üçün əvvəlcədən təyin edilmiş səsləri yükləmək üçün faydalıdır, lakin daha böyük məqsədlər üçün hazırlanmışdır. Bu vasitələr yeni başlayanlar üçün qurmaq çətin ola bilər.

MIDI veb brauzerdə

Bu layihə və sadəliyi ilə daha uyğun bir şey etmək üçün tamamilə MIDI nəzarətçilərinə yönəlmiş bir Web aləti qurdum.

Punchy: MIDI nəzarətçiləri üçün WebMIDI və WebAudio tətbiqi.

MIDI mesajlarını WebMIDI JavaScript API -ni dəstəkləyən istənilən brauzerdə oxuya bilər. Sonra səsləri sintezatorda (WebAudio API istifadə edərək) və ya nümunə götürücüdə səsləndirir, istənilən səs paketindən xüsusi səslər yükləyir.

Ableton Live qurun

MIDI Controller -in Ableton Live ilə işləməsini təmin etmək üçün rəsmi sənədlərindən bu sadə addımları izləyin.

Tercihlər → Link MIDI -ə gedin və "Giriş" in "Track" və "Remote" ON və çıxışda "Remote" ON olduğu kimi təlimatda qeyd olunduğundan əmin olun:

Tövsiyə: