תוכן עניינים:
- שלב 1: בעיה
- שלב 2: הקשר הפרויקט
- שלב 3: דרושים חלקים / כלים
- שלב 4: אסטרטגיה טכנית
- שלב 5: קוד
- שלב 6: וידאו
וִידֵאוֹ: NeckCrusher (דוושת אפקט רכוב גיטרה): 6 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
דייל רוזן, קרלוס רייס ורוב קוך
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: וידאו
בעיות פוטנציאליות ● הטנדר מעט חלש מכדי להפעיל מעגל - צריך מגבר אופ. - בסרטון השתמשנו במגביר אותות. (הקופסה האפורה מונחת על השולחן.)
מוּמלָץ:
דוושת גיטרה של Phaser: 14 שלבים (עם תמונות)
דוושת גיטרה של Phaser: דוושת גיטרה של phaser היא אפקט גיטרה המפצל אות, שולח נתיב אחד במעגל בצורה נקייה ומשנה את שלב השני. שני האותות מעורבבים זה בזה שוב וכשהם מחוץ לשלב, בטלו זה את זה. זה יוצר כל כך
דוושת גיטרה DIY: 24 שלבים (עם תמונות)
דוושת גיטרה DIY: הכנת דוושת פאז גיטרה DIY היא פרויקט סוף שבוע אלקטרוניקי מהנה וקל לחובבים ולגיטריסטים כאחד. להכין דוושת פאז קלאסית הרבה יותר קל ממה שאתה חושב. הוא משתמש רק בשני טרנזיסטורים וקומץ רכיבים אחרים. מלבד ש
דוושת גיטרה ארדואינו: 23 שלבים (עם תמונות)
דוושת גיטרה של ארדואינו: דוושת הגיטרה של ארדואינו היא דוושת רב אפקטים דיגיטלית המבוססת על דוושת הגיטרה של Arduino גיטרה שפורסמה במקור על ידי קייל מקדונלד. ביצעתי כמה שינויים בעיצוב המקורי שלו. השינויים הבולטים ביותר הם הקדם-מגבר המובנה ו- ac
איך אני רכוב על מדף מעבד אפקטים של גיטרה ליין 6 Pod שלי: 10 שלבים (עם תמונות)
כיצד הרכבתי את מעבד אפקטים של גיטרה ליין 6 Pod שלי: קניתי אחת מיחידות ה- Line 6 POD המקוריות כשהן יצאו לראשונה בשנת 1998. זה נשמע אז פנומנלי ועדיין נשמע נהדר היום - הבעיה היחידה הייתה צורתו - במילים פשוטות, זה נראה מטופש. חשוב יותר, אלא אם כן יש לך
דוושת אפקט גיטרה לעיוות שיבוט חולדות DIY - המתים RAT: 5 שלבים (עם תמונות)
דוושת עיוות אפקט גיטרה לעיוות שיבוט חולדות DIY - החולדה המתה: זו לא דוושת עיוות של מיקי מאוס! דוושה זו היא שיבוט של אחד על דוושות האפקטים האהובות עלי משנות ה -80 … עיוות עכברוש RAT של ProCo. זוהי דוושת עיוות בסיסית של OpAmp באמצעות שבב ה- IC הקלאסי LM308N שהוא מבנה פשוט למדי עבור