İçindekiler:

Arduino Uno Midi Fighter: 5 Adım
Arduino Uno Midi Fighter: 5 Adım

Video: Arduino Uno Midi Fighter: 5 Adım

Video: Arduino Uno Midi Fighter: 5 Adım
Video: Arduino Leanardo Project || USB Keyboard || HID Device || #Shorts || #ShortVideo | #TrendingVideo 2024, Temmuz
Anonim
Arduino Uno Midi Dövüşçüsü
Arduino Uno Midi Dövüşçüsü

Bu talimat, Güney Florida Üniversitesi'ndeki Makecourse proje gereksinimini yerine getirmek için oluşturulmuştur (www.makecourse.com)

DJ Techtools'un popüler MidiFighter'ına dayanan bu ev yapımı Arduino destekli Müzik Enstrümanı Dijital Arabirimi (MIDI) denetleyicisi, herhangi bir Dijital Ses İş İstasyonu (DAW) yazılımında bir MIDI cihazı olarak kullanılabilir. Bir MIDI denetleyicisi, bir bilgisayardan MIDI mesajları gönderip alabilir ve hangi yazılımın kullanıldığını doğrudan kontrol etmek için kullanılabilir. Ek olarak, bir MIDI denetleyicisindeki kontroller tamamen özelleştirilebilir - yani her bir düğme, kaydırıcı ve düğme bir DAW'daki herhangi bir işleve eşlenebilir. Örneğin, bir düğmeye basmak belirli bir notayı çalabilir veya ses projenizin temposunu değiştirmek için programlanabilir.

github.com/jdtar/Arduino-Midi-Controller

Adım 1: Malzemeler

Aşağıda bu projede kullanılan malzeme ve araçların bir listesi bulunmaktadır.

Arduino Uno

ekmek tahtası

4051/4067 Çoklayıcı

Atlama telleri

Ekstra Tel

2x 10k ohm lineer sürgülü potansiyometre

16x Sanwa 24 mm düğmeler

Isıyla Daralan

Havya

Jilet

4.7 kΩ direnç

Akrilik Levha (kapak için)

Düğmeler ve Arduino için muhafaza

3 boyutlu yazıcı

Lazer Kesici

2. Adım: Tasarım

Tasarım
Tasarım
Tasarım
Tasarım

Projeye başlamadan önce MIDI denetleyicim için muhafaza zaten bana sağlandı, bu yüzden her şeyin nereye yerleştirileceğini görselleştirmek için kapak için bir taslak oluşturdum. Bir özellik olarak en az 16 düğme ve birkaç potansiyometre istediğimi biliyordum, bu yüzden bileşenleri olabildiğince eşit aralıklarla yerleştirmeye çalıştım.

Kapağın düzenini oluşturduktan sonra dosyayı 1:1 PDF olarak dışa aktardım ve bir akrilik levha kesmesi için lazer kesiciye gönderdim. Vida delikleri için ise işaretleyici ile deliklerin olmasını istediğim yerleri işaretledim ve akriliği sıcak filament ile erittim.

1:1 olarak yazdırılabilen ve lazer kesici yoksa elektrikli aletlerle kesilebilen 1:1 PDF ektedir.

Adım 3: İnşaat ve Kablolama

İnşaat ve Kablolama
İnşaat ve Kablolama
İnşaat ve Kablolama
İnşaat ve Kablolama
İnşaat ve Kablolama
İnşaat ve Kablolama

Akriliki kestikten sonra, akriliğin tüm bileşenleri yeterince destekleyemeyecek kadar ince olduğunu öğrendim. Daha sonra başka bir sayfa kestim ve onları birbirine yapıştırdım, bu da mükemmel bir şekilde çalıştı.

Bileşenleri kablolamak biraz deneme yanılma gerektirdi ancak Fritzing taslağının eklenmesiyle sonuçlandı. İlk önce topraklama kablolarını ve 4.7kΩ direncini bağladım, lehimledim ve düğmelerdeki bağlantıları ısıyla küçülttüm. İki sürgülü potansiyometrenin montajı, akrilikteki vidalar için eritme delikleri gerektiriyordu. İki potansiyometre vidalandıktan sonra A0 ve A1 analog pinlerine bağlandı. Kablolama tamamlandıktan sonra, fader'larım için düğme kapakları olmadığını hatırladım, bu yüzden onları satın almak yerine Autodesk Fusion 360'ta çizerek ve bir STL dosyasına aktararak 3 boyutlu bir yazıcı kullanarak bazı düğme kapakları yazdırdım. De

Arduino Uno'da yalnızca 12 adet dijital giriş pini bulunur, ancak 16 düğmenin bağlanması gerekiyordu. Bunu telafi etmek için, 4 dijital giriş pini kullanan ve birden fazla sinyalin paylaşılan bir hat kullanmasını sağlayan bir breadboard üzerine bir 74HC4051 Çoklayıcı bağladım ve toplamda 16 dijital pin için kullanılabilir 8 dijital giriş pini sağladım.

Düğmeleri doğru pinlere bağlamak, sadece bir 4x4 matrisi oluşturmak ve bunu kodda kullanmak meselesiydi. Ancak zor olan kısım, satın alınan belirli çoklayıcının veri sayfasının yardımcı olduğu belirli bir pin düzenine sahip olmasıydı ve ayrıca düğmeleri bağlarken biraz şöyle görünen belirli bir not düzeni aklımdaydı:

NOT MATRİSİ

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRİSİ (M = MUX GİRİŞİ)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Adım 4: Programlama

Programlama
Programlama

Montaj tamamlandıktan sonra, geriye kalan tek şey Arduino'yu programlamak. Ekli komut dosyası, kolayca özelleştirilebilir şekilde yazılmıştır.

Komut dosyasının başında, her ikisi de kodun zip dosyasında bulunan Notes ve Volts blogundan ödünç alınan MIDI.h kitaplığı ve bir denetleyici kitaplığı bulunur. Denetleyici kitaplığını kullanarak, nota numarası, kontrol değerleri, nota hızı, MIDI kanal numarası vb. içeren veri değerlerini içeren düğmeler, potansiyometreler ve çoklanmış düğmeler için nesneler oluşturulabilir. Arduino seri portları, denetleyici nesnelerinden verileri alır, bunları MIDI mesajlarına dönüştürür ve mesajları, bağlı olan midi arayüzüne gönderir.

Komut dosyasının geçersiz kurulum kısmı, tüm kanalları kapalı olarak başlatır ve ayrıca 115200 baud'da bir seri bağlantı başlatır; bu, MIDI sinyallerinin değiş tokuş edilmesinden daha hızlı bir hızdır.

Ana döngü esasen düğme ve çoğullanmış düğme dizilerini alır ve düğmenin basılıp basılmadığını kontrol eden ve ilgili veri baytlarını midi arayüzüne gönderen bir for döngüsü çalıştırır. Potansiyometre döngüsü, potansiyometrenin konumunu kontrol eder ve karşılık gelen voltaj değişikliklerini midi arayüzüne geri gönderir.

Adım 5: Kurulum

Image
Image
Kurmak
Kurmak
Kurmak
Kurmak
Kurmak
Kurmak

Betik Arduino'ya yüklendikten sonra, bir sonraki adım tak ve çalıştır. Bununla birlikte, kullanılmadan önce birkaç adım vardır.

OSX'te Apple, mac'lerde Audio Midi Kurulum uygulaması aracılığıyla erişilebilen sanal midi aygıtları oluşturmak için bir özellik ekledi. Yeni cihaz oluşturulduktan sonra, Arduino ile yeni sanal midi cihazı arasında seri bağlantı oluşturmak için Hairless MIDI kullanılabilir. Arduino'dan Hairless MIDI aracılığıyla seri bağlantı, betiğin void kurulum bölümünde tanımlanan baud hızında çalışır ve Hairless MIDI tercih ayarlarında eşdeğer olarak ayarlanmalıdır.

Test amacıyla, seri MIDI bağlantısı üzerinden doğru verilerin gönderilip gönderilmediğini kontrol etmek için Midi Monitor'ü kullandım. Tüm düğmelerin doğru kanallar aracılığıyla doğru veriler üzerinden gönderildiğini belirledikten sonra, MIDI sinyalini Ableton Live 9'a MIDI Girişi olarak yönlendirmek için ayarladım. Ableton'da dilimlenmiş ses örneklerini her bir düğmeye eşleyebildim ve her örneği çalabildim.

Önerilen: