Kazalo:

Arduino MIDI nožni krmilnik: 12 korakov
Arduino MIDI nožni krmilnik: 12 korakov

Video: Arduino MIDI nožni krmilnik: 12 korakov

Video: Arduino MIDI nožni krmilnik: 12 korakov
Video: TX81Z Arduino MIDI-контроллер/редактор 2024, December
Anonim
Arduino MIDI nožni krmilnik
Arduino MIDI nožni krmilnik

Pred kratkim sem ta MIDI krmilnik zasnoval za delovanje fraznega zanka, ki je vgrajen v zavorni pedal Boss DD500. Celotno kitarsko opremo upravljam s ploščo Behringer FCB MIDI, kar mi omogoča spreminjanje popravkov na pedalu za zakasnitev v zanki učinkov, hkrati pa preklapljam ojačevalne kanale.

DD500 ima vgrajeno zelo osnovno funkcijo zanke, vendar je ena od njenih pomanjkljivosti ta, da ko je zanka aktivna, jo upravljajo nožna stikala na stopalki. To pomeni, da ne morete spreminjati popravkov na stopalki, medtem ko je zanka aktivna, saj v bistvu zajema funkcije nožnih stikal. Ker uporabljam MIDI, ta omejitev ne obstaja, saj gre zgolj za fizično težavo. To je pomenilo, da sem na svojem glavnem krmilniku MIDI rezerviral pet nožnih stikal za zanko, zato sem se odločil, da zgradim ločen krmilnik za te.

Moj prvotni načrt za to je bil, da vzamem majhno ohišje Hammond in vstavim 5 nožnih stikal in se naučim osnovnega kodiranja Arduino. Ko sem se začel učiti več in je moja koda delovala, me je na koncu motiviralo, da poskusim več stvari, nato pa se je v bistvu snežilo v nekaj večjega.

1. korak: Koncepti

Koncepti
Koncepti
Koncepti
Koncepti

Ena prvih zamisli je bila, da bi imeli samo 5 gumbov zapored z LED diodami stanja. To je bilo z Arduinom na preprosti podlagi precej preprosto narediti. Dodajanje novih funkcij in strojne opreme se je končalo kot proces, v katerem sem nenehno oblikoval in preoblikoval fizično postavitev na papirju in gradil na osnovi projekta. Tudi ob velikem načrtovanju je bilo veliko dela pri tem na začetku nekoliko opravljenega.

Na zgornjih dveh slikah je prikazana prva risba, ki sem jo naredil na papirju, ki je najprej sprožila idejo, nato pa so sledili mesec zapiskov, ki so sledili tistemu, ki je oblikoval fizično postavitev in postavitev tiskanega vezja.

2. korak: Izdelava prototipov na plošči

Izdelava prototipov na plošči
Izdelava prototipov na plošči
Izdelava prototipov na plošči
Izdelava prototipov na plošči

Celoten projekt je bil zgrajen na podlagi in v celoti preizkušen, da bi zagotovil popolno delovanje z DD500, preden se je začelo kakršno koli delo na njegovem stalnem bivanju. V kodo so bile dodane nekatere dodatne funkcije, ki so krmilniku dale nekatere dodatne funkcije, ki jih DD500 ni imel. O njih bomo podrobneje razpravljali v oddelku s kodo.

Pedal ima 5 nožnih stikal, 4 LED diode, 5 I2C LCD zaslonov in ga upravlja Arduino Nano Every. Napaja se iz napajalnika za kitaro s stopalko 9V prek ločene škatle, ki to moč prenaša prek kabla MIDI z dvema nožicama, ki se običajno ne uporabljata na priključku MIDI.

3. korak: izdelava

Izdelava
Izdelava
Izdelava
Izdelava
Izdelava
Izdelava

Ogledal sem si veliko možnih primerov za namestitev projekta in razmišljal celo o zamisli, da bi poskušal upogniti lastno ohišje iz aluminijastih listov. Sčasoma sem se odločil za ohišje Hammond, ki je bilo ravno dovolj široko, da sem lahko namestil 5 LCD zaslonov 16X2, ki sem jih izbral.

Nožna stikala so bila splošna trenutna stikala z mehkim dotikom.

Na tej stopnji sem se odločil, da bom naredil okvirje po meri za montažo, da bo sprednji del čist, saj bi z Dremelom ročno izrezal luknje na zaslonu in vedel, da bo verjetno nekaj področij, ki niso popolna. To sem naredil v lokalnem oblikovalskem studiu, ki se ukvarja z laserskim rezanjem, najprej kot predloge iz kartona, da preveri, ali so moje velikosti pravilne, nato pa v 3 mm belem akrilu za zadnji del.

4. korak: CAD-maketa in postavitev

CAD maketa in postavitev
CAD maketa in postavitev
CAD maketa in postavitev
CAD maketa in postavitev

Iz skic na papirju sem uporabil Inkscape, da sem postavil vse fizične komponente in dokončal velikosti in položaje. Na tej točki sem predstavil tudi način pritrditve zaslona. Da bi zmanjšali količino vidnih vijakov na sprednji strani, sem se odločil, da vse zaslone pritrdim na nekaj aluminijastih plošč od zadaj s pomočjo stojal, nato pa bom potreboval le 4 vijake na ploščo, da jih pritrdim na ohišje, kar bi držala tudi okvirje zaslona.

5. korak: Oblikovanje PCB -ja

Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB
Oblikovanje PCB

Za izdelavo tiskanega vezja sem uporabil spletno stran EasyEDA. Odlikuje ga okolje urejevalnika, v katerem lahko narišete shemo svojih komponent, jo spremenite v postavitev tiskanega vezja in jo nato izvozite neposredno v JLCPCB, da postanejo plošče. Nikoli prej nisem naredil česa takega, vendar imajo na spletnem mestu odličen vodnik, ki pojasnjuje, kako urednik deluje, in v eni uri sem ploščo oblikoval in naročil.

Nekatera področja na plošči so bila takrat zaradi neizkušenosti slabo zasnovana, na primer uporaba ene same 5 -voltne tirnice za napajanje zaslona, namesto da bi vsakemu dali ločeno napajanje. Na srečo vsi padci napetosti niso bili dovolj, da bi povzročili težave z zasloni.

Plošče so prispele približno 2 tedna kasneje in na srečo so delovale brez težav.

6. korak: Montaže zaslona

Nosilci zaslona
Nosilci zaslona
Nosilci zaslona
Nosilci zaslona
Nosilci zaslona
Nosilci zaslona

Prvi izdelani deli so bili nosilci zaslona. Za to sem uporabil 3 mm aluminij in izvrtal luknje za stojnice. Dimenzije so bile določene tako, da sem vse postavil na mizo, kot sem želel, da bi bil zadnji pedal, in meril iz montažnih lukenj na tiskanih vezjih na zaslonu. Nožna stikala sem jim dal tudi, da sem dosegel razdalje do njih.

Ko so bile vse luknje izvrtane, so bili zasloni nameščeni in preverjeni na kvadratnost tako, da so ravnilo držali ob ravnih spodnjih robovih. Doslej se je vse zvrstilo.

7. korak: ohišje

Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje

Sledila je sprememba primera. Nožna stikala in LED so bili enostavni, saj sta vsak preprosto potrebovali luknjo 12 mm oziroma 5 mm.

Glavnina fizičnega dela je nastala pri izrezovanju lukenj na zaslonu. Za čiščenje lukenj sem uporabil Dremel z nekaterimi težkimi rezalnimi diski in različnimi datotekami. Ta del je skupaj trajal približno 2 uri.

Ohišje, ki sem ga uporabil, je bilo zasnovano za industrijske namene in je bilo izdelano z upogibanjem enega kosa kovine in točkovnim varjenjem vogalov. To je pomenilo, da bo potrebno nekaj dela za čiščenje teh vogalov z uporabo polnila za karoserijo avtomobila za izravnavo nizkih točk in zapolnitev vrzeli na robu.

Na tej točki je bila zadeva popolnoma pripravljena in vse sem posmehoval samo zato, da vidim, kako bo videti.

8. korak: Uh-oh

Ojoj
Ojoj
Ojoj
Ojoj
Ojoj
Ojoj

In potem je prišlo spoznanje, da sem kljub vsemu načrtovanju in merjenju naredil eno OGROMNO napako. Postavitev plošče in ohišja sem oblikoval neodvisno drug od drugega. V moji glavi bi deska sedela skoraj poravnana z zgornjo steno, za njo pa kratek odmik. Ampak to nikakor ni moglo biti primerno. Prav tako ni bilo prostora, da bi ga postavili na stran. Velik nadzor, a na srečo, ki sem ga uspel popraviti, saj je bilo med nosilci zaslona na zadnjem pokrovu ohišja še kar nekaj prostora. Še nekaj lukenj, izvrtanih v nosilcih zaslona, in nekaj stojnic, in spet smo v poslu, saj imamo ravno dovolj prostora, da si nadenemo pokrov.

9. korak: Barvanje

Barvanje
Barvanje
Barvanje
Barvanje
Barvanje
Barvanje

Vse je bilo ponovno razstavljeno, ohišje pa je bilo pobarvano v kovinsko rdečo barvo, nato pa še nekaj slojev laka. Primer smo pustili zdraviti en teden, čeprav sem odkril, da je bil lak na tej točki, ko sem vse gradil, še vedno rahlo mehak. Zaradi tega se je poškodovalo nekaj majhnih površin barve. Nekaj, čemur se želim izogniti pri naslednjem projektu.

V tem času sem kupil 3D tiskalnik in se odločil, da ga uporabim za izdelavo nekaj podložk za nožna stikala, saj so najlonske, ki sem jih kupil, imele grozljiv rumenkast odtenek in so bile majhne velikosti.

10. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Zadnji del fizičnega sestavljanja je bil ožičenje vsega. Spet so se pojavile težave z oblikovanjem ohišja/oblikovanjem tiskanega vezja in nekateri položaji glave na tiskanem vezju so pomenili prečkanje veliko žic drug čez drugega, zaradi česar so bile stvari nekoliko bolj zapletene, kot sem upal.

Žice za zaslone so bile združene v 4 sklope in so bile z enim samim kosom izdelane s toplotno zaščito in pletenim ovojem.

11. korak: Arduino koda

Image
Image

Kot popoln začetnik kodiranja Arduino sem se med tem učil sam. Koda je verjetno programski ekvivalent "dolge poti", vendar sem bil zadovoljen, da je deloval po predvidevanjih.

Zanka na DD500 ima 5 osnovnih funkcij:

  • Looper vklop/izklop
  • Snemanje/Overdub/Predvajanje
  • Predvajaj posneto zanko
  • Ustavite predvajanje
  • Počisti posneto zanko

Vsaka od teh funkcij ima ustrezen nožni stikalo in, razen gumba za zaustavitev, statusno LED. LCD zasloni se posodabljajo tudi z ustreznimi informacijami, da pokažejo, ali je pedal v načinu snemanja, preklapljanja ali predvajanja, pa tudi, kakšno funkcijo bo izvedel vsak nožni stikalo, odvisno od tega, kaj se v tem času dogaja.

Še ena funkcija, ki sem jo dodal, je spremljanje, kolikokrat je bila funkcija snemanja/prekrivanja aktivirana. To se v kodi spremlja s povečanjem celega števila, ki se prikaže na zaslonu 'medpomnilnik' in navede, koliko skladb je posnetih. Medtem ko DD500 ne more izbrisati posameznih posnetkov, sem to dodal zgolj kot kodiranje, da vidim, če mi lahko uspe.

Zdi se, da je pri nalaganju datotek v Instructables prišlo do težave, zato sem kopijo kode namesto tega postavil na Pastebin na:

V kodi sta bili uporabljeni 2 knjižnici:

LiquidCrystal_I2C

FortySevenEffects knjižnica MIDI

12. korak: Zaključek

Zaključek
Zaključek

Ena največjih stvari, ki jih jemljem pri tem projektu, je, da se s čim boljšim načrtovanjem vnaprej izognemo morebitnim težavam. Težave z namestitvijo mojega tiskanega vezja poudarjajo pomen tega. Zelo priporočam tudi vodenje dobrih zapiskov. Brez njih bi morda naletel na več težav, kot sem jih imel. Trenutno gradim svoj drugi MIDI krmilnik in tokrat sem se bolj potrudil, da bi racionaliziral svojo kodo in oblikoval svojo strojno opremo glede na to, kako je treba namestiti tiskano vezje.

Priporočena: