Përmbajtje:

Pedal për kitarë dhe efekte muzikore ATMega1284P: 6 hapa (me fotografi)
Pedal për kitarë dhe efekte muzikore ATMega1284P: 6 hapa (me fotografi)

Video: Pedal për kitarë dhe efekte muzikore ATMega1284P: 6 hapa (me fotografi)

Video: Pedal për kitarë dhe efekte muzikore ATMega1284P: 6 hapa (me fotografi)
Video: Live Concert Maria Marachowska Siberian Blues: Livestream On Tiktok 5.05.2023 2024, Nëntor
Anonim
Pedale për kitarë dhe efekte muzikore ATMega1284P
Pedale për kitarë dhe efekte muzikore ATMega1284P

Unë kam portuar Arduino Uno ATMega328 Pedalshield (e zhvilluar nga Electrosmash dhe pjesërisht e bazuar në punën në Open Music Lab) në ATMega1284P e cila ka tetë herë më shumë RAM se Uno (16kB kundrejt 2kB). Një përfitim shtesë i papritur është se ndërtimi Mega1284 ka një përbërës shumë më të ulët të zhurmës - në atë masë që kur krahasoj Uno dhe Mega1284 duke përdorur të njëjtin qark mbështetës, nuk është e paarsyeshme të përshkruhet Uno si "i zhurmshëm" dhe Mega1284 si " i qetë ". RAM -i më i madh do të thotë që mund të merret një efekt shumë më i gjatë vonesë - dhe kjo demonstrohet nga shembulli i skicës Arduino që kam përfshirë. Zhurma e frymëmarrjes në sfond kur përdorni efektin Tremelo gjithashtu (pothuajse) mungon me ATMega1284.

Një krahasim i tre mikroprocesorëve Atmel AVR, përkatësisht 328P që është Uno, 2560P që është Mega2560, dhe Mega1284 tregon se ky i fundit ka RAM -in më të madh nga të tre:

Aspekt 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 Kunja IO 23 32 86 Ndërprerje 2 3 8 Analog Në 6 8 16

Fillova me hipjen në bukë të pedalit SHIELD me bazë Uno si në specifikimet e Electrosmash, por nuk kisha të njëjtën RRO OpAmp siç ishte specifikuar. Si rezultat përfundova me një qark të cilin e konsiderova se jepte rezultate të pranueshme. Detajet e këtij versioni Uno janë dhënë në shtojcën 2.

Ky qark i njëjtë u transferua më pas në ATMega1284 - çuditërisht përveç ndryshimeve jo thelbësore siç është caktimi i çelsave dhe LED në një port të ndryshëm dhe ndarja e 12, 000 kB në vend të 2, 000 kB RAM për tamponin e vonesës, vetëm një ndryshim thelbësor duhej bërë në kodin burimor, përkatësisht ndryshimin e daljeve të Timer1/PWM OC1A dhe OC1B nga Porti B në Uno në Portin D (PD5 dhe PD4) në ATMega1284.

Më vonë zbulova modifikimet e shkëlqyera të qarkut elektrosmash nga Paul Gallagher dhe pas testimit, ky është qarku që do të paraqes këtu - por më pas edhe me modifikime: zëvendësimi i Uno me Mega1284, duke përdorur një Texas Instruments TLC2272 si OpAmp, dhe për shkak të performancës së shkëlqyer të zhurmës së Mega1284, unë gjithashtu mund të ngre nivelin e frekuencës së filtrit me kalim të ulët.

Importantshtë e rëndësishme të theksohet se megjithëse bordet e zhvillimit për ATMega1284 janë në dispozicion (Github: MCUdude MightyCore), është një ushtrim i lehtë për të blerë një çip të zhveshur (pa ngarkues) (blini versionin PDIP i cili është bordi i bukës dhe shiriti miqësore), pastaj ngarkoni pirunin Mark Pendrith të bootloader Maniacbug Mighty-1284p Core Optiboot ose MCUdude Mightycore, duke përdorur një Uno si programues ISP, dhe pastaj duke ngarkuar skica përsëri përmes Uno në AtMega1284. Detajet dhe lidhjet për këtë proces janë dhënë në shtojcën 1.

Unë do të doja të pranoja tre burimet më të rëndësishme nga të cilat mund të merren informacione të mëtejshme dhe do të japin lidhje me faqet e tyre të internetit dhe fundin e këtij artikulli: Electrosmash, Open Music Labs dhe Tardate/Paul Gallagher

Hapi 1: Lista e Pjesëve

ATMega1284P (Versioni i paketës PDIP 40 pin) Arduino Uno R3 (përdoret si një ISP për të transferuar ngarkuesin e nisjes dhe skicat në ATMega1284) OpAmp TLC2272 (ose RRIO të ngjashme (Hyrja dhe Dalja në Hekurudhë në Hekurudhë) OpAmp si MCP6002, LMC6482, TL Kondensatorë LED të kuq 16 MHz kristal 2 x 27 pF Kondensatorë 5 x 6n8 kondensatorë 270 pF 4 kondensatorë x 100n 2 x 10uF 16v kondensatorë elektrolitikë 6 x 4k7 rezistorë 100k rezistencë 2 x 1M rezistorë 470 ohm rezistencë 1M2 rezistencë 100k Potenciometër 3 x Çelësa të butonit (një prej tyre duhet të zëvendësohen me një ndërprerës këmbësh 3-polësh me 2 drejtime nëse kutia e efekteve do të përdoret për punë të drejtpërdrejta)

Hapi 2: Ndërtimi

Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim

Skema 1 jep qarkun e përdorur dhe Breadboard 1 është përfaqësimi i tij fizik (Fritzing 1) me Foto 1 qarkun aktual të bordit të bukës në funksionim. Mund të jetë e favorshme të kesh një potenciometër si një mikser për sinjalin e thatë (i barabartë me hyrjen) dhe të lagësht (pas përpunimit nga MCU), dhe Skematika 2, Breadboard 2 dhe Foto 2 (të listuara në Shtojcën 2), jep detajet e qarkut të një qarku të ndërtuar më parë i cili përfshin një hyrje të tillë në mikserin dalës. Shikoni gjithashtu Open Music Labs StompBox për një zbatim tjetër të mikserit duke përdorur katër OpAmps.

Fazat e hyrjes dhe daljes së OpAmp: isshtë e rëndësishme që të përdoret një RRO ose mundësisht një RRIO OpAmp për shkak të luhatjes së tensionit të madh të kërkuar në daljen e OpAmp në ADC të ATMega1284. Lista e pjesëve përmban një numër të llojeve alternative të OpAmp. Potenciometri 100k përdoret për të rregulluar fitimin e hyrjes në një nivel pak nën çdo shtrembërim, dhe gjithashtu mund të përdoret për të rregulluar ndjeshmërinë e hyrjes për një burim hyrës të ndryshëm nga një kitarë, siç është një muzikant. Faza e daljes OpAmp ka një filtër RC të rendit më të lartë për të hequr zhurmën e gjeneruar digjitale të MCU nga rryma audio.

Faza ADC: ADC është konfiguruar të lexojë përmes një ndërprerjeje gjatë gjithë kohës. Vini re se një kondensator 100nF duhet të lidhet midis kunjit AREF të ATMega1284 dhe tokëzimit për të zvogëluar zhurmën pasi një burim i brendshëm Vcc përdoret si një tension referimi - MOS e lidhni pinin AREF në +5 volt drejtpërdrejt!

Faza DAC PWM: Meqenëse ATMega1284 nuk ka DAC -në e vet, format valore audio dalëse gjenerohen duke përdorur një modulim të gjerësisë së pulsit të një filtri RC. Dy daljet PWM në PD4 dhe PD5 janë vendosur si byte të larta dhe të ulëta të daljes audio dhe përzihen me dy rezistorët (4k7 dhe 1M2) në një raport 1: 256 (bajt i ulët dhe bajt i lartë) - i cili gjeneron daljen audio Me Mund të jetë e vlefshme të eksperimentosh me çifte të tjera rezistence siç është çifti 3k9 1M ohm i përdorur nga Open Music Labs në StompBox -in e tyre.

Hapi 3: Softuer

Softueri bazohet në skicat elektrosmash, dhe shembulli i përfshirë (pedalshield1284delay.ino), është përshtatur nga skica e tyre e vonesës Uno. Disa nga çelsat dhe LED ishin zhvendosur në portet e tjera larg atyre të përdorura nga programuesi i ISP -së (SCLK, MISO, MOSI dhe Reset), tamponi i vonesës është rritur nga 2000 bytes në 12000 bytes, dhe PortD është vendosur si dalje për dy sinjale PWM. Edhe me rritjen e tamponit të vonesës, skica ende përdor vetëm rreth 70% të RAM -it të disponueshëm 1284.

Shembuj të tjerë të tillë si oktavatori ose tremolo nga uebfaqja e electrosmash për pedalin SHIELD Uno mund të përshtaten për përdorim nga Mega1284 duke ndryshuar tre seksione në kod:

(1) Ndrysho DDRB | = ((PWM_QTY << 1) | 0x02); në DDRD | = 0x30; // Ndryshimi i mësipërm është vetëm ndryshimi thelbësor i kodit // kur transferoni nga AtMega328 në ATMega1284

(2) Ndrysho #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

te

#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

(3) Ndrysho pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)

te

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT);

Butonat 1 dhe 2 përdoren në disa skica për të rritur ose zvogëluar një efekt. Në shembullin e vonesës rritet ose zvogëlohet koha e vonesës. Kur skica është ngarkuar për herë të parë fillon me efektin maksimal të vonesës. shtypni butonin poshtë - duhen rreth 20 sekonda për të numëruar deri në pozicionin e vonesës - dhe pastaj shtypni dhe mbani butonin lart. Dëgjoni se si efekti i fshirjes së mbajtjes në buton ndryshon efektin në atë të një faza, refreni dhe flangimi, si dhe vonesën kur lëshohet butoni.

Për të ndryshuar vonesën në një efekt jehonë (shtoni përsëritje) ndryshoni linjën:

DelayBuffer [DelayCounter] = ADC_high;

te

DelayBuffer [DelayCounter] = (ADC_high + (DelayBuffer [DelayCounter])) >> 1;

Ndërprerësi i këmbës duhet të jetë një ndërprerës trepalësh me dy drejtime dhe duhet të jetë i lidhur siç përshkruhet në faqen e internetit të electrosmash.

Hapi 4: Lidhjet

Lidhjet
Lidhjet

(1) Elektrosmash:

(2) Hapni Laboratorët e Muzikës:

(3) Paul Gallagher:

(4) Ngarkuesi 1284 1284:

(5) Mikrokontrolluesi ATmega1284 8bit AVR:

ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Mikrokontrollues

Hapi 5: Shtojca 1 Programimi i ATMega1284P

Shtojca 1 Programimi i ATMega1284P
Shtojca 1 Programimi i ATMega1284P
Shtojca 1 Programimi i ATMega1284P
Shtojca 1 Programimi i ATMega1284P
Shtojca 1 Programimi i ATMega1284P
Shtojca 1 Programimi i ATMega1284P

Ka disa faqe në internet që japin një shpjegim të mirë se si të programoni çipin e zhveshur ATMega1284 për t’u përdorur me Arduino IDE. Procesi është në thelb si më poshtë: (1) Instaloni pirunin Mark Pendrith të bootloader Maniacbug Mighty-1284p Core Optiboot në Arduino IDE. (2) Lidhni ATMega1284 në një tabelë me konfigurimin e tij minimal që është një kristal 16 MHz, 2 x 22 pF kondensatorë që bazojnë dy skajet e kristalit, Lidhni dy kunjat e tokëzimit së bashku (kunjat 11 dhe 31), dhe më pas në tokën Arduino Uno, lidhni Vcc dhe AVcc së bashku (kunjat 10 dhe 30), dhe më pas në Uno +5v, pastaj lidhni kunjin e rivendosjes 9 në kunjin Uno D10, kunjin MISO 7 në UNO D12, The MOSI kunja 8 tek Uno D11, dhe kunja SCLK 7 tek kunja Uno D13. (3) Lidhni Uno me Arduino IDE dhe ngarkoni shembullin e skicës Arduino si ISP në Uno. (4) Tani zgjidhni tabelën e fuqishme optiboot 1284 "maniak" dhe zgjidhni opsionin Burn bootloader. (5) Pastaj zgjidhni skicën e vonesës 1284 të dhënë këtu si shembull dhe ngarkojeni duke përdorur opsionin Uno si programues në menunë e skicave.

Lidhjet që shpjegojnë procesin në mënyrë më të detajuar janë:

Përdorimi i ATmega1284 me Arduino IDEArduino Mightycore për AVR -të të mëdha miqësore me bukë Ndërtimi i një prototipi ATMega1284p Arduino ATmega1284p bootloader

Hapi 6: Shtojca 2 Arduino Uno PedalSHIELD Variacioni

Shtojca 2 Arduino Uno PedalSHIELD Variacioni
Shtojca 2 Arduino Uno PedalSHIELD Variacioni
Shtojca 2 Arduino Uno PedalSHIELD Variacioni
Shtojca 2 Arduino Uno PedalSHIELD Variacioni
Shtojca 2 Arduino Uno PedalSHIELD Variacioni
Shtojca 2 Arduino Uno PedalSHIELD Variacioni

Schematic3, Breadboard3 dhe Photo3 jep detaje të qarkut me bazë Uno që i parapriu ndërtimit AtMega1284.

Mund të jetë e dobishme të kesh një potenciometër si një mikser për sinjalin e thatë (të barabartë me hyrjen) dhe të lagësht (pas përpunimit nga MCU), dhe Skematika 2, Breadboard 2 dhe Foto 2 jep detajet e qarkut të një qarku të ndërtuar më parë i cili inkorporon një hyrje të tillë në përzierësin dalës. Shikoni gjithashtu Open Music Labs StompBox për një zbatim tjetër të mikserit duke përdorur katër OpAmps

Recommended: