תוכן עניינים:

NeckCrusher (דוושת אפקט רכוב גיטרה): 6 שלבים (עם תמונות)
NeckCrusher (דוושת אפקט רכוב גיטרה): 6 שלבים (עם תמונות)

וִידֵאוֹ: NeckCrusher (דוושת אפקט רכוב גיטרה): 6 שלבים (עם תמונות)

וִידֵאוֹ: NeckCrusher (דוושת אפקט רכוב גיטרה): 6 שלבים (עם תמונות)
וִידֵאוֹ: How to Blow Glass II Cup with a handle || On the Torch SEASON 3 Ep 10 II 2024, יולי
Anonim
NeckCrusher (דוושת אפקט מותקן על גיטרה)
NeckCrusher (דוושת אפקט מותקן על גיטרה)

דייל רוזן, קרלוס רייס ורוב קוך

DATT 2000

שלב 1: בעיה

בְּעָיָה
בְּעָיָה

דוושות גיטרה מגבילות את המוזיקאי לרציף הדוושות. פתרון: בנה והטמע פונקציונליות של דוושות גיטרה לתוך הגיטרה עצמה. זה מאפשר למוזיקאי לנוע בחופשיות על הבמה, תוך שימוש בצוואר הגיטרה כממשק במקום להיות מוגבל למיקום לוח הדוושות. אנו נחקור מושג זה על ידי יצירת מכשיר אפקט bitcrusher/sample rate.

שלב 2: הקשר הפרויקט

הקשר הפרויקט
הקשר הפרויקט

יש הרבה דוושות גיטרה בהן משתמשים מוזיקאים כדי לתפעל את צליל הגיטרות שלהם. רוב אלה נמצאים בדרך כלל ביחידות מבוססות מתלים או קופצות, ולכן מגבילות את השליטה באפקטים למיקום יחידת האפקטים. הרכבה של המכשיר על הגיטרה מאפשרת לנגנים לשלוט בפרמטרי האפקט בכל מקום על הבמה. המשמעות היא שהם לא יהיו מוגבלים ויכולים לקבל את החופש להסתובב לביצועיהם.

מכיוון שארדואינו מסוגל לאודיו של 8 ביט בלבד, אי אפשר לבצע עיבוד אותות באיכות גבוהה. זו הסיבה שבחרנו באפקטים שעשינו, מכיוון שהם מבוססים על יצירת צליל מעוות באיכות נמוכה. אלה ההשפעות היחידות שאפשריות באופן סביר עם ארדואינו.

שלב 3: דרושים חלקים / כלים

דרושים חלקים / כלים
דרושים חלקים / כלים

● מקדחה אימפקט

● חותכי חוטים

● חוטפי חוטים

● מלחם

● אקדח דבק חם

● משאבת הלחמה

● גיטרה ● מארז

● הלחמה

● דבק חם

● ארדואינו

● לוח פרוטו

● חוט מצופה

● שקעי שמע (x2)

● פוטנציומטרים (x3)

● קבלים: 2.2 uF (x2)

● חוט נחושת חשוף

● ברגים (M3.5 *8)

● נגדים: 1 k, 10 k, 1.2 k, 1.5 k, 390 k

● * מגבר אופ (LM358) / * טרנזיסטור (2N3442)

שלב 4: אסטרטגיה טכנית

אסטרטגיה טכנית
אסטרטגיה טכנית

מעגל פנימי

פלט קלט

עלינו להמיר את אות השמע שמגיע מגיטרה למשהו שהארדואינו יכול להשתמש ולשנות. לאחר מכן נצטרך להמיר את האות המגיע מהארדואינו בחזרה לאות שמע. Arduino קורא מתח מ 0V ל 5V, אותות שמע הם מ -1V ל 1V. המרות אלה נעשות באמצעות נגדים. האות יומר גם במעגל הפלט.

ספריית Arduino: ArduinoDSP

תיאור הפרויקט (ממשק)

ידיות ידית 1: שיעור מדגם

ידית 2: מגרסת ביט

ידית 3: שיפוך סיביות

שלב 5: קוד

קוד
קוד

#כלול "dsp.h"

#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define 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 סיביות

הגדרת חלל () {setupIO ();

// טען גל מחדש לאחר מילוי שני אחד ();

// הגדר את prcaler adc ל- 64 עבור תדר דגימה של 19kHz cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8 סיביות ADC ברישום ADCH sbi (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); // מכשיר כיסוי מראש של שעון טיימר 2 ל: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port אפשר sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

לולאת חלל () {

// לבדוק את מצב הפוטנציומטר של האפקט ואת המתג הסיבובי readKnobs ();

// ************* *** *** רגיל *** // *************

if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (שמאל); פלט (שמאל, קלט); }

// ************* // *** פאסור *** // *************

אם (fx4> 100) {

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

בעוד (! f_sample) {// המתן לערך לדוגמה מתוך ADC} // מחזור 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = false; 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;

בעוד (! f_sample) {// המתן לערך לדוגמה מתוך ADC} // מחזור 15625 KHz = 64uSec

PORTD = PORTD | 128; f_sample = false; 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; // מגבלת bufferindex 0..511 OCR2A = bb; // ערך לדוגמא לפלט PWM

PORTD = PORTD ^ 128; פלט (משמאל, PORTD); // פלט

} }

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

}

void fill_sinewave () {float pi = 3.141592; צף dx; לצוף fd; float fcnt; dx = 2 * pi / 512; // ממלאים את buffeerry 512 בתים עבור (iw = 0; iw <= 511; iw ++) {// עם 50 תקופות sinwawe fd = 127 * sin (fcnt); // צליל בסיסי fcnt = fcnt + dx; // בטווח של 0 עד 2xpi ו- 1/512 מרווחים bb = 127 + fd; // הוסיפו dc offset ל- sinwawe dd [iw] = bb; // לכתוב ערך למערך

} }

// ******************************************** ***************** // Timer2 Interrupt Service ב 62.5 KHz // כאן אות האודיו והסיר נדגמים בשיעור של: 16Mhz / 256 /2 /2 = 15625 ISR הרץ (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

div32 =! div32; // חלק את תדר טיימר 2 /2 ל -31.25 קילו -הרץ אם (div32) {div16 =! div16; אם (div16) {// מדגם ערוץ 0 ו -1 לסירוגין כך שכל ערוץ נדגם עם badc0 = ADCH של 15.6kHz; // קבל ערוץ 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: וידאו

בעיות פוטנציאליות ● הטנדר מעט חלש מכדי להפעיל מעגל - צריך מגבר אופ. - בסרטון השתמשנו במגביר אותות. (הקופסה האפורה מונחת על השולחן.)

מוּמלָץ: