Cuprins:

Arduino MIDI Foot Controller: 12 pași
Arduino MIDI Foot Controller: 12 pași

Video: Arduino MIDI Foot Controller: 12 pași

Video: Arduino MIDI Foot Controller: 12 pași
Video: USB MIDI foot controller для DAW и VST. Туториал по настройке BJ Devices 2024, Noiembrie
Anonim
Arduino MIDI Foot Controller
Arduino MIDI Foot Controller

Recent am proiectat acest controler MIDI pentru a opera expresia looper care este încorporată în pedala de întârziere Boss DD500. Îmi controlez întreaga mașină de chitară folosind o placă MIDI Behringer FCB, iar acest lucru îmi permite să schimb patch-uri pe pedala de întârziere în bucla de efecte, schimbând în același timp canalele amplificatorului.

DD500 are o funcție de looper foarte simplă încorporată, dar unul dintre dezavantajele acesteia este că atunci când looperul este activ, este controlat de comutatoarele de pe pedală. Acest lucru înseamnă că nu puteți schimba patch-urile de pe pedală în timp ce bucla este activă, deoarece este captată în esență funcțiile comutatoarelor. Întrucât folosesc MIDI, această limitare nu există, deoarece este pur și simplu o problemă fizică. Acest lucru a însemnat însă rezervarea a 5 footswitch-uri pe controlerul meu MIDI principal pentru looper, și așa că am decis să construiesc un controller separat pentru acestea.

Planul meu inițial pentru acest lucru a fost să iau o mică incintă Hammond și să pun 5 pedale și să mă învăț câteva coduri Arduino de bază. Pe măsură ce am început să aflu mai multe și codul meu funcționa, a sfârșit prin a mă motiva să încerc mai multe lucruri și apoi, practic, a transformat-o în zăpadă în ceva mai mare.

Pasul 1: Concepte

Concepte
Concepte
Concepte
Concepte

Una dintre primele idei a fost aceea de a avea doar 5 butoane la rând cu LED-uri de stare. Acest lucru a fost destul de simplu de machetat pe o placă de calcul cu Arduino. Adăugarea de noi caracteristici și hardware a ajuns să fie un proces în care am proiectat și reproiectat în mod constant aspectul fizic pe hârtie și m-am bazat pe proiectul de panouri. Chiar și cu o mulțime de planificare, o mulțime de lucruri la acest lucru au fost oarecum făcute din mers la început.

Cele 2 imagini de mai sus arată primul desen pe care l-am dedicat hârtiei, care a dat startul ideii, urmat de o lună de note făcute în urma celei care au modelat aspectele fizice și PCB.

Pasul 2: Protoyping pentru Breadboard

Protoyping pentru panouri
Protoyping pentru panouri
Protoyping pentru panouri
Protoyping pentru panouri

Întregul proiect a fost construit pe o placă de testare și complet testat pentru a se asigura că a funcționat complet cu DD500 înainte de a începe orice lucrare de adăpostire permanentă. Unele caracteristici suplimentare au fost adăugate în cod, ceea ce a oferit controlerului câteva funcții suplimentare de care DD500 nu avea. Acestea vor fi discutate mai detaliat în secțiunea de cod.

Pedala are 5 pedale, 4 LED-uri de stare, 5 ecrane LCD I2C și este controlată de un Arduino Nano Every. Obține energie de la un alimentator cu pedală de chitară de 9V printr-o cutie separată care transportă puterea prin cablul MIDI folosind cei 2 pini care nu sunt utilizați în mod normal pe un conector MIDI.

Pasul 3: Fabricare

Fabricare
Fabricare
Fabricare
Fabricare
Fabricare
Fabricare

M-am uitat la o mulțime de cazuri posibile pentru adăpostirea proiectului și chiar am luat în considerare ideea de a încerca să-mi îndoiesc propria carcasă din foi de aluminiu. În cele din urmă m-am așezat pe o incintă Hammond care era suficient de largă pentru a adăposti cele 5 ecrane LCD 16X2 pe care le-am ales.

Comutatoarele pentru picioare erau comutatoare generice de moment, cu atingere moale.

În acest stadiu, am decis să fac cadrele personalizate ale ecranului pentru a menține partea frontală curată, deoarece aș tăia găurile ecranului manual cu un Dremel și știam că vor exista probabil câteva zone mai puțin decât perfecte. Le-am tăiat de la un studio de design local care face tăiere cu laser, mai întâi ca șabloane de carton pentru a mă asigura că dimensiunile mele sunt corecte, apoi în acrilic alb de 3 mm pentru piesa finală.

Pasul 4: machetă și aspect CAD

CAD Mock-up și Layout
CAD Mock-up și Layout
CAD Mock-up și Layout
CAD Mock-up și Layout

Din schițele mele pe hârtie, am folosit Inkscape pentru a așeza toate componentele fizice și a finaliza dimensiunile și pozițiile. De asemenea, am venit cu metoda de montare a ecranului în acest moment. Pentru a minimiza cantitatea de șuruburi vizibile pe partea din față, am decis să montez toate ecranele pe niște plăci de aluminiu din spate folosind stand-off-uri, iar apoi aș avea nevoie doar de 4 șuruburi pe placă pentru a le fixa pe carcasă, care ar ține și cadrele ecranului la locul lor.

Pasul 5: Proiectare PCB

Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB
Design PCB

Pentru a crea PCB-ul, am folosit un site web numit EasyEDA. Dispune de un mediu de editor în care puteți desena o schemă a componentelor dvs., să o transformați într-un aspect PCB și apoi să o exportați direct în JLCPCB pentru a fi transformat în plăci. Nu mai făcusem niciodată așa ceva, dar au un ghid excelent pe site, care explică modul în care funcționează editorul, iar într-o oră am creat tabloul proiectat și comandat.

Unele zone de pe placă erau slab proiectate în acel moment din cauza lipsei de experiență, cum ar fi utilizarea unei singure șine de 5V pentru alimentarea ecranului, de exemplu, mai degrabă decât pentru a oferi fiecăruia o alimentare separată. Din fericire, orice scădere de tensiune care a avut loc nu a fost suficientă pentru a provoca probleme cu ecranele.

Consiliile au sosit aproximativ 2 săptămâni mai târziu și, din fericire, au lucrat fără probleme.

Pasul 6: Suporturi de ecran

Suporturi pentru ecran
Suporturi pentru ecran
Suporturi pentru ecran
Suporturi pentru ecran
Suporturi pentru ecran
Suporturi pentru ecran

Primele piese realizate au fost suporturile de ecran. Am folosit aluminiu de 3 mm pentru asta și am făcut găuri pentru stand-off-uri. Dimensiunile au fost determinate așezând totul pe birou, așa cum am vrut să fie pedala finală și măsurând din găurile de montare de pe PCB-urile ecranului. De asemenea, am așezat pedale cu ele pentru a obține distanțele pentru acestea.

Odată ce toate găurile au fost găurite, ecranele au fost montate și verificate pentru a fi pătrate, ținând o riglă pe marginile inferioare plate. Totul s-a aliniat până acum.

Pasul 7: incintă

Incintă
Incintă
Incintă
Incintă
Incintă
Incintă

În continuare a fost modificarea cazului. Comutatoarele de picior și LED-urile au fost simple, deoarece fiecare a necesitat pur și simplu o gaură de 12 mm și respectiv 5 mm.

Cea mai mare parte a muncii fizice a venit la tăierea găurilor ecranului. Am folosit un Dremel cu niște discuri de tăiere grele și diverse fișiere pentru a curăța găurile după aceea. Această parte a durat aproximativ 2 ore.

Carcasa pe care am folosit-o a fost proiectată în scopuri industriale și a fost realizată prin îndoirea unei singure bucăți de metal și sudarea prin puncte a colțurilor. Acest lucru a însemnat că ar fi necesare niște lucrări pentru a curăța aceste colțuri folosind materialul de umplutură al caroseriei pentru a nivela punctele joase și a umple golurile de pe margine.

În acest moment, cazul a fost complet pregătit și am ridicat totul pentru a vedea cum ar arăta.

Pasul 8: Uh-Oh

Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh

Și apoi a venit seama că, în ciuda tuturor planificărilor și măsurărilor mele, am comis o eroare IMENĂ. Am proiectat aspectul plăcii și al carcasei independent unul de celălalt. În capul meu, scândura stătea aproape la perete, cu un scurt stand-off în spatele ei. Dar nu exista absolut nici o modalitate în care acest lucru s-ar putea potrivi. Și nici nu era spațiu pentru a-l pune în lateral. O supraveghere imensă, dar, din fericire, una pe care am reușit să o rectific, deoarece încă mai exista destul spațiu între suporturile ecranului de pe capacul din spate al carcasei. Mai sunt câteva găuri găsite în suporturile ecranului și câteva stand-off-uri și ne-am întors în afaceri, cu suficient spațiu suficient pentru a acoperi capacul.

Pasul 9: Vopsea

A picta
A picta
A picta
A picta
A picta
A picta

Totul a fost demontat din nou, iar carcasa a fost vopsită în roșu bombat metalic, urmată de câteva straturi de lac. Cazul a fost lăsat să se vindece timp de o săptămână, deși am descoperit că lacul era încă ușor moale în acest moment când construiam totul. Câteva zone mici ale vopselei s-au deteriorat din această cauză. Ceva pe care vreau să îl evit în următorul meu proiect.

În acest timp, cumpărasem o imprimantă 3D și am decis să o folosesc pentru a face niște șaibe pentru comutatoarele cu picioare, deoarece cele din nailon pe care le cumpărasem aveau o oribilă nuanță gălbuie și erau slab dimensionate.

Pasul 10: Cablare

Cablare
Cablare
Cablare
Cablare
Cablare
Cablare
Cablare
Cablare

Ultima parte a asamblării fizice a fost să conecteze totul. Din nou, problemele legate de designul carcasei / designul PCB au apărut din nou, iar unele dintre pozițiile antetului de pe PCB au însemnat trecerea multor fire unele peste altele, făcând lucrurile puțin mai dezordonate decât aș fi sperat.

Sârmele pentru ecrane au fost împachetate în seturi de 4 și au fost folosite folii termocontractabile și împletite, transformate într-o singură bucată.

Pasul 11: Cod Arduino

Image
Image

Ca un începător total în codificarea Arduino, mă învățam pe măsură ce mergeam. Codul este probabil echivalentul de programare al unui „drum lung în jur”, dar am fost încântat că a funcționat conform intenției.

Looperul de pe DD500 are 5 funcții de bază:

  • Looper on / Off
  • Înregistrați / Overdub / Redare
  • Redați bucla înregistrată
  • Opriți redarea
  • Ștergeți bucla înregistrată

Fiecare dintre aceste funcții are un pedală corespunzătoare și, cu excepția butonului de oprire, un LED de stare. Ecranele LCD se actualizează, de asemenea, cu informații relevante pentru a arăta dacă pedala este în modul de înregistrare, overdubare sau redare, precum și ce funcție va face fiecare pedală în funcție de ceea ce se întâmplă în acel moment.

O altă caracteristică pe care am adăugat-o a fost de a urmări de câte ori a fost activată funcția de înregistrare / overdub. Acest lucru este urmărit în cod prin incrementarea unui număr întreg, care se afișează pe ecranul „tampon”, listând câte piese sunt înregistrate. În timp ce DD500 nu poate șterge piesele individuale, am adăugat acest lucru doar ca un exercițiu de codificare pentru a vedea dacă aș putea să funcționeze.

Se pare că există o problemă la încărcarea fișierelor în Instructables, așa că am pus o copie a codului pe Pastebin la:

Au fost utilizate 2 biblioteci în cod:

LiquidCrystal_I2C

Biblioteca MIDI FortySevenEffects

Pasul 12: Concluzie

Concluzie
Concluzie

Unul dintre cele mai mari lucruri pe care le iau de la acest proiect este că planificarea cât mai mult posibil din timp poate evita potențialele probleme. Problemele legate de montarea PCB-ului meu evidențiază importanța acestui lucru. Păstrarea notelor bune este, de asemenea, un lucru pe care îl recomand cu drag. Fără ele, este posibil să fi întâlnit mai multe probleme decât am avut. În prezent construiesc al doilea controler MIDI și de această dată am făcut eforturi mai mari pentru a-mi simplifica codul și pentru a proiecta hardware-ul meu în jurul modului în care ar trebui montat PCB-ul.

Recomandat: