विषयसूची:

नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल): 6 कदम (चित्रों के साथ)
नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल): 6 कदम (चित्रों के साथ)

वीडियो: नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल): 6 कदम (चित्रों के साथ)

वीडियो: नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल): 6 कदम (चित्रों के साथ)
वीडियो: JAMES HETFIELD REACTION WHEN KIRK HAMMETT PLAYS KILLER RIFF #METALLICA #shorts 2024, जुलाई
Anonim
नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल)
नेकक्रशर (गिटार माउंटेड इफेक्ट पेडल)

डेल रोसेन, कार्लोस रेयेस और रॉब कोचू

डैट 2000

चरण 1: समस्या

संकट
संकट

गिटार के पैडल संगीतकार को पैडल प्लेटफॉर्म तक सीमित रखते हैं। समाधान: गिटार पैडल कार्यक्षमता को गिटार में ही बनाएं और एम्बेड करें। यह संगीतकार को पैडलबोर्ड के स्थान तक सीमित होने के बजाय एक इंटरफ़ेस के रूप में गिटार की गर्दन का उपयोग करते हुए, मंच पर स्वतंत्र रूप से स्थानांतरित करने की अनुमति देता है। हम एक बिटक्रशर/नमूना दर प्रभाव उपकरण बनाकर इस अवधारणा की खोज करेंगे।

चरण 2: परियोजना संदर्भ

परियोजना संदर्भ
परियोजना संदर्भ

संगीतकारों द्वारा अपने गिटार की आवाज़ में हेरफेर करने के लिए कई गिटार पैडल का उपयोग किया जाता है। इनमें से अधिकांश आमतौर पर रैक-आधारित या स्टॉम्प बॉक्स इकाइयों में होते हैं, इसलिए प्रभावों के नियंत्रण को प्रभाव इकाई के स्थान तक सीमित रखते हैं। गिटार पर डिवाइस को माउंट करने से खिलाड़ी मंच पर कहीं भी प्रभाव के मापदंडों को नियंत्रित कर सकते हैं। इसका मतलब है कि उन्हें प्रतिबंधित नहीं किया जाएगा और उन्हें अपने प्रदर्शन के लिए घूमने-फिरने की आजादी होगी।

चूंकि Arduino केवल 8 बिट ऑडियो में सक्षम है, इसलिए उच्च निष्ठा सिग्नल प्रोसेसिंग करना असंभव है। यही कारण है कि हमने अपने द्वारा किए गए प्रभावों को चुना, क्योंकि वे कम निष्ठा, विकृत ध्वनि बनाने पर आधारित हैं। ये एकमात्र प्रभाव हैं जो एक Arduino के साथ यथोचित रूप से संभव हैं।

चरण 3: आवश्यक भाग / उपकरण

आवश्यक भाग / उपकरण
आवश्यक भाग / उपकरण

प्रभाव ड्रिल

वायर कटर

वायर स्ट्रिपर्स

सोल्डरिंग आयरन

● हॉट ग्लू गन

डीसोल्डरिंग पंप

● गिटार● संलग्नक

मिलाप

गर्म गोंद

अरुडिनो

प्रोटो बोर्ड

लेपित तार

ऑडियो जैक (x2)

पोटेंशियोमीटर (x3)

कैपेसिटर: 2.2 यूएफ (x2)

उजागर तांबे के तार

स्क्रू (M3.5 *8)

● प्रतिरोधक: 1 k, 10 k, 1.2 k, 1.5 k, 390 k

● *ऑप एम्प (LM358) / *ट्रांजिस्टर (2N3442)

चरण 4: तकनीकी रणनीति

तकनीकी रणनीति
तकनीकी रणनीति

आंतरिक सर्किटरी

इनपुट आउटपुट

हमें गिटार से आने वाले ऑडियो सिग्नल को किसी ऐसी चीज़ में बदलने की ज़रूरत है जिसे आर्डिनो उपयोग और संशोधित कर सके। फिर हमें arduino से आने वाले सिग्नल को वापस ऑडियो सिग्नल में बदलना होगा। Arduino 0V से 5V तक वोल्टेज पढ़ता है, ऑडियो सिग्नल -1V से 1V तक है। ये रूपांतरण प्रतिरोधों का उपयोग करके किए जाते हैं। सिग्नल को आउटपुट सर्किट में भी कन्वर्ट किया जाएगा।

Arduino लाइब्रेरी: ArduinoDSP

परियोजना विवरण (इंटरफ़ेस)

घुंडी घुंडी १: नमूना दर

घुंडी २: बिट क्रशर

घुंडी ३: बिट शिफ्टर

चरण 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; अस्थिर बाइट आईबीबी;

इंट fx1; इंट fx2; इंट fx3; इंट fx4;

इंट सीएनटीए; इंट आईसीएनटी; इंट आईसीएनटी1; इंट आईसीएनटी2; इंट सीएनटी2; इंट आईडब्ल्यू; इंट आईडब्ल्यू1; इंट आईडब्ल्यू२; बाइट बी बी;

बाइट डीडी [512]; // ऑडियो मेमोरी ऐरे 8-बिट

शून्य सेटअप () {सेटअपियो ();

// 1 सेकंड के बाद फिर से लोड करें fill_sinewave ();

// 19kHz सैंपलिंग फ़्रीक्वेंसी cbi (ADCSRA, ADPS2) के लिए adc प्रीस्केलर को 64 पर सेट करें; एसबीआई (एडीसीएसआरए, एडीपीएस1); एसबीआई (एडीसीएसआरए, एडीपीएस0); // ADCH रजिस्टर sbi (ADMUX, ADLAR) में 8-बिट ADC; एसबीआई (एडीएमयूएक्स, आरईएफएस0); सीबीआई (ADMUX, REFS1); सीबीआई (ADMUX, MUX0); सीबीआई (ADMUX, MUX1); सीबीआई (ADMUX, MUX2); सीबीआई (ADMUX, MUX3); // Timer2 PWM मोड तेजी से PWM cbi (TCCR2A, COM2A0) पर सेट है; एसबीआई (टीसीसीआर2ए, कॉम2ए1); एसबीआई (टीसीसीआर2ए, डब्ल्यूजीएम20); एसबीआई (टीसीसीआर2ए, डब्ल्यूजीएम21); // Timer2 cbi के लिए सेटअप (TCCR2B, WGM22); // Timer2 क्लॉक प्रीस्केलर टू: 1 sbi (TCCR2B, CS20); सीबीआई (टीसीसीआर2बी, सीएस21); सीबीआई (TCCR2B, CS22); // टाइमर 2 पीडब्लूएम पोर्ट एसबीआई सक्षम करें (डीडीआरबी, 3); // क्ली (); सीबीआई (TIMSK0, TOIE0); एसबीआई (TIMSK2, TOIE2); iw1 = badc1;

}

शून्य लूप () {

// प्रभाव पोटेंशियोमीटर और रोटरी स्विच रीडनॉब्स () की स्थिति की जांच करें;

// ************* // *** सामान्य **** // *************

अगर (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {बाइट इनपुट = एनालॉगरेड (बाएं); आउटपुट (बाएं, इनपुट); }

// ************* // *** चरण *** // *************

अगर (fx4> 100) {

एफएक्स1 = 0; fx2 = 0; एफएक्स3 = 0;

जबकि (!f_sample) {// ADC से नमूना मूल्य की प्रतीक्षा करें} // साइकिल 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = झूठा; बीबी = Badc1; डीडी [आईसीएनटी 1] = बी बी; // बफर को लिखें fx4 = iw * badc0 / 255; // पोटेंशियोमीटर iw1 = dd [icnt2] के साथ स्केल विलंबित नमूना; // देरी बफर पढ़ें badc0 = badc0 / 20; // मान को 512 icnt1++ तक सीमित करें; icnt2 = icnt1 - badc0; आईसीएनटी2 = आईसीएनटी2 और 511; // सीमा सूचकांक 0.. icnt1 = icnt1 और 511; // सीमा सूचकांक 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; बी बी = आईडब्ल्यू२; OCR2A = बीबी; // पीडब्लूएम आउटपुट के लिए नमूना मूल्य

PORTD = PORTD ^ 128; आउटपुट (बाएं, PORTD); // आउटपुट}

// ************* // *** फ्लेंजर *** // ************* अगर (fx3> 100) {

एफएक्स1 = 0; fx2 = 0; एफएक्स4 = 0;

जबकि (!f_sample) {// ADC से नमूना मूल्य की प्रतीक्षा करें} // साइकिल 15625 KHz = 64uSec

PORTD = PORTD | 128; f_sample = झूठा; बीबी = डीडी [आईसीएनटी]; // देरी बफर पढ़ें iw = 127 - bb; // ऑफसेट ऑफसेट fx3 = iw * badc0 / 255; // पोटेंशियोमीटर iw1 = 127 - badc1 के साथ स्केल विलंबित नमूना; // नए नमूने से ऑफसेट को घटाएं iw1 = iw1 + iw; // विलंबित नमूना और नया नमूना जोड़ें यदि (iw1 127) iw1 = 127; // ऑडियो सीमक bb = १२७ + iw1; // ऑफसेट डीडी [आईसीएनटी] = बीबी जोड़ें; // ऑडियो बफर icnt++ में नमूना स्टोर करें; आईसीएनटी = आईसीएनटी और 511; // बफ़रइंडेक्स को सीमित करें ०..५११ OCR2A = bb; // पीडब्लूएम आउटपुट के लिए नमूना मूल्य

PORTD = PORTD ^ 128; आउटपुट (बाएं, PORTD); // आउटपुट

} }

शून्य रीडनॉब्स () {fx1 = एनालॉग रीड (1); fx2 = एनालॉग रीड (2); fx3 = एनालॉगरेड(3); fx4 = एनालॉगरेड(4);

}

शून्य भरण_साइनवेव () {फ्लोट पाई = ३.१४१५९२; फ्लोट डीएक्स; फ्लोट एफडी; फ्लोट fcnt; डीएक्स = 2 * पीआई / 512; // 512 बाइट बफररी भरें (iw = 0; iw <= 511; iw ++) {// 50 अवधि sinewawe fd = 127 * sin (fcnt) के साथ; // मौलिक स्वर fcnt = fcnt + dx; // 0 से 2xpi की सीमा में और 1/512 वेतन वृद्धि bb = 127 + fd; // sinewawe dd [iw] = bb में dc ऑफ़सेट जोड़ें; // सरणी में मान लिखें

} }

//************************************************ ************************************* हर्ट्ज आईएसआर (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

डिव32 = !div32; // टाइमर2 आवृत्ति / 2 को 31.25kHz से विभाजित करें यदि (div32) {div16 = !div16; अगर (div16) {// नमूना चैनल 0 और 1 वैकल्पिक रूप से तो प्रत्येक चैनल 15.6kHz badc0 = ADCH के साथ नमूना है; // एडीसी चैनल 0 एसबीआई (ADMUX, MUX0) प्राप्त करें; // मल्टीप्लेक्सर को चैनल 1 पर सेट करें} और {badc1 = ADCH; // ADC चैनल 1 cbi (ADMUX, MUX0) प्राप्त करें; // मल्टीप्लेक्सर को चैनल 0 पर सेट करें f_sample = true; } आईबीबी++; आईबीबी--; आईबीबी++; आईबीबी--; // रूपांतरण शुरू होने से पहले कम देरी एसबीआई (एडीसीएसआरए, एडीएससी); // अगला रूपांतरण शुरू करें}

}

चरण 6: वीडियो

संभावित समस्याएं पावर सर्किट के लिए पिकअप थोड़ा बहुत कमजोर है - एक सेशन amp की जरूरत है। - वीडियो में हमने सिग्नल बूस्टर का इस्तेमाल किया है। (ग्रे बॉक्स टेबल पर पड़ा है।)

सिफारिश की: