فهرست مطالب:

NeckCrusher (پدال جلوه گیتار): 6 مرحله (همراه با تصاویر)
NeckCrusher (پدال جلوه گیتار): 6 مرحله (همراه با تصاویر)

تصویری: NeckCrusher (پدال جلوه گیتار): 6 مرحله (همراه با تصاویر)

تصویری: NeckCrusher (پدال جلوه گیتار): 6 مرحله (همراه با تصاویر)
تصویری: АСМР 🏆🔥[Гарри Поттер и Кубок огня] [Глава 20-29] Чтение шепотом 📚 ASMR whisper [Harry Potter] 2024, نوامبر
Anonim
NeckCrusher (پدال جلوه ای با گیتار)
NeckCrusher (پدال جلوه ای با گیتار)

دیل روزن ، کارلوس ریس و راب کخ

DATT 2000

مرحله 1: مشکل

مسئله
مسئله

پدال های گیتار نوازنده را به سکوی پدال محدود می کند. راه حل: عملکرد پدال های گیتار را در خود گیتار ایجاد و تعبیه کنید. این به نوازنده اجازه می دهد آزادانه در سراسر صحنه حرکت کند و از گردن گیتار به عنوان رابط به جای محدود شدن در محل پدال استفاده کند. ما این مفهوم را با ایجاد یک دستگاه جلوه بیت رنده/میزان نمونه بررسی می کنیم.

مرحله 2: زمینه پروژه

زمینه پروژه
زمینه پروژه

بسیاری از پدال های گیتار توسط نوازندگان برای دستکاری صدای گیتارهای خود استفاده می شود. اغلب اینها معمولاً در واحدهای مبتنی بر قفسه یا قفسه هستند ، بنابراین کنترل اثرات را به محل واحد جلوه ها محدود می کند. نصب دستگاه بر روی گیتار ، بازیکنان را قادر می سازد تا پارامترهای اثر را در هر نقطه از صحنه کنترل کنند. این بدان معناست که آنها محدود نخواهند شد و می توانند آزادی حرکت برای عملکرد خود را داشته باشند.

از آنجا که آردوینو فقط قادر به پخش 8 بیت صدا است ، انجام پردازش سیگنال با وفاداری بالا غیرممکن است. به همین دلیل است که ما جلوه هایی را که انتخاب کردیم انتخاب کردیم ، زیرا آنها بر اساس ایجاد صدایی با وفاداری کم و تحریف شده است. اینها تنها جلوه هایی هستند که به طور معقول با آردوینو امکان پذیر است.

مرحله 3: قطعات / ابزار مورد نیاز

قطعات / ابزار مورد نیاز
قطعات / ابزار مورد نیاز

ill مته ضربه ای

. برش سیم

rip استریپرهای سیم

● آهن لحیم کاری

Gun تفنگ چسب داغ

● پمپ لحیم کاری

● گیتار los محفظه

● لحیم کاری

● چسب داغ

● آردوینو

● تخته اولیه

● سیم روکش دار

acks جک های صوتی (x2)

● پتانسیومترها (x3)

● خازن ها: 2.2 uF (x2)

● سیم مسی در معرض دید

● پیچ (M3.5 *8)

● مقاومت ها: 1 k ، 10 k ، 1.2 k ، 1.5 k ، 390 k

Op * Op Amp (LM358) / * ترانزیستور (2N3442)

مرحله 4: استراتژی فنی

استراتژی فنی
استراتژی فنی

مدارات داخلی

ورودی خروجی

ما باید سیگنال صوتی که از گیتار می آید را به چیزی تبدیل کنیم که آردوینو می تواند از آن استفاده و تغییر دهد. سپس باید سیگنال دریافتی از آردوینو را به سیگنال صوتی تبدیل کنیم. آردوینو ولتاژهای 0 تا 5 ولت را می خواند ، سیگنال های صوتی از -1 ولت تا 1 ولت است. این تبدیل ها با استفاده از مقاومت ها انجام می شود. سیگنال در مدار خروجی نیز تبدیل می شود.

کتابخانه آردوینو: ArduinoDSP

شرح پروژه (رابط)

دستگیره دستگیره 1: میزان نمونه

دستگیره 2: بیت سنگ شکن

دستگیره 3: تغییر دهنده بیت

مرحله 5: کد

کد
کد

#شامل "dsp.h"

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

boolean div32؛ boolean div16؛

فرار بولی f_sample؛ بایت فرار badc0؛ بایت فرار badc1؛ byte فرار 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 ()؛

// تنظیم پیش شماره رسانای adc روی 64 برای فرکانس نمونه برداری 19 کیلوهرتز cbi (ADCSRA ، ADPS2) ؛ sbi (ADCSRA ، ADPS1) ؛ sbi (ADCSRA ، ADPS0) ؛ // ADC 8 بیتی در ADCH Register 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) ؛ // ساعت مچی Timer2 ساعت پیش زمان برای: 1 sbi (TCCR2B ، CS20) ؛ cbi (TCCR2B ، CS21) ؛ cbi (TCCR2B ، CS22) ؛ // Timer2 PWM Port Enable sbi (DDRB، 3)؛ // cli ()؛ cbi (TIMSK0 ، TOIE0) ؛ sbi (TIMSK2 ، TOIE2) ؛ iw1 = badc1؛

}

حلقه خالی () {

// بررسی وضعیت پتانسیومتر اثر و سوئیچ چرخشی readKnobs () ؛

// ************* // ***طبیعی*** // *************

if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {ورودی بایت = analogRead (سمت چپ) ؛ خروجی (چپ ، ورودی) ؛ }

// ************* *** *** Phasor *** // ************

if (fx4> 100) {

fx1 = 0 ؛ fx2 = 0 ؛ fx3 = 0؛

while (! f_sample) {// منتظر مقدار نمونه از ADC} // چرخه 15625 کیلوهرتز = 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) ؛ // خروجی}

// ************* // *** Flanger *** // ************ if (fx3> 100) {

fx1 = 0 ؛ fx2 = 0 ؛ fx4 = 0؛

while (! f_sample) {// منتظر مقدار نمونه از ADC} // چرخه 15625 کیلوهرتز = 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؛ // limit 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؛ float dx؛ شناور fd ؛ شناور 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 ؛ // افزودن dc offset به sinewawe dd [iw] = bb؛ // مقدار را در آرایه بنویسید

} }

// ******************************************** ****************** // سرویس وقفه Timer2 در 62.5 کیلوهرتز // در اینجا سیگنال صوتی و دیگ با سرعت: 16 مگاهرتز / 256 /2 /2 = 15625 نمونه برداری می شود Hz ISR (TIMER2_OVF_vect) {

PORTB = PORTB | 1

div32 =! div32؛ // تقسیم تایمر 2 فرکانس / 2 به 31.25kHz اگر (div32) {div16 =! div16؛ if (div16) {// نمونه کانال 0 و 1 را به طور متناوب بنابراین هر کانال با 15.6kHz 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) ؛ // شروع تبدیل بعدی}

}

مرحله ششم: فیلم

مشکلات احتمالی: پیکاپ کمی ضعیف تر از مدار است - به یک آمپر نیاز دارید. - در ویدئو از تقویت کننده سیگنال استفاده کردیم. (جعبه خاکستری روی میز افتاده است.)

توصیه شده: