সুচিপত্র:

নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল): 6 টি ধাপ (ছবি সহ)
নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল): 6 টি ধাপ (ছবি সহ)

ভিডিও: নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল): 6 টি ধাপ (ছবি সহ)

ভিডিও: নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল): 6 টি ধাপ (ছবি সহ)
ভিডিও: ДОБАВЬТЕ ЭТО В ГРУНТ ПЕРЕД ПОСЕВОМ СЕМЯН. Результат будет потрясающий! 2024, নভেম্বর
Anonim
নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল)
নেকক্রাশার (গিটার মাউন্ট করা ইফেক্ট পেডাল)

ডেল রোজেন, কার্লোস রেইজ এবং রব কোচ

DATT 2000

ধাপ 1: সমস্যা

সমস্যা
সমস্যা

গিটার প্যাডেল বাদককে প্যাডেল প্ল্যাটফর্মে সীমাবদ্ধ করে। সমাধান: গিটারের মধ্যে একটি গিটার প্যাডেল কার্যকারিতা তৈরি করুন এবং এম্বেড করুন। এটি সংগীতশিল্পীকে প্যাডবোর্ডের অবস্থানের মধ্যে সীমাবদ্ধ থাকার পরিবর্তে গিটার গলাকে ইন্টারফেস হিসাবে ব্যবহার করে মঞ্চ জুড়ে অবাধে চলাফেরা করতে দেয়। আমরা একটি বিটক্রাশার/নমুনা হার প্রভাব ডিভাইস তৈরি করে এই ধারণাটি অন্বেষণ করব।

ধাপ 2: প্রকল্পের প্রসঙ্গ

প্রকল্পের প্রসঙ্গ
প্রকল্পের প্রসঙ্গ

অনেক গিটার প্যাডেল আছে যারা সঙ্গীতশিল্পীরা তাদের গিটারের আওয়াজ ম্যানিপুলেট করতে ব্যবহার করে। এগুলির বেশিরভাগই সাধারণত র্যাক-ভিত্তিক বা স্টম্প বক্স ইউনিটে থাকে, তাই প্রভাবগুলির নিয়ন্ত্রণকে প্রভাব ইউনিটের অবস্থানে সীমাবদ্ধ করে। গিটারে ডিভাইসটি মাউন্ট করা খেলোয়াড়দের মঞ্চের যেকোনো স্থানে প্রভাবের পরামিতি নিয়ন্ত্রণ করতে সক্ষম করে। এর অর্থ তারা সীমাবদ্ধ থাকবে না এবং তাদের কর্মক্ষমতার জন্য ঘুরে বেড়ানোর স্বাধীনতা থাকতে পারে।

যেহেতু Arduino শুধুমাত্র 8 বিট অডিওতে সক্ষম, তাই উচ্চ বিশ্বস্ততা সংকেত প্রক্রিয়াকরণ করা অসম্ভব। এই কারণেই আমরা আমাদের প্রভাবগুলি বেছে নিয়েছি, কারণ সেগুলি কম বিশ্বস্ততা, বিকৃত শব্দ তৈরির উপর ভিত্তি করে। এই একমাত্র প্রভাব যা একটি Arduino সঙ্গে যুক্তিসঙ্গতভাবে সম্ভব।

ধাপ 3: যন্ত্রাংশ / সরঞ্জাম প্রয়োজন

যন্ত্রাংশ / সরঞ্জাম প্রয়োজন
যন্ত্রাংশ / সরঞ্জাম প্রয়োজন

● প্রভাব ড্রিল

● ওয়্যার কাটার

● তারের স্ট্রিপার

Old সোল্ডারিং আয়রন

● গরম আঠালো বন্দুক

● Desoldering পাম্প

● গিটার ● ঘের

ঝাল

● গরম আঠালো

● আরডুইনো

● প্রোটো বোর্ড

● প্রলিপ্ত তার

● অডিও জ্যাক (x2)

● Potentiometers (x3)

● ক্যাপাসিটার: 2.2 uF (x2)

● উন্মুক্ত তামার তার

Rew স্ক্রু (M3.5 *8)

● প্রতিরোধক: 1 কে, 10 কে, 1.2 কে, 1.5 কে, 390 কে

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

ধাপ 4: প্রযুক্তিগত কৌশল

প্রযুক্তিগত কৌশল
প্রযুক্তিগত কৌশল

অভ্যন্তরীণ সার্কিট্রি

ইনপুট আউটপুট

আমাদের গিটার থেকে আসা অডিও সিগন্যালকে এমন কিছুতে রূপান্তর করতে হবে যা আরডুইনো ব্যবহার করতে পারে এবং সংশোধন করতে পারে। তারপরে আমাদের আরডুইনো থেকে আসা সংকেতটিকে অডিও সংকেতে রূপান্তর করতে হবে। Arduino 0V থেকে 5V পর্যন্ত ভোল্টেজ পড়ে, অডিও সংকেত -1V থেকে 1V হয়। এই রূপান্তরগুলি প্রতিরোধক ব্যবহার করে করা হয়। সিগন্যালটি আউটপুট সার্কিটেও রূপান্তরিত হবে।

Arduino লাইব্রেরি: ArduinoDSP

প্রকল্পের বর্ণনা (ইন্টারফেস)

Knobs Knob 1: নমুনা হার

Knob 2: বিট ক্রাশার

Knob 3: বিট শিফটার

ধাপ 5: কোড

কোড
কোড

#অন্তর্ভুক্ত "dsp.h"

#ডিবিইন সিবিআই (এসএফআর, বিট) (_SFR_BYTE (sfr) & = ~ _BV (বিট)) #ডিফাইন sbi (sfr, বিট)

বুলিয়ান 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; বাইট বিবি;

বাইট ডিডি [512]; // অডিও মেমরি অ্যারে 8-বিট

অকার্যকর সেটআপ () {setupIO ();

// 1 সেকেন্ড ফিল_সাইনওয়েভ () পরে পুনরায় লোড তরঙ্গ;

// 19kHz স্যাম্পলিং ফ্রিকোয়েন্সি cbi (ADCSRA, ADPS2) এর জন্য adc prescaler 64 তে সেট করুন; 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); // টাইমার 2 PWM মোড দ্রুত PWM cbi (TCCR2A, COM2A0) সেট করেছে; sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // টাইমার 2 সিবিআই (TCCR2B, WGM22) এর জন্য সেটআপ; // টাইমার 2 ক্লক প্রেসকলার থেকে: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // টাইমার 2 পিডব্লিউএম পোর্ট এসবিআই সক্ষম করুন (ডিডিআরবি, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

অকার্যকর লুপ () {

// প্রভাব potentiometer এবং ঘূর্ণমান সুইচ readKnobs () অবস্থা পরীক্ষা করুন;

// ************* // *** স্বাভাবিক *** // *************

যদি (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;

যখন (! 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; ভাসমান dx; ফ্লোট এফডি; ভাসমান fcnt; dx = 2 * pi / 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 offset যোগ করুন; // অ্যারেতে মান লিখুন

} }

// ************************************************** ****************** // টাইমার 2 ইন্টারাপ্ট সার্ভিস 62.5 KHz // এখানে অডিও এবং পট সিগন্যালটি 16Mhz / 256 /2 /2 = 15625 হারে নমুনা করা হয়েছে Hz ISR (TIMER2_OVF_vect) {

পোর্টবি = পোর্টবি | 1;

div32 =! div32; // ডিভাইড টাইমার 2 ফ্রিকোয়েন্সি / 2 থেকে 31.25kHz হলে (div32) {div16 =! div16; যদি (div16) {// নমুনা চ্যানেল 0 এবং 1 পর্যায়ক্রমে তাই প্রতিটি চ্যানেল 15.6kHz badc0 = ADCH দিয়ে নমুনা করা হয়; // ADC চ্যানেল 0 sbi (ADMUX, MUX0) পান; // মাল্টিপ্লেক্সার চ্যানেল 1 তে সেট করুন} অন্য {badc1 = ADCH; // ADC চ্যানেল 1 cbi (ADMUX, MUX0) পান; // মাল্টিপ্লেক্সার চ্যানেল 0 এ সেট করুন f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // রূপান্তর শুরু করার আগে অল্প বিলম্ব sbi (ADCSRA, ADSC); // পরবর্তী রূপান্তর শুরু করুন}

}

ধাপ 6: ভিডিও

সম্ভাব্য সমস্যা ● পিকআপ পাওয়ার সার্কিটের জন্য খুব দুর্বল - একটি অপ amp প্রয়োজন। - ভিডিওতে আমরা একটি সিগন্যাল বুস্টার ব্যবহার করেছি। (ধূসর বাক্সটি টেবিলে পড়ে আছে।)

প্রস্তাবিত: