Indholdsfortegnelse:

Arduino MIDI Foot Controller: 12 trin
Arduino MIDI Foot Controller: 12 trin

Video: Arduino MIDI Foot Controller: 12 trin

Video: Arduino MIDI Foot Controller: 12 trin
Video: Build a USB Midi Footswitch 2024, November
Anonim
Arduino MIDI fodkontroller
Arduino MIDI fodkontroller

Jeg har for nylig designet denne MIDI -controller til at betjene frase looper, der er indbygget i Boss DD500 forsinkelsespedalen. Jeg styrer hele mit guitarrigg ved hjælp af et Behringer FCB MIDI -kort, og det giver mig mulighed for at ændre patches på forsinkelsespedalen i effektløkken, mens jeg samtidig skifter forstærkerkanaler.

DD500 har en meget grundlæggende looper -funktion indbygget, men en af ulemperne ved den er, at når looper er aktiv, styres den af fodkontakterne på pedalen. Dette betyder, at du ikke kan ændre patches på pedalen, mens sløjfen er aktiv, da den i det væsentlige fangede fodpedalernes funktioner. Da jeg bruger MIDI, eksisterer denne begrænsning ikke, da det simpelthen er et fysisk problem. Dette betød dog at reservere 5 fodkontakter på min vigtigste MIDI -controller til looper, selvom jeg besluttede at bygge en separat controller til dem.

Min første plan for dette var at tage et lille Hammond -kabinet og sætte 5 fodkontakter i og lære mig selv nogle grundlæggende Arduino -kodninger. Da jeg begyndte at lære mere, og min kode fungerede, endte det med at motivere mig til at prøve flere ting, og så blev det dybest set sneboldet til noget større.

Trin 1: Begreber

Begreber
Begreber
Begreber
Begreber

En af de tidlige ideer var bare at have 5 knapper i træk med status -LED'er. Dette var ret enkelt at spotte på et brødbræt med Arduino. Tilføjelsen af nye funktioner og hardware endte med at være en proces, hvor jeg konstant designede og redesignede det fysiske layout på papir og byggede videre på breadboard -projektet. Selv med meget planlægning blev meget af arbejdet med dette noget udført i farten i starten.

De 2 billeder ovenfor viser den allerførste tegning, jeg forpligtede mig til papir, som i første omgang sparkede idéen i gang, efterfulgt af en måneds noter efter det, der formede de fysiske og PCB -layout.

Trin 2: Breadboard Protoyping

Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping

Hele projektet blev bygget på et brødbræt og fuldstændigt testet for at sikre, at det fungerede fuldt ud med DD500, inden der startede noget arbejde med at huske det permanent. Nogle ekstra funktioner blev tilføjet i koden, hvilket gav controlleren nogle ekstra funktioner, som DD500 manglede. Disse vil blive diskuteret mere fuldstændigt i kodesektionen.

Pedalen har 5 fodkontakter, 4 status -LED'er, 5 I2C LCD -skærme og styres af en Arduino Nano Every. Den får strøm fra en 9V guitarpedal PSU ved hjælp af en separat breakout -boks, der bærer denne strøm over MIDI -kablet ved hjælp af de 2 ben, der normalt ikke bruges på et MIDI -stik.

Trin 3: Fremstilling

Fremstilling
Fremstilling
Fremstilling
Fremstilling
Fremstilling
Fremstilling

Jeg kiggede på en masse mulige sager til at huse projektet, og overvejede endda tanken om at forsøge at bøje min egen sag fra aluminiumsplader. Til sidst slog jeg mig ned på et Hammond -kabinet, der var lige bredt nok til at huse de 5 16X2 LCD -skærme, jeg havde valgt.

Fodkontakterne var generiske midlertidige soft touch-kontakter.

På dette tidspunkt besluttede jeg mig for at få tilpasset skærmrammer til at holde fronten ren, da jeg ville klippe skærmhullerne i hånden med en Dremel og vidste, at der sandsynligvis ville være et par områder, der var mindre end perfekte. Jeg fik dem skåret af et lokalt tegnestue, der laver laserskæring, først som papskabeloner for at sikre, at mine størrelser alle var korrekte, og derefter i 3 mm hvid akryl til det sidste stykke.

Trin 4: CAD-model og layout

CAD Mock-up og layout
CAD Mock-up og layout
CAD Mock-up og layout
CAD Mock-up og layout

Fra mine papirskitser brugte jeg Inkscape til at lægge alle de fysiske komponenter ud og færdiggøre størrelser og positioner. Jeg kom også frem til skærmmonteringsmetoden på dette tidspunkt. For at minimere mængden af synlige bolte på forsiden, besluttede jeg at montere alle skærmene på nogle aluminiumsplader bagfra ved hjælp af stand-offs, og så ville jeg kun have brug for 4 bolte pr. Plade for at fastgøre dem til kabinettet, som ville også holde skærmrammerne på plads.

Trin 5: PCB -design

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

For at oprette printkortet brugte jeg et websted kaldet EasyEDA. Det har et redaktørmiljø, hvor du kan tegne en skematisk oversigt over dine komponenter, gøre det til et PCB -layout og derefter eksportere det direkte til JLCPCB for at have lavet til tavler. Jeg havde aldrig gjort noget lignende før, men de har en glimrende guide på webstedet, der forklarer, hvordan redaktøren fungerer, og inden for en time fik jeg designet og bestilt tavlen.

Nogle områder på tavlen var på det tidspunkt dårligt designet på grund af uerfarenhed, f.eks. Ved at bruge en enkelt 5V -skinne til f.eks. Skærmens strøm i stedet for at give hver enkelt et separat feed. Heldigvis var eventuelle spændingsfald, der opstod, ikke nok til at forårsage problemer med skærmene.

Tavlerne ankom cirka 2 uger senere og fungerede heldigvis uden problemer.

Trin 6: Skærmbeslag

Skærmbeslag
Skærmbeslag
Skærmbeslag
Skærmbeslag
Skærmbeslag
Skærmbeslag

De første dele, der blev lavet, var skærmbeslagene. Jeg brugte 3 mm aluminium til dette og borede huller til stand-offs. Dimensionerne blev bestemt ved at lægge alt ud på skrivebordet, som jeg ville have, at den sidste pedal var og måle fra monteringshullerne på skærmens printkort. Jeg placerede også fodkontakterne med dem for at få afstandene til dem.

Når alle hullerne var boret, blev skærmene monteret og kontrolleret for firkant ved at holde en lineal mod de flade bundkanter. Alt stod i kø indtil nu.

Trin 7: Kapsling

Kabinet
Kabinet
Kabinet
Kabinet
Kabinet
Kabinet

Næste op var at ændre sagen. Fodkontakterne og lysdioderne var ligetil, da de hver enkelt krævede et hul på henholdsvis 12 mm og 5 mm.

Hovedparten af det fysiske arbejde kom, når skærende huller blev skåret ud. Jeg brugte en Dremel med nogle kraftige skæreskiver og forskellige filer til at rydde op i hullerne bagefter. Denne del tog cirka 2 timer alt i alt.

Skabet, jeg brugte, var designet til industrielle formål og blev fremstillet ved at bøje et enkelt stykke metal og punktsvejse hjørnerne. Dette betød, at der ville kræves noget arbejde for at rense disse hjørner ved at bruge karosserifyldstof til at udjævne de lave pletter og udfylde hullerne på kanten.

På dette tidspunkt var sagen fuldstændig primet, og jeg hånede på alting bare for at se, hvordan det ville se ud.

Trin 8: Uh-Oh

Åh åh
Åh åh
Åh åh
Åh åh
Åh åh
Åh åh

Og så kom erkendelsen af, at jeg trods al min planlægning og måling havde lavet en STOR fejl. Jeg designede tavlen og sagens layout uafhængigt af hinanden. I mit hoved ville brættet sidde næsten flush mod den øverste væg, med et kort stand-off bag det. Men der var absolut ingen måde dette kunne passe. Og der var heller ikke plads til at lægge det til side. En kæmpe forglemmelse, men heldigvis en, som jeg var i stand til at rette op på, da der stadig var en del plads mellem skærmbeslagene på bagsiden af sagen. Et par huller mere boret i skærmbeslagene og et par stand-offs, og vi er tilbage i gang, med lige nok plads til at få dækslet på.

Trin 9: Mal

Maling
Maling
Maling
Maling
Maling
Maling

Alt blev adskilt igen, og kassen blev malet Metallic Candy Red, efterfulgt af et par lag lak. Sagen blev efterladt til at helbrede i en uge, selvom jeg opdagede, at lakken stadig var lidt blød på dette tidspunkt, da jeg byggede alt op. Et par små områder af malingen blev beskadiget på grund af dette. Noget som jeg vil undgå ved mit næste projekt.

I løbet af denne tid havde jeg købt en 3D -printer, og besluttede mig for at bruge den til at lave nogle skiver til fodkontakterne, da de nylon, jeg havde købt, havde en frygtelig gullig farvetone på dem og havde en dårlig størrelse.

Trin 10: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger

Den sidste del af fysisk samling var at koble alt sammen. Igen kom problemerne med sagsdesign/PCB -design op igen, og nogle af overskriftspositionerne på printkortet betød at krydse mange ledninger over hinanden, hvilket gjorde tingene lidt mere rodede, end jeg havde håbet.

Trådene til skærmene blev samlet i sæt med 4, og ved hjælp af heatsink og flettet wrap, lavet i et enkelt stykke.

Trin 11: Arduino -kode

Image
Image

Som en total nybegynder til Arduino -kodning lærte jeg mig selv, mens jeg gik. Koden er sandsynligvis programmeringsækvivalenten til en 'lang vej', men jeg var glad for, at den fungerede efter hensigten.

Looper på DD500 har 5 grundlæggende funktioner:

  • Looper til/fra
  • Optag/Overdub/Afspil
  • Afspil optaget loop
  • Stop afspilning
  • Ryd optaget sløjfe

Hver af disse funktioner har en tilsvarende fodkontakt og med undtagelse af stopknappen en status -LED. LCD -skærmene opdateres også med relevante oplysninger for at vise, om pedalen er i optagelse, overdubbing eller afspilningstilstand samt hvilken funktion hver fodkontakt vil udføre afhængigt af, hvad der sker på det tidspunkt.

En anden funktion, jeg tilføjede, var at holde styr på, hvor mange gange posten/overdub -funktionen blev aktiveret. Dette holdes styr på i koden ved at øge et helt tal, som bliver vist på "buffer" -skærmen og viser, hvor mange spor der er optaget. Selvom DD500 ikke kan slette individuelle spor, tilføjede jeg dette kun som en kodningsøvelse for at se, om jeg kunne få det til at fungere.

Der ser ud til at være et problem med at uploade filer til Instructables, og derfor har jeg i stedet lagt en kopi af koden på Pastebin på:

2 biblioteker blev brugt i koden:

LiquidCrystal_I2C

FortySevenEffects MIDI -bibliotek

Trin 12: Konklusion

Konklusion
Konklusion

En af de største ting, jeg tager væk fra dette projekt, er, at planlægning så meget som muligt på forhånd kan undgå potentielle problemer. Problemerne med min PCB -montering fremhæver vigtigheden af dette. At holde gode noter er også noget, jeg stærkt anbefaler. Uden dem har jeg muligvis stødt på flere problemer, end jeg havde. Jeg er i øjeblikket ved at bygge min anden MIDI -controller, og denne gang har jeg gjort en større indsats for at strømline min kode og designe min hardware omkring, hvordan printkortet skal monteres.

Anbefalede: