Isi kandungan:

NeckCrusher (Pedal Kesan Pemasangan Gitar): 6 Langkah (dengan Gambar)
NeckCrusher (Pedal Kesan Pemasangan Gitar): 6 Langkah (dengan Gambar)

Video: NeckCrusher (Pedal Kesan Pemasangan Gitar): 6 Langkah (dengan Gambar)

Video: NeckCrusher (Pedal Kesan Pemasangan Gitar): 6 Langkah (dengan Gambar)
Video: BUAT YG HOBI MANCING‼️ TETAP SELALU WASPADA APALAGI PINGGIR SUNGAI SEPERTI INI,DI MUSIM HUJAN#shorts 2024, Julai
Anonim
NeckCrusher (Pedal Kesan Pemasangan Gitar)
NeckCrusher (Pedal Kesan Pemasangan Gitar)

Dale Rosen, Carlos Reyes dan Rob Koch

DATT 2000

Langkah 1: Masalah

Masalah
Masalah

Pedal gitar menghadkan pemuzik ke platform pedal. Penyelesaian: Membina dan memasukkan fungsi pedal gitar ke dalam gitar itu sendiri. Ini membolehkan pemuzik bergerak bebas melintasi panggung, menggunakan leher gitar sebagai antara muka dan bukannya terhad pada lokasi papan pedal. Kami akan meneroka konsep ini dengan membuat peranti kesan kadar bitcrusher / sampel.

Langkah 2: Konteks Projek

Konteks Projek
Konteks Projek

Terdapat banyak pedal gitar yang digunakan oleh pemuzik untuk memanipulasi bunyi gitar mereka. Sebilangan besar ini biasanya terdapat di unit rak atau stomp box, oleh itu mengehadkan kawalan kesan ke lokasi unit kesan. Memasang peranti pada gitar membolehkan pemain mengawal parameter kesan di mana sahaja di atas panggung. Ini bermakna mereka tidak akan dihalang dan dapat memiliki kebebasan untuk bergerak untuk penampilan mereka.

Oleh kerana Arduino hanya mampu audio 8 bit, mustahil untuk melakukan pemprosesan isyarat kesetiaan tinggi. Inilah sebabnya mengapa kami memilih kesan yang kami lakukan, kerana ia berdasarkan pada menciptakan kesetiaan yang rendah, suara yang terdistorsi. Ini adalah satu-satunya kesan yang mungkin berlaku dengan Arduino.

Langkah 3: Bahagian / Alat Diperlukan

Bahagian / Alat Diperlukan
Bahagian / Alat Diperlukan

● Bor Impak

● Pemotong Kawat

● Pelucut Kawat

● Besi Pematerian

● Senapang Panas

● Pam Desoldering

● Gitar ● Kandang

● Pateri

● Gam Panas

● Arduino

● Lembaga Proto

● Kawat Bersalut

● Jack Audio (x2)

● Potensiometer (x3)

● Kapasitor: 2.2 uF (x2)

● Kawat Tembaga Terdedah

● Skru (M3.5 * 8)

● Perintang: 1 k, 10 k, 1.2 k, 1.5 k, 390 k

● * Op Amp (LM358) / * Transistor (2N3442)

Langkah 4: Strategi Teknikal

Strategi Teknikal
Strategi Teknikal

Litar Dalaman

Input / Keluaran

Kita perlu menukar isyarat audio yang berasal dari gitar menjadi sesuatu yang dapat digunakan & diubah suai oleh arduino. Kita kemudiannya perlu menukar isyarat yang datang dari arduino kembali menjadi isyarat audio. Arduino membaca voltan dari 0V hingga 5V, isyarat audio dari -1V hingga 1V. Penukaran ini dilakukan dengan menggunakan perintang. Isyarat akan ditukar dalam rangkaian output juga.

Perpustakaan Arduino: ArduinoDSP

Penerangan Projek (Antaramuka)

Tombol Tombol 1: Kadar Sampel

Tombol 2: Penghancur Bit

Tombol 3: Pengubah Bit

Langkah 5: Kod

Kod
Kod

#sertakan "dsp.h"

#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))

div32 boolean; boolean div16;

f_sample boolean yang tidak menentu; byte badc0 tidak menentu; byte badc1 tidak menentu; byb byb yang tidak menentu;

int fx1; int fx2; int fx3; int fx4;

int cnta; int icnt; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; bait bb;

bait dd [512]; // Array Memori Audio 8-Bit

batal persediaan () {setupIO ();

// muat semula gelombang selepas 1 saat mengisi_sinewave ();

// tetapkan prescler adc ke 64 untuk frekuensi pensampelan 19kHz cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADC 8-Bit di ADCH Register sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Mod PWM Timer2 ditetapkan ke PWM cbi pantas (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Persediaan untuk Timer2 cbi (TCCR2B, WGM22); // Timer2 Clock Prescaler kepada: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

gelung kosong () {

// periksa status potensiometer kesan dan suis putar readKnobs ();

// ************* // *** Biasa *** // *************

jika (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {input byte = analogRead (kiri); output (kiri, input); }

// ************* // *** Phasor *** // *************

jika (fx4> 100) {

fx1 = 0; fx2 = 0; fx3 = 0;

sementara (! f_sample) {// tunggu Nilai Sampel dari ADC} // Kitaran 15625 KHz = 64uSec PORTD = PORTD | 128; f_sampel = salah; bb = badc1; dd [icnt1] = bb; // tulis ke penyangga fx4 = iw * badc0 / 255; // skala sampel tertunda dengan potensiometer iw1 = dd [icnt2]; // baca penangguhan kelewatan badc0 = badc0 / 20; // hadkan nilai kepada 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // had indeks 0.. icnt1 = icnt1 & 511; // had indeks 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Contoh Nilai untuk Hasil PWM

PORTD = PORTD ^ 128; output (kiri, PORTD); // Pengeluaran }

// ************* // *** Flanger *** // ************* jika (fx3> 100) {

fx1 = 0; fx2 = 0; fx4 = 0;

sementara (! f_sample) {// tunggu Nilai Sampel dari ADC} // Kitaran 15625 KHz = 64uSec

PORTD = PORTD | 128; f_sampel = salah; bb = dd [icnt]; // baca penampan kelewatan iw = 127 - bb; // subset offset fx3 = iw * badc0 / 255; // skala sampel tertunda dengan potensiometer iw1 = 127 - badc1; // subset abstrak dari sampel baru iw1 = iw1 + iw; // tambahkan sampel tertunda dan sampel baru jika (iw1 127) iw1 = 127; // Penghad audio bb = 127 + iw1; // tambah ofset dd [icnt] = bb; // simpan sampel dalam penyangga audio icnt ++; icnt = icnt & 511; // had bufferindex 0..511 OCR2A = bb; // Contoh Nilai untuk Hasil PWM

PORTD = PORTD ^ 128; output (kiri, PORTD); // Pengeluaran

} }

batal readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);

}

batal fill_sinewave () {float pi = 3.141592; apungan dx; apungan fd; terapung fcnt; dx = 2 * pi / 512; // isi bufferarry bait 512 untuk (iw = 0; iw <= 511; iw ++) {// dengan 50 tempoh sinewawe fd = 127 * sin (fcnt); // nada asas fcnt = fcnt + dx; // dalam julat kenaikan 0 hingga 2xpi dan kenaikan 1/512 bb = 127 + fd; // tambahkan dc offset ke sinewawe dd [iw] = bb; // tuliskan nilai menjadi tatasusunan

} }

// ************************************************ ****************** // Timer2 Interrupt Service pada 62.5 KHz // di sini isyarat audio dan panci disampel dalam kadar: 16Mhz / 256/2/2 = 15625 Hz ISR (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

div32 =! div32; // bahagi frekuensi pemasa2 / 2 hingga 31.25kHz jika (div32) {div16 =! div16; jika (div16) {// contoh saluran 0 dan 1 bergantian sehingga setiap saluran diambil sampel dengan 15.6kHz badc0 = ADCH; // dapatkan saluran ADC 0 sbi (ADMUX, MUX0); // tetapkan multiplexer ke saluran 1} lain {badc1 = ADCH; // dapatkan saluran ADC 1 cbi (ADMUX, MUX0); // tetapkan multiplexer ke saluran 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // kelewatan pendek sebelum memulakan penukaran sbi (ADCSRA, ADSC); // mulakan penukaran seterusnya}

}

Langkah 6: Video

Masalah Berpotensi ● Pengambilan agak lemah terhadap litar kuasa - memerlukan op amp. - Dalam video kami menggunakan penggalak isyarat. (Kotak kelabu terletak di atas meja.)

Disyorkan: