Mündəricat:
- Addım 1: Materiallar
- Addım 2: Dizayn
- Addım 3: Tikinti və Kablolama
- Addım 4: Proqramlaşdırma
- Addım 5: Quraşdırma
Video: Arduino Uno Midi Fighter: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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
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
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
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
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ə:
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Daha Güclü Arduino-UNO, Massduino-UNO: 9 addım
Daha Güclü Arduino-UNO, Massduino-UNO: Massduino nədir? Massduino, Arduino platformasının periferik-zəngin, rahat və sürətli inkişafı, aşağı qiymətli və istehsal üçün asan genişmiqyaslı istehsal üstünlüklərini özündə birləşdirən yeni bir məhsul xəttidir. Demək olar ki, bütün Arduino kodları
MIDI Addım Arayüzü (versiya En Español): 12 addım
MIDI Addım İnterfeysi (versiya): İngilis dilində ən çox istifadə edilən təlimatlardan biri də "Simon Says" ın MIDI ilə əlaqəli bütün məlumatların qarşılıqlı əlaqəsini təmin etməkdir. Əmlak modları operativ əməliyyatlarda! Öncədən
Arduino əsaslı MIDI Fighter (toxunma həssas): 7 addım (şəkillərlə)
Arduino əsaslı MIDI Fighter (Touch Sensitive): MIDI Musiqili Alətlərin Rəqəmsal İnterfeysi deməkdir. Burada, toxunuşa həssas bir MIDI döyüşçüsü hazırlayırıq. 16 yastığı var. bunlar artırıla və ya azalda bilər. Burada məhdud arduino pinləri olduğu üçün 16 istifadə etdim və analoq giriş pinlərindən də istifadə etdim
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