Mündəricat:

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

Video: Arduino Uno Midi Fighter: 5 addım

Video: Arduino Uno Midi Fighter: 5 addım
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Noyabr
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Bu təlimat, Cənubi Florida Universitetindəki Makecourse layihəsi tələbinin yerinə yetirilməsi üçün yaradılmışdır (www.makecourse.com)

DJ Techtools tərəfindən məşhur MidiFighter -ə əsaslanan bu evdə hazırlanan Arduino ilə işləyən Musiqili Alət Rəqəmsal İnterfeysi (MIDI) hər hansı bir Digital Audio İş İstasyonu (DAW) proqramında MIDI cihazı olaraq istifadə edilə bilər. Bir MIDI nəzarətçisi bir kompüterdən MIDI mesajları göndərə və qəbul edə bilər və hansı proqramın istifadə edildiyinə birbaşa nəzarət etmək üçün istifadə edilə bilər. Əlavə olaraq, bir MIDI nəzarətçisindəki idarəetmə elementləri tamamilə fərdiləşdirilə bilər, yəni hər bir fərdi düymə, kaydırıcı və düymə DAW -də hər hansı bir funksiyaya uyğunlaşdırıla bilər. Məsələn, bir düyməyə basmaqla müəyyən bir qeyd çalına bilər və ya səs layihənizin tempini dəyişmək üçün proqramlaşdırıla bilər.

github.com/jdtar/Arduino-Midi- Controller

Addım 1: Materiallar

Aşağıda bu layihədə istifadə olunan materialların və alətlərin siyahısı verilmişdir.

Arduino Uno

Çörək lövhəsi

4051/4067 Çoxlayıcı

Jumper telləri

Əlavə tel

2x 10k ohm xətti sürüşmə potansiyometrləri

16x Sanwa 24mm düymələri

İstilik azaldır

Lehimleme dəmir

Ülgüc bıçağı

4.7 kΩ müqavimət

Akril təbəqə (qapaq üçün)

Düymələr və Arduino üçün korpus

3-D çap

Lazer kəsici

Addım 2: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn

Layihəyə başlamazdan əvvəl MIDI nəzarətçim üçün mənzil verilmişdi, buna görə hər şeyin harada yerləşdiriləcəyini təsəvvür etmək üçün qapaq üçün eskiz hazırladım. Xüsusiyyət olaraq ən az 16 düymə və bir neçə potensiometr istədiyimi bilirdim, buna görə də komponentləri mümkün qədər bərabər şəkildə boşaltmağa çalışdım.

Qapağın düzülüşünü hazırladıqdan sonra faylı 1: 1 PDF formatında ixrac etdim və bir təbəqə akril kəsmək üçün lazer kəsiciyə göndərdim. Vida delikləri üçün, deşiklərin markerlə olmasını istədiyim yeri qeyd etdim və akrili isti bir filamentlə əridim.

1: 1 formatında çap edilə bilən və lazer kəsici olmadıqda elektrik alətləri ilə kəsilə bilən 1: 1 PDF əlavə olunur.

Addım 3: Tikinti və Kablolama

Tikinti və naqillər
Tikinti və naqillər
Tikinti və naqillər
Tikinti və naqillər
Tikinti və naqillər
Tikinti və naqillər

Akrili kəsdikdən sonra bildim ki, akril bütün komponentləri kifayət qədər dəstəkləmək üçün çox incədir. Daha sonra başqa bir təbəqə kəsdim və mükəmməl bir şəkildə işləməsi üçün onları bir -birinə yapışdırdım.

Komponentlərin bağlanması bir az sınaq və səhv aldı, lakin Fritzing eskizinin əlavə edilməsi ilə nəticələndi. Əvvəlcə torpaq tellərini və 4.7kΩ rezistoru bağladım, lehimlə və istilik düymələrdəki əlaqələri kiçildim. İki sürüşmə potensiometrinin quraşdırılması üçün akrilikdəki vintlər üçün ərimə delikləri tələb olunur. İki potansiyometr vidalandıqdan sonra, A0 və A1 analog pinlərinə qədər tel bağlandı. Kablolama tamamlandıqdan sonra, faderlərim üçün heç bir düymə qapağının olmadığını xatırladım, onları almaq əvəzinə, 3-D printerdən istifadə edərək bəzi düymələri Autodesk Fusion 360-da eskiz edərək STL faylına ixrac edərək çap etdim. De

Arduino Uno yalnız 12 ədəd mövcud rəqəmsal giriş pininə malikdir, lakin 16 düymənin bağlanması lazım idi. Bunu kompensasiya etmək üçün, 4 rəqəmsal giriş pinindən istifadə edən və birdən çox siqnalın paylaşılan xətdən istifadə etməsinə imkan verən 74HC4051 Multiplexer -i bağladım, nəticədə istifadə üçün 16 rəqəmsal sancaq olmaqla 8 ədəd mövcud rəqəmsal giriş sancağı var.

Düymələri düzgün pinlərə bağlamaq sadəcə 4x4 matris yaratmaq və bunu kodda istifadə etmək məsələsi idi. Çətin tərəfi, satın alınan xüsusi multipleksorun, məlumat cədvəlinin kömək etdiyi xüsusi bir pin planına sahib olması və düymələri bağlayarkən bir qədər bənzər görünən xüsusi bir qeyd planına sahib olması idi:

QEYD MATRIX

[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]

Addım 4: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

Montaj tamamlandıqdan sonra Arduinonun proqramlaşdırılması geridə qalır. Əlavə edilmiş skript elə bir şəkildə yazılmışdır ki, onu asanlıqla fərdiləşdirmək olar.

Skriptin əvvəlinə MIDI.h kitabxanası və Notes and Volts bloqundan götürülmüş nəzarətçi kitabxanası daxildir ki, hər ikisi də kod üçün zip faylına daxil edilmişdir. Nəzarətçi kitabxanasından istifadə edərək, qeyd nömrəsi, idarəetmə dəyərləri, qeyd sürəti, MIDI kanal nömrəsi və s. Daxil olan məlumat dəyərləri olan düymələr, potensiometrlər və çoxlu düymələr üçün obyektlər yaradıla bilər. MIDI.h kitabxanası MIDI G/Ç ünsiyyətini təmin edir. Arduino serial portları, məlumatları nəzarətçi obyektlərindən alır, onları MIDI mesajlarına çevirir və mesajları hansı midi interfeysinə qoşulduğuna göndərir.

Skriptin boş quraşdırma hissəsi bütün kanalları söndürüldükdə işə salır və eyni zamanda MIDI siqnallarının mübadilə edildiyindən daha sürətli olan 115200 baudda serial bağlantısına başlayır.

Əsas döngə mahiyyətcə düymələr və çoxlu düymələr qruplarını alır və düymənin basıldığını və ya buraxıldığını yoxlayan və müvafiq məlumat baytlarını midi interfeysinə göndərən for döngəsini idarə edir. Potansiyometr döngəsi potansiyometrin vəziyyətini yoxlayır və müvafiq gərginlik dəyişikliklərini midi interfeysinə geri göndərir.

Addım 5: Quraşdırma

Image
Image
Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq

Ssenari Arduino -ya yükləndikdən sonra, növbəti addım qoşub oynatmaqdır. İstifadədən əvvəl bir neçə addım var.

OSX -də Apple, Mac -da Audio Midi Setup tətbiqi ilə əldə edilə bilən virtual midi cihazları yaratmaq xüsusiyyətini özündə birləşdirdi. Yeni cihaz yaradıldıqdan sonra, Hairless MIDI, Arduino ilə yeni virtual midi cihazı arasında ardıcıl əlaqə yaratmaq üçün istifadə edilə bilər. Tüksüz MIDI vasitəsilə Arduino -dan serial bağlantısı, skriptin boş quraşdırma hissəsində müəyyən edilmiş ötürmə sürətində işləyir və Tüksüz MIDI seçim parametrlərində ekvivalent olaraq təyin edilməlidir.

Test məqsədləri üçün Midi Monitor-dan istifadə edərək doğru məlumatların serial MIDI bağlantısı ilə göndərildiyini yoxladıq. Bütün düymələrin düzgün kanallar vasitəsi ilə doğru məlumatları göndərdiyini təyin etdikdən sonra, MIDI Giriş olaraq Ableton Live 9 -a yönləndirmək üçün MIDI siqnalını qurdum. Abletonda dilimlənmiş səs nümunələrini hər düyməyə ayıra və hər bir nümunəni çalmağı bacardım.

Tövsiyə: