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

محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS): 3 خطوات
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS): 3 خطوات

فيديو: محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS): 3 خطوات

فيديو: محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS): 3 خطوات
فيديو: اصلاح كل مشاكل عداد rpm في السيارة 2024, ديسمبر
Anonim
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)
محرك متدرج يتحكم فيه MIDI مزود بشريحة توليف رقمي مباشر (DDS)

هل لديك فكرة سيئة أنه عليك فقط أن تتحول إلى مشروع صغير؟ حسنًا ، كنت ألعب بالرسم التخطيطي الذي رسمته لـ Arduino Due والذي يهدف إلى تأليف الموسيقى باستخدام وحدة AD9833 Direct Digital Synthesis (DDS) … وفي مرحلة ما فكرت "مهلاً ، ربما ينبغي عليّ تجهيز محرك / سائق متدرج من أجل هذه". وهذه الفكرة هي بالضبط ما أشعل شرارة هذا المشروع الصغير القائم على اللوح.

سيشمل هذا المشروع بعض التعليمات البرمجية لاستخدام MIDI-over-USB للتحكم في Arduino Due وإرسال موجات مربعة بين وحدة AD9833 وسائق السائر. سيكون هناك أيضًا رسم تخطيطي وإرشادات أساسية لتوصيل هذا بـ Arduino Due.

اللوازم:

ما ستحتاجه لهذا المشروع:

اردوينو ديو

ملاحظة: الكود مكتوب من أجل الاستحقاق ، ولكن يجب أن يعمل أيضًا و / أو يتكيف مع الصفر. يستخدم مكتبة MIDIUSB الخاصة بـ Arduino ، والتي تتطلب منفذ USB أصليًا.

لوحة توصيل بدون لحام + صداري

وحدة الاختراق AD9833

A4988 السائر سائق (أو ما شابه)

NEMA 17 Stepper Motor (أو ما شابه)

- مصدر طاقة 24 فولت (ملاحظة ، لقد اخترت هذه القيمة 24 فولت لأنها كانت أكبر من الجهد الاسمي لمحرك السائر. قد يختلف تنفيذك إذا كنت تستخدم محركًا أكبر)

الخطوة 1: اللوح

اللوح
اللوح

الفكرة الأساسية وراء ذلك هي أن الدائرة المتكاملة للتوليف الرقمي المباشر ستولد موجة مربعة لدفع دبوس "خطوة" سائق المحرك السائر. سيقوم سائق السائر بعد ذلك بتحريك المحرك بتردد مسموع محدد. يكون اتجاه المحرك تعسفيًا إلى حد ما طالما أنه يسير بالتردد الصحيح.

الطريقة التي أفضل اتباعها مع اللوح هو تشغيل دبابيس وأسس الطاقة أولاً ثم البدء في تشغيل جميع التوصيلات الأخرى التي لا تحتوي على طاقة.

أرضي:

- قم بتوصيل دبابيس AGND و DGND لوحدة AD9833 بسكة GND على لوح التجارب.

- اربط دبابيس GND الموجودة على محرك السائر بسكة GND

- أحضر هذا إلى أحد دبابيس GND الخاصة بـ Arduino Due

3.3 فولت الطاقة:

- قم بتوصيل VDD Pin الخاص بمشغل السائر بقضيب V + الخاص باللوح

- قم بتوصيل VCC Pin الخاص بالوحدة النمطية AD9833 بسكة V + الخاصة باللوح

- أحضر هذا إلى Arduino Due 3.3V Pin

24V الطاقة:

- قم بتوصيل دبوس VMOT بمصدر الطاقة 24V DC (اعتمادًا على اختيارك للمحرك ، قد ترغب في تشغيل سكة إمداد أعلى أو أقل)

اتصال من وحدة إلى وحدة:

- قم بتوصيل دبوس OUT من وحدة AD9833 بمسمار STEP الخاص بسائق المحرك

اتصالات السائر سائق:

- قم بتوصيل وصلات محرك متدرج بدبابيس 2B / 2A / 1A / 1B. القطبية ليست بهذه الأهمية ، طالما أن مراحل برنامج التشغيل تتطابق مع تلك الخاصة بالمحرك السائر.

- قم بتوصيل دبابيس RESET و SLEEP معًا ، ثم أحضرها إلى Arduino Due Pin 8.

- قم بتوصيل DIR Pin بالسكة 3.3V

وصلات الوحدة النمطية AD9833:

- قم بتوصيل SCLK بدبوس SCK الخاص بـ Arduino Due. لاحظ أن هذا الدبوس موجود على رأس ICSP ذو 6 سنون من الذكور بالقرب من وحدة التحكم الدقيقة ، وليس على رؤوس الأنثى الخارجية العادية.

- قم بتوصيل SDATA Pin بمسمار Due's MOSI. لاحظ أن هذا الدبوس موجود على رأس ICSP ذو 6 سنون من الذكور بالقرب من وحدة التحكم الدقيقة ، وليس على رؤوس الأنثى الخارجية العادية.

- قم بتوصيل FSYNC بـ Arduino Due Pin 6 (هذا هو دبوس Chip Select لهذا المشروع)

الآن وقد تم تجميع اللوح بالكامل ، حان الوقت لإلقاء نظرة على الكود!

الخطوة 2: البرمجة وإعداد MIDI

البرمجة وإعداد MIDI
البرمجة وإعداد MIDI

سوف يأخذ رسم.ino المرفق مدخلات USB-MIDI من خلال منفذ USB الأصلي الخاص بـ Arduino Due ، وسيستخدمها لقيادة AD9833. تحتوي هذه الشريحة على DAC يعمل بسرعة 25 ميجا هرتز مع 28 بت من دقة التردد (إجمالي المبالغة في ما هو مطلوب هنا) ، والكثير من الكود هنا يقوم بتكوين ذلك لتشغيل وإخراج موجة مربعة.

ملاحظة: يوجد منفذين USB. أحدهما يستخدم لبرمجة اللوحة ، والآخر سيُستخدم لاتصالات MIDI-over-USB

لاحظ أن هذا الرسم التخطيطي لن يعمل كما هو على Arduino Uno - هذا المشروع محدد في حاجته إلى USB الأصلي في Arduino Due أو الأجهزة المماثلة

خيارات التخصيص:

- هناك وضعان يمكن ضبطهما بواسطة تعريف ماكرو للمعالج. إذا تم ترك "#define STOPNOTES" كما هو ، فإن الخطوة ستتوقف بين الملاحظات. هذا غير مرغوب فيه دائمًا (على سبيل المثال ، تشغيل صوت تتابعي سريع) ، لذلك لتغيير هذا السلوك ، ما عليك سوى حذف أو التعليق على عبارة #define وسيتم تشغيل السائر باستمرار بمجرد تشغيله.

- أستخدم لوحة مفاتيح MIDI رخيصة 2 أوكتاف مع هذا الذي يحتوي على زر أعلى / لأسفل أوكتاف ، ولكن في حالة عدم توفر هذا الخيار ، يمكنك تحويل ترجمة التردد أدناه عن طريق الضرب أو القسمة على قوى 2.

تتم ترجمة MIDI إلى التردد باستخدام هذا السطر في وظيفة playNote: int f_out = (int) (27.5 * pow (2، ((float) midiNote-33) / 12)) ؛

- أميل إلى استخدام جهاز الكمبيوتر الخاص بي للتفاعل عبر USB MIDI - يمكنك القيام بذلك من خلال برنامج محطة عمل الصوت الرقمي (DAW) المفضل لديك. إذا لم يكن لديك واحد ، فمن السهل جدًا إعداد هذا النظام باستخدام LMMS - وهو نظام أساسي مجاني مفتوح المصدر. بمجرد تثبيته وتشغيله ، ما عليك سوى تعيين Arduino Due كجهاز إخراج MIDI ، وإذا كنت تستخدم لوحة مفاتيح USB MIDI ، فقم بتعيين ذلك كإدخال.

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

حان الوقت للعب محرك السائر الخاص بك!

كما هو مذكور ، كانت الفكرة الكاملة وراء هذا نوعًا ما تجربة غير متوقعة ، لذلك بكل الوسائل ، قم ببعض التجارب بنفسك!

موصى به: