Mündəricat:
- Bu təlimat, ilk olaraq 28 iyun 2020 -ci ildə blogumda yayımlandı
- Addım 1: Daxili LED-in yanıb-sönməsi
- Addım 2: Manuel Girişdə LED -in yanıb -sönməsi
- Addım 3: MIDIUSB Kitabxanasının quraşdırılması
- Addım 4: MIDI Mesajı Göndərin
- Addım 5: Hər Düymədən Bir MIDI Mesajı Göndərin
- Addım 6: Kanalların və ya Bankların Qurulması (isteğe bağlı)
- Addım 7: Dava
- Addım 8: Məclis
- Addım 9: MIDI Controller istifadə edin
Video: Arduino MIDI Nəzarətçisi qurmaq: 9 addım (şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
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:
- IDE -ni açın və "Eskiz" menyusuna, sonra "Kitabxana daxil et" ə, sonra "Kitabxanaları İdarə et" ə basın.
- MIDIUSB axtarın və Quraşdır düyməsini basın.
- Bitirdikdən sonra MIDIUSB kitabxanasının yanında Quraşdırılmış etiket görünməlidir.
- 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:
- Arduino lövhəsindəki yuvarlaqlaşdırılmış sıfırlama düyməsini basıb saxlayın.
- Arduino IDE -də Yüklə vurun.
- Sıfırlama düyməsini buraxın.
- 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
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ı)
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
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
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
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ə:
Əlaqəsiz Midi Nəzarətçisi: 6 Addım (Şəkillərlə birlikdə)
Əlaqəsiz Midi Nəzarətçisi: Bu gün təmasda olmayan şeylər etmək tendensiya halına gəldi. Arduino Pro micro və daxili müqayisə cihazı olan bəzi IR yaxınlıq detektorlar lövhəsindən istifadə edərək sadə bir midi nəzarətçi yaratdım, bu olduqca asan və ucuz olmalıdır. Bu layihə
Arduino əsaslı DIY Oyun Nəzarətçisi - Arduino PS2 Oyun Nəzarətçisi - DIY Arduino Gamepad ilə Tekken oynamaq: 7 addım
Arduino əsaslı DIY Oyun Nəzarətçisi | Arduino PS2 Oyun Nəzarətçisi | DIY Arduino Gamepad ilə Tekken Oynamaq: Salam uşaqlar, oyun oynamaq həmişə əyləncəlidir, ancaq öz DIY xüsusi oyun nəzarətçinizlə oynamaq daha əyləncəlidir, buna görə də bu təlimatlarda arduino pro micro istifadə edərək bir oyun nəzarətçisi edəcəyik
AVR mikro nəzarətçisi. Pulse Genişliyi Modulyasiyası. DC Motor və LED İşıq Gücünün Nəzarətçisi .: 6 Addım
AVR mikro nəzarətçisi. Pulse Genişliyi Modulyasiyası. DC Motor və LED İşıq Gücünün Nəzarətçisi .: Hamıya salam! Pulse Width Modulation (PWM) telekommunikasiya və güc nəzarətində çox yayılmış bir texnikadır. bir mühərrik, bir LED, dinamiklər və s., bir elektrik cihazına verilən enerjini idarə etmək üçün ümumiyyətlə istifadə olunur. Əsasən bir modudur
YABC - Başqa bir Blynk Nəzarətçisi - IoT Bulud İstilik və Rütubət Nəzarətçisi, ESP8266: 4 Addım
YABC - Başqa bir Blynk Nəzarətçisi - IoT Bulud Temperaturu və Rütubət Nəzarətçisi, ESP8266: Salam Yaradıcılar, bu yaxınlarda evdə göbələk, İstiridye göbələyi yetişdirməyə başladım, ancaq ev dəmləməyim, arvadım üçün Fermentator Temperaturuna nəzarət etmək üçün evdə bu nəzarətçilərin üçdə birini var. indi də bu Kombucha işini edir və İstilik üçün Termostat olaraq
Spielatron və ya digər MIDI Synth üçün MIDI 5V LED Şerit İşıq Nəzarətçisi: 7 Addım (Şəkillərlə)
MIDI 5V Spielatron və ya digər MIDI Synth üçün LED Şerit İşıq Nəzarətçisi: Bu nəzarətçi, not başına 50mS üçün üç rəngli LED şerit işıqlarını yandırır. G5-D#6 üçün mavi, E6-B6 üçün qırmızı, C7-G7 üçün yaşıl. Nəzarətçi bir ALSA MIDI cihazıdır, buna görə MIDI proqramı bir MIDI synth cihazı ilə eyni vaxtda LED -lərə çıxara bilər