Daftar Isi:

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

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

Video: Pedal Efek Gitar dan Musik ATMega1284P: 6 Langkah (dengan Gambar)
Video: Efek Gitar Digital Super Lengkap Yang Ramah Di Kantong | VOX STOMPLAB 2G 2024, November
Anonim
Pedal Efek Gitar dan Musik ATMega1284P
Pedal Efek Gitar dan Musik ATMega1284P

Saya telah mem-porting Arduino Uno ATMega328 Pedalshield (seperti yang dikembangkan oleh Electrosmash dan sebagian didasarkan pada pekerjaan di Open Music Lab) ke ATMega1284P yang memiliki RAM delapan kali lebih banyak daripada Uno (16kB versus 2kB). Manfaat tambahan yang tidak terduga adalah bahwa Mega1284 build memiliki komponen kebisingan yang jauh lebih rendah - sejauh ketika saya membandingkan Uno dan Mega1284 menggunakan sirkuit pendukung yang sama, tidak masuk akal untuk menggambarkan Uno sebagai "berisik" dan Mega1284 sebagai " diam". RAM yang lebih besar berarti bahwa efek penundaan yang lebih lama dapat diperoleh - dan itu ditunjukkan oleh contoh sketsa Arduino yang telah saya sertakan. Kebisingan pernapasan latar belakang saat menggunakan efek Tremelo juga (hampir) tidak ada pada ATMega1284.

Perbandingan tiga mikroprosesor Atmel AVR yaitu 328P yaitu Uno, 2560P yaitu Mega2560, dan Mega1284 menunjukkan yang terakhir memiliki RAM paling banyak dari ketiganya:

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

Saya mulai dengan menggunakan pedalSHIELD berbasis Uno seperti pada spesifikasi Electrosmash tetapi saya tidak memiliki RRO OpAmp yang sama seperti yang ditentukan. Akibatnya saya berakhir dengan sirkuit yang saya anggap memberikan hasil yang dapat diterima. Rincian versi Uno ini diberikan dalam lampiran 2.

Sirkuit yang sama ini kemudian di-porting ke ATMega1284 - secara mengejutkan terlepas dari perubahan yang tidak penting seperti menetapkan sakelar dan LED ke port yang berbeda, dan mengalokasikan 12.000 kB alih-alih 2.000 kB RAM untuk buffer penundaan, hanya satu perubahan penting harus dilakukan dalam kode sumber, yaitu mengubah keluaran Timer1/PWM OC1A dan OC1B dari Port B pada Uno ke Port D (PD5 dan PD4) pada ATMega1284.

Saya kemudian menemukan modifikasi yang sangat baik pada sirkuit electrosmash oleh Paul Gallagher dan setelah pengujian, ini adalah sirkuit yang akan saya sajikan di sini - tetapi kemudian juga dengan modifikasi: penggantian Uno dengan Mega1284, menggunakan Texas Instruments TLC2272 sebagai OpAmp, dan karena kinerja noise yang sangat baik dari Mega1284, saya juga dapat menaikkan tingkat frekuensi filter lolos-rendah.

Penting untuk dicatat bahwa meskipun papan pengembangan untuk ATMega1284 tersedia (Github: MCUdude MightyCore), ini adalah latihan yang mudah untuk membeli chip kosong (bebas bootloader) (beli versi PDIP yang merupakan papan roti dan papan strip). friendly), kemudian muat garpu Mark Pendrith dari bootloader Maniacbug Mighty-1284p Core Optiboot atau MCUdude Mightycore, dengan menggunakan Uno sebagai programmer ISP, dan kemudian memuat sketsa lagi melalui Uno ke AtMega1284. Detail dan tautan untuk proses ini diberikan dalam lampiran 1.

Saya ingin mengakui tiga sumber terpenting dari mana informasi lebih lanjut dapat diperoleh dan akan memberikan tautan ke situs web mereka dan akhir artikel ini: Electrosmash, Open Music Labs, dan Tardate/Paul Gallagher

Langkah 1: Daftar Bagian

ATMega1284P (versi paket 40 pin PDIP) Arduino Uno R3 (digunakan sebagai ISP untuk mentransfer boot loader dan sketsa ke ATMega1284) OpAmp TLC2272 (atau RRIO serupa (Rail to Rail Input and Output) OpAmp seperti MCP6002, LMC6482, TL972) LED merah kristal 16 MHz kapasitor 2 x 27 pF kapasitor 5 x 6n8 Kapasitor 270 pF Kapasitor 4 x 100n 2 x 10uF Kapasitor elektrolit 16v 6 x resistor 4k7 resistor 100k resistor 2 x 1M resistor 470 ohm resistor 1M2 resistor 100k Potensiometer 3 x sakelar tombol tekan (satu dari mereka harus diganti dengan footswitch 3 kutub 2 arah jika kotak efek akan digunakan untuk pekerjaan langsung)

Langkah 2: Konstruksi

Konstruksi
Konstruksi
Konstruksi
Konstruksi
Konstruksi
Konstruksi

Skema 1 memberikan sirkuit yang digunakan dan Breadboard 1 adalah representasi fisiknya (Fritzing 1) dengan Foto 1 sirkuit bread-board yang sebenarnya dalam operasi. Mungkin menguntungkan untuk memiliki potensiometer sebagai mixer untuk sinyal kering (sama dengan input) dan basah (setelah diproses oleh MCU), dan Skema 2, Papan Tempat Memotong Roti 2 dan Foto 2 (tercantum dalam Lampiran 2), memberikan rincian sirkuit dari sirkuit yang dibangun sebelumnya yang menggabungkan input ke output mixer. Lihat juga Open Music Labs StompBox untuk implementasi mixer lain menggunakan empat OpAmps.

Tahapan Input dan Output OpAmp: Penting bahwa RRO atau lebih disukai OpAmp RRIO digunakan karena ayunan tegangan yang besar diperlukan pada output OpAmp ke ADC ATMega1284. Daftar bagian berisi sejumlah jenis OpAmp alternatif. Potensiometer 100k digunakan untuk menyesuaikan penguatan input ke tingkat yang tepat di bawah distorsi apa pun, dan juga dapat digunakan untuk menyesuaikan sensitivitas input untuk sumber input selain gitar seperti pemutar musik. Tahap output OpAmp memiliki filter RC orde tinggi untuk menghilangkan noise MCU yang dihasilkan secara digital dari aliran audio.

Tahap ADC: ADC dikonfigurasi untuk membaca melalui interupsi sepanjang waktu. Perhatikan bahwa kapasitor 100nF harus dihubungkan antara pin AREF dari ATMega1284 dan ground untuk mengurangi kebisingan karena sumber Vcc internal digunakan sebagai tegangan referensi - JANGAN sambungkan pin AREF ke +5 volt secara langsung!

DAC PWM Stage: Karena ATMega1284 tidak memiliki DAC sendiri, bentuk gelombang audio output dihasilkan menggunakan modulasi lebar pulsa dari filter RC. Dua output PWM pada PD4 dan PD5 ditetapkan sebagai byte tinggi dan rendah dari output audio dan dicampur dengan dua resistor (4k7 dan 1M2) dalam rasio 1:256 (byte rendah dan byte tinggi) - yang menghasilkan output audio. Mungkin ada baiknya bereksperimen dengan pasangan resistor lain seperti pasangan ohm 3k9 1M yang digunakan oleh Open Music Labs di StompBox mereka.

Langkah 3: Perangkat Lunak

Perangkat lunak ini didasarkan pada sketsa electrosmash, dan contoh yang disertakan (pedalshield1284delay.ino), telah diadaptasi dari sketsa penundaan Uno mereka. Beberapa sakelar dan LED telah dipindahkan ke port lain yang jauh dari yang digunakan oleh programmer ISP (SCLK, MISO, MOSI dan Reset), buffer penundaan telah ditingkatkan dari 2000 byte menjadi 12000 byte, dan PortD telah ditetapkan sebagai output untuk dua sinyal PWM. Bahkan dengan peningkatan buffer penundaan sketsa masih menggunakan hanya sekitar 70% dari 1284 RAM yang tersedia.

Contoh lain seperti octaver atau tremolo dari situs electrosmash untuk pedalSHIELD Uno dapat diadaptasi untuk digunakan oleh Mega1284 dengan mengubah tiga bagian dalam kode:

(1) Ubah DDRB |= ((PWM_QTY << 1) | 0x02); ke DDRD |= 0x30;// Perubahan di atas adalah HANYA perubahan kode penting // saat porting dari AtMega328 ke ATMega1284

(2) Ubah #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) Ubah 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 di beberapa sketsa untuk menambah atau mengurangi efek. Dalam contoh penundaan itu menambah atau mengurangi waktu tunda. Ketika sketsa pertama kali dimuat, itu dimulai dengan efek penundaan maksimum. tekan tombol bawah - dibutuhkan sekitar 20 detik untuk menghitung mundur sampai ke posisi delay-off - lalu tekan dan tahan tombol atas. Dengarkan bagaimana efek sapuan menahan tombol mengubah efek phaser, chorus dan flanging, serta penundaan saat tombol dilepaskan.

Untuk mengubah penundaan menjadi efek gema (tambahkan pengulangan) ubah baris:

DelayBuffer[DelayCounter] = ADC_tinggi;

ke

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

Sakelar kaki harus berupa sakelar dua arah tiga kutub dan harus dihubungkan seperti yang dijelaskan di situs web electrosmash.

Langkah 4: Tautan

Tautan
Tautan

(1) Elektrosmash:

(2) Buka Lab Musik:

(3) Paul Gallagher:

(4) 1284 Pemuat Pemuat:

(5) Mikrokontroler ATmega1284 8bit AVR:

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

Langkah 5: Lampiran 1 Pemrograman ATMega1284P

Lampiran 1 Pemrograman ATMega1284P
Lampiran 1 Pemrograman ATMega1284P
Lampiran 1 Pemrograman ATMega1284P
Lampiran 1 Pemrograman ATMega1284P
Lampiran 1 Pemrograman ATMega1284P
Lampiran 1 Pemrograman ATMega1284P

Ada beberapa situs web yang memberikan penjelasan yang baik tentang cara memprogram chip ATMega1284 kosong untuk digunakan dengan Arduino IDE. Prosesnya pada dasarnya adalah sebagai berikut: (1) Instal garpu Mark Pendrith dari bootloader Maniacbug Mighty-1284p Core Optiboot ke dalam Arduino IDE. (2) Hubungkan ATMega1284 pada papan tempat memotong roti dengan konfigurasi minimum yaitu kristal 16 MHz, kapasitor 2 x 22 pF yang menghubungkan kedua ujung kristal, Hubungkan kedua pin ground bersama-sama (pin 11 dan 31), lalu ke ground Arduino Uno, sambungkan Vcc dan AVcc bersama-sama (pin 10 dan 30), lalu ke Uno +5v, lalu sambungkan pin reset 9 ke pin Uno D10, pin MISO 7 ke UNO D12, MOSI pin 8 ke Uno D11, dan SCLK pin 7 ke pin Uno D13. (3) Hubungkan Uno ke Arduino IDE dan muat contoh sketsa Arduino sebagai ISP ke Uno. (4) Sekarang pilih papan optiboot perkasa "maniac" 1284, dan pilih opsi Burn bootloader. (5) Kemudian pilih sketsa penundaan 1284 yang diberikan di sini sebagai contoh dan unggah dengan menggunakan opsi Uno sebagai programmer di menu sketsa.

Tautan yang menjelaskan proses secara lebih rinci adalah:

Menggunakan ATmega1284 dengan Arduino IDEArduino Mightycore untuk AVR besar yang ramah papan tempat memotong rotiMembangun prototipe ATMega1284pArduino ATmega1284p bootloader

Langkah 6: 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
Lampiran 2 Variasi Arduino Uno PedalSHIELD

Schematic3, Breadboard3, dan Photo3 memberikan detail sirkuit berbasis Uno yang mendahului pembuatan AtMega1284.

Mungkin menguntungkan untuk memiliki potensiometer sebagai mixer untuk sinyal kering (sama dengan input) dan basah (setelah diproses oleh MCU), dan Skema 2, Papan Tempat Memotong Roti 2 dan Foto 2 memberikan detail rangkaian dari rangkaian yang dibangun sebelumnya. yang menggabungkan input ke output mixer. Lihat juga Open Music Labs StompBox untuk implementasi mixer lain menggunakan empat OpAmps

Direkomendasikan: