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

صنع الأغاني باستخدام Arduino و DC Motor: 6 خطوات
صنع الأغاني باستخدام Arduino و DC Motor: 6 خطوات

فيديو: صنع الأغاني باستخدام Arduino و DC Motor: 6 خطوات

فيديو: صنع الأغاني باستخدام Arduino و DC Motor: 6 خطوات
فيديو: #Shorts مستوى مساحة الحالي خلال رمضان 💪🏼🔥 2024, يوليو
Anonim
صنع الأغاني باستخدام Arduino و DC Motor
صنع الأغاني باستخدام Arduino و DC Motor

في اليوم الآخر ، أثناء التمرير عبر بعض المقالات حول Arduino ، اكتشفت مشروعًا مثيرًا للاهتمام يستخدم محركات متدرجة يتحكم فيها Arduino لإنشاء ألحان قصيرة. استخدم Arduino دبوس PWM (Pulse Width Modulation) لتشغيل محرك السائر بترددات محددة ، تتوافق مع النوتات الموسيقية. من خلال توقيت الترددات التي يتم تشغيلها ، يمكن سماع لحن واضح من محرك السائر.

ومع ذلك ، عندما جربته بنفسي ، وجدت أن محرك السائر الذي أملكه لا يمكن أن يدور بسرعة كافية لخلق نغمة. بدلاً من ذلك ، استخدمت محرك DC ، وهو سهل البرمجة نسبيًا والاتصال بـ Arduino. يمكن استخدام L293D IC المشترك لقيادة المحرك بسهولة من دبوس Arduino PWM ، ويمكن أن تولد وظيفة النغمة الأصلية () في Arduino التردد اللازم. لدهشتي ، لم أجد أي أمثلة أو مشاريع تستخدم محرك DC عبر الإنترنت ، وبالتالي فإن Instructables هذه هي ردي على علاج ذلك. هيا بنا نبدأ!

ملاحظة. أفترض أن لديك بالفعل بعض الخبرة مع Arduino وأنك على دراية بلغة البرمجة والأجهزة. يجب أن تعرف ما هي المصفوفات ، وما هو PWM وكيفية استخدامه ، وكيف يعمل الجهد والتيار ، على سبيل المثال لا الحصر. إذا لم تكن موجودًا بعد أو بدأت للتو في استخدام Arduino ، فلا داعي للقلق: جرب صفحة البدء هذه من موقع Arduino الرسمي وعد مرة أخرى متى كنت مستعدًا.:)

اللوازم

  • Arduino (لقد استخدمت UNO ولكن يمكنك استخدام Arduino مختلف إذا كنت ترغب في ذلك)
  • محرك قياسي 5 فولت تيار مستمر ، ويفضل أن يكون واحدًا قادرًا على توصيل مروحة (انظر الصورة في "تجميع الدائرة"
  • L293D إيك
  • العديد من الأزرار الانضغاطية مثل الملاحظات في الأغنية التي تريد تشغيلها
  • اللوح
  • أسلاك العبور

الخطوة 1: نظرة عامة

وإليك كيفية عمل المشروع: سيقوم Arduino بتوليد موجة مربعة بتردد معين ، والتي يتم إخراجها إلى L293D. يتم توصيل L293D بمصدر طاقة خارجي يستخدمه لتشغيل المحرك بالتردد الذي يقدمه Arduino. من خلال منع دوران عمود محرك التيار المستمر ، يمكن سماع المحرك وهو ينطفئ ويعمل على التردد ، مما ينتج عنه نغمة أو نغمة. يمكننا برمجة Arduino لتشغيل الملاحظات عند الضغط على الأزرار ، أو لتشغيلها تلقائيًا.

الخطوة 2: تجميع الدائرة

تجميع الدائرة
تجميع الدائرة
تجميع الدائرة
تجميع الدائرة

لتجميع الدائرة ، ما عليك سوى اتباع مخطط Fritzing أعلاه.

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

الخطوة 3: كيف تعمل الدائرة

كيف تعمل الدائرة
كيف تعمل الدائرة

L293D هو IC يستخدم لقيادة الأجهزة ذات الجهد العالي والتيار العالي مثل المرحلات والمحركات. لا يستطيع Arduino قيادة معظم المحركات مباشرة من خرجه (ويمكن أن يتسبب الجزء الخلفي من المحرك EMF في إتلاف الدوائر الرقمية الحساسة في Arduino) ، لذلك يمكن استخدام IC مثل L293D مع مصدر طاقة خارجي لقيادة محرك التيار المستمر بسهولة. سيؤدي إدخال إشارة في L293D إلى إخراج نفس الإشارة إلى محرك التيار المستمر دون المخاطرة بإتلاف Arduino.

أعلاه هو مخطط pinout / الوظيفي لـ L293D من ورقة البيانات الخاصة به. نظرًا لأننا نقود محركًا واحدًا فقط (يمكن لـ L293D القيادة 2) ، فإننا نحتاج فقط إلى جانب واحد من IC. الدبوس 8 عبارة عن طاقة ، والدبابيس 4 و 5 هي GND ، والدبوس 1 هو خرج PWM من Arduino ، والدبابيس 2 و 7 تتحكم في اتجاه المحرك. عندما يكون الدبوس 2 مرتفعًا والدبوس 7 منخفض ، يدور المحرك في اتجاه واحد ، وعندما يكون الدبوس 2 منخفضًا والدبوس 7 مرتفعًا ، يدور المحرك في الاتجاه الآخر. نظرًا لأننا لا نهتم بالطريقة التي يدور بها المحرك ، فلا يهم ما إذا كانت الدبابيس 2 و 7 منخفضة أو مرتفعة ، طالما أنها مختلفة عن بعضها البعض. تتصل الدبابيس 3 و 6 بالمحرك. يمكنك توصيل كل شيء بالجانب الآخر (المسامير 9-16) إذا كنت ترغب في ذلك ، ولكن كن على دراية بأن دبابيس الطاقة و PWM تقوم بتبديل الأماكن.

ملاحظة: إذا كنت تستخدم Arduino لا يحتوي على دبابيس كافية لكل زر ، فيمكنك استخدام شبكة من المقاومات لتوصيل جميع المفاتيح بدبوس تمثيلي واحد ، كما هو الحال في هذه التعليمات. كيف يعمل هذا خارج نطاق هذا المشروع ، ولكن إذا سبق لك استخدام R-2R DAC ، فيجب أن تجده مألوفًا. لاحظ أن استخدام دبوس تناظري سيتطلب إعادة كتابة أجزاء كبيرة من الشفرة ، حيث لا يمكن استخدام مكتبة الأزرار مع الدبابيس التناظرية.

الخطوة 4: كيف يعمل الكود

لتسهيل التعامل مع جميع الأزرار ، استخدمت مكتبة تسمى "Button" من madleech. قمت بتضمين المكتبة أول شيء. بعد ذلك ، في السطور 8-22 ، حددت ترددات النوتات المطلوبة لتشغيل Twinkle و Twinkle و Little Star (مثال الأغنية) والدبوس الذي سأستخدمه لتشغيل L293D والأزرار.

في وظيفة الإعداد ، قمت بتهيئة المسلسل ، والأزرار ، وقمت بتعيين دبوس برنامج التشغيل لـ L293D على وضع الإخراج.

أخيرًا ، في الحلقة الرئيسية راجعت لمعرفة ما إذا تم الضغط على زر. إذا كان الأمر كذلك ، فإن Arduino يقوم بتشغيل الملاحظة المقابلة ويطبع اسم الملاحظة على Serial Monitor (مفيد لمعرفة الملاحظات الموجودة على لوح التجارب الخاص بك). إذا تم إصدار ملاحظة ، فإن اردوينو يوقف أي صوت بدون نغمة ().

لسوء الحظ ، نظرًا للطريقة التي يتم بها تنظيم المكتبة ، لم أتمكن من العثور على طريقة للتحقق مما إذا كان الزر قد تم الضغط عليه أو تحريره بطريقة أقل إسهابًا من استخدام شرطين لكل ملاحظة. عيب آخر في هذا الرمز هو أنك إذا ضغطت على زرين في وقت واحد ثم حررت أحدهما ، فسيتم إيقاف كلتا المذكرتين ، لأن noTone () يوقف إنشاء أي ملاحظات بغض النظر عن أي ملاحظة أدت إلى تشغيلها.

الخطوة 5: برمجة أغنية

بدلاً من استخدام الأزرار لتشغيل الملاحظات ، يمكنك أيضًا برمجة Arduino لتشغيل اللحن تلقائيًا. إليكم نسخة معدلة من الرسم الأول الذي يلعب دور Twinkle و Twinkle و Little Star على المحرك. الجزء الأول من الرسم هو نفسه - تحديد ترددات النغمة و tonePin. نصل إلى الجزء الجديد في bpm = "100". لقد قمت بتعيين عدد النبضات في الدقيقة (bpm) ، ثم استخدم بعض الرياضيات لمعرفة عدد المللي ثانية لكل نبضة التي تعادلها bpm. للقيام بذلك ، استخدمت أسلوبًا يسمى تحليل الأبعاد (لا تقلق - إنه ليس بالصعوبة التي يبدو عليها). إذا سبق لك أن درست دورة الكيمياء في المدرسة الثانوية ، فأنت بالتأكيد استخدمت التحليل البعدي للتحويل بين الوحدات. العوامات () موجودة للتأكد من عدم تقريب أي شيء في المعادلة حتى النهاية للتأكد من دقتها.

بعد أن نحصل على عدد مللي ثانية / نبضة ، قمت بتقسيمه أو ضربه بشكل مناسب للعثور على قيم المللي ثانية لفترات النوتة المختلفة الموجودة في الموسيقى. ثم أقوم بعمل مجموعة من كل ملاحظة بترتيب زمني ، وأخرى مع مدة كل ملاحظة. من الأهمية بمكان أن يتطابق فهرس كل ملاحظة مع فهرس مدتها ، وإلا فإن اللحن الخاص بك سيصدر صوتًا. أضع هنا ملاحظات Twinkle و Twinkle و Little Star كمثال ولكن يمكنك تجربة أي أغنية أو سلسلة من الملاحظات التي تريدها.

السحر الحقيقي يحدث في وظيفة الحلقة. لكل من النغمات ، أعزف النغمة لفترة حددتها في مجموعة beat_values. بدلاً من استخدام التأخير هنا ، والذي قد يتسبب في عدم تشغيل النغمة ، قمت بتسجيل الوقت منذ أن بدأ البرنامج بوظيفة millis () وطرحها من الوقت الحالي. عندما يتجاوز الوقت الوقت الذي حددت فيه الملاحظة الأخيرة في مجموعة beat_values ، أوقف الملاحظة. يوجد التأخير بعد حلقة for لإضافة فجوة بين النغمات ، مما يضمن عدم دمج النغمات اللاحقة ذات التردد نفسه معًا.

الخطوة 6: الملاحظات

هذا كل شيء لهذا المشروع. إذا كان هناك شيء لا تفهمه ، أو إذا كان لديك أي اقتراحات ، فلا تتردد في الاتصال بي. نظرًا لأن هذا هو أول Instructables لي ، سأكون ممتنًا للغاية للتعليقات والاقتراحات حول كيفية تحسين هذا المحتوى. أراك المرة القادمة!

موصى به: