Мазмұны:

NeckCrusher (Гитараға орнатылған әсерлі педаль): 6 қадам (суреттермен)
NeckCrusher (Гитараға орнатылған әсерлі педаль): 6 қадам (суреттермен)

Бейне: NeckCrusher (Гитараға орнатылған әсерлі педаль): 6 қадам (суреттермен)

Бейне: NeckCrusher (Гитараға орнатылған әсерлі педаль): 6 қадам (суреттермен)
Бейне: Neckcrusher 2024, Қараша
Anonim
NeckCrusher (Гитараға орнатылған әсерлі педаль)
NeckCrusher (Гитараға орнатылған әсерлі педаль)

Дэйл Розен, Карлос Рейес және Роб Кох

DATT 2000

1 -қадам: Мәселе

Мәселе
Мәселе

Гитара педальдары музыкантты педаль платформасына шектейді. Шешім: гитара педальдарының функционалдығын гитараның өзіне құрыңыз және енгізіңіз. Бұл музыкантқа педальды тақтаның орналасуымен шектелмей, интерфейс ретінде гитара мойнын қолдана отырып, сахнада еркін қозғалуға мүмкіндік береді. Біз бұл ұғымды разрядтауыш/үлгі жылдамдығының әсер ету құрылғысын құру арқылы зерттейтін боламыз.

2 -қадам: Жобаның мәтінмәні

Жоба мазмұны
Жоба мазмұны

Музыканттар гитараның дыбысын басқаруға арналған көптеген гитаралық педальдар бар. Олардың көпшілігі әдетте тіректерге негізделген немесе тіректерге арналған қондырғыларда болады, сондықтан эффектілерді бақылауды әсер қондырғысының орналасуына шектейді. Құрылғыны гитараға орнату ойыншыларға эффект параметрлерін сахнаның кез келген жерінде басқаруға мүмкіндік береді. Бұл оларға шектеу қойылмайтынын және олардың орындау үшін қозғалу еркіндігіне ие болатынын білдіреді.

Arduino тек 8 биттік аудиоға ғана қабілетті болғандықтан, сигналды жоғары дәлдікпен өңдеу мүмкін емес. Міне, біз эффектілерді таңдадық, себебі олар төмен сенімділікке, бұрмаланған дыбысқа негізделген. Бұл Arduino -мен мүмкін болатын жалғыз әсерлер.

3 -қадам: Бөлшектер / құралдар қажет

Бөлшектер / құралдар қажет
Бөлшектер / құралдар қажет

● Impact Drill

● Сым кескіштер

● Сымды тазартқыштар

● Пісіру үтігі

● Ыстық желім пистолеті

● Тазартатын сорғы

● Гитара ● Қоршау

● Дәнекер

● Ыстық желім

● Arduino

● Прото тақта

● Қапталған сым

● Аудио ұялары (x2)

● потенциометрлер (x3)

● Конденсаторлар: 2,2 uF (x2)

● Ашық мыс сымы

● Бұрандалар (M3.5 *8)

● Резисторлар: 1 к, 10 к, 1,2 к, 1,5 к, 390 к

● * Op Amp (LM358) / * Транзистор (2N3442)

4 -қадам: Техникалық стратегия

Техникалық стратегия
Техникалық стратегия

Ішкі схема

Кіріс шығыс

Біз гитарадан келетін дыбыстық сигналды arduino қолдана және өзгерте алатын нәрсеге түрлендіруіміз керек. Содан кейін бізге ардуинодан келетін сигналды аудио сигналға қайта түрлендіру қажет болады. Arduino 0В -тан 5В -қа дейінгі кернеуді оқиды, дыбыстық сигналдар -1В -тан 1В -қа дейін. Бұл түрлендіру резисторлардың көмегімен жүзеге асады. Сигнал шығыс схемасында да түрлендіріледі.

Arduino кітапханасы: ArduinoDSP

Жобаның сипаттамасы (интерфейс)

Тұтқалар 1 -тұтқа: үлгі жылдамдығы

2 -тұтқа: биттік ұсатқыш

3 -тұтқа: бит ауыстырғыш

5 -қадам: код

Код
Код

#«dsp.h» қосыңыз

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

логикалық div32; логикалық div16;

тұрақсыз логикалық f_sample; тұрақсыз байт badc0; тұрақсыз байт badc1; тұрақсыз байт 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; байт bb;

байт dd [512]; // Аудио жады массиві 8 биттік

void setup () {setupIO ();

// толқын 1 секундтан кейін толтырылады fill_sinewave ();

// cb (ADCSRA, ADPS2) 19 кГц іріктеу жиілігі үшін adc prescaler -ды 64 -ке орнатыңыз; sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADCH Register sbi-де 8-биттік ADC (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM режимі жылдам PWM cbi (TCCR2A, COM2A0) күйіне орнатылды; sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi (TCCR2B, WGM22) үшін орнату; // Timer2 Clock Prescaler келесіге: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM портын қосу sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

void loop () {

// readKnobs () потенциометрі мен айналмалы қосқыштың әсерінің күйін тексеру;

// ************* // *** Қалыпты *** // *************

if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {байтты енгізу = analogRead (сол жақта); шығыс (сол жақ, кіріс); }

// ************* // *** Фазор *** // *************

егер (fx4> 100) {

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

while (! f_sample) {// ADC үлгі мәнін күтіңіз} // Цикл 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = жалған; bb = badc1; dd [icnt1] = bb; // буферге жазу fx4 = iw * badc0 / 255; // iw1 = dd [icnt2] потенциометрі бар кешіктірілген үлгіні масштабтау; // кешіктіру буферін оқу badc0 = badc0 / 20; // шекті мән 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // шекті индекс 0.. icnt1 = icnt1 & 511; // шекті индекс 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // PWM шығысының үлгі мәні

PORTD = PORTD ^ 128; шығару (сол жақта, PORTD); // Шығу}

// ************* // *** Флангер *** // ************* егер (fx3> 100) {

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

while (! f_sample) {// ADC үлгі мәнін күтіңіз} // Цикл 15625 KHz = 64uSec

PORTD = PORTD | 128; f_sample = жалған; bb = dd [icnt]; // кідіріс буферін оқыңыз iw = 127 - bb; // субстраттық ығысу fx3 = iw * badc0 / 255; // iw1 = 127 потенциометрі бар кешіктірілген үлгі масштабы - badc1; // жаңа үлгіден субъективті ығысу iw1 = iw1 + iw; // кешіктірілген үлгі мен жаңа үлгіні қосыңыз, егер (iw1 127) iw1 = 127; // Дыбыс шектегіші bb = 127 + iw1; // офсет қосу dd [icnt] = bb; // үлгіні icnt ++ аудио буферінде сақтау; icnt = icnt & 511; // шектік буфериндегі 0..511 OCR2A = bb; // PWM шығысының үлгі мәні

PORTD = PORTD ^ 128; шығару (сол жақта, PORTD); // Шығу

} }

жарамсыз 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 ++) {// үшін 512 байт буферлік аралықты fd = 127 * sin (fcnt) 50 кезеңмен толтырыңыз; // іргелі тон fcnt = fcnt + dx; // 0 -ден 2xpi аралығында және 1/512 қадаммен bb = 127 + fd; // dw [iw] = bb сіңірге тұрақты токтың ығысуын қосыңыз; // мәнді массивке жазыңыз

} }

// ********************************************** ****************** // Таймер2 62,5 КГц үзіліс қызметі // мұнда дыбыс пен потенциалдың сигналы 16 МГц / 256/2/2 = 15625 жиілікпен таңдалады. Гц ISR (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

div32 =! div32; // бөлу таймері2 жиілігі / 2 -ден 31,25кГц болса (div32) {div16 =! div16; if (div16) {// 0 және 1 арна үлгісі кезекпен, сондықтан әрбір арна 15,6 кГц badc0 = ADCH арқылы таңдалады; // ADC арнасын 0 sbi алу (ADMUX, MUX0); // мультиплексорды 1 арнаға қойыңыз} else {badc1 = ADCH; // ADC 1 каналы cbi алу (ADMUX, MUX0); // мультиплексорды 0 арнаға орнатыңыз f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // sbi (ADCSRA, ADSC) түрлендіруді бастамас бұрын қысқа кідіріс; // келесі түрлендіруді бастау}

}

6 -қадам: бейне

Ықтимал ақаулар ● Электр тізбегіне түсіру шамалы әлсіз - жұмыс күшейткіші қажет. - Видеода біз сигнал күшейткішті қолдандық. (Үстелде жатқан сұр қорап.)

Ұсынылған: