Sommario:
- Passaggio 1: elenco delle parti
- Fase 2: Costruzione
- Passaggio 3: software
- Passaggio 4: collegamenti
- Fase 5: Appendice 1 Programmazione di ATMega1284P
- Passaggio 6: Appendice 2 Variazione Arduino Uno PedalSHIELD
Video: ATMega1284P Pedale per effetti per chitarra e musica: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Ho portato Arduino Uno ATMega328 Pedalshield (come sviluppato da Electrosmash e in parte basato sul lavoro presso l'Open Music Lab) su ATMega1284P che ha otto volte più RAM dell'Uno (16kB contro 2kB). Un ulteriore vantaggio inaspettato è che la build Mega1284 ha un componente di rumore molto più basso - nella misura in cui quando confronto Uno e Mega1284 usando lo stesso circuito di supporto non è irragionevole descrivere Uno come "rumoroso" e il Mega1284 come " calmatevi". La RAM più grande significa che è possibile ottenere un effetto di ritardo molto più lungo - e questo è dimostrato dall'esempio di schizzo di Arduino che ho incluso. Anche il rumore di fondo della respirazione quando si utilizza l'effetto Tremelo è (quasi) assente con ATMega1284.
Un confronto tra tre microprocessori Atmel AVR, ovvero il 328P che è l'Uno, il 2560P che è il Mega2560 e il Mega1284 mostra che quest'ultimo ha la maggior quantità di RAM dei tre:
Aspetto 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 Pin IO 23 32 86 Interrupt 2 3 8 Ingresso analogico 6 8 16
Ho iniziato con il breadboarding del pedalSHIELD basato su Uno come nelle specifiche Electrosmash, ma non avevo lo stesso OpAmp RRO come specificato. Di conseguenza mi sono ritrovato con un circuito che ho ritenuto dare risultati accettabili. I dettagli di questa versione Uno sono riportati nell'appendice 2.
Questo stesso circuito è stato poi portato su ATMega1284 - sorprendentemente a parte le modifiche non essenziali come l'assegnazione degli interruttori e del LED a una porta diversa e l'allocazione di 12.000 kB invece di 2.000 kB di RAM per il buffer di ritardo, solo è stato necessario apportare una modifica essenziale al codice sorgente, ovvero modificare le uscite Timer1/PWM OC1A e OC1B dalla porta B dell'Uno alla porta D (PD5 e PD4) dell'ATMega1284.
In seguito ho scoperto le eccellenti modifiche al circuito dell'elettrosmash di Paul Gallagher e dopo aver provato, questo è il circuito che presenterò qui - ma poi anche con modifiche: sostituzione dell'Uno con il Mega1284, utilizzando un Texas Instruments TLC2272 come OpAmp, e a causa delle eccellenti prestazioni di rumore del Mega1284, potrei anche aumentare il livello di frequenza del filtro passa-basso.
È importante notare che sebbene siano disponibili schede di sviluppo per ATMega1284 (Github: MCUdude MightyCore), è un esercizio facile acquistare il chip nudo (senza bootloader) (acquistare la versione PDIP che è bread-board e strip-board friendly), quindi caricare il fork di Mark Pendrith del bootloader Maniacbug Mighty-1284p Core Optiboot o MCUdude Mightycore, utilizzando uno come programmatore ISP, quindi caricare nuovamente gli sketch tramite Uno su AtMega1284. I dettagli e i collegamenti per questo processo sono forniti nell'appendice 1.
Vorrei ringraziare le tre fonti più importanti da cui è possibile ottenere ulteriori informazioni e fornirò i collegamenti ai loro siti Web e alla fine di questo articolo: Electrosmash, Open Music Labs e Tardate/Paul Gallagher
Passaggio 1: elenco delle parti
ATMega1284P (versione del pacchetto PDIP 40 pin) Arduino Uno R3 (utilizzato come ISP per trasferire il boot loader e gli sketch all'ATMega1284) OpAmp TLC2272 (o simile RRIO (Rail to Rail Input and Output) come MCP6002, LMC6482, TL972) LED rosso Cristallo 16 MHz Condensatori 2 x 27 pF 5 x condensatori 6n8 Condensatore 270 pF 4 condensatori 100n 2 x condensatori elettrolitici 10uF 16v 6 x resistori 4k7 resistore 100k 2 x resistori 1M resistore 470 ohm Resistore 1M2 100k Potenziometro 3 x interruttori a pulsante (uno di questi dovrebbero essere sostituiti con un interruttore a pedale a 3 poli a 2 vie se la scatola degli effetti verrà utilizzata per il lavoro dal vivo)
Fase 2: Costruzione
Lo schema 1 fornisce il circuito utilizzato e Breadboard 1 è la sua rappresentazione fisica (Fritzing 1) con Foto 1 il circuito breadboard effettivo in funzione. Può essere vantaggioso avere un potenziometro come mixer per il segnale dry (uguale all'ingresso) e wet (dopo l'elaborazione da parte dell'MCU), e Schematic 2, Breadboard 2 e Photo 2 (elencati nell'Appendice 2), fornisce il dettagli circuitali di un circuito precedentemente costruito che incorpora un tale mixer da ingresso a uscita. Guarda anche l'Open Music Labs StompBox per un'altra implementazione del mixer usando quattro OpAmp.
Fasi di ingresso e uscita dell'amplificatore operazionale: è importante utilizzare un amplificatore operazionale RRO o preferibilmente un amplificatore operazionale RRIO a causa della grande oscillazione di tensione richiesta all'uscita dell'amplificatore operazionale verso l'ADC di ATMega1284. L'elenco delle parti contiene una serie di tipi di amplificatori operazionali alternativi. Il potenziometro da 100k viene utilizzato per regolare il guadagno in ingresso a un livello appena al di sotto di qualsiasi distorsione e può anche essere utilizzato per regolare la sensibilità in ingresso per una sorgente di ingresso diversa da una chitarra come un lettore musicale. Lo stadio di uscita OpAmp ha un filtro RC di ordine superiore per rimuovere il rumore MCU generato digitalmente dal flusso audio.
Fase ADC: L'ADC è configurato per leggere tramite un interrupt per tutto il tempo. Si noti che è necessario collegare un condensatore da 100 nF tra il pin AREF dell'ATMega1284 e la terra per ridurre il rumore poiché una sorgente Vcc interna viene utilizzata come tensione di riferimento - NON collegare direttamente il pin AREF a +5 volt!
DAC PWM Stage: Poiché ATMega1284 non dispone di un proprio DAC, le forme d'onda audio in uscita vengono generate utilizzando una modulazione a larghezza di impulso di un filtro RC. Le due uscite PWM su PD4 e PD5 sono impostate come byte alto e basso dell'uscita audio e mescolate con i due resistori (4k7 e 1M2) in un rapporto 1:256 (byte basso e byte alto) - che genera l'uscita audio. Potrebbe valere la pena sperimentare con altre coppie di resistori come la coppia 3k9 1M ohm utilizzata da Open Music Labs nel loro StompBox.
Passaggio 3: software
Il software è basato sugli sketch dell'elettrosmash e l'esempio incluso (pedalshield1284delay.ino), è stato adattato dal loro sketch Uno delay. Alcuni degli interruttori e dei LED sono stati spostati su altre porte lontane da quelle utilizzate dal programmatore ISP (SCLK, MISO, MOSI e Reset), il buffer di ritardo è stato aumentato da 2000 byte a 12000 byte e PortD è stato impostato come uscita per i due segnali PWM. Anche con l'aumento del buffer di ritardo, lo sketch utilizza ancora solo il 70% circa della 1284 RAM disponibile.
Altri esempi come l'octaver o il tremolo dal sito web electrosmash per il pedalSHIELD Uno possono essere adattati per l'uso dal Mega1284 modificando tre sezioni nel codice:
(1) Modifica DDRB |= ((PWM_QTY << 1) | 0x02); a DDRD |= 0x30;// La modifica sopra è l'UNICA modifica essenziale del codice // durante il porting da AtMega328 a ATMega1284
(2) Modifica #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
a
#define LED PB0 #define PULSANTE PB1 #define PULSANTE_1 A5 #define PULSANTE_2 A4
(3) Cambia pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode(TOGGLE, INPUT_PULLUP); pinMode(PUSHBUTTON_1, INPUT_PULLUP); pinMode(PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, USCITA)
a
pinMode(FOOTSWITCH, INPUT_PULLUP); pinMode(PUSHBUTTON_1, INPUT_PULLUP); pinMode(PUSHBUTTON_2, INPUT_PULLUP); pinMode(LED, USCITA);
I pulsanti 1 e 2 vengono utilizzati in alcuni schizzi per aumentare o diminuire un effetto. Nell'esempio del ritardo aumenta o diminuisce il tempo di ritardo. Quando lo schizzo viene caricato per la prima volta, inizia con l'effetto di ritardo massimo. premere il pulsante giù - ci vogliono circa 20 secondi per il conto alla rovescia fino alla posizione di ritardo - quindi premere e tenere premuto il pulsante su. Ascolta come l'effetto sweep di tenere premuto il pulsante cambia l'effetto in quello di phaser, chorus e flanging, nonché il ritardo quando il pulsante viene rilasciato.
Per modificare il ritardo in un effetto eco (aggiungere ripetizione) modificare la linea:
DelayBuffer[DelayCounter] = ADC_high;
a
DelayBuffer[DelayCounter] = (ADC_high + (DelayBuffer[DelayCounter]))>>1;
L'interruttore a pedale dovrebbe essere un interruttore a due vie a tre poli e deve essere collegato come descritto sul sito web di Electrosmash.
Passaggio 4: collegamenti
(1) Elettroshock:
(2) Laboratori musicali aperti:
(3) Paolo Gallagher:
(4) 1284 Bootloader:
(5) Microcontrollore AVR ATmega1284 a 8 bit:
ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 Microcontrollore AVR 8bit
Fase 5: Appendice 1 Programmazione di ATMega1284P
Esistono alcuni siti Web che forniscono una buona spiegazione su come programmare il chip ATMega1284 nudo per l'utilizzo con l'IDE Arduino. Il processo è essenzialmente il seguente: (1) Installare il fork di Mark Pendrith del bootloader Maniacbug Mighty-1284p Core Optiboot nell'IDE Arduino. (2) Collegare l'ATMega1284 su una breadboard con la sua configurazione minima che è un cristallo da 16 MHz, condensatori 2 x 22 pF che mettono a terra le due estremità del cristallo, collegare i due pin di terra insieme (pin 11 e 31), quindi alla massa di Arduino Uno, collegare Vcc e AVcc insieme (pin 10 e 30), quindi a Uno +5v, quindi collegare il pin 9 di reset al pin Uno D10, il pin 7 MISO a UNO D12, Il MOSI pin 8 a Uno D11 e il pin 7 SCLK al pin Uno D13. (3) Collegare Uno all'IDE Arduino e caricare l'esempio di schizzo Arduino come ISP su Uno. (4) Ora seleziona la potente scheda optiboot 1284 "maniac" e scegli l'opzione Burn bootloader. (5) Quindi selezionare lo sketch di ritardo 1284 fornito qui come esempio e caricarlo utilizzando l'opzione Uno come programmatore nel menu degli sketch.
I link che spiegano il processo in modo più dettagliato sono:
Utilizzo di ATmega1284 con Arduino IDEArduino Mightycore per AVR compatibili con breadboard di grandi dimensioni Creazione di un prototipo ATMega1284p Bootloader Arduino ATmega1284p
Passaggio 6: Appendice 2 Variazione Arduino Uno PedalSHIELD
Schematic3, Breadboard3 e Photo3 forniscono dettagli sul circuito basato su Uno che ha preceduto la build AtMega1284.
Può essere vantaggioso avere un potenziometro come mixer per il segnale dry (uguale all'ingresso) e wet (dopo l'elaborazione da parte dell'MCU), e Schematic 2, Breadboard 2 e Photo 2 forniscono i dettagli del circuito di un circuito precedentemente costruito che incorpora un tale mixer da ingresso a uscita. Guarda anche l'Open Music Labs StompBox per un'altra implementazione del mixer usando quattro OpAmp
Consigliato:
Pedale overdrive alimentato a batteria fai-da-te per effetti per chitarra: 5 passaggi
Pedale overdrive alimentato a batteria fai-da-te per effetti per chitarra: per l'amore per la musica o per l'amore per l'elettronica, lo scopo di questo Instructable è mostrare quanto sia fondamentale l'amplificatore operazionale SLG88104V Rail to Rail I/O 375nA Quad con i suoi avanzamenti a bassa potenza e bassa tensione può essere quello di rivoluzionare i circuiti overdrive. Ti
Pedale Proto per effetti per chitarra fai da te: 5 passaggi (con immagini)
Pedale Proto per effetti per chitarra fai da te: progettare e costruire i tuoi effetti per chitarra è un ottimo modo per combinare la passione per l'elettronica e la chitarra. Tuttavia, durante il test di nuovi progetti, ho riscontrato che il fragile circuito sulla breadboard senza saldatura era difficile da collegare alla patch c
Fai da te Rat Clone Distortion Pedale effetti per chitarra - the Dead RAT: 5 passaggi (con immagini)
Pedale effetti per chitarra con distorsione clone di ratto fai da te - il ratto morto: questo non è un pedale di distorsione di Topolino! Questo pedale è un clone di uno dei miei effetti a pedale preferiti degli anni '80… RAT Distortion di ProCo. È un pedale di distorsione OpAmp di base che utilizza il classico chip IC LM308N che è una costruzione abbastanza semplice per
Interruttore a pedale per Mac OS da un pedale di amplificatore per chitarra: 12 passaggi
Interruttore a pedale per Mac OS da un pedale per amplificatore per chitarra. Hai bisogno di un pedale per il tuo Mac? Hai un pedale per chitarra a due interruttori e una scheda arduino in giro? Un paio di fili, un tre poli 1/4" jack e sei a posto. Ho dovuto fare un po 'di trascrizione audio e ho usato il mio pedale per riprodurre / mettere in pausa e saltare ba
Custodia per effetti valvolare per chitarra e alimentatore: 7 passaggi (con immagini)
Custodia effetto valvola e alimentatore per chitarra: questa sarà una fonte di alimentazione e un telaio per un pedale effetto valvola a base di chitarra. Lo stavo cercando di capire mentre procedevo, quindi la progressione che mostrerò non era necessariamente l'ordine che ho seguito: quello che segue è un percorso idealizzato, riorganizzato e non adatto