جدول المحتويات:

صندوق تأثيرات ATMega1284 رباعي Opamp: 4 خطوات (مع صور)
صندوق تأثيرات ATMega1284 رباعي Opamp: 4 خطوات (مع صور)

فيديو: صندوق تأثيرات ATMega1284 رباعي Opamp: 4 خطوات (مع صور)

فيديو: صندوق تأثيرات ATMega1284 رباعي Opamp: 4 خطوات (مع صور)
فيديو: توضيح مفصل لطريقة برمجة لوحة الزراعة الذكية مع دمج اكثر من كود برمجة في مشروع واحد 2024, يوليو
Anonim
صندوق تأثيرات ATMega1284 رباعي Opamp
صندوق تأثيرات ATMega1284 رباعي Opamp

يستخدم Stomp Shield لـ Arduino من Open Music Labs Arduino Uno وأربعة opamps كصندوق تأثيرات الغيتار. على غرار التعليمات السابقة التي توضح كيفية نقل Electrosmash Uno Pedalshield ، قمت أيضًا بنقل صندوق Open Music Labs Guitar Effects إلى ATMega1284P الذي يحتوي على ثمانية أضعاف ذاكرة الوصول العشوائي من Uno (16 كيلو بايت مقابل 2 كيلو بايت).

مقارنةً بالتعليمات السابقة باستخدام وحدة تأثيرات ATMega1284 ، يتمتع هذا المربع بالمزايا التالية:

(1) يحتوي على خلاط يمزج الإشارة غير المعالجة مع إشارة معالجة MCU - وهذا يعني أن جودة الإشارة عند الخرج قد تحسنت كثيرًا.

(2) يقوم بمعالجة إخراج 16 بت لمخرجي PWM بينما يستخدم مربع التأثيرات السابق 8 بت لبعض الأمثلة مثل تأثير التأخير.

(3) يحتوي على مقياس جهد التغذية المرتدة الذي يمكن استخدامه لتعزيز التأثيرات - خاصة مع تأثير الفلانجر / الطور الذي يضيف حوالي 30 بالمائة من التغذية الراجعة إلى جودة التأثير بشكل كبير.

(4) تردد مرشح التمرير المنخفض هو 10 كيلو هرتز مقارنة بـ 5 كيلو هرتز لمربع التأثيرات السابق - وهذا يعني أن الإشارة عند الخرج تبدو "أكثر هشاشة" إلى حد كبير.

(5) يستخدم مشغل مقاطعة مختلف قد يفسر مستوى الضوضاء المنخفض بشكل كبير الذي يظهر في مربع التأثيرات هذا.

لقد بدأت من خلال لوحة الخبز Stompbox Shield القائمة على Open Music Labs المستندة إلى Uno وقد تأثرت جدًا بأداء دائرة معالجة إشارة OpAmp الأربعة هذه (حتى عند استخدام Arduino Uno) ، حيث قمت بنقلها إلى لوحة شريطية لاستخدامها بشكل دائم.

تم بعد ذلك نقل نفس دارة opamp الأربعة ورمز DSP إلى ATMega1284 - مرة أخرى ، بشكل مفاجئ بصرف النظر عن التغييرات غير الأساسية مثل تعيين المفاتيح و LED إلى منفذ مختلف ، وتخصيص 7000 كيلو كلمة بدلاً من 1000 كيلو من ذاكرة الوصول العشوائي لكلمة من ذاكرة الوصول العشوائي للتأخير المؤقت ، كان لا بد من إجراء تغييرين أساسيين فقط في الكود المصدري ، وهما التغيير إلى ADC0 من ADC2 ، وتغيير مخرجات Timer1 / PWM OC1A و OC1B من المنفذ B على Uno إلى المنفذ D (PD5 و PD4) على ATMega1284.

كما لوحظ سابقًا ، على الرغم من توفر لوحات التطوير الخاصة بـ ATMega1284 (Github: MCUdude MightyCore) ، فمن السهل شراء الرقاقة العارية (الخالية من أداة تحميل التشغيل) (قم بشراء إصدار PDIP وهو لوحة الخبز واللوحة الشريطية) ، ثم قم بتحميل شوكة Mark Pendrith لمحمل إقلاع Maniacbug Mighty-1284p Core Optiboot أو MCUdude Mightycore ، باستخدام Uno كمبرمج ISP ، ثم تحميل الرسومات مرة أخرى عبر Uno إلى AtMega1284. ترد التفاصيل والروابط الخاصة بهذه العملية في الملحق 1 من التعليمات السابقة.

الخطوة 1: قائمة الأجزاء

قائمة الاجزاء
قائمة الاجزاء
قائمة الاجزاء
قائمة الاجزاء

ATMega1284P (إصدار حزمة PDIP 40 دبوس) Arduino Uno R3 (يستخدم كمزود خدمة إنترنت لنقل محمل التمهيد والرسومات إلى ATMega1284) OpAmp MCP6004 رباعي OpAmp (أو RRIO مشابه (إدخال وإخراج من السكك الحديدية إلى السكك الحديدية) OpAmp مثل TLC2274) 1 x LED أحمر 1 × 16 ميجاهرتز كريستال 2 × 27 pF مكثفات 1 × 3n9 مكثف 1 × 1n2 مكثف 1 × 820pF مكثف 2 × 120 pF مكثف 4 × 100n مكثفات 3 × 10 فائق التوهج 16 فولت مكثفات إلكتروليتية 4 × 75 كيلو مقاومات 4 × 3k9 مقاومات 1 × 36 كيلو المقاوم 1 x 24k المقاوم 2 x 1M المقاومات 1 x 470 أوم المقاوم 3 x 1k المقاومات 2 x 50k مقاييس الجهد (الخطي) 1 x 10k الجهد (الخطي) 3 x مفاتيح الضغط (يجب استبدال أحدهم بثلاثة أقطاب 2- طريقة footswitch إذا كان صندوق التأثيرات سيتم استخدامه للعمل المباشر)

الخطوة الثانية: البناء

بناء
بناء

تُظهر الدائرة 1 الدائرة المستخدمة و Stripboard 1 هو تمثيلها المادي (Fritzing 1) مع الصورة 1 الدائرة الفعلية المغطاة بالخبز قيد التشغيل. تم إجراء ثلاثة تغييرات صغيرة في الدائرة: يتم استخدام انحياز opamp نصف مستوى العرض المشترك لثلاث مراحل OpAmp ، وتم استبدال المقاومات المتوازية 3 × 75 كيلو و 2 × 75 كيلو أوم بمقاومات مفردة 24 كيلو و 36 كيلو ، وتمت زيادة مكثفات التغذية المرتدة إلى 120pF لهاتين المرحلتين OpAmp. تم استبدال أداة التحكم الدوارة بزرين ضغط يستخدمان لزيادة أو تقليل معلمات التأثيرات. يظهر الاتصال ثلاثي الأسلاك بـ ATMega1284 على الدائرة كـ ADC إلى الطرف 40 ، و PWMlow من السن 19 ، و PWM عالي من السن 18. وتتصل الأزرار الانضغاطية الثلاثة بالمسامير 1 و 36 و 35 ويتم تأريضها في الطرف الآخر. يتم توصيل LED عبر المقاوم 470 إلى الطرف 2.

مراحل الإدخال والإخراج OpAmp: من المهم أن يتم استخدام RRO أو يفضل RRIO OpAmp بسبب تأرجح الجهد الكبير المطلوب عند خرج OpAmp إلى ADC الخاص بـ ATMega1284. تحتوي قائمة الأجزاء على عدد من أنواع OpAmp البديلة. يتم استخدام مقياس الجهد 50 كيلو لضبط كسب الإدخال إلى مستوى أقل بقليل من أي تشويه ، ويمكن استخدامه أيضًا لضبط حساسية الإدخال لمصدر إدخال بخلاف الجيتار مثل مشغل الموسيقى. تحتوي مرحلة إدخال OpAmp الثانية ومرحلة إخراج opamp الأولى على مرشح RC ذو رتبة أعلى لإزالة ضوضاء MCU المولدة رقميًا من دفق الصوت.

مرحلة ADC: تم تكوين ADC للقراءة عبر مقاطعة مؤقت. يجب توصيل مكثف 100nF بين دبوس AREF في ATMega1284 والأرض لتقليل الضوضاء حيث يتم استخدام مصدر Vcc داخلي كجهد مرجعي - لا تقم بتوصيل دبوس AREF بـ +5 فولت مباشرة!

مرحلة DAC PWM: نظرًا لأن ATMega1284 لا يحتوي على DAC الخاص به ، يتم إنشاء أشكال الموجة الصوتية الناتجة باستخدام تعديل عرض النبضة لمرشح RC. يتم تعيين مخرجي PWM في PD4 و PD5 على أنهما البايت المرتفع والمنخفض لإخراج الصوت ويتم خلطهما بالمقاومين (3k9 و 1 M) بنسبة 1: 256 (بايت منخفض وبايت عالي) - مما ينتج عنه إخراج الصوت.

الخطوة 3: البرمجيات

يعتمد البرنامج على رسومات دواسة ستومب بوكس Open Music Labs ، ويتم تضمين مثالين وهما تأثير flanger / Phaseer وتأثير التأخير. مرة أخرى كما هو الحال مع التعليمات السابقة ، تم نقل المفاتيح و LED إلى منافذ أخرى بعيدًا عن تلك المستخدمة من قبل مبرمج ISP (SCLK و MISO و MOSI و Reset).

تم زيادة مخزن التأخير المؤقت من 1000 كلمة إلى 7000 كلمة ، وتم تعيين PortD كإخراج لإشارات PWM. حتى مع زيادة المخزن المؤقت للتأخير ، لا يزال الرسم يستخدم حوالي 75 ٪ فقط من ذاكرة الوصول العشوائي ATMega1284 المتوفرة بسعة 16 كيلو بايت.

أمثلة أخرى مثل tremolo من موقع Open Music Labs على الويب للدواسة يمكن تكييف SHIELD Uno للاستخدام بواسطة Mega1284 عن طريق تغيير ملف التضمين Stompshield.h:

(1) تغيير DDRB | = 0x06 ؛ // تعيين نواتج pwm (دبابيس 9 ، 10) إلى outputtoDDRD | = 0x30 ؛

و

ADMUX = 0x62 ؛ // يسار ضبط ، adc2 ، داخلي vcc كمرجع إلى ADMUX = 0x60 ؛ // left Adjust، adc0، internal vcc كمرجع // هذه التغييرات هي التغييرات الأساسية الوحيدة في الكود // عند النقل من Uno إلى ATMega1284

بالنسبة للمثالين المذكورين هنا ، يتم تضمين ملف الرأس في المخطط - أي لا يلزم استخدام ملفات رأس

يتم استخدام أزرار الضغط 1 و 2 في بعض الرسومات لزيادة التأثير أو تقليله. في مثال التأخير ، يزيد أو ينقص وقت التأخير. عند تحميل الرسم التخطيطي لأول مرة ، يبدأ بأقصى تأثير تأخير. بالنسبة إلى مخطط flanger فيزر ، حاول زيادة التحكم في التغذية الراجعة للحصول على تأثير محسّن.

لتغيير التأخير إلى تأثير صدى (إضافة التكرار) ، قم بتغيير السطر:

المخزن المؤقت [الموقع] = الإدخال ؛ // تخزين عينة جديدة

إلى

المخزن المؤقت [الموقع] = (الإدخال + المخزن المؤقت [الموقع]) >> 1 ؛ // استخدم هذا لتأثير الصدى

يجب أن يكون مفتاح القدم عبارة عن مفتاح ثلاثي الأقطاب ثنائي الاتجاه

الخطوة 4: الروابط

اليكتروماش

افتح موسيقى مختبرات الموسيقى

دواسة تأثير ATMega

موصى به: