Mundarija:

NeckCrusher (gitara o'rnatilgan effektli pedal): 6 qadam (rasmlar bilan)
NeckCrusher (gitara o'rnatilgan effektli pedal): 6 qadam (rasmlar bilan)

Video: NeckCrusher (gitara o'rnatilgan effektli pedal): 6 qadam (rasmlar bilan)

Video: NeckCrusher (gitara o'rnatilgan effektli pedal): 6 qadam (rasmlar bilan)
Video: Anaal Nathrakh Depravity Favours the Bold bedroom bass cover 2024, Iyul
Anonim
NeckCrusher (gitara o'rnatilgan effektli pedal)
NeckCrusher (gitara o'rnatilgan effektli pedal)

Deyl Rozen, Karlos Reyes va Rob Kox

DATT 2000

1 -qadam: Muammo

Muammo
Muammo

Gitara pedallari musiqachini pedal platformasida cheklaydi. Yechim: Gitara pedallari funksiyasini gitaraning o'ziga yarating va o'rnating. Bu musiqachiga sahna bo'ylab erkin harakatlanishiga imkon beradi, gitara bo'ynini interfeys sifatida ishlatib, pedal taxtasining joylashuvi bilan chegaralanmaydi. Biz bu kontseptsiyani bit -maydalagich/namuna tezligi effekti qurilmasini yaratish orqali o'rganamiz.

2 -qadam: Loyihaning konteksti

Loyiha mazmuni
Loyiha mazmuni

Musiqachilar gitara tovushlarini boshqarish uchun ishlatadigan ko'plab gitara pedallari mavjud. Ularning aksariyati odatda rack yoki stomp qutilarida joylashgan, shuning uchun effektlarni nazorat qilish effektlar joylashuvi bilan cheklanadi. Qurilmani gitara ustiga o'rnatish o'yinchilarga effekt parametrlarini sahnaning istalgan joyida boshqarishga imkon beradi. Bu shuni anglatadiki, ular cheklanmaydi va o'z harakatlari uchun erkin harakatlana oladilar.

Arduino faqat 8 bitli ovozga ega bo'lgani uchun signalni yuqori aniqlikda qayta ishlash mumkin emas. Shuning uchun biz o'z effektlarimizni tanladik, chunki ular past aniqlikdagi, buzilgan tovushni yaratishga asoslangan. Bu Arduino bilan mumkin bo'lgan yagona effektlar.

3 -qadam: Ehtiyot qismlar / asboblar

Ehtiyot qismlar / asboblar
Ehtiyot qismlar / asboblar

● Ta'sirli matkap

● Tel kesgichlar

● Tel -strippers

● Lehimlash temir

● Issiq yopishtiruvchi qurol

● Tozdan tushirish nasosi

● Gitara ● korpus

● Lehim

● Issiq elim

● Arduino

● Proto karta

● Qoplangan sim

● Ovoz jakları (x2)

● Potansiyometrlar (x3)

● Kondansatkichlar: 2,2 uF (x2)

● ochiq mis mis

● vintlardek (M3.5 *8)

● Rezistorlar: 1 k, 10 k, 1,2 k, 1,5 k, 390 k

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

4 -qadam: Texnik strategiya

Texnik strategiya
Texnik strategiya

Ichki davr

Kirish/chiqish

Biz gitardan keladigan audio signalni arduino ishlatadigan va o'zgartiradigan narsaga aylantirishimiz kerak. Keyin biz arduino -dan keladigan signalni yana audio signalga aylantirishimiz kerak bo'ladi. Arduino 0V dan 5V gacha bo'lgan kuchlanishlarni o'qiydi, audio signallari -1V dan 1V gacha. Bu konversiyalar rezistorlar yordamida amalga oshiriladi. Signal chiqish pallasida ham aylantiriladi.

Arduino kutubxonasi: ArduinoDSP

Loyihaning tavsifi (interfeys)

Tugmalar 1 -tugma: namuna tezligi

2 -tugma: Bit maydalagich

3 -tugma: Bit o'zgartirish

5 -qadam: kod

Kod
Kod

#"dsp.h" ni qo'shing

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

mantiqiy div32; mantiqiy div16;

uchuvchi mantiqiy f_sample; o'zgaruvchan bayt badc0; uchuvchi bayt badc1; uchuvchi bayt ibb;

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

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

bayt dd [512]; // Ovozli xotira massivi 8 bitli

void setup () {setupIO ();

// 1 soniyadan keyin to'lqinni qayta yuklash fill_sinewave ();

// 19 kHz chastotali cbi (ADCSRA, ADPS2) uchun adc prescaler -ni 64 ga o'rnating; sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADCH Register sbi-da 8-bitli ADC (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM rejimi tez PWM cbi (TCCR2A, COM2A0) ga o'rnatildi; sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi uchun sozlash (TCCR2B, WGM22); // Timer2 Clock Prescaler: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM portini yoqish sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

void loop () {

// effekt potentsiometrining holatini tekshirish va readKnobs ();

// ************* // *** Oddiy *** // *************

if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {bayt kiritish = analogRead (chapda); chiqish (chap, kirish); }

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

agar (fx4> 100) {

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

while (! f_sample) {// ADC dan namuna qiymatini kuting} // Tsikl 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = noto'g'ri; bb = badc1; dd [icnt1] = bb; // buferga yozish fx4 = iw * badc0 / 255; // potentsiometr iw1 = dd [icnt2] bilan kechiktirilgan namuna shkalasi; // kechiktirish buferini o'qing badc0 = badc0 / 20; // chegara qiymati 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // chegara indeksi 0.. icnt1 = icnt1 & 511; // chegara indeksi 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // PWM chiqishining namunaviy qiymati

PORTD = PORTD ^ 128; chiqish (chapda, PORTD); // Chiqish}

// ************* // *** Flanjer *** // ************* agar (fx3> 100) {

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

while (! f_sample) {// ADC dan namuna qiymatini kuting} // Tsikl 15625 KHz = 64uSec

PORTD = PORTD | 128; f_sample = noto'g'ri; bb = dd [icnt]; // kechiktirish buferini o'qing iw = 127 - bb; // subxron ofset fx3 = iw * badc0 / 255; // potentsiometr iw1 = 127 bilan kechiktirilgan namuna - badc1; // subwatch ofset of new sample iw1 = iw1 + iw; // kechiktirilgan namuna va yangi namunani qo'shing, agar (iw1 127) iw1 = 127; // Ovoz cheklovchisi bb = 127 + iw1; // ofset qo'shing dd [icnt] = bb; // namunani audio buferda saqlang icnt ++; icnt = icnt & 511; // chegara buferindeksi 0..511 OCR2A = bb; // PWM chiqishining namunaviy qiymati

PORTD = PORTD ^ 128; chiqish (chapda, PORTD); // Chiqish

} }

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

}

void fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // (iw = 0; iw <= 511; iw ++) {// uchun 512 baytli buferni 50 davr sinewawe fd = 127 * sin (fcnt) bilan to'ldiring; // asosiy ohang fcnt = fcnt + dx; // 0 dan 2xpi va 1/512 qadam oralig'ida bb = 127 + fd; // sinewawe ga dc ofset qo'shing dd [iw] = bb; // qiymatni qatorga yozing

} }

// ********************************************** ****************** // Timer2 62,5 KHz chastotali uzilish xizmati // bu erda audio va pot signallari 16 MGts / 256/2/2 = 15625 tezligida tanlanadi. Hz ISR (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

div32 =! div32; // taymer2 chastotasini / 2 ni 31,25 kHz ga bo'lin, agar (div32) {div16 =! div16; if (div16) {// namuna kanal 0 va 1, shuning uchun har bir kanal 15,6 kHz badc0 = ADCH bilan namuna olinadi; // ADC kanalini oling 0 sbi (ADMUX, MUX0); // multipleksorni 1 -kanalga qo'ying} else {badc1 = ADCH; // ADC kanalini oling 1 cbi (ADMUX, MUX0); // multipleksorni 0 kanaliga o'rnating f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // sbi (ADCSRA, ADSC) konvertatsiyasini boshlashdan oldin qisqa kechikish; // keyingi konvertatsiyani boshlash}

}

6 -qadam: video

Mumkin bo'lgan muammolar ● Quvvat olish uchun elektr ta'minoti biroz kuchsiz - operatsion kuchaytirgich kerak. - Videoda biz signal kuchaytirgichidan foydalandik. (Stol ustida yotgan kulrang quti.)

Tavsiya: