Isi kandungan:

Pedal Efek Gitar dan Muzik ATMega1284P: 6 Langkah (dengan Gambar)
Pedal Efek Gitar dan Muzik ATMega1284P: 6 Langkah (dengan Gambar)

Video: Pedal Efek Gitar dan Muzik ATMega1284P: 6 Langkah (dengan Gambar)

Video: Pedal Efek Gitar dan Muzik ATMega1284P: 6 Langkah (dengan Gambar)
Video: Untuk Pemula Dalam Memilih Sound Effect Gitar Untuk Memainkan Genre Musik Distortion atau Overdrive 2024, Julai
Anonim
Pedal Kesan Gitar dan Muzik ATMega1284P
Pedal Kesan Gitar dan Muzik ATMega1284P

Saya telah menghantar Arduino Uno ATMega328 Pedalshield (seperti yang dikembangkan oleh Electrosmash dan sebahagiannya berdasarkan kerja di Open Music Lab) ke ATMega1284P yang mempunyai RAM lapan kali lebih banyak daripada Uno (16kB berbanding 2kB). Manfaat tambahan yang tidak dijangka adalah bahawa binaan Mega1284 mempunyai komponen kebisingan yang jauh lebih rendah - sejauh mana apabila saya membandingkan Uno dan Mega1284 menggunakan litar sokongan yang sama, tidak masuk akal untuk menggambarkan Uno sebagai "bising" dan Mega1284 sebagai " senyap". RAM yang lebih besar bermaksud kesan penangguhan yang lebih lama dapat diperoleh - dan itu ditunjukkan oleh contoh lakaran Arduino yang telah saya sertakan. Bunyi pernafasan latar semasa menggunakan kesan Tremelo juga (hampir) tidak ada dengan ATMega1284.

Perbandingan tiga mikropemproses Atmel AVR iaitu 328P yang merupakan Uno, 2560P yang merupakan Mega2560, dan Mega1284 menunjukkan yang terakhir mempunyai RAM terbanyak dari ketiga:

Aspek 328P 1284P 2560P RAM 2k 16k 8k Kilat 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 Pin IO 23 32 86 Selang 2 3 8 Analog Dalam 6 8 16

Saya mulakan dengan menaiki roti pedal berasaskan UnoSHIELD seperti dalam spesifikasi Electrosmash tetapi saya tidak mempunyai RRO OpAmp yang sama seperti yang ditentukan. Akibatnya saya berakhir dengan litar yang saya anggap memberikan hasil yang boleh diterima. Perincian versi Uno ini diberikan dalam lampiran 2.

Litar yang sama ini kemudian disalurkan ke ATMega1284 - secara mengejutkan selain daripada perubahan yang tidak penting seperti menetapkan suis dan LED ke port yang berbeza, dan memperuntukkan 12, 000 kB dan bukannya 2, 000 kB RAM untuk penunda tunda, hanya satu perubahan penting harus dilakukan dalam kod sumber, iaitu menukar output Timer1 / PWM OC1A dan OC1B dari Port B di Uno ke Port D (PD5 dan PD4) di ATMega1284.

Saya kemudian menemui pengubahsuaian yang sangat baik pada litar elektrosmash oleh Paul Gallagher dan setelah menguji, inilah litar yang akan saya paparkan di sini - tetapi kemudian juga dengan pengubahsuaian: penggantian Uno dengan Mega1284, menggunakan Texas Instruments TLC2272 sebagai OpAmp, dan kerana prestasi bunyi Mega1284 yang sangat baik, saya juga dapat meningkatkan tahap frekuensi penapis lulus rendah.

Penting untuk diperhatikan bahawa walaupun papan pengembangan untuk ATMega1284 tersedia (Github: MCUdude MightyCore), adalah mudah untuk membeli cip (tanpa bootloader) yang kosong (beli versi PDIP yang merupakan papan roti dan papan jalur mesra), kemudian muatkan garpu Mark Pendrith dari bootloader Maniacbug Mighty-1284p Core Optiboot atau MCUdude Mightycore, dengan menggunakan Uno sebagai pengaturcara ISP, dan kemudian memuatkan sketsa lagi melalui Uno ke AtMega1284. Perincian dan pautan untuk proses ini diberikan dalam lampiran 1.

Saya ingin mengetahui tiga sumber terpenting dari mana maklumat lanjut dapat diperoleh dan akan memberikan pautan ke laman web mereka dan akhir artikel ini: Electrosmash, Open Music Labs, dan Tardate / Paul Gallagher

Langkah 1: Senarai Bahagian

ATMega1284P (versi paket PDIP 40 pin) Arduino Uno R3 (digunakan sebagai ISP untuk memindahkan boot loader dan sketsa ke ATMega1284) OpAmp TLC2272 (atau RRIO (Rail to Rail Input and Output) OpAmp seperti MCP6002, LMC6482, TL972) Kapasitor merah LED 16 MHz 2 x 27 pF kapasitor 5 x 6n8 kapasitor 270 pF kapasitor 4 x 100n kapasitor 2 x 10uF 16v kapasitor elektrolitik 6 x 4k7 perintang 100k perintang 2 x 1M perintang 470 ohm perintang 1M2 perintang 100k Potensiometer 3 x tekan butang (satu daripadanya harus diganti dengan alas kaki 3-tiang 2-arah jika kotak kesan akan digunakan untuk kerja langsung)

Langkah 2: Pembinaan

Pembinaan
Pembinaan
Pembinaan
Pembinaan
Pembinaan
Pembinaan

Skema 1 memberikan litar yang digunakan dan Breadboard 1 adalah gambaran fizikalnya (Fritzing 1) dengan Foto 1 litar papan roti sebenar yang sedang beroperasi. Mungkin menguntungkan untuk memiliki potensiometer sebagai pengadun untuk isyarat kering (sama dengan input) dan basah (setelah diproses oleh MCU), dan Skema 2, Papan Roti 2 dan Foto 2 (disenaraikan dalam Lampiran 2), memberikan perincian litar litar yang dibina sebelumnya yang memasukkan input ke output mixer. Lihat juga Open Music Labs StompBox untuk pelaksanaan mixer lain menggunakan empat OpAmps.

Tahap Input dan Output OpAmp: Penting bahawa RRO atau lebih baik OpAmp RRIO digunakan kerana ayunan voltan besar yang diperlukan pada output OpAmp ke ADC ATMega1284. Senarai bahagian mengandungi sebilangan jenis OpAmp alternatif. Potensiometer 100k digunakan untuk menyesuaikan keuntungan input ke tahap di bawah distorsi apa pun, dan ia juga dapat digunakan untuk menyesuaikan kepekaan input untuk sumber input selain gitar seperti pemain muzik. Tahap output OpAmp mempunyai penapis RC yang lebih tinggi untuk menghilangkan bunyi MCU yang dihasilkan secara digital dari aliran audio.

Peringkat ADC: ADC dikonfigurasi untuk dibaca melalui gangguan sepanjang masa. Perhatikan bahawa kapasitor 100nF harus dihubungkan antara pin AREF ATMega1284 dan arde untuk mengurangkan bunyi kerana sumber Vcc dalaman digunakan sebagai voltan rujukan - JANGAN sambungkan pin AREF ke +5 volt secara langsung!

Tahap DAC PWM: Oleh kerana ATMega1284 tidak mempunyai DAC sendiri, bentuk gelombang audio output dihasilkan menggunakan modulasi lebar nadi penapis RC. Dua output PWM pada PD4 dan PD5 ditetapkan sebagai byte tinggi dan rendah output audio dan dicampurkan dengan dua perintang (4k7 dan 1M2) dalam nisbah 1: 256 (bait rendah dan bita tinggi) - yang menghasilkan output audio. Mungkin bermanfaat untuk bereksperimen dengan pasangan perintang lain seperti pasangan ohm 3k9 1M yang digunakan oleh Open Music Labs di StompBox mereka.

Langkah 3: Perisian

Perisian ini berdasarkan sketsa elektrosmash, dan contoh yang disertakan (pedalshield1284delay.ino), telah diadaptasi dari lakaran penangguhan Uno mereka. Sebilangan suis dan LED telah dipindahkan ke port lain dari yang digunakan oleh pengaturcara ISP (SCLK, MISO, MOSI dan Reset), penunda tunda telah ditingkatkan dari 2000 bait menjadi 12000 bait, dan PortD telah ditetapkan sebagai output untuk dua isyarat PWM. Walaupun dengan peningkatan penangguhan kelewatan, lakaran masih menggunakan sekitar 70% RAM 1284 yang tersedia.

Contoh lain seperti octaver atau tremolo dari laman web electrosmash untuk pedalSHIELD Uno boleh disesuaikan untuk digunakan oleh Mega1284 dengan mengubah tiga bahagian dalam kod:

(1) Tukar DDRB | = ((PWM_QTY << 1) | 0x02); ke DDRD | = 0x30; // Perubahan di atas adalah HANYA perubahan kod penting // semasa membuat port dari AtMega328 ke ATMega1284

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

ke

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

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

ke

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

Tombol tekan 1 dan 2 digunakan dalam beberapa lakaran untuk meningkatkan atau mengurangkan kesan. Dalam contoh kelewatan ia meningkatkan atau mengurangkan masa penundaan. Apabila lakaran dimuat pertama kali dimulakan dengan kesan kelewatan maksimum. tekan butang bawah - mengambil masa sekitar 20 saat untuk menghitung mundur hingga ke kedudukan penundaan - dan kemudian tekan dan tahan di butang atas. Dengarkan bagaimana kesan sapuan menahan butang mengubah kesan phaser, chorus dan flanging, serta kelewatan ketika butang dilepaskan.

Untuk menukar kelewatan kepada kesan gema (tambah pengulangan) ubah garis:

DelayBuffer [DelayCounter] = ADC_high;

ke

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

Suara kaki harus menjadi suis dua hala tiga tiang dan mesti dihubungkan seperti yang dijelaskan di laman web electrosmash.

Langkah 4: Pautan

Pautan
Pautan

(1) Electrosmash:

(2) Makmal Muzik Terbuka:

(3) Paul Gallagher:

(4) Pemuat Boot 1284:

(5) ATmega1284 8bit Mikrokontroler AVR:

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

Langkah 5: Lampiran 1 Memprogram ATMega1284P

Lampiran 1 Pengaturcaraan ATMega1284P
Lampiran 1 Pengaturcaraan ATMega1284P
Lampiran 1 Pengaturcaraan ATMega1284P
Lampiran 1 Pengaturcaraan ATMega1284P
Lampiran 1 Pengaturcaraan ATMega1284P
Lampiran 1 Pengaturcaraan ATMega1284P

Terdapat beberapa laman web yang memberikan penjelasan yang baik mengenai cara memprogram cip ATMega1284 yang kosong untuk digunakan dengan Arduino IDE. Prosesnya pada dasarnya adalah seperti berikut: (1) Pasang garpu Mark Pendrith dari bootloader Maniacbug Mighty-1284p Core Optiboot ke dalam Arduino IDE. (2) Kabelkan ATMega1284 pada papan roti dengan konfigurasi minimumnya ialah kristal 16 MHz, kapasitor 2 x 22 pF yang membumikan dua hujung kristal, Sambungkan dua pin ground bersama (pin 11 dan 31), dan kemudian ke arduino Uno ground, sambungkan Vcc dan AVcc bersama-sama (pin 10 dan 30), dan kemudian ke Uno + 5v, kemudian sambungkan pin reset 9 ke pin Uno D10, pin MISO 7 ke UNO D12, The MOSI pin 8 ke Uno D11, dan pin SCLK 7 ke pin Uno D13. (3) Sambungkan Uno ke Arduino IDE dan muatkan contoh lakaran Arduino sebagai ISP ke Uno. (4) Sekarang pilih papan optiboot 1284 "maniac" yang hebat, dan pilih pilihan Burn bootloader. (5) Kemudian pilih lakaran tunda 1284 yang diberikan di sini sebagai contoh dan muat naik dengan menggunakan pilihan Uno sebagai programmer dalam menu lakaran.

Pautan yang menerangkan proses dengan lebih terperinci adalah:

Menggunakan ATmega1284 dengan Arduino IDEArduino Mightycore untuk AVRs mesra roti besar Membina prototaip ATMega1284p Arloadino ATmega1284p bootloader

Langkah 6: Lampiran 2 Arduino Uno PedalSHIELD Variation

Lampiran 2 Variasi Arduino Uno PedalSHIELD
Lampiran 2 Variasi Arduino Uno PedalSHIELD
Lampiran 2 Variasi Arduino Uno PedalSHIELD
Lampiran 2 Variasi Arduino Uno PedalSHIELD
Lampiran 2 Variasi Arduino Uno PedalSHIELD
Lampiran 2 Variasi Arduino Uno PedalSHIELD

Schematic3, Breadboard3, dan Photo3 memberikan perincian rangkaian berasaskan Uno yang mendahului pembuatan AtMega1284.

Mungkin menguntungkan untuk mempunyai potensiometer sebagai pengadun untuk isyarat kering (sama dengan input) dan basah (setelah diproses oleh MCU), dan Skema 2, Papan Roti 2 dan Foto 2 memberikan perincian litar litar yang dibina sebelumnya yang menggabungkan input ke output mixer. Lihat juga Open Music Labs StompBox untuk pelaksanaan mixer lain menggunakan empat OpAmps

Disyorkan: