اطلاعیه

Collapse
No announcement yet.

تولید نت های موسیقی با میکروکنترلر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تولید نت های موسیقی با میکروکنترلر

    َاین مطلب به میکروکنترلر خاصی اختصاص ندارد بر روی تمام خانواده های8051 و AVR و PIC و ARM و ... قابل اجرا است و بنابراین در این بخش آورده شده است. برای تولید نت موسیقی با هر میکروکنترلری باید بر نکته اساسی زیر واقف بود: نسبت فرکانس هر دو نت متوالی در دستگاه موسیقی بین المللی(فاصله نیم پرده) برابر است با عدد 1.059463 بنابراین اگر یک نت را به عنوان نقطه مبنا در نظر بگیریم، فرکانس نت بعدی 1.059463 برابر نت فعلی و فرکانس نت قبلی هم همین فرکانس تقسیم بر 1.059463 خواهد بود.با توجه به تدوین قراردادی مبنی بر قرار دادن یکی از نت های LA برابر با 440 هرتز، می توانیم همین عدد 440 هرتز را به عنوان مبنا در نظر بگیریم و فرکانس نت های بعدی و قبلی را با ضرب یا تقسیم متوالی بر عدد مذکور بدست آوریم. در این مورد باز هم توضیح داده خواهد شد.
    جدیدترین ویرایش توسط طراح; ۲۲:۵۸ ۱۳۹۶/۰۶/۰۹.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    #2
    پاسخ : تولید نت های موسیقی با میکروکنترلر

    در دستگاه موسیقی بین المللی که روی سازهایی مانند پیانو پیاده می شود، 12 نت با نام های مستقل وجود دارد که اگر هر نتی را در نظر بگیریم بعد از طی 12 نت به نت هم نام آن می رسیم و فرکانس نت هم نام بعدی دقیقا 2 برابر (یک octave) نت فعلی است. بنابراین برای برنامه نویسی هر میکرو کنترلری کافی است تنها 12 مقدار مستقل را برای کل نت ها بصورت یک Lookup Table در حافظه flash قرار دهیم و بقیه نت ها از روی همین 12 مقدار قابل ساخته شدن هستند. مقادیری که در این Table ذخیره می شوند، مقدار لازم برای قرار دادن در تایمری است که سبب تولید فرکانس مورد نظر در خروجی شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : تولید نت های موسیقی با میکروکنترلر

      برای تولید هر نت دو مقدار فرکانس و طول مدت نواخته شدن نت باید در برنامه تعیین شود. به این منظور دو عملیات زمان گیری جداگانه باید برنامه ریزی شود. یکی تایمری که پورت خروجی را در یک فاصله زمانی مشخص toggle می کند و تایمر دومی که بعد از سپری شدن زمان مورد نظر برای نت، به عملیات تایمر اول خاتمه می دهد. مثلا اگر قرار باشد نت Do با فرکانس 440 هرتز به مدت یک ثانیه نواخته شود، با توجه به اینکه پریود این موج تقریبا 2.273 میلی ثانیه می شود و موج مورد نظر یک بخش low و یک بخش high دارد، بنابراین باید یک تایمر در وضعیتی قرار داده شود که با سپری شدن نصف این زمان 2.273 میلی ثانیه که 1.1365 میلی ثانیه می شود، خروجی مورد نظر را toggle کند. همزمان باید تایمر دیگری با مدت زمان 1 ثانیه بکار بیافتد و بعد از سپری شدن مدت زمان تایمر دوم، toggle شدن خروجی تولید کننده صدا متوقف شود. پس برای ایجاد یک موسیقی کامل کافی است نت های متوالی تولید کننده آن موسیقی به همراه طول مدت نواخته شدن هر نت را در یک یا دو lookup table قرار دهیم و با سپری شدن زمان هر نت، تایمرهای دوگانه مذکور را مجددا مقداردهی کنیم و منتظر بمانیم تا زمان نت جاری سپری شود.
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


        #4
        پاسخ : تولید نت های موسیقی با میکروکنترلر

        در تاپیک زیر، نسخه های BASCOM و code vision برای پیاده سازی موسیقی " ای ایران" ساخته مرحوم روح الله خالقی با AVR پیاده سازی شده است:

        http://www.eca.ir/forum2/index.php?topic=37854.0
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #5
          پاسخ : تولید نت های موسیقی با میکروکنترلر

          سلام
          روی یک سری از لوازم خانگی جدید برای روشن و خاموش شدنشون ملودیهای قشنگی گذاشتن مثل صدای دینگ یا شیم یا ...
          که به کار زیبایی داده
          سئوال من اینه که چطور میشه اونا رو با میکروهای معمولی بسازیم
          من خیلی تلاش کردم اما نشد صدایی به شفافی و تیزی و قشنگی اونا بسازم
          لطفا اگه کسی میتونه کمک کنه
          ضمنا من رو بردهای اونا رو نگاه کردم و آیسی یا قطعه خاصی ندارن که بشه گفت بوسیله اونا ساخته میشه لطفا کمککککککککککککککککککککککککککککک

          دیدگاه


            #6
            پاسخ : تولید نت های موسیقی با میکروکنترلر

            سلاک میشه یه نمونه کد برای تولید نت ها بذارید نه آهنگ بلکه همون نتهای اولیه

            دیدگاه

            لطفا صبر کنید...
            X