Talaan ng mga Nilalaman:

ATMega1284P Guitar at Mga Epekto ng Musika Pedal: 6 na Hakbang (na may Mga Larawan)
ATMega1284P Guitar at Mga Epekto ng Musika Pedal: 6 na Hakbang (na may Mga Larawan)

Video: ATMega1284P Guitar at Mga Epekto ng Musika Pedal: 6 na Hakbang (na may Mga Larawan)

Video: ATMega1284P Guitar at Mga Epekto ng Musika Pedal: 6 na Hakbang (na may Mga Larawan)
Video: Automatic Guitar Tuner - ATMega 1284P 2024, Nobyembre
Anonim
ATMega1284P Guitar at Mga Epekto ng Musika Pedal
ATMega1284P Guitar at Mga Epekto ng Musika Pedal

Na-port ko ang Arduino Uno ATMega328 Pedalshield (tulad ng binuo ng Electrosmash at sa bahagi batay sa trabaho sa Open Music Lab) sa ATMega1284P na mayroong walong beses na mas maraming RAM kaysa sa Uno (16kB kumpara sa 2kB). Ang isang karagdagang hindi inaasahang benepisyo ay ang pagbuo ng Mega1284 na may mas mababang bahagi ng ingay - hanggang sa ihambing ko ang Uno at ang Mega1284 na gumagamit ng parehong circuit ng suporta ay hindi makatuwiran na ilarawan ang Uno bilang "maingay" at ang Mega1284 bilang " tahimik". Ang mas malaking RAM ay nangangahulugan na ang isang mas mahabang epekto ng pagkaantala ay maaaring makuha - at ipinakita ng halimbawa ng sketch ng Arduino na isinama ko. Ang ingay sa paghinga sa background kapag gumagamit ng epekto ng Tremelo ay (halos) wala rin sa ATMega1284.

Ang isang paghahambing ng tatlong Atmel AVR microprocessors lalo na ang 328P na ang Uno, ang 2560P na ang Mega2560, at ang Mega1284 ay nagpapakita ng huli na mayroong pinaka RAM sa tatlo:

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

Nagsimula ako sa pamamagitan ng pagsakay sa tinapay sa Uno-based pedalSHIELD tulad ng sa detalye ng Electrosmash ngunit wala akong parehong RRO OpAmp na tinukoy. Bilang isang resulta natapos ako sa isang circuit na isinasaalang-alang kong magbigay ng mga katanggap-tanggap na mga resulta. Ang mga detalye ng bersyon na ito ng Uno ay ibinibigay sa apendise 2.

Ang parehong circuit na ito ay na-port sa ATMega1284 - nakakagulat na hiwalay sa mga hindi kinakailangang pagbabago tulad ng pagtatalaga ng mga switch at LED sa ibang port, at paglalaan ng 12, 000 kB sa halip na 2, 000 kB ng RAM para sa pagkaantala ng buffer, lamang isang mahalagang pagbabago ang kailangang gawin sa source code, katulad ng pagbabago ng mga output ng Timer1 / PWM OC1A at OC1B mula sa Port B sa Uno hanggang sa Port D (PD5 at PD4) sa ATMega1284.

Natuklasan ko kalaunan ang mahusay na mga pagbabago sa electrosmash circuit ni Paul Gallagher at pagkatapos ng pagsubok, ito ang circuit na ipapakita ko rito - ngunit kasama rin ang mga pagbabago: pagpapalit ng Uno sa Mega1284, gamit ang isang Texas Instruments TLC2272 bilang OpAmp, at dahil sa mahusay na pagganap ng ingay ng Mega1284, maaari ko ring itaas ang antas ng dalas ng low-pass na filter.

Mahalagang tandaan na kahit na ang mga board ng pag-unlad para sa ATMega1284 ay magagamit (Github: MCUdude MightyCore), ito ay isang madaling ehersisyo upang bumili ng hubad (walang bootloader) na chip (bilhin ang bersyon ng PDIP na tinapay-board at strip-board friendly), pagkatapos ay i-load ang Mark Pendrith fork ng Maniacbug Mighty-1284p Core Optiboot bootloader o ang MCUdude Mightycore, sa pamamagitan ng paggamit ng isang Uno bilang ISP programmer, at pagkatapos muling pag-load ng mga sketch sa pamamagitan ng Uno sa AtMega1284. Ang mga detalye at link para sa prosesong ito ay ibinibigay sa apendise 1.

Nais kong kilalanin ang tatlong pinakamahalagang mapagkukunan kung saan maaaring makuha ang karagdagang impormasyon at magbibigay ng mga link sa kanilang mga website at ang pagtatapos ng artikulong ito: Electrosmash, Open Music Labs, at Tardate / Paul Gallagher

Hakbang 1: Listahan ng Mga Bahagi

ATMega1284P (bersyon ng pakete ng PDIP 40 pin) Arduino Uno R3 (ginamit bilang isang ISP upang ilipat ang boot loader at mga sketch sa ATMega1284) OpAmp TLC2272 (o katulad na RRIO (Rail to Rail Input at Output) OpAmp tulad ng MCP6002, LMC6482, TL972) Red LED 16 MHz crystal 2 x 27 pF capacitors 5 x 6n8 capacitors 270 pF capacitor 4 x 100n capacitors 2 x 10uF 16v electrolytic capacitors 6 x 4k7 resistors 100k resistor 2 x 1M resistors 470 ohm resistor 1M2 resistor 100k Potentiometer 3 x pushbutton switch (isa sa mga ito ay dapat palitan ng isang 3-postong 2-way footswitch kung ang kahon ng mga epekto ay gagamitin para sa live na trabaho)

Hakbang 2: Konstruksiyon

Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon

Ibinibigay ng Schemmy 1 ang ginamit na circuit at ang Breadboard 1 ay ang pisikal na representasyon nito (Fritzing 1) na may Larawan 1 ang aktwal na circuit na nakasakay sa tinapay. Maaaring maging kapaki-pakinabang ang pagkakaroon ng potensyomiter bilang isang panghalo para sa tuyong (katumbas ng input) at basa (pagkatapos ng pagproseso ng MCU) signal, at ang Schematic 2, Breadboard 2 at Larawan 2 (nakalista sa Apendiks 2), ay nagbibigay ng mga detalye ng circuit ng isang dating itinayo na circuit na nagsasama ng tulad ng isang input sa output mixer. Tingnan din ang Open Music Labs StompBox para sa isa pang pagpapatupad ng panghalo gamit ang apat na OpAmps.

Mga yugto ng Input at Output ng OpAmp: Mahalaga na ang isang RRO o mas mabuti ang isang RRIO OpAmp ay ginagamit dahil sa malaking swing ng boltahe na kinakailangan sa output ng OpAmp sa ADC ng ATMega1284. Naglalaman ang listahan ng mga bahagi ng isang bilang ng mga kahalili na uri ng OpAmp. Ginagamit ang 100k potentiometer upang ayusin ang nakuha sa pag-input sa isang antas sa ibaba lamang ng anumang pagbaluktot, at maaari rin itong magamit upang ayusin ang pagkasensitibo sa pag-input para sa isang mapagkukunan ng pag-input bukod sa isang gitara tulad ng isang music player. Ang yugto ng output ng OpAmp ay may isang mas mataas na order ng RC filter upang alisin ang digital na nabuo na ingay ng MCU mula sa audio stream.

ADC Stage: Ang ADC ay naka-configure upang mabasa sa pamamagitan ng isang nakakagambala sa lahat ng buong oras. Tandaan na ang isang 100nF capacitor ay dapat na konektado sa pagitan ng mga AREF pin ng ATMega1284 at ground upang mabawasan ang ingay bilang isang panloob na mapagkukunan ng Vcc ay ginagamit bilang isang boltahe ng sanggunian - HUWAG direktang ikonekta ang AREF pin sa +5 volt direkta!

DAC PWM Stage: Dahil ang ATMega1284 ay walang sariling DAC, ang output audio waveforms ay nabuo gamit ang isang pulso lapad na modulate ng isang RC filter. Ang dalawang output ng PWM sa PD4 at PD5 ay itinakda bilang mataas at mababang byte ng audio output at halo-halong sa dalawang resistors (4k7 at 1M2) sa isang 1: 256 ratio (mababang byte at mataas na byte) - na bumubuo ng audio output. Maaaring sulit na mag-eksperimento sa iba pang mga pares ng resistor tulad ng pares ng 3k9 1M ohm na ginamit ng Open Music Labs sa kanilang StompBox.

Hakbang 3: Software

Ang software ay batay sa mga electrosmash sketch, at ang halimbawang kasama (pedalshield1284delay.ino), ay inangkop mula sa kanilang Uno delay sketch. Ang ilan sa mga switch at LED ay inilipat sa iba pang mga port na malayo sa mga ginamit ng programmer ng ISP (SCLK, MISO, MOSI at Reset), ang delay buffer ay nadagdagan mula 2000 bytes hanggang 12000 bytes, at ang PortD ay itinakda bilang output para sa dalawang signal ng PWM. Kahit na sa pagtaas ng pagkaantala ng buffer ang sketch ay gumagamit pa lamang ng tungkol sa 70% ng magagamit na 1284 RAM.

Ang iba pang mga halimbawa tulad ng octaver o tremolo mula sa website ng electrosmash para sa pedalSHIELD Uno ay maaaring iakma para magamit ng Mega1284 sa pamamagitan ng pagbabago ng tatlong mga seksyon sa code:

(1) Baguhin ang DDRB | = (((PWM_QTY << 1) | 0x02); sa DDRD | = 0x30; // Ang pagbabago sa itaas ay ang LAMANG mahalagang pagbabago ng code // kapag nag-port mula sa AtMega328 patungong ATMega1284

(2) Palitan ang #define LED 13 # tukuyin FOOTSWITCH 12 # tukuyin ang TOGGLE 2 # tukuyin ang PUSHBUTTON_1 A5 # tukuyin ang PUSHBUTTON_2 A4

sa

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

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

sa

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

Ang mga pushbutton na 1 at 2 ay ginagamit sa ilan sa mga sketch upang madagdagan o mabawasan ang isang epekto. Sa halimbawa ng pagkaantala ay nadaragdagan o nababawasan ang oras ng pagkaantala. Kapag na-load ang sketch ay nagsisimula ito sa maximum na epekto ng pagkaantala. pindutin ang down button - tumatagal ng halos 20 segundo upang mabilang hanggang sa posisyon ng pagka-antala - at pagkatapos ay pindutin nang matagal ang pataas na pindutan. Makinig kung paano ang epekto ng sweep ng paghawak sa pindutan na binabago ang epekto sa isang phaser, chorus at flanging, pati na rin ang pagkaantala kapag ang pindutan ay pinakawalan.

Upang baguhin ang pagkaantala sa isang epekto ng echo (magdagdag ng pag-uulit) palitan ang linya:

DelayBuffer [DelayCounter] = ADC_high;

sa

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

Ang footswitch ay dapat na isang tatlong pol two way switch at dapat na konektado tulad ng inilarawan sa website ng electrosmash.

Hakbang 4: Mga Link

Mga link
Mga link

(1) Electrosmash:

(2) Buksan ang Music Labs:

(3) Paul Gallagher:

(4) 1284 Bootloader:

(5) ATmega1284 8bit AVR Microcontroller:

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

Hakbang 5: Appendix 1 Programming ang ATMega1284P

Apendiks 1 Programming ang ATMega1284P
Apendiks 1 Programming ang ATMega1284P
Apendiks 1 Programming ang ATMega1284P
Apendiks 1 Programming ang ATMega1284P
Apendiks 1 Programming ang ATMega1284P
Apendiks 1 Programming ang ATMega1284P

Mayroong ilang mga website na nagbibigay ng isang mahusay na paliwanag sa kung paano i-program ang hubad na ATMega1284 chip para magamit sa Arduino IDE. Mahalaga ang proseso tulad ng sumusunod: (1) I-install ang Mark Pendrith fork ng Maniacbug Mighty-1284p Core Optiboot bootloader sa Arduino IDE. (2) Wire up ang ATMega1284 sa isang breadboard na may pinakamaliit na pagsasaayos na isang 16 MHz na kristal, 2 x 22 pF capacitor na pinagbabatayan ng dalawang dulo ng kristal, ikonekta ang dalawang mga ground pin na magkasama (pin 11 at 31), at pagkatapos sa Arduino Uno ground, ikonekta ang Vcc at AVcc nang magkasama (pin 10 at 30), at pagkatapos ay sa Uno + 5v, pagkatapos ay ikonekta ang reset pin 9 sa Uno D10 pin, ang MISO pin 7 sa UNO D12, The MOSI i-pin ang 8 sa Uno D11, at ang SCLK pin 7 sa Uno D13 pin. (3) Ikonekta ang Uno sa Arduino IDE at i-load ang halimbawa ng sketch na Arduino bilang ISP papunta sa Uno. (4) Ngayon piliin ang 1284 "maniac" malakas na optiboot board, at piliin ang opsyong Burn bootloader. (5) Pagkatapos ay piliin ang 1284 pagkaantala ng sketch na ibinigay dito bilang isang halimbawa at i-upload ito sa pamamagitan ng paggamit ng pagpipiliang Uno bilang programmer sa menu ng mga sketch.

Ang mga link na nagpapaliwanag ng proseso nang mas detalyado ay:

Gamit ang ATmega1284 kasama ang Arduino IDEArduino Mightycore para sa malaking AVboard ng friendly na breadboard Pagbuo ng isang prototype ng ATMega1284pArduino ATmega1284p bootloader

Hakbang 6: Appendix 2 Arduino Uno PedalSHIELD Variation

Appendix 2 Arduino Uno PedalSHIELD Variation
Appendix 2 Arduino Uno PedalSHIELD Variation
Appendix 2 Arduino Uno PedalSHIELD Variation
Appendix 2 Arduino Uno PedalSHIELD Variation
Appendix 2 Arduino Uno PedalSHIELD Variation
Appendix 2 Arduino Uno PedalSHIELD Variation

Nagbibigay ang Schematic3, Breadboard3, at Photo3 ng mga detalye ng Uno-based circuit na nauna sa pagbuo ng AtMega1284.

Maaaring maging kapaki-pakinabang ang pagkakaroon ng potensyomiter bilang isang panghalo para sa tuyong (katumbas ng input) at basa (pagkatapos ng pagproseso ng MCU) signal, at ang Schematic 2, Breadboard 2 at Photo 2 ay nagbibigay ng mga detalye ng circuit ng isang dati nang itinayo na circuit na nagsasama ng tulad ng isang input sa output mixer. Tingnan din ang Open Music Labs StompBox para sa isa pang pagpapatupad ng panghalo gamit ang apat na OpAmps

Inirerekumendang: