İçindekiler:
- Bu talimat ilk olarak 28 Haziran 2020'de blogumda yayınlandı
- Adım 1: Yerleşik LED'in Yanıp Sönmesi
- Adım 2: Manuel Girişte LED'i Yanıp Sönme
- Adım 3: MIDIUSB Kitaplığını Yükleme
- Adım 4: Bir MIDI Mesajı Gönderme
- Adım 5: Her Düğmeden Bir MIDI Mesajı Gönderme
- Adım 6: Kanalları veya Bankaları Ayarlama (isteğe bağlı)
- Adım 7: Vaka
- Adım 8: Montaj
- Adım 9: MIDI Denetleyicisini Kullanma
Video: Arduino MIDI Denetleyici Oluşturma: 9 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu talimat ilk olarak 28 Haziran 2020'de blogumda yayınlandı
Elektronik içeren şeyler yapmaktan zevk alıyorum ve her zaman Arduino kullanarak bir şeyler inşa etmek istemişimdir.
Bulduğum yeni başlayanlar için en yaygın yapılardan biri bir MIDI denetleyicisiydi. MIDI denetleyicisi, sesleri tetiklemek ve müzik yapmak için MIDI verilerini (Müzik Enstrümanı Dijital Arayüzü) bir cihaza gönderen herhangi bir donanımdır.
Yeni başlayanlar için bile birçok uygulamanın karmaşık olduğunu buldum. Yüzlerce satır okunamayan kod kullanmam gerektiğini bulmak çok sinir bozucuydu. Veya diğer örneklerin yanı sıra bazı durumlarda bir direnç lehimlemem gerekiyor.
Proje
Kendi Arduino MIDI Denetleyicimi yaparak amacım, gürültüyü en düşük seviyede tutarak keyifli bir proje yapmaktı. Herhangi bir yeni başlayanın takip edebileceği bir şey. Bunu başarmak için MIDI Fighter 3D'yi temel ilham kaynağı olarak kullandım ve gerekli olmayan her özelliği kaldırdım.
Projemin toplam maliyeti 30 doların altındaydı ve malzeme listesi gerçekten kısaydı (ortak bağlantılar):
- Arduino Leonardo (veya klonu): 10 ila 20 dolar arasında.
- 16 x Sanwa düğmesi 24 mm (veya klon): düğme başına 1 ila 2,50 ABD Doları arasında.
- Havya
- 22 AWG Elektrik Teli
Arduino Kurulu
Bu projeye başladığımda, bir sürü yeni Arduino modeli olduğunu gördüm (yüzlerce uyumlu kart dahil değil). Ve hepsi biraz farklı yetenekler sunuyor.
MIDI sinyallerini bir bilgisayara göndermem gerekiyordu ve bunu yapmanın en basit yolu USB üzerinden. ATmega32u4 mikrodenetleyicisine dayalı herhangi bir Arduino kartı, yerleşik USB iletişimine sahiptir.
Yerel USB desteğine sahip resmi Arduino kartları Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro'dur. Bu kartların entegre USB desteği vardır, bu da bir USB MIDI cihazı olarak işlev görebilecekleri anlamına gelir.
Arduino Leonardo'nun bir klonuyla gitmeye karar verdim. Bu proje için yeterli girişe sahiptir ve ayrıca kabloları takmayı/çıkarmayı kolaylaştıran başlıklar içerir.
İlk adım
Bu proje için kodu nasıl uyguladığımı adım adım anlatacak olsam da son halini indirebilirsiniz.
Tahtaya kod yüklemek için Arduino IDE kullanmanız gerekir. Ayrıca çok kullanışlı bir Web düzenleyicileri vardır, ancak kod derleyebileceğiniz günlük olarak sınırlı bir kotaları vardır.
Adım 1: Yerleşik LED'in Yanıp Sönmesi
Donanım dünyasındaki "Merhaba Dünya"nın bir LED'i nasıl yanıp söndüğü komik.
Arduino Leonardo'nun kodunuzu test etmek için yanıp sönebileceğiniz yerleşik bir LED'e sahip olduğunu keşfetmek benim için hoş bir sürpriz oldu. Bu şekilde, LED'li ve dirençli bir devre tahtası üzerinde harici bir devre kurmanıza gerek kalmaz.
Kod:
Adım 2: Manuel Girişte LED'i Yanıp Sönme
Bir sonraki mantıklı adım, bir sinyal gönderdiğimde aynı LED'i yanıp sönmekti. 2 Dupont telinin bir ucunun plastik kapağını çıkardım ve diğer ucunu panoya bağladım:
- Pin numarası 2: Dijital girişlerden biri (pozitif). Herhangi bir dijital pin olabilir.
- Pin GND: Herhangi bir topraklama pini (negatif).
Şimdi, tellerin açıkta kalan uçlarına her katıldığımda devreyi kapatıyorum ve böylece sonuç olarak kodu çalıştırabiliyorum
Leonardo'daki 20 dijital pinin her biri, INPUT_PULLUP kullanılarak etkinleştirilebilen bir dahili rezistöre (varsayılan olarak bağlantısı kesilmiştir) sahiptir. Bir pull-up girişinin, düğme durumunun tersine çevrildiği anlamına geldiğini unutmayın:
- YÜKSEK devre açıkken (düğmeye BASILI DEĞİLDİR).
- DÜŞÜK devre kapatıldığında (düğmeye basıldığında).
Kod:
Adım 3: MIDIUSB Kitaplığını Yükleme
Bu kütüphane, USB özellikli bir Arduino kartının USB üzerinden MIDI enstrümanı olarak hareket etmesine izin verir. Daha fazla bilgi için resmi belgelere bakın.
Arduino IDE'yi kullanarak, Kitaplık Yöneticisini kullanarak fazladan Arduino Kitaplıkları kurabilirsiniz:
- IDE'yi açın ve "Çizim" menüsüne, ardından "Kitaplığı Dahil Et"e ve ardından "Kütüphaneleri Yönet"e tıklayın.
- MIDIUSB'yi arayın ve Yükle'ye tıklayın.
- Tamamlandığında, MIDIUSB kitaplığının yanında bir Yüklendi etiketi görünmelidir.
- Kütüphane Yöneticisini kapatın.
Artık Leonardo, USB üzerinden MIDI mesajları gönderebilir! Ama önce, MIDI'nin nasıl çalıştığına dair biraz anlayışa ihtiyaç var.
MIDI Nasıl Çalışır?
"MIDI (Müzik Enstrümanı Dijital Arayüzü), elektronik müzik aletlerini, bilgisayarları ve ilgili ses cihazlarını müzik çalmak için birbirine bağlayan standart bir iletişim protokolüdür." - Vikipedi
Diğer talimatların yanı sıra çalınan notanın perdesi ve hızı verileriyle olay mesajlarını işler
Bu özel projede, 16 düğmeden gelen giriş, USB üzerinden farklı mesajlar gönderir. Bu mesajlar, GarageBand veya Ableton Live gibi herhangi bir uygun yazılım kullanılarak bir bilgisayarda sese dönüştürülebilir.
Bir MIDI mesajının anatomisi
Bir MIDI mesajı göndermek için 3. adımda kurduğum MIDIUSB Kütüphanesinden sendMIDI() yöntemini kullandım.
Bu yöntem 4 parametre alabilir:
- Olay türü: Note On (nota çal) için 0x09 veya note Off (nota çalmayı durdur) için 0x08 olabilir.
- Not Açık/Kapalı: MIDI kanalıyla birleştirilmiş olay tipi (1-16). Yalnızca kanal 1'i kullanıyorum, bu nedenle not Açık için 0x90 veya Not Kapalı için 0x80.
- Nota numarası: Her nota ilişkili bir sayısal perdeye (frekans ölçeği) sahiptir.
- Hız: 0'dan (hız yok) 127'ye (en hızlı).
Adım 4: Bir MIDI Mesajı Gönderme
MIDIUSB Kitaplığını ekledim ve yerleşik LED'i yanıp sönmek yerine bir not gönderdim.
Kod:
⚠ Önemli: Bu adımdan itibaren Arduino bir MIDI USB Denetleyicisine dönüşür ve USB üzerinden kod almayı durdurur.
Arduino'nun artık programlanamayacağı bir konumda takılıp kaldığınızda şu adımları izleyin:
- Arduino kartındaki yuvarlak sıfırlama düğmesini basılı tutun.
- Arduino IDE'de Yükle'ye tıklayın.
- Sıfırlama düğmesini bırakın.
- Güncellenen kod panoya yüklenecektir.
Adım 5: Her Düğmeden Bir MIDI Mesajı Gönderme
Son adım, her adımı bir düğmeye eşlemekti. 16 düğme için, aşağıdan yukarıya ve soldan sağa bir sırayla 36'dan 51'e perdeler olan C2'den E3b'ye bir ölçek tanımladım. Her nota hangi adımın karşılık geldiğini görmek için Arduino Tutorials'daki bu dosyayı inceleyin.
2'den 12'ye kadar dijital pinler ve A0'dan A4'e kadar analog pinler (dijital olarak kullanarak) kullandım.
Ve bu, son kodun nasıl göründüğü
Adım 6: Kanalları veya Bankaları Ayarlama (isteğe bağlı)
MIDI Fighter 3D'de olduğu gibi (resme bakın), kanal veya banka değiştirme özelliğine sahip daha fazla düğme eklemek isterseniz, Arduino Leonardo'nun kullanabileceğiniz dört pini daha vardır. Arduino Leonardo'nun 20 dijital giriş/çıkış pini vardır ve bunların sadece 16'sı nota çalmak için kullanılır.
Koddaki bir değişkeni güncellemek için bu ekstra düğmeleri kullanabilir ve değerini MidiUSB.sendMIDI yöntemine parametre olarak gönderebilirsiniz:
Gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Adım 7: Vaka
Bu projeyi basit tutmak için, hangi özelliklerin içerileceğini seçme konusunda son derece seçici davrandım.
- Yalnızca düğmeler: 4x4 ızgarada 16 Sanwa benzeri arcade düğmesi. Düğme yok, kaydırıcı yok, fader yok veya başka bir analog giriş yok.
- Tek gövdeli kasa: Muhafaza için veya Arduino kartını tutmak için vida, somun, cıvata veya yapıştırıcı kullanmayın.
- Günlük araçlar: Örneğin, arcade düğmeleri için belirli bir kablo kesme makinesi satın almak yerine kabloları lehimledim.
Tek Gövde Tasarımı
Karşılaştığım zorluklardan biri, montaj gerektirmeyen ve tek seferde 3B yazdırılabilen yeterince basit bir kasa tasarlamaktı.
Vida veya yapıştırıcı kullanmaktan kaçınmak için elektronik aksamlara en küçük erişimi sağlayan bir muhafaza tasarlamam gerekiyordu. Kasa için en büyük ilham kaynağım, alt kısmında daire şeklinde bir delik bulunan Mac Mini oldu. Ayrıca bunun için vidalanabilir bir kapak tasarlamak istedim, ancak elektroniği açığa çıkarmak için açılmasına izin verdim.
3B yazdırılabilir kasayı indirin (322 KB). Önerilen ayarlar: PLA, 0.15mm katmanlar, %20 dolgu, en azından yuvarlatılmış alt delik, Arduino tutucular ve mikro USB için uygulayıcıları destekler.
Arduino'yu vidasız tutmak
Leonardo'nun kartı uygun herhangi bir kasaya vidalamak için 4 deliği var, ancak benim fikrim, kartı kasaya eklemeyi ve kasadan çıkarmayı kolaylaştırmaktı.
Arduino için Thingiverse'de bir klips tutucu bulmak kolaydı ve bu tutucuyu tek gövde tasarımına entegre etmek 5 yinelememi aldı. En zor kısım, düğme deliklerinden kaçınmak için bacaklarını yapmak ve mikro USB'yi kasaya orta hizalı hale getirmekti.
Adım 8: Montaj
Tüm düğmeleri yerlerine yerleştirdikten sonra aralarındaki düğmelerin tüm negatif ayaklarını birleştiren kısa siyah teller lehimledim.
Ardından, doğrudan panoya bağlanmak için her bir pozitif bacaktan uzun kırmızı kablolar lehimledim.
Kabloları Arduino'ya bağlamak için bazı Dupont uçlarını kesip lehimledim ve üzerlerini ısıyla daralan makaronla kapladım.
MIDI Fighter'dakiyle aynı sırayı izleyerek kabloları panoya bağladım. Aşağıdan yukarıya ve soldan sağa
Adım 9: MIDI Denetleyicisini Kullanma
MIDI almak ve biraz müzik yapmak için herhangi bir müzik yazılımı (veya uygun donanım) kullanılabilir. En çok önerilenler Garage Band, Ableton Live ve bir telefona yüklenecek bir sürü uygulama olduğunu biliyorum.
Tüm bu araçlar, parmakla davul çalmak için önceden tanımlanmış sesleri yüklemek için kullanışlıdır, ancak daha büyük amaçlar için yapılmıştır. Bu araçların kurulumu yeni başlayanlar için zor olabilir.
Web tarayıcısında MIDI
Bu proje ve basitliği ile daha uyumlu bir şey yapmak için, tamamen MIDI denetleyicilerine odaklanan bir Web aracı oluşturdum.
Punchy: MIDI denetleyicileri için WebMIDI ve WebAudio uygulaması.
MIDI mesajlarını WebMIDI JavaScript API'sini destekleyen herhangi bir tarayıcıda okuyabilir. Ardından sesleri bir sentezleyicide (WebAudio API kullanarak) veya herhangi bir ses paketinden özel sesler yükleyerek bir örnekleyicide çalar.
Ableton Live'ı kurun
MIDI Denetleyicinin Ableton Live ile çalışmasını sağlamak için resmi belgelerinden bu basit adımları izleyin.
Tercihler → MIDI Bağlantısı'na gidin ve kılavuzda belirtildiği gibi "Giriş"in "İz" ve "Uzaktan" AÇIK olduğundan ve çıkışın "Uzaktan" AÇIK olduğundan emin olun:
Önerilen:
Arduino MIDI Denetleyici Oluşturun: 5 Adım (Resimlerle)
Bir Arduino MIDI Denetleyicisi Oluşturun: Herkese merhaba! Bu talimatta size kendi Arduino destekli MIDI denetleyicinizi nasıl oluşturacağınızı göstereceğim. MIDI, Müzik Aleti Dijital Arayüzü anlamına gelir ve bilgisayarların, müzik aletlerinin ve diğer donanımların birbirleriyle iletişim kurmasını sağlayan bir protokoldür
MesoTune - Manyetik MIDI Denetleyici: 16 Adım (Resimlerle)
MesoTune - Magnetic MIDI Controller: Not: Bu projeyi Alex Bluhme'ye vermek istiyorum. O halde lütfen buradan bir göz atın https://vimeo.com/171612791.Müzik bestecisi, melodist, senfonist veya kendi ritimlerini yaratmayı seven, ancak tüm bu pu'lardan sıkılan bir ezgi ustası mısınız?
Makey-Makey ve Su Kullanarak Alternatif Bir MIDI Denetleyici Oluşturma: 6 Adım
Makey-Makey ve Water Kullanarak Alternatif Bir MIDI Kontrol Cihazı Oluşturma: Özel ve yaratıcı girdiler oluşturmak için Makey-Makey'i kullanmak inanılmaz derecede kolaydır! Donanımı kullanan birçok kişi, sesleri veya notaları tetiklemek için Makey-Makey üzerindeki girişleri kullanarak kendi enstrümanını yaratırken, biz daha fazlasını yapabileceğimize karar verdik.
Aalto için Arduino MIDI Denetleyici: 7 Adım
Aalto için Arduino MIDI Kontrol Cihazı: Amatör bir müzisyen olarak, genellikle Analog Synth'lerden VST'lere geçerim. ruh hali, gerçekten harika bir enstrümanın içindeyim: Madronalab'ın Aalto VST'si Bu inanılmaz VST çok esnektir, çok iyi sesler üretir ve oldukça kolay
Arduino MIDI Denetleyici Kendin Yap: 8 Adım
Arduino MIDI Denetleyici Kendin Yap: Hey millet! Umarım önceki "Arduino CNC Plotter (mini çizim makinesi)" talimatımı beğenmişsinizdir; ve yeni bir tane için hazırsınız, her zamanki gibi bu öğreticiyi, bu tür süper şaşırtıcı düşükleri yaparken size adım adım rehberlik etmesi için yaptım