Sommario:

Controller a pedale MIDI Arduino: 12 passaggi
Controller a pedale MIDI Arduino: 12 passaggi

Video: Controller a pedale MIDI Arduino: 12 passaggi

Video: Controller a pedale MIDI Arduino: 12 passaggi
Video: Arduino MIDI controller + Whammy pedal 2024, Novembre
Anonim
Controller a pedale MIDI Arduino
Controller a pedale MIDI Arduino

Recentemente ho progettato questo controller MIDI per far funzionare il phrase looper che è integrato nel pedale delay Boss DD500. Controllo tutto il mio impianto di chitarra utilizzando una scheda MIDI Behringer FCB, e questo mi permette di cambiare le patch sul pedale del delay nel loop effetti, mentre allo stesso tempo cambiamo i canali dell'amplificatore.

Il DD500 ha una funzione looper molto semplice incorporata, ma uno degli svantaggi è che quando il looper è attivo, è controllato dagli interruttori a pedale sul pedale. Ciò significa che non è possibile modificare le patch sul pedale mentre il loop è attivo, poiché essenzialmente ha catturato le funzioni degli interruttori a pedale. Poiché sto usando il MIDI, questa limitazione non esiste, poiché è semplicemente un problema fisico. Ciò significava riservare 5 interruttori a pedale sul mio controller MIDI principale per il looper, e quindi ho deciso di costruire un controller separato per quelli.

Il mio piano iniziale per questo era di prendere un piccolo contenitore Hammond e inserire 5 interruttori a pedale e insegnarmi la codifica Arduino di base. Quando ho iniziato a imparare di più e il mio codice funzionava, ha finito per motivarmi a provare più cose e poi si è praticamente trasformato in qualcosa di più grande.

Passaggio 1: concetti

Concetti
Concetti
Concetti
Concetti

Una delle prime idee era di avere solo 5 pulsanti in fila con LED di stato. Questo è stato abbastanza semplice da simulare su una breadboard con Arduino. L'aggiunta di nuove funzionalità e hardware ha finito per essere un processo in cui progettavo e ridisegnavo costantemente il layout fisico su carta e costruivo sul progetto breadboard. Anche con un sacco di pianificazione, molto del lavoro su questo è stato fatto al volo all'inizio.

Le 2 immagini sopra mostrano il primissimo disegno che ho messo su carta, che ha dato il via all'idea in primo luogo, seguito da un mese di appunti presi a seguito di quello che ha modellato i layout fisici e PCB.

Passaggio 2: prototipazione breadboard

Prototipazione breadboard
Prototipazione breadboard
Prototipazione breadboard
Prototipazione breadboard

L'intero progetto è stato costruito su una breadboard e completamente testato per assicurarsi che funzionasse perfettamente con il DD500 prima che iniziassero i lavori per alloggiarlo in modo permanente. Nel codice sono state aggiunte alcune funzionalità extra, che hanno fornito al controller alcune funzioni extra che mancavano al DD500. Questi saranno discussi più ampiamente nella sezione del codice.

Il pedale ha 5 interruttori a pedale, 4 LED di stato, 5 schermi LCD I2C ed è controllato da un Arduino Nano Every. Riceve energia da un alimentatore a pedale per chitarra da 9 V tramite un breakout box separato che trasporta l'alimentazione tramite il cavo MIDI utilizzando i 2 pin che normalmente non vengono utilizzati su un connettore MIDI.

Passaggio 3: fabbricazione

fabbricazione
fabbricazione
fabbricazione
fabbricazione
fabbricazione
fabbricazione

Ho esaminato molti casi possibili per ospitare il progetto e ho persino preso in considerazione l'idea di provare a piegare la mia custodia da fogli di alluminio. Alla fine ho optato per un involucro Hammond che fosse largo quanto basta per ospitare i 5 schermi LCD 16X2 che avevo scelto.

Gli interruttori a pedale erano interruttori soft-touch momentanei generici.

A questo punto ho deciso di realizzare cornici dello schermo con montaggio personalizzato per mantenere la parte anteriore pulita, poiché avrei tagliato i fori dello schermo a mano con un Dremel e sapevo che probabilmente ci sarebbero state alcune aree meno che perfette. Li ho fatti tagliare da uno studio di design locale che esegue il taglio laser, prima come modelli di cartone per assicurarmi che le mie dimensioni fossero tutte corrette, e poi in acrilico bianco da 3 mm per il pezzo finale.

Passaggio 4: mock-up e layout CAD

Modello e layout CAD
Modello e layout CAD
Modello e layout CAD
Modello e layout CAD

Dai miei schizzi su carta, ho usato Inkscape per disporre tutti i componenti fisici e finalizzare le dimensioni e le posizioni. A questo punto ho anche pensato al metodo di montaggio dello schermo. Per ridurre al minimo la quantità di bulloni visibili sulla parte anteriore, ho deciso di montare tutti gli schermi su alcune piastre di alluminio dalla parte posteriore utilizzando i distanziatori, quindi avrei solo bisogno di 4 bulloni per piastra per fissarli alla custodia, che manterrebbe anche le cornici dello schermo in posizione.

Passaggio 5: progettazione PCB

Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB

Per creare il PCB, ho utilizzato un sito Web chiamato EasyEDA. È dotato di un ambiente editor in cui è possibile disegnare uno schema dei componenti, trasformarlo in un layout PCB e quindi esportarlo direttamente su JLCPCB per trasformarlo in schede. Non avevo mai fatto nulla di simile prima, ma hanno un'eccellente guida sul sito che spiega come funziona l'editor e nel giro di un'ora ho progettato e ordinato la scheda.

Alcune aree della scheda erano progettate male all'epoca a causa dell'inesperienza, come l'utilizzo di un singolo binario da 5 V per l'alimentazione dello schermo, ad esempio, piuttosto che fornire a ciascuna un'alimentazione separata. Per fortuna, eventuali cadute di tensione che si sono verificate non sono state sufficienti a causare problemi con gli schermi.

Le schede sono arrivate circa 2 settimane dopo e fortunatamente hanno funzionato senza problemi.

Passaggio 6: supporti dello schermo

Supporti per schermo
Supporti per schermo
Supporti per schermo
Supporti per schermo
Supporti per schermo
Supporti per schermo

Le prime parti realizzate sono state i supporti dello schermo. Ho usato alluminio da 3 mm per questo e fori per i distanziatori. Le dimensioni sono state determinate disponendo tutto sulla scrivania come volevo che fosse il pedale finale e misurando dai fori di montaggio sui PCB dello schermo. Ho anche posizionato gli interruttori a pedale con loro per ottenere le distanze per quelli.

Una volta praticati tutti i fori, gli schermi sono stati montati e controllati per l'ortogonalità tenendo un righello contro i bordi inferiori piatti. Tutto allineato finora.

Passaggio 7: allegato

Allegato
Allegato
Allegato
Allegato
Allegato
Allegato

Il prossimo passo è stato modificare il caso. Gli interruttori a pedale e i LED erano semplici in quanto richiedevano semplicemente un foro da 12 mm e 5 mm rispettivamente.

Il grosso del lavoro fisico è arrivato quando si tagliano i fori dello schermo. Ho usato un Dremel con alcuni dischi da taglio pesanti e varie lime per pulire i buchi in seguito. Questa parte ha richiesto circa 2 ore in tutto.

La custodia che ho utilizzato è stata progettata per scopi industriali ed è stata realizzata piegando un unico pezzo di metallo e saldando a punti gli angoli. Ciò significava che sarebbe stato necessario un po' di lavoro per pulire questi angoli utilizzando uno stucco per carrozzeria per livellare i punti bassi e riempire gli spazi vuoti sul bordo.

A questo punto il caso era completamente pronto e ho preso in giro tutto solo per vedere come sarebbe stato.

Passaggio 8: Uh-Oh

Uh Oh
Uh Oh
Uh Oh
Uh Oh
Uh Oh
Uh Oh

E poi è arrivata la consapevolezza che, nonostante tutta la mia pianificazione e misurazione, avevo commesso un ENORME errore. Ho progettato il layout della scheda e del case indipendentemente l'uno dall'altro. Nella mia testa, la scacchiera starebbe quasi a filo contro la parete superiore, con un breve punto di stallo dietro di essa. Ma non c'era assolutamente modo che potesse andare bene. E non c'era neanche lo spazio per metterlo da parte. Un'enorme svista, ma per fortuna sono riuscito a correggere poiché c'era ancora un po' di spazio tra i supporti dello schermo sul coperchio posteriore del case. Qualche altro foro nei supporti dello schermo e un paio di distanziatori, e siamo di nuovo operativi, con lo spazio appena sufficiente per mettere la copertura.

Passaggio 9: dipingere

Dipingere
Dipingere
Dipingere
Dipingere
Dipingere
Dipingere

Tutto è stato smontato di nuovo e la custodia è stata verniciata in Metallic Candy Red, seguita da alcune mani di lacca. Il caso è stato lasciato indurire per una settimana, anche se ho scoperto che la lacca era ancora leggermente morbida a questo punto mentre stavo ricostruendo il tutto. A causa di ciò, alcune piccole aree della vernice sono state danneggiate. Qualcosa che voglio evitare nel mio prossimo progetto.

Durante questo periodo, avevo acquistato una stampante 3D e ho deciso di usarla per realizzare alcune rondelle per gli interruttori a pedale, poiché quelle di nylon che avevo acquistato avevano un'orribile tinta giallastra e erano di dimensioni scadenti.

Passaggio 10: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio

L'ultima parte dell'assemblaggio fisico consisteva nel cablare tutto. Di nuovo, i problemi con il design del case/il design del PCB si sono presentati di nuovo e alcune delle posizioni delle intestazioni sul PCB hanno significato incrociare molti fili l'uno sull'altro, rendendo le cose un po' più disordinate di quanto sperassi.

I fili per gli schermi sono stati raggruppati in set di 4 e, utilizzando termoretraibile e avvolgimento intrecciato, sono stati realizzati in un unico pezzo.

Passaggio 11: codice Arduino

Image
Image

Come principiante assoluto della codifica Arduino, stavo insegnando a me stesso mentre procedevo. Il codice è probabilmente l'equivalente di programmazione di un "lungo giro", ma mi ha fatto piacere che abbia funzionato come previsto.

Il looper del DD500 ha 5 funzioni di base:

  • Looper acceso/spento
  • Registra/Sovraincisione/Riproduci
  • Riproduci loop registrato
  • Interrompi la riproduzione
  • Cancella il loop registrato

Ognuna di queste funzioni ha un interruttore a pedale corrispondente e, ad eccezione del pulsante di arresto, un LED di stato. Gli schermi LCD si aggiornano anche con informazioni rilevanti per mostrare se il pedale è in modalità di registrazione, sovraincisione o riproduzione, nonché quale funzione svolgerà ciascun interruttore a pedale a seconda di ciò che sta accadendo in quel momento.

Un'altra caratteristica che ho aggiunto è stata quella di tenere traccia di quante volte è stata attivata la funzione di registrazione/sovraincisione. Questo viene tenuto traccia nel codice incrementando un numero intero, che viene visualizzato nella schermata "buffer", elencando il numero di tracce registrate. Sebbene il DD500 non possa cancellare singole tracce, l'ho aggiunto semplicemente come esercizio di codifica per vedere se potevo farlo funzionare.

Sembra esserci un problema durante il caricamento dei file su Instructables, quindi ho inserito una copia del codice su Pastebin all'indirizzo:

Nel codice sono state utilizzate 2 librerie:

LiquidCrystal_I2C

Libreria MIDI FortySevenEffects

Passaggio 12: Conclusione

Conclusione
Conclusione

Una delle cose più importanti che prendo da questo progetto è che pianificare il più possibile in anticipo può evitare potenziali problemi. I problemi con il montaggio del mio PCB ne sottolineano l'importanza. Tenere buoni appunti è anche qualcosa che consiglio vivamente. Senza di loro, potrei aver riscontrato più problemi di quelli che ho avuto. Attualmente sto costruendo il mio secondo controller MIDI e questa volta ho fatto maggiori sforzi per semplificare il mio codice e progettare il mio hardware attorno a come dovrebbe essere montato il PCB.

Consigliato: