Cuprins:

Arduino Uno Midi Fighter: 5 pași
Arduino Uno Midi Fighter: 5 pași

Video: Arduino Uno Midi Fighter: 5 pași

Video: Arduino Uno Midi Fighter: 5 pași
Video: The World of Wayne Thursday LIVE Stream 2024, Iulie
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Acest instructable a fost creat pentru a îndeplini cerința de proiect a Makecourse la Universitatea din Florida de Sud (www.makecourse.com)

Bazat pe popularul MidiFighter de DJ Techtools, acest controler de interfață digitală (MIDI) cu instrumente muzicale alimentat de Arduino poate fi utilizat ca dispozitiv MIDI pe orice software pentru stația de lucru digitală audio (DAW). Un controler MIDI poate trimite și primi mesaje MIDI de pe un computer și poate fi utilizat pentru a controla direct orice software este utilizat. În plus, comenzile unui controler MIDI sunt complet personalizabile - ceea ce înseamnă că fiecare buton individual, glisor și buton poate fi mapat la orice funcție dintr-un DAW. De exemplu, apăsarea unui buton poate reda o anumită notă sau poate fi programată pentru a comuta tempo-ul proiectului dvs. audio.

github.com/jdtar/Arduino-Midi-Controller

Pasul 1: Materiale

Mai jos este o listă de materiale și instrumente utilizate în acest proiect.

Arduino Uno

Pană de pâine

4051/4067 Multiplexor

Sârme de jumper

Sârmă suplimentară

2x potențiometre liniare de 10k ohm

16 butoane Sanwa 24mm

Reducere de căldură

Ciocan de lipit

Lamă de ras

Rezistor de 4,7 kΩ

Foaie acrilică (pentru capac)

Carcasă pentru butoane și Arduino

imprimantă 3d

Cutter cu laser

Pasul 2: Proiectare

Proiecta
Proiecta
Proiecta
Proiecta

Mi s-a oferit deja carcasa controlerului MIDI înainte de a începe proiectul, așa că am făcut o schiță pentru capac, pentru a vizualiza locul în care trebuia să fie așezat totul. Știam că doresc cel puțin 16 butoane și câteva potențiometre ca o caracteristică, așa că am încercat să spațiuz componentele cât mai uniform posibil.

După ce am elaborat aspectul pentru capac, am exportat fișierul ca fișier PDF 1: 1 și l-am trimis la un dispozitiv de tăiat cu laser pentru a tăia o foaie de acril. Pentru găurile cu șuruburi, am marcat unde doresc să fie găurile cu marker și am topit acrilul cu un filament fierbinte.

Este atașat PDF-ul 1: 1 care poate fi tipărit ca 1: 1 și tăiat cu unelte electrice dacă nu este disponibil un dispozitiv de tăiat cu laser.

Pasul 3: Construcție și cablare

Construcții și cabluri
Construcții și cabluri
Construcții și cabluri
Construcții și cabluri
Construcții și cabluri
Construcții și cabluri

După tăierea tăierii acrilului, am aflat că acrilul era prea subțire pentru a susține suficient toate componentele. Am decupat apoi o altă foaie și le-am lipit, ceea ce s-a întâmplat să funcționeze perfect.

Cablarea componentelor a avut unele încercări și erori, dar a dus la schița Fritzing atașată. Am conectat mai întâi firele de la sol și rezistența de 4.7kΩ, am lipit și am micșorat prin căldură conexiunile de pe butoane. Montarea celor două potențiometre glisante a necesitat găuri de topire pentru șuruburile din acril. După ce cele două potențiometre au fost înșurubate, acestea au fost conectate la pinii analogici A0 și A1. După ce cablarea a fost completă, mi-am amintit că nu erau capace de buton pentru faderele mele, deci, mai degrabă decât să le cumpăr, am tipărit niște capace de buton folosind o imprimantă 3D, schițând-o în Autodesk Fusion 360 și exportând într-un fișier STL. De

Arduino Uno are doar 12 pini de intrare digitale disponibili, dar 16 butoane trebuiau conectate. Pentru a compensa acest lucru, am conectat un multiplexor 74HC4051 pe o placă de calcul care utilizează 4 pini de intrare digitale și permite semnalelor multiple să folosească o linie partajată, rezultând 8 pini de intrare digitale disponibili pentru un total de 16 pini digitali disponibili pentru utilizare.

Cablarea butoanelor la pinii corecți a fost pur și simplu o chestiune de a crea o matrice 4x4 și de a folosi aceasta în cod. Partea dificilă a fost, însă, că multiplexorul specific achiziționat avea un aspect specific al pinului pe care foaia tehnică l-a ajutat și, de asemenea, am avut în vedere un aspect specific al notelor atunci când conectam butoanele, care au ajuns să arate cam așa:

NOTĂ MATRICE

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

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

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

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

PIN MATRIX (M = INTRARE MUX)

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

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

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

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

Pasul 4: Programare

Programare
Programare

Odată ce asamblarea este completă, programarea Arduino este tot ce mai rămâne. Scriptul atașat este scris într-un mod astfel încât să fie ușor de personalizat.

Începutul scriptului include biblioteca MIDI.h și o bibliotecă controler împrumutată de pe blogul Notes și Volts, ambele fiind incluse în fișierul zip pentru cod. Utilizând biblioteca controlerului, pot fi create obiecte pentru butoane, potențiometre și butoane multiplexate care conțin valori de date care includ numărul notei, valorile de control, viteza notei, numărul canalului MIDI etc. Biblioteca MIDI.h permite comunicații MIDI I / O pe Porturile seriale Arduino care, la rândul lor, preiau datele de pe obiectele controlerului, le convertesc în mesaje MIDI și le trimit către orice interfață midi conectată.

Porțiunea de configurare nulă a scriptului inițializează toate canalele ca fiind dezactivate și inițiază, de asemenea, o conexiune serială la 115200 baud, o rată mai rapidă decât semnalele MIDI sunt schimbate.

Bucla principală ia în esență matricile de butoane și butoane multiplexate și rulează o buclă for care verifică dacă butonul a fost apăsat sau eliberat și trimite octetii de date corespunzători către interfața midi. Bucla potențiometrului verifică poziția potențiometrului și trimite modificările de tensiune corespunzătoare înapoi la interfața midi.

Pasul 5: Configurare

Image
Image
Înființat
Înființat
Înființat
Înființat
Înființat
Înființat

Odată ce scriptul a fost încărcat pe Arduino, următorul pas este conectarea și redarea. Cu toate acestea, există câțiva pași înainte de a putea fi utilizați.

Pe OSX, Apple a încorporat o caracteristică pentru a crea dispozitive midi virtuale care pot fi accesate prin intermediul aplicației Audio Midi Setup de pe Mac. Odată ce noul dispozitiv a fost creat, Hairless MIDI poate fi utilizat pentru a crea o conexiune serială între Arduino și noul dispozitiv midi virtual. Conexiunea serială de la Arduino prin Hairless MIDI funcționează la viteza de transmisie definită în porțiunea de configurare nulă a scriptului și trebuie setată echivalent în setările de preferință Hairless MIDI.

În scopuri de testare, am folosit Midi Monitor pentru a verifica dacă datele corecte au fost trimise, considerând conexiunea serial-MIDI. Odată ce am stabilit că toate butoanele trimise prin datele corecte prin canalele corecte, am configurat semnalul MIDI pentru a ruta către Ableton Live 9 ca intrare MIDI. În Ableton am reușit să mapez mostre audio în felii pe fiecare buton și să redau fiecare mostră.

Recomandat: