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

بيانو لاعب Synesthesia: 4 خطوات
بيانو لاعب Synesthesia: 4 خطوات

فيديو: بيانو لاعب Synesthesia: 4 خطوات

فيديو: بيانو لاعب Synesthesia: 4 خطوات
فيديو: The Fastest PIANO Forever by LANG LANG, The Most Professional Pianist in the World 4K UHD 2024, شهر نوفمبر
Anonim
Image
Image
بيانو Synesthesia Player
بيانو Synesthesia Player
بيانو Synesthesia Player
بيانو Synesthesia Player

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

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

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

جميع الأكواد و Inkscape SVGs متوفرة على جيثب على:

github.com/melvyniandrag/pyMusic

المواد المستخدمة:

  1. تسميات بيضاء فارغة
  2. صندوق من الورق المقوى
  3. كاميرا ويب
  4. أقلام تلوين
  5. اردوينو
  6. Beagleboard-xM
  7. الأسلاك
  8. كابل تسلسلي
  9. المعرفة الأساسية بمعالجة الصور والموسيقى

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

اشياء الكمبيوتر
اشياء الكمبيوتر
اشياء الكمبيوتر
اشياء الكمبيوتر
اشياء الكمبيوتر
اشياء الكمبيوتر

ستحتاج على متن الطائرة إلى جهاز كمبيوتر صغير يدعم نظام Linux مثل Raspberry Pi. لقد استخدمت BeagleBoard-xM قديمًا لأنني صادفت وجوده وكان لدي بالفعل نظام تشغيل على بطاقة SD. يمكنك استخدام أي شيء ، طالما أنه يمكنه التعامل مع كاميرا الويب ، يمكنه تشغيل OpenCV (مكتبة رؤية الكمبيوتر المستخدمة لالتقاط صور عجلة الألوان ومعالجتها) ، وتحتوي على مقبس إخراج الصوت.

لقد قمت بإعداد نظام التشغيل لتشغيل كود python الذي يلتقط الصور عند بدء التشغيل بعد برنامج تعليمي systemd. لتشغيل البرنامج النصي ، ستحتاج إلى sudo apt-get install python-pyaudio python-opencv للحصول على المكتبات المشار إليها. ستحتاج أيضًا إلى تثبيت pyserial numpy للحصول على هذه المكتبات. يستخدم pyaudio لتشغيل الأصوات ، ويستخدم opencv لالتقاط الصور ومعالجتها ، كما يستخدم numpy لمعالجة الصور ، وهناك حاجة إلى pyserial للتواصل مع Arduino.

يستخدم Arduino لتدوير محرك مؤازر مثبت عليه عجلة الألوان. إذا كان لديك Raspberry Pi ، فيمكنك استخدام دبابيس GPIO الموجودة هناك وترك Arduino ، لكنك ستحتاج إلى تعديل كود Python.

في الصور ، يمكنك رؤية الشجاعة التكنولوجية للعملية واثنين من مقتطفات التعليمات البرمجية.

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

البيانو
البيانو
البيانو
البيانو
البيانو
البيانو

صنعت البيانو من الورق المقوى من بعض الصناديق القديمة التي أمتلكها. من حسن حظي أن أعيش بالقرب من مساحة عمل بها قاطع ليزر. لمدة عام كامل ، كنت أتساءل ما الذي يريده الشخص لقاطع الليزر ، واتضح أنني وجدت أخيرًا استخدامًا له.

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

تم وضع القطع مع الايبوكسي.

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

المجسم
المجسم
المجسم
المجسم
المجسم
المجسم

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

الخطوة الرابعة: التحديات الفنية والاعتبارات المستقبلية

التحديات الفنية والاعتبارات المستقبلية
التحديات الفنية والاعتبارات المستقبلية
التحديات الفنية والاعتبارات المستقبلية
التحديات الفنية والاعتبارات المستقبلية

كان الجزء الصعب من هذا المشروع هو الحصول على قيم RGB المناسبة لتقرأها الكاميرا. تحتوي كاميرا الويب التي أمتلكها على بعض مصابيح LED الساطعة بشكل لا يصدق ولا أعرف كيفية إيقاف تشغيلها في Linux. أعتقد أن هناك برنامج تشغيل Windows يسمح لك بالتبديل بين التشغيل وإيقاف التشغيل. جربت تسجيل مصابيح LED بشريط كهربائي وتركها قيد التشغيل. لقد اختبرت البرنامج أيضًا من حيث المتانة ليس فقط من خلال عرضه على الورق الملون ، ولكن أيضًا كتابة موقع ويب صغير يعرض الألوان.

تحتوي الأصوات التي ينتجها الكمبيوتر أحيانًا على أصوات طقطقة وانبثاق ، وهذا يأتي من حقيقة أن لدي خبرة قليلة جدًا في برمجة الصوت على نظام Linux. تنشر مكتبة pyaudio مجموعة كاملة من الشكاوى حول عدم تثبيت JACK على جهاز الكمبيوتر ، ولكن بشكل افتراضي ، لا يريد JACK التشغيل بلا رأس (بدون سطح مكتب واجهة المستخدم الرسومية وشاشة). هذه مهمة برمجة اعتقدت أنها تنقيح ، لكنها لم تكن ضرورية للتعبير عن جوهر عازف البيانو الذي كنت أفكر فيه.

كنت قد فكرت في استخدام كرنك يدوي لتغيير الألوان ، وربما جعلها على نوع من دبوس التدحرج ، لكن هذا يقدم تعقيداته الخاصة. المؤازرة صاخبة بعض الشيء ، لكنها تعمل بشكل جيد في الوقت الحالي.

بيانو العازف مبرمج حاليًا لعزف 4 نوتات موسيقية فقط. هذا لأن المؤازرة تتحرك فقط 180 درجة ، يمكن تشغيل معظم أغاني الأطفال باستخدام 3-4 نغمات فقط ، ولم أكن أرغب في تشوش عجلة الألوان بمناطق الألوان ، مما قد يؤدي إلى إرباك الكاميرا. لذلك من خلال مزيج من الحظ الموسيقي والقيود التقنية ، 4 نغمات جيدة.

موصى به: