جدول المحتويات:
- الخطوة 1: الحاسوب
- الخطوة الثانية: البيانو
- الخطوة 3: التجميع
- الخطوة الرابعة: التحديات الفنية والاعتبارات المستقبلية
فيديو: بيانو لاعب Synesthesia: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
هذا البيانو المشغل يعزف الموسيقى باستخدام عجلة الألوان والكاميرا! يتم التقاط الصور بواسطة الكاميرا ومعالجتها وتفسيرها على أنها نوتات موسيقية. في الوقت الحالي ، تمت برمجتها لتشغيل أغاني الأطفال التي يمكن تغييرها عن طريق تحميل رسم اردوينو جديد يحدد الملاحظات التي يجب تشغيلها (الألوان التي يجب عرضها على الكاميرا).
يبدأ كمبيوتر Linux الموجود على متن الطائرة خدمة عند بدء التشغيل تلتقط صورة بالكاميرا ، وتحسب دالة لقيم RGB في الصورة ، وتخرج صوتًا بناءً على القيمة المرجعة للوظيفة. قبل تشغيل الصوت ، يرسل إشارة تخبر Arduino بتدوير المؤازرة ، مما يعرض اللون المقابل للنوتة التالية التي سيتم تشغيلها. ثم تبدأ الحلقة مرة أخرى ، ويتم التقاط صورة ، ويتم تدوير عجلة الألوان ، ويتم تشغيل الصوت إلى ما لا نهاية.
يعد هذا المشروع طريقة ممتعة لدمج الموسيقى وبرمجة أنظمة Linux الحديثة وبرمجة وحدات التحكم الدقيقة ورسومات إنكسكيب والقطع بالليزر وإعادة استخدام بعض الصناديق الكرتونية غير المرغوب فيها.
جميع الأكواد و Inkscape SVGs متوفرة على جيثب على:
github.com/melvyniandrag/pyMusic
المواد المستخدمة:
- تسميات بيضاء فارغة
- صندوق من الورق المقوى
- كاميرا ويب
- أقلام تلوين
- اردوينو
- Beagleboard-xM
- الأسلاك
- كابل تسلسلي
- المعرفة الأساسية بمعالجة الصور والموسيقى
الخطوة 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 نغمات جيدة.
موصى به:
اختيار لاعب: 4 خطوات
اختر لاعبًا: سيرشدك هذا الدليل إلى كيفية جعل صانع القرار Arduino. بضغطة زر ، ستضيء مصابيح LED بنمط عشوائي. بعد بضع ثوانٍ ، سيضيء مؤشر LED واحد. هذا هو القرار النهائي الذي يتخذه Arduino
2 لاعب بونغ ثنائي الفينيل متعدد الكلور: 3 خطوات
2 Player Pong PCB: في هذا الدليل يمكنك بناء لعبة بونج ثنائية اللاعبين محمولة. تم إنشاء هذا التصميم حول الكود المنشور على GitHub بواسطة Onur Avun. لقد استمتعت بإنشاء هذا المشروع ، أتمنى أن تستمتع ببنائه
لعبة ماتريكس بونج 8x16 LED (2 مجاذيف لكل إصدار لاعب): 3 خطوات
8x16 LED Matrix Pong Game (2 مجاذيف لكل إصدار لاعب): لقد ألهمتني العديد من الاختلافات في لعبة Pong الكلاسيكية التي تم تنفيذها على Arduino باستخدام مصفوفة 8x8 LED. في هذه التعليمات ، سأوضح لك كيفية إنشاء نسخة Pong المفضلة لدي والتي تحتوي على مجاذيف - مهاجم وحارس مرمى - لكل لاعب
مربع مامي أركيد لاعب واحد: 7 خطوات
صندوق ألعاب Arcade MAME أحادي اللاعب: سنقوم اليوم ببناء وحدة تحكم MAME صغيرة باستخدام Raspberry Pi. هذه وحدة تحكم ذات لاعب واحد ، ولكن نظرًا لأنه يمكن الوصول إلى منافذ USB الموجودة على pi ، فمن السهل توصيل وحدة تحكم أخرى أو عصا تحكم USB للحصول على بعض الإجراءات متعددة اللاعبين إذا كانت الحالة المزاجية
2 لاعب تنافسي مقابل لعبة التوقيت: 4 خطوات
2 لاعب تنافسي مقابل لعبة توقيت: سوف تحتاج إلى: 1.Digilent Basys 3 ، FPGA Board (أو أي FPGA أخرى ،) 2. إصدار حديث نسبيًا من Vivado ، أو بعض بيئة VHDL الأخرى 3. جهاز كمبيوتر يمكنه تشغيل البرنامج المذكور