توپ به عنوان ساز با استفاده از پردازش تصویر

sina melodyball
نویسنده:
سینا سیادت

«توپ‌جمع‌کن» نام پروژه‌ی آخر هفته من بود. هدف از این پروژه استفاده از یک توپ و حرکت آن جلوی دوربین برای ارسال دستورات به برنامه‌های مختلف است.

 

این برنامه در مرحله ابتدایی (یا حتی پیش دبستانی) خود است و محدودیت‌های زیادی دارد. کاری که این برنامه می‌کند این است که به دوربین اصلی کامپیوتر وصل می‌شود، با استفاده از opencv تصاویر را پردازش می‌کند، از چند فیلتر رد می‌کند، مختصات یک دایره سبز رنگ را در تصویر تخمین می‌زند، و در نهایت این مختصات را به صورت بیدرنگ در خروجی‌اش چاپ می‌کند. کار این برنامه همین است. هیچ کار دیگری با مختصات بدست آمده نمی‌کند.

 

استفاده از مختصات بدست آمده وظیفه‌ی برنامه‌های دیگر است. به واسطه‌ی همین تقسیم مسئولیت، اضافه کردن کاربردهای گوناگون به این برنامه بسیار راحت است. همه می‌توانند بدون اینکه وارد کد ++C توپ‌جمع‌کن شوند برای آن کاربردهای جدید درست کنند. با استفاده از bash ،python ،go ،ruby یا هر زبان دیگر. به عنوان نمونه می‌توان برنامه‌ای نوشت که با استفاده از مختصاتی که توپ‌جمع‌کن خروجی می‌دهد مکان ماوس رو تعیین کند، یا با آن نقاشی بکشد، یا جهت حرکت توپ را تشخیص دهد و با استفاده از آن یک دستور اجرا کند، مثلا حرکت بالا به پایین باعث اجرای دستور «صفحه را قفل کن» شود.

 

پنجشنبه کنسرت «جک وایت» رو تماشا می‌کردم. در اجرایشان در فستیوال گلاستنبری از ساز ترمین استفاده می‌کردند. ترمین ساز بسیار جالبی است. کنجکاو شدم بدانم این ساز چگونه کار می‌کند و یکی برای خودم درست کنم. دو آنتن و دو حس‌گر دارد، هر آنتن یک میدان مغناطیسی اطراف خود ایجاد می‌کنند. با دو دست می‌توان در این میدان‌ها اختلال ایجاد کرد و شدت و فرکانس صدا را تغییر داد. به عنوان اولین نمونه استفاده از توپ‌جمع‌کن یک ساز مشابه ترمین درست کردم: یک برنامه به زبان ruby که مختصات توپ را از توپ‌جمع‌من گرفته و نت های موسیقی midi تولید می‌کند. فرکانس نت‌ها به ارتفاع توپ و شدت نت به فاصله‌ی افقی آن بستگی دارد. مسئولیت اجرای نت‌ها با یک برنامه دیگر است که نت‌های midi را درک می‌کند و به صدا تبدیل می‌کند. در نهایت، این سه برنامه، توپ‌جمع‌کن، ترمین، و اجرا کننده، به یک ساز جدید تبدیل می‌شوند که می‌توان با آن موسیقی دلنشین تولید کرد.

 

توپ‌جمع‌کن تازه متولد شده. اگر فرصت شود در آینده امکانات بیشتری را به این برنامه اضافه می‌کنیم. مثل تشخیص دست، صورت، پلک، یا حتی حرکت انگشتان. خودتان کد را بخوانید، تست کنید، تغییر دهید و pull-request یا issue ارسال کنید.

 

درباره نویسنده : سینا سیادت

13c8b34f65840ef376050401e019eca0
برنامه‌نویس گو و روبی در شرکت سارینا.

هم‌رسانی در:

۱۰ دیدگاه

  1. f86150cb066accc77bce12f5c78193de
    نیما شایافر ۱۷ تیر در ۰۵:۱۸ - پاسخ

    حرف نداشت سینا جان. ایده خیلی خوبی بود و موسیقی هم عالی بود.

  2. 90dd0a7c7642d7399bab534d164814b7
    بهدخت افروز ۱۷ تیر در ۰۸:۰۴ - پاسخ

    جالبه…

  3. a285355635cd61a1a5a711b06351736d
    محمد حسینی ۱۷ تیر در ۰۹:۴۶ - پاسخ

    جذابه

  4. a13e1ca55c40f32ca2273378cb611341
    سعید ۲۱ تیر در ۱۷:۵۸ - پاسخ

    عالی بود :)

  5. 613af0aa0ee369626bb431c4f1ab448e
    ازاده چاواری ۱۷ آبان در ۲۰:۱۱ - پاسخ

    سلام واقعازیبا بود
    من دنبال یه موضوع جالب براپروژه درس پردازش تصویرم هستم واین برام جالبه وبرای ارائه اش بایداسلایددرست کنم
    اگه امکانش هست کمکم کنید
    مرسی

  6. 3a8fb42af8833b9237186db841f37354
    افشار محبی ۲۴ آذر در ۱۱:۱۷ - پاسخ

    خیلی جالب بود. حسابی ذوق زده شدم!

ارسال دیدگاه