Daftar Isi:
- Langkah 1: Masalah
- Langkah 2: Konteks Proyek
- Langkah 3: Bagian / Alat yang Diperlukan
- Langkah 4: Strategi Teknis
- Langkah 5: Kode
- Langkah 6: Video
Video: NeckCrusher (Pedal Efek yang Dipasang pada Gitar): 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Dale Rosen, Carlos Reyes dan Rob Koch
DATT 2000
Langkah 1: Masalah
Pedal gitar membatasi musisi ke platform pedal. Solusi: Bangun dan sematkan fungsionalitas pedal gitar ke dalam gitar itu sendiri. Hal ini memungkinkan musisi untuk bergerak bebas melintasi panggung, menggunakan leher gitar sebagai antarmuka alih-alih dibatasi pada lokasi pedalboard. Kami akan mengeksplorasi konsep ini dengan membuat perangkat efek bitcrusher/sample rate.
Langkah 2: Konteks Proyek
Ada banyak pedal gitar yang digunakan oleh musisi untuk memanipulasi suara gitar mereka. Sebagian besar biasanya dalam unit berbasis rak atau stomp box, oleh karena itu membatasi kontrol efek ke lokasi unit efek. Memasang perangkat pada gitar memungkinkan pemain untuk mengontrol parameter efek di mana saja di atas panggung. Ini berarti mereka tidak akan dibatasi dan dapat memiliki kebebasan untuk bergerak untuk kinerja mereka.
Karena Arduino hanya mampu audio 8 bit, tidak mungkin untuk melakukan pemrosesan sinyal fidelitas tinggi. Inilah mengapa kami memilih efek yang kami lakukan, karena didasarkan pada penciptaan suara terdistorsi dengan fidelitas rendah. Ini adalah satu-satunya efek yang cukup mungkin dengan Arduino.
Langkah 3: Bagian / Alat yang Diperlukan
● Latihan Dampak
● Pemotong Kawat
● Penari Telanjang Kawat
● Besi Solder
● Pistol Lem Panas
● Pompa Pematrian
● Gitar● Kandang
● Solder
● Lem Panas
● Arduino
● Papan Proto
● Kawat Dilapisi
● Soket Audio (x2)
● Potensiometer (x3)
● Kapasitor: 2,2 uF (x2)
● Kawat Tembaga Terkena
● Sekrup (M3.5 *8)
● Resistor: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Langkah 4: Strategi Teknis
Sirkuit Internal
Input output
Kita perlu mengubah sinyal audio yang berasal dari gitar menjadi sesuatu yang dapat digunakan & dimodifikasi oleh arduino. Kami kemudian perlu mengubah sinyal yang datang dari arduino kembali menjadi sinyal audio. Arduino membaca tegangan dari 0V hingga 5V, sinyal audio dari -1V hingga 1V. Konversi ini dilakukan dengan menggunakan resistor. Sinyal akan dikonversi di sirkuit output juga.
Perpustakaan Arduino: ArduinoDSP
Deskripsi Proyek (Antarmuka)
Knob Knob 1: Tingkat Sampel
Tombol 2: Penghancur Bit
Knob 3: Pengalih Bit
Langkah 5: Kode
#sertakan "dsp.h"
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
div32 boolean; div16 boolean;
f_sample boolean yang mudah menguap; byte badc0 yang mudah menguap; byte badc1 yang mudah menguap; byte ibb yang mudah menguap;
int fx1; int fx2; int fx3; int fx4;
int cnta; int ict; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; byte bb;
byte dd[512]; // Array Memori Audio 8-Bit
batalkan pengaturan() { pengaturanIO();
// memuat ulang gelombang setelah 1 detik fill_sinewave();
// setel adc prescaler ke 64 untuk frekuensi sampling 19kHz cbi(ADCSRA, ADPS2); sbi(ADCSRA, ADPS1); sbi(ADCSRA, ADPS0); // 8-Bit ADC di ADCH Register sbi(ADMUX, ADLAR); sbi(ADMUX, REFS0); cbi(ADMUX, REFS1); cbi(ADMUX, MUX0); cbi(ADMUX, MUX1); cbi(ADMUX, MUX2); cbi(ADMUX, MUX3); // Mode PWM Timer2 disetel ke cbi PWM cepat (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); //Pengaturan untuk Timer2 cbi (TCCR2B, WGM22); // Timer2 Jam Prescaler ke: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Port Timer2 PWM Aktifkan sbi(DDRB, 3); //kli(); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = burukc1;
}
lingkaran kosong() {
//periksa status potensiometer efek dan sakelar putar readKnobs();
// ************* // ***Normal*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) { input byte = analogRead(kiri); keluaran (kiri, masukan); }
// ************* // ***Fasor*** // *************
jika (fx4 > 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (!f_sample) { // tunggu Nilai Sampel dari ADC } // Siklus 15625 KHz = 64uSec PORTD = PORTD | 128; f_sampel = salah; bb = badc1; dd[icnt1] = bb; // tulis ke buffer fx4 = iw * badc0 / 255; // skala sampel tertunda dengan potensiometer iw1 = dd[icnt2]; // baca buffer penundaan badc0 = badc0 / 20; // batasi nilai hingga 512 icnt1++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // batas indeks 0.. icnt1 = icnt1 & 511; // batas indeks 0.511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Nilai Contoh ke Output PWM
PORTD = PORTD^ 128; keluaran (kiri, PORTD); // Keluaran }
// ************* // ***Flanger*** // ************* if (fx3 > 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (!f_sample) { // tunggu Nilai Sampel dari ADC } // Siklus 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sampel = salah; bb = dd[icnt]; // baca delay buffer iw = 127 - bb; // kurangi offset fx3 = iw * badc0 / 255; // skala sampel tertunda dengan potensiometer iw1 = 127 - badc1; // kurangi offset dari sampel baru iw1 = iw1 + iw; // tambahkan sampel tertunda dan sampel baru jika (iw1 127) iw1 = 127; // Pembatas audio bb = 127 + iw1; // tambahkan offset dd[icnt] = bb; // simpan sample di audio buffer icnt++; icnt = icnt & 511; // batas indeks buffer 0.511 OCR2A = bb; // Nilai Contoh ke Output PWM
PORTD = PORTD^ 128; keluaran (kiri, PORTD); // Keluaran
} }
void readKnobs() { fx1 = analogRead(1); fx2 = analogBaca(2); fx3 = analogBaca(3); fx4 = analogBaca(4);
}
void fill_sinewave() { float pi = 3.141592; mengambang dx; mengambang fd; fcnt mengambang; dx = 2 * pi / 512; // isi bufferarry 512 byte for (iw = 0; iw <= 511; iw++) { // dengan 50 titik sinewawe fd = 127 * sin(fcnt); // nada dasar fcnt = fcnt + dx; // dalam kisaran 0 hingga 2xpi dan peningkatan 1/512 bb = 127 + fd; // tambahkan dc offset ke sinewawe dd[iw] = bb; // tulis nilai ke dalam array
} }
//************************************************ ****************** // Layanan Interupsi Timer2 pada 62,5 KHz // di sini sinyal audio dan pot diambil dengan kecepatan: 16Mhz / 256 / 2 / 2 = 15625 Hz ISR(TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 = !div32; // bagi frekuensi timer2 / 2 menjadi 31,25kHz if (div32) { div16 = !div16; if (div16) { // saluran sampel 0 dan 1 secara bergantian sehingga setiap saluran diambil sampelnya dengan 15.6kHz badc0 = ADCH; // dapatkan saluran ADC 0 sbi(ADMUX, MUX0); // setel multiplexer ke saluran 1 } else { badc1 = ADCH; // dapatkan saluran ADC 1 cbi(ADMUX, MUX0); // setel multiplexer ke saluran 0 f_sample = true; } ibb++; ib--; ibb++; ib--; // penundaan singkat sebelum memulai konversi sbi(ADCSRA, ADSC); // mulai konversi berikutnya }
}
Langkah 6: Video
Potensi Masalah ● Pickup agak terlalu lemah untuk rangkaian daya - membutuhkan op amp. - Dalam video kami menggunakan penguat sinyal. (Kotak abu-abu tergeletak di atas meja.)
Direkomendasikan:
Proto Pedal untuk Efek Gitar DIY: 5 Langkah (dengan Gambar)
Pedal Proto untuk Efek Gitar DIY: Merancang dan membuat efek gitar Anda sendiri adalah cara yang bagus untuk menggabungkan hasrat akan elektronik dan gitar. Namun, saat menguji desain baru, saya menemukan bahwa sirkuit rapuh pada papan tempat memotong roti tanpa solder sulit disambungkan ke
Pedal Efek Gitar dan Musik ATMega1284P: 6 Langkah (dengan Gambar)
Atmega1284P Guitar and Music Effects Pedal: Saya telah 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
Pedal Efek Gitar Tikus Clone Distorsi DIY - Tikus Mati: 5 Langkah (dengan Gambar)
DIY Rat Clone Distortion Guitar Effect Pedal - the Dead RAT: Ini bukan pedal distorsi Mickey Mouse! Pedal ini adalah tiruan dari pedal efek favorit saya dari tahun 80-an… ProCo's RAT Distortion. Ini adalah pedal distorsi OpAmp dasar menggunakan chip IC LM308N klasik yang merupakan build yang cukup sederhana untuk
Petunjuk untuk Menyelesaikan Mock-Up Desain Slide Track untuk Lift/Bawah Pijakan Kaki yang Dipasang di Tengah pada Kursi Roda Listrik: 9 Langkah (dengan Gambar)
Petunjuk tentang Penyelesaian Mock-Up Desain Geser Track untuk Pengangkatan/Bawah Pijakan Kaki yang Dipasang di Tengah pada Kursi Roda Listrik: Pengangkat pijakan kaki yang dipasang di tengah untuk disimpan di bawah kursi dengan baik, dan lebih rendah untuk dipasang. Mekanisme untuk pengoperasian independen penyimpanan dan penempatan pijakan kaki tidak termasuk dalam kursi roda listrik pasar, dan pengguna PWC telah menyatakan kebutuhannya
Warhammer Sorcerer pada Disk Dengan Motor dan LED yang Dipasang secara Magnetik: 4 Langkah
Warhammer Sorcerer pada Disk Dengan Motor dan LED yang Dipasang secara Magnetik: Ingin menambahkan beberapa PIZZAZZ ke proyek seni Anda? Motor dan LED adalah cara terbaik! Apakah Anda seorang penggemar game Warhammer? Yang ini untukmu! Ini adalah Tzeentch Sorcerer Lord on Disc saya, direvisi dengan menambahkan 3 LED, motor, mikro (PIC) dan kecil