Indholdsfortegnelse:
- Trin 1: Deleliste
- Trin 2: Konstruktion
- Trin 3: Software
- Trin 4: Links
- Trin 5: Tillæg 1 Programmering af ATMega1284P
- Trin 6: Tillæg 2 Arduino Uno PedalSHIELD Variation
Video: ATMega1284P guitar- og musikeffektpedal: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Jeg har portet Arduino Uno ATMega328 Pedalshield (som udviklet af Electrosmash og delvist baseret på arbejde i Open Music Lab) til ATMega1284P, som har otte gange mere RAM end Uno (16kB versus 2kB). En ekstra uventet fordel er, at Mega1284 -bygningen har en meget lavere støjkomponent - i det omfang, når jeg sammenligner Uno og Mega1284 ved hjælp af det samme understøttelseskredsløb, er det ikke urimeligt at beskrive Uno som "støjende" og Mega1284 som " rolige". Den større RAM betyder, at der kan opnås en meget længere forsinkelseseffekt - og det demonstreres af Arduino -skitseeksemplet, som jeg har inkluderet. Baggrunds vejrtrækningsstøj ved brug af Tremelo -effekten er også (næsten) fraværende med ATMega1284.
En sammenligning af tre Atmel AVR -mikroprocessorer, nemlig 328P, der er Uno, 2560P, der er Mega2560, og Mega1284 viser, at sidstnævnte har mest RAM af de tre:
Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO Pins 23 32 86 Interrupts 2 3 8 Analog In 6 8 16
Jeg startede med at brød-boarde den ikke-baserede pedalSHIELD som i Electrosmash-specifikationen, men jeg havde ikke den samme RRO OpAmp som specificeret. Som et resultat endte jeg med et kredsløb, som jeg anså for at give acceptable resultater. Detaljerne i denne Uno -version er angivet i tillæg 2.
Det samme kredsløb blev derefter portet til ATMega1284 - overraskende bortset fra de ikke -væsentlige ændringer som f.eks. At tildele switches og LED til en anden port og tildele 12.000 kB i stedet for 2.000 kB RAM til forsinkelsesbufferen, kun en væsentlig ændring skulle foretages i kildekoden, nemlig ændring af Timer1/PWM OC1A og OC1B output fra Port B på Uno til Port D (PD5 og PD4) på ATMega1284.
Jeg opdagede senere de fremragende modifikationer af elektrosmash -kredsløbet af Paul Gallagher, og efter test er dette kredsløbet, jeg vil præsentere her - men derefter også med ændringer: udskiftning af Uno med Mega1284, ved hjælp af en Texas Instruments TLC2272 som OpAmp, og på grund af Mega1284's fremragende støjydelse kunne jeg også hæve lavpasfilterfrekvensniveauet.
Det er vigtigt at bemærke, at selvom udviklingsbrætter til ATMega1284 er tilgængelige (Github: MCUdude MightyCore), er det en let øvelse at købe den bare (bootloader-fri) chip (køb PDIP-versionen, som er brødbræt og strip-board) venlig), indlæs derefter Mark Pendrith-gaffelen på Maniacbug Mighty-1284p Core Optiboot-bootloaderen eller MCUdude Mightycore ved at bruge en Uno som ISP-programmør og derefter indlæse skitser igen via Uno til AtMega1284. Detaljer og links til denne proces er angivet i tillæg 1.
Jeg vil gerne anerkende de tre vigtigste kilder, hvorfra der kan fås yderligere oplysninger, og vil give links til deres websteder og slutningen af denne artikel: Electrosmash, Open Music Labs og Tardate/Paul Gallagher
Trin 1: Deleliste
ATMega1284P (PDIP 40 pin pakkeversion) Arduino Uno R3 (bruges som en ISP til at overføre bagagerummet og skitser til ATMega1284) OpAmp TLC2272 (eller lignende RRIO (Rail to Rail Input and Output) OpAmp såsom MCP6002, LMC6482, TL972) Rød LED 16 MHz krystal 2 x 27 pF kondensatorer 5 x 6n8 kondensatorer 270 pF kondensator 4 x 100n kondensatorer 2 x 10uF 16v elektrolytkondensatorer 6 x 4k7 modstande 100k modstand 2 x 1M modstande 470 ohm modstand 1M2 modstand 100k Potentiometer 3 x trykknapkontakter (en af dem skal erstattes med en 3-polet 2-vejs fodkontakt, hvis effektboksen skal bruges til levende arbejde)
Trin 2: Konstruktion
Skematisk 1 viser det anvendte kredsløb, og Breadboard 1 er dets fysiske repræsentation (Fritzing 1) med Foto 1 det faktiske brødbrættede kredsløb i drift. Det kan være en fordel at have et potentiometer som en mixer til det tørre (lig med input) og det våde (efter behandling af MCU) signalet, og skematisk 2, brødbræt 2 og foto 2 (angivet i tillæg 2), giver kredsløbsdetaljer for et tidligere konstrueret kredsløb, der inkorporerer en sådan input til output mixer. Se også på Open Music Labs StompBox for en anden mixerimplementering ved hjælp af fire OpAmps.
OpAmp Input og Output Stages: Det er vigtigt, at der bruges en RRO eller fortrinsvis en RRIO OpAmp på grund af den store spændingssving, der kræves ved OpAmp -udgangen til ADC'en i ATMega1284. Delelisten indeholder en række alternative OpAmp -typer. 100k potentiometeret bruges til at justere inputforstærkningen til et niveau lige under enhver forvrængning, og det kan også bruges til at justere inputfølsomheden for en anden inputkilde end en guitar, f.eks. En musikafspiller. OpAmp -udgangstrinnet har et RC -filter af højere orden for at fjerne den digitalt genererede MCU -støj fra lydstrømmen.
ADC -fase: ADC'en er konfigureret til at læse via en afbrydelse hele tiden. Bemærk, at en 100nF kondensator skal tilsluttes mellem AREF -stiften på ATMega1284 og jord for at reducere støj, da en intern Vcc -kilde bruges som referencespænding - tilslut IKKE AREF -stiften til +5 volt direkte!
DAC PWM -fase: Da ATMega1284 ikke har sin egen DAC, genereres output -lydbølgeformer ved hjælp af en pulsbreddemodulation af et RC -filter. De to PWM -udgange på PD4 og PD5 er indstillet som lydens høje og lave byte og blandes med de to modstande (4k7 og 1M2) i et 1: 256 -forhold (lav byte og høj byte) - som genererer lydoutput. Det kan være værd at eksperimentere med andre modstandspar, f.eks. 3k9 1M ohm -parret, der bruges af Open Music Labs i deres StompBox.
Trin 3: Software
Softwaren er baseret på elektrosmashskitserne, og eksemplet inkluderet (pedalshield1284delay.ino) er blevet tilpasset fra deres Uno delay -skitse. Nogle af switcherne og LED'en var blevet flyttet til andre porte væk fra dem, der blev brugt af ISP -programmereren (SCLK, MISO, MOSI og Reset), forsinkelsesbufferen er blevet øget fra 2000 bytes til 12000 bytes, og PortD er blevet angivet som output for de to PWM -signaler. Selv med stigningen i forsinkelsesbufferen bruger skitsen stadig kun omkring 70% af den tilgængelige 1284 RAM.
Andre eksempler, såsom octaver eller tremolo fra electrosmash -webstedet til pedalenSHIELD Uno kan tilpasses til brug af Mega1284 ved at ændre tre sektioner i koden:
(1) Skift DDRB | = ((PWM_QTY << 1) | 0x02); til DDRD | = 0x30; // Ændringen ovenfor er den KUN vigtige kodeændring // ved port fra AtMega328 til ATMega1284
(2) Skift #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
til
#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
(3) Skift pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)
til
pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT);
Trykknapperne 1 og 2 bruges i nogle af skitserne til at øge eller reducere en effekt. I forsinkelseseksemplet øges eller formindskes forsinkelsestiden. Når skitsen først indlæses, starter den med den maksimale forsinkelseseffekt. tryk på ned -knappen - det tager cirka 20 sekunder at tælle ned helt til forsinkelsespositionen - og tryk derefter på op -knappen og hold den inde. Lyt til, hvordan sweep -effekten ved at holde knappen inde ændrer effekten til en phaser, chorus og flanging, samt forsinkelsen, når knappen slippes.
For at ændre forsinkelsen til en ekkoeffekt (tilføj gentagelse) skal du ændre linjen:
DelayBuffer [DelayCounter] = ADC_high;
til
DelayBuffer [DelayCounter] = (ADC_high + (DelayBuffer [DelayCounter])) >> 1;
Fodkontakten skal være en trepolet tovejskontakt og skal tilsluttes som beskrevet på electrosmash -webstedet.
Trin 4: Links
(1) Elektrosmash:
(2) Åbn Music Labs:
(3) Paul Gallagher:
(4) 1284 Bootloader:
(5) ATmega1284 8bit AVR mikrokontroller:
ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Microcontroller
Trin 5: Tillæg 1 Programmering af ATMega1284P
Der er et par websteder, der giver en god forklaring på, hvordan man programmerer den blotte ATMega1284 -chip til brug med Arduino IDE. Processen er i det væsentlige som følger: (1) Installer Mark Pendrith-gaffelen på Maniacbug Mighty-1284p Core Optiboot bootloader i Arduino IDE. (2) Tilslut ATMega1284 på et brødbræt med en minimumskonfiguration, der er en 16 MHz krystal, 2 x 22 pF kondensatorer, der begrunder de to ender af krystallen, Tilslut de to jordstifter sammen (ben 11 og 31), og derefter til Arduino Uno -jorden, tilslut Vcc og AVcc sammen (ben 10 og 30) og derefter til Uno +5v, tilslut derefter nulstillingstappen 9 til Uno D10 -stiften, MISO -stiften 7 til UNO D12, MOSI pin 8 til Uno D11, og SCLK pin 7 til Uno D13 pin. (3) Tilslut Uno til Arduino IDE og indlæs skitseeksemplet Arduino som internetudbyder på Uno. (4) Vælg nu 1284 "maniac" mægtige optiboot board, og vælg indstillingen Burn bootloader. (5) Vælg derefter 1284 forsinkelsesskitsen, der er givet her som et eksempel, og upload den ved at bruge funktionen Uno som programmerer i skitsemenuen.
Links, der forklarer processen mere detaljeret, er:
Brug af ATmega1284 med Arduino IDEArduino Mightycore til store breadboard -venlige AVR'er Opbygning af en ATMega1284p prototype Arduino ATmega1284p bootloader
Trin 6: Tillæg 2 Arduino Uno PedalSHIELD Variation
Schematic3, Breadboard3 og Photo3 giver detaljer om det uno-baserede kredsløb, der gik forud for AtMega1284-opbygningen.
Det kan være en fordel at have et potentiometer som mixer til det tørre (lig med input) og det våde (efter behandling af MCU) signalet, og skematisk 2, Breadboard 2 og Foto 2 giver kredsløbets detaljer om et tidligere konstrueret kredsløb som inkorporerer en sådan input til output mixer. Se også på Open Music Labs StompBox for en anden mixerimplementering ved hjælp af fire OpAmps
Anbefalede:
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Akkord med smart guitar: 8 trin (med billeder)
Akkord, der viser smart guitar: Jeg er elektronikingeniør af profession og guitarist efter hobby. Jeg ville lave en guitar, der selv kan vise den begyndende guitarist, hvordan man spiller akkorder ved at vise den på gribebrættet. Så jeg besluttede mig for at ændre min akustiske guitar, så jeg
Guitar Hero Guitar Disconnecting Fix: 5 trin (med billeder)
Guitar Hero Guitar Disconnecting Fix: Så du har lige købt den dejlige brugte guitar hero -guitar fra ebay, og da den kom til dig, ville den bare ikke oprette forbindelse til den USB -dongle, så du tror, du lige har spildt 30 € skyllet ud. Men der er en løsning, og denne løsning vil sandsynligvis fungere
Guitar Hero Guitar med indbygget højttaler: 8 trin
Guitar Hero Guitar Med indbygget højttaler: Grundlæggende åbnede jeg en Guitar Hero controller og spekulerede på, hvad jeg kunne passe indeni. Det virkede let, så jeg tænkte, at der var masser af plads. Nok var der rigeligt. Oprindeligt planlagde jeg at lægge en iPod Shuffle i nakken på guitaren og
Episk! Guitar Hero - Double Neck Guitar Fail: 7 trin (med billeder)
Episk! Guitar Hero - Double Neck Guitar … Fail: 2015 markerer 10 års jubilæum for popkulturfænomenet Guitar Hero. Kan du huske, det videospil, der blev mere populært end musikinstrumentet, det kun vagt lykkedes at efterligne? Hvilken bedre måde at fejre dets årtusinde på end at