IDEA GENERALE
La True-Bypass Switch Pealboard (TBSP in breve), è una pedaliera/switcher controllata da Arduino. Programmabile da pannello frontale o da PC tramite presa USB. True bypass.
In linea di massima questo switch deve essere un controller in grado di selezionare in on/off un certo numero di loops con configurazioni da memorizzare in presets. All'inizio avevo pensato ad una configurazione totalmente personalizzabile, nella quale poter scegliere anche la sequenza degli effetti (un pò come si fa in un rack virtuale di plugins nella nostra DAW). Purtroppo, però, a meno di non utilizzare multiplexer costosissimi, per realizzare uno switch true bypass sarebbe servita una matrice di (n^2+n) relè dove n è il numero degli effetti. Esempio: 8 loops = 64+8 = 72 relè. Di conseguenza il costo sarebbe elevato. Inoltre considerando che ogni pedale ha, in genere, un suo posto nella catena audio (overdrive all'inizio, delay alla fine, ecc.) forse sarebbe stato anche inutile.
In linea di massima questo switch deve essere un controller in grado di selezionare in on/off un certo numero di loops con configurazioni da memorizzare in presets. All'inizio avevo pensato ad una configurazione totalmente personalizzabile, nella quale poter scegliere anche la sequenza degli effetti (un pò come si fa in un rack virtuale di plugins nella nostra DAW). Purtroppo, però, a meno di non utilizzare multiplexer costosissimi, per realizzare uno switch true bypass sarebbe servita una matrice di (n^2+n) relè dove n è il numero degli effetti. Esempio: 8 loops = 64+8 = 72 relè. Di conseguenza il costo sarebbe elevato. Inoltre considerando che ogni pedale ha, in genere, un suo posto nella catena audio (overdrive all'inizio, delay alla fine, ecc.) forse sarebbe stato anche inutile.
CARATTERISTICHE RICHIESTE
Prima di procedere alla progettazione è necessario fare un elenco di caratteristiche richieste all'unità, determinate dalle esigenze del musicista.
- Uscita stereo (due loop devono essere stereo, per accogliere chorus [mono → stereo] e delay [stereo → stereo]).
- Selettore per due tipi di chorus (A/B) (mono → stereo), rotary o qualsivoglia effetto di modulazione stereo.
- Una uscita TUNER selezionabile da pulsante MUTE/TUNER.
- Da spento dovrebbe mantenere il contatto chiuso in tutti i loops, in modo da poter utilizzare la pedaliera anche in caso di problemi o mancanza di alimentazione. Si deve notare che, nel caso in cui si utilizzano relè monostabili, c'è un consumo superiore nel caso in cui non si utilizza alcun effetto (tutti i relè eccitati) rispetto a quando si utilizzano tutti (a riposo). Con relè bistabili il problema non esiste.
- Nel richiamo dei presets bisogna fare in modo che i relè già in posizione non si muovano. Bisogna fare attenzione durante la programmazione a non creare doppi movimenti, inutili per i relè e fastidiosi per il playing. Ad esempio no a reset+attivazione preset. Impostare l'algoritmo in modo che prima controlli la posizione e poi agisca se necessario.
- Si può pensare ad un software su PC/Mac che serva ad ordinare i preset, per dare nomi ai preset da visualizzare sull'LCD, per dare nomi ai Loop, ecc., e che possa memorizzare interi banchi di presets su file (funzioni importa/esporta). Sarebbe bello riuscire a fare qualcosa del genere su Processing, con interfaccia grafica. Per questa possibilità è indispensabile avere Arduino montato a bordo, non è sufficiente un Atmega, ci vuole anche la comunicazione USB/Seriale.
- Si può pensare anche ad una modalità "Direct", con la quale controllare su On/Off direttamente 4 loop a scelta, come fossero pedalini. Anche i led si comporteranno di conseguenza. Una funzione simile passando da modalità "Preset" permetterebbe di fare l'override manuale sui 4 loops senza memorizzare la nuova configurazione; riportando la modalità a "Preset" si ripristina l'ultima configurazione memorizzata (si dimentica la variazione temporanea). Le modalità "direct/presets" vengono shiftate con un pulsante a pedale (lo stesso che, se lo si tiene premuto per secondi, fa entrare il dispositivo in modalità "Programmazione").
- Spedire segnali MIDI con presa dedicata. Questo per controllare periferiche esterne (tipo Strymon TimeLine o il Virtualizer Pro Behringer per la voce).
INTERFACCIA
Si potrebbero realizzare fondamentalmente due tipi di interfaccia:
➊ Programmabile da USB, con ROM compilata e caricata su Arduino (con o senza LCD). Questa soluzione è più facile ed il codice è più snello perchè non c'è bisogno di algoritmi di navigazione o programmazione diretta dall'unità. Basta impostare la logica all'interno dello sketch da compilare. Però è impossibile modificare qualcosa, per esempio, in sala prove o dove non c'è un PC. Inoltre dopo mesi o anni, riprendere e modificare il codice per impostare diversamente la periferica può essere impegnativo.
➋ Programmabile da USB e da comandi sulla pedaliera (più complesso ma più versatile potendo essere configurata anche in sala prove). In questo caso si può utilizzare la EEPROM interna per salvare i presets e bisogna capire quante variabili e configurazioni è possibile salvare con 1024bytes a disposizione (Arduino Uno monta un ATmega328). Le variabili che possono essere memorizzate sono di tipo integer. Diventa fondamentale in questo caso l'LCD come guida per la programmazione 'on board'.
➊ Programmabile da USB, con ROM compilata e caricata su Arduino (con o senza LCD). Questa soluzione è più facile ed il codice è più snello perchè non c'è bisogno di algoritmi di navigazione o programmazione diretta dall'unità. Basta impostare la logica all'interno dello sketch da compilare. Però è impossibile modificare qualcosa, per esempio, in sala prove o dove non c'è un PC. Inoltre dopo mesi o anni, riprendere e modificare il codice per impostare diversamente la periferica può essere impegnativo.
➋ Programmabile da USB e da comandi sulla pedaliera (più complesso ma più versatile potendo essere configurata anche in sala prove). In questo caso si può utilizzare la EEPROM interna per salvare i presets e bisogna capire quante variabili e configurazioni è possibile salvare con 1024bytes a disposizione (Arduino Uno monta un ATmega328). Le variabili che possono essere memorizzate sono di tipo integer. Diventa fondamentale in questo caso l'LCD come guida per la programmazione 'on board'.
DIAGRAMMA, CATENA DEGLI EFFETTI
- Il selector inizia a controllare i loops dal numero 1, finisce al numero 8.
- Il pallino verde indica gli oggetti solamente controllati, che non fanno parte della catena audio principale.
- L'unità controlla, tramite un relè, il bypass del reverbero
- L'unità controlla, tramite relè, i channel switch degli ampli 1 e 2.
- In funzione "mute" l'unità manda il segnale al Tuner, sempre tramite relè.
- Riguardo al punto 7, voglio avere la possibilità di scegliere fra Modulation A e Modulation B in modo da avere sempre due suoni disponibili (flanger, chorus, rotary, ecc.).
- Riguardo al punto 6, voglio avere la possibilità di spostare il wah fra "prima" e "dopo" la sezione modulation. L'inserimento va fatto solo su uno dei due canali L/R in modo da avere il wah solo su AmpA e senza wah su AmpB. In questo caso, oltre ad avere il relè di bypass, bisogna spostare i punti di inserimento In/Out del Wah.
FORMA / LAYOUT DELLA PEDALBOARD
Un layout orientativo, per avere un'idea su come potrebbe essere fatta la TBSP, potrebbe essere il seguente.
DIAGRAMMI DI COLLEGAMENTO
INVERSIONE DI EFFETTO
Un'attenzione speciale merita il diagramma per l'inversione dell'effetto n.6 (in figura è il Wah). Per spostare l'effetto da un punto ad un altro della catena è sufficiente considerare unicamente il tratto interessato dall'inversione e diagrammare gli input e gli output sia dell'effetto da invertire, sia del blocco effetti compreso fra i due punti stessi. In questo caso il blocco effetti compreso fra i due punti di inversione coincide con la sola sezione chorus, ma potrebbe consistere in un numero qualsiasi di pedali in serie: basta considerarli come un unico blocco da 'saltare'. L'argomento nel suo complesso è trattato approfonditamente alla pagina Teoria degli interruttori.
Un'attenzione speciale merita il diagramma per l'inversione dell'effetto n.6 (in figura è il Wah). Per spostare l'effetto da un punto ad un altro della catena è sufficiente considerare unicamente il tratto interessato dall'inversione e diagrammare gli input e gli output sia dell'effetto da invertire, sia del blocco effetti compreso fra i due punti stessi. In questo caso il blocco effetti compreso fra i due punti di inversione coincide con la sola sezione chorus, ma potrebbe consistere in un numero qualsiasi di pedali in serie: basta considerarli come un unico blocco da 'saltare'. L'argomento nel suo complesso è trattato approfonditamente alla pagina Teoria degli interruttori.
In sostanza, per invertire due loop mono in true bypass, è necessario utilizzare 6 deviatori a due poli, realizzabili con 3 relè DPDT (o 2 x 3PDT, etc.).
CONFIGURAZIONE GENERALE DEL SISTEMA
Quella illustrata nell'immagine è una possibile configurazione generale del sistema. Le uscite (LCD, relè, leds, ecc.) richieste dall'unità superano abbondantemente quelle disponibili su Arduino. Per questo è necessario espandere il loro numero mediante l'utilizzo di integrati del tipo shift registers, i quali permettono di trasformare i dati inviati da Arduino dal formato seriale al formato parallelo. Gli 74HC595 sono perfetti per questo compito.
IMPORTANTE: I pins 0, 1 non devono essere utilizzati perchè servono alla trasmissione dei dati (comunicazione USB, caricamento sketches, ecc.). Evitare quindi di impostare soprattutto il pin 0 come Output, altrimenti Arduino non è più in grado di comunicare tramite la presa USB.
IMPORTANTE: I pins 0, 1 non devono essere utilizzati perchè servono alla trasmissione dei dati (comunicazione USB, caricamento sketches, ecc.). Evitare quindi di impostare soprattutto il pin 0 come Output, altrimenti Arduino non è più in grado di comunicare tramite la presa USB.
PORTA MIDI
Nella figura è rappresentato un tipico collegamento MIDI, utile a spedire una informazione (nota o comando). Grandi problemi non ce ne dovrebbero essere. E' chiaro che la progettazione si complica un pò, ma aumenta la flessibilità della pedaliera che può controllare anche altre periferiche. Senza entrare troppo nel dettaglio, si può pensare di associare ad ogni preset una informazione MIDI (anche vuota) da spedire e scelta dall'utente, che la imposta dopo aver letto il manuale della periferica da comandare.
INPUTS/OUTPUTS
INPUTS Arduino
OUTPUTS Arduino
|
INPUTS necessari
OUTPUTS necessari
|
Facciamo due conti:
6 inputs analogici vengono impegnati immediatamente da 6 pulsanti.
Restano 14 pin.
6 inputs analogici vengono impegnati immediatamente da 6 pulsanti.
Restano 14 pin.
14 - 2 tx = 12
12 - 2 inputs = 10 10 - 1 midi = 9 9 - 3 serial = 6 6 - 6 lcd = 0 |
pin 1 e 2 servono per la comunicazione USB, restano 12 pin
2 vengono utilizzati come inputs, restano 10 pin 1 viene utilizzato per l'uscita MIDI, restano 9 pin 3 pin vengono utilizzati per controllare i 74HC595, restano 6 pin 6 pin vengono utilizzati per comandare lo schermo LCD |
RELE' richiesti
Al di là del numero dei poli e delle caratteristiche elettriche, ci sono due tipi di relè: monostabili e bistabili. Il primo tipo ha una posizione di riposo e una posizione di attivazione che per essere mantenuta necessita di una tensione costante alla bobina; quando questa viene a mancare il relè torna nella posizione di riposo. I relè bistabili, invece, hanno due configurazioni (entrambe di riposo) e non hanno bisogno di essere mantenuti in tensione; le posizioni vengono decise eccitando per un breve periodo una delle due bobine presenti, oppure l'unica bobina presente scegliendone la polarità. Per i relè monostabili è sufficiente una tensione di controllo, per i relè bistabili sono necessarie due tensioni di controllo ciascuna delle quali corrisponde ad una delle due posizioni possibili.
Il numero di relè richiesti è quello necessario ad attivare le commutazioni dei diagrammi sopra illustrati. Quindi 19 relè bistabili così divisi:
- 6 DPDT (pedali mono da 1 a 6) → 12 pin
- 3 DPDT (inversione di effetto n.6, azionati contemporaneamente) → 2 pin
- 4 DPDT (2 effetti mono→stereo azionati contemporaneamente) → 4 pin
- 2 DPDT (1 effetto stereo, azionati contemporaneamente) → 2 pin
- 1 SPDT/DPDT (deviazione mute/tuner) → 2 pin
- 3 SPDT/DPDT opzionali (controllo unità esterne Reverbero, Amp A, Amp B) → 6 pin
Il numero di pin è il numero di segnali di controllo per l'attivazione dei relè. Alcuni relè sono azionati contemporaneamente, come nel caso dell'inversione di effetto. Questo gruppo di 3 relè può essere azionato alimentando contemporaneamente le loro bobine come fosse un unico relè: gli IC comandano un transistor per ciascuna posizione i quali provvederanno ad eccitare le relative bobine. Così riusciamo a risparmiare 4 uscite degli IC e relative linee di codice per la loro programmazione.
USCITE 74HC595 richieste
Ogni IC può controllare 8 uscite mediante le quali possiamo attivare LEDs e relè. Bisogna contare quante ne servono, tenendo presente che i relè sono bistabili (2 comandi ciascuno, come da elenco sopra).
|
|
In totale ho bisogno di 28 + 14 = 42 uscite IC.
Quindi ho bisogno di 6 IC (6x8=48).
IMPLEMENTAZIONE
- Arduino è fondamentalmente un PLC e non può soddisfare le richieste energetiche di tutti i led e i relè presenti. C'è bisogno di una PSU esterna che alimenti il tutto.
- I relè e i led non possono essere azionati neanche dagli IC stessi, quindi è necessario utilizzare un transistor per ogni pin;
- Bisogna dimensionare i transistor in modo che possano alimentare più relè contemporaneamente ove previsto;
- La luce dell'LCD deve essere alimentata, e bisogna prevedere un trimmer per la regolazione del contrasto. Per questa illuminazione si può realizzare una temporizzazione tramite uscita IC + transistor, oppure un semplice interruttore on/off sull'unità.
CONTINUA
Stato di avanzamento
|
Materiale acquistato
|
DOWNLOADSDATASHEETS
TECNICA
|
RIFERIMENTIGENERALI
http://arduino.cc/en/Tutorial/Memory http://www.arduino.cc/en/Reference/EEPROM http://www.ni.com/white-paper/3960/en http://www.mauroalfieri.it/elettronica/tutorial-usare-la-eeprom-di-arduino.html Latching relay H Bridge question http://arduino.cc/en/Tutorial/Midi PROGRAMMAZIONE ARDUINO http://diyroboticslab.wordpress.com/2009/06/09/blinking-binary-bits-and-bytes/ http://www.arduino.cc/playground/Code/BitMath http://www.arduino.cc/en/Reference/PortManipulation http://arduino.cc/forum/index.php/topic,41644.0.html http://arduino.cc/en/Reference/BitwiseAnd |