اطلاعیه

Collapse
No announcement yet.

تولید صدای اعداد توسط میکرو

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

    تولید صدای اعداد توسط میکرو

    خب مثلا من الان یه فایل 1 ثانیه ای پر کردم اسمش را هم گذاشتم test. حالا تو زبان c باید چی کار کنم؟
    منظورتون از اینکه بایت بایت بریزیم داخل pwm اینه که بریزیم داخل رجیستر مقایسه ای pwm؟
    اصلا این pwm به چه درد می خوره؟ فلسفه وجودیش چیه؟


    #2
    پاسخ : pwm

    فکر کنم اشتباه پست زدید و میخواستین پتسخ بدید در یک تاپیک دیگه؟؟!!
    pwm یه پرتکله در واقع نوعی موج مربعی هست که میتونیم فرکانس و dutycycle اش رو تغییر بدیم
    مثلا برای کنترل دور موتور

    دیدگاه


      #3
      پاسخ : pwm

      با سلام بر دایی های گلم
      این تاپیک از پیام های خصوصی به اینجا کشیده شده.
      دایی electroactive می خوان صدای اعداد صفر تا 9 رو از بلندگو پخش کنن و الان می خوان بهترین راه رو برای اینکار پیدا کنن.
      پس از ایشون خواهش می کنم اسم تاپیک رو تغییر بدن و بزارن:
      تولید صدای اعداد توسط میکرو

      من به ایشون پیشنهاد کردم این صداها رو با دقت 8 بیت توسط میکروفن PC ضبط کنن و با فرمت wav ذخیره کنن. بعد این فایلها رو به اول برنامه اضافه کنن تا بعد میکرو بایت به بایت از این اعداد بخونه و بصورت PWM خارج کنه تا بعد توسط فیلتر و تقویت کننده پخش بشه.
      دوستان اگه تجربه ای دارن خواهشمندم کمک کنید تا بتونیم این اعداد ذخیره شده رو پخش کنیم.
      با تشکر مجدد از دایی electroactive که بجای پیام خصوصی و مخفی کردن بحث ها، تاپیک زدن تا همه بتونن استفاده کنن.
      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

      دیدگاه


        #4
        پاسخ : pwm

        با سلام خدمت دایی جان و دوستمونelectroactive
        به نظر تون اگه از این ای سی های ضبط صدا استفاده کنه بهتر نیست؟
        چون هم حافظه زیادی نمیخواد این کار و هم کیفیت اونا بهتره و بعضی ها فیلتر و تقویت کننده رو تو خودشون دارند.
        با تشکر

        دیدگاه


          #5
          پاسخ : pwm

          سلام دایی علی
          این راه رو بهشون پیشنهاد کردم اما انگار بدنبال ساده ترین و ارزونترین راه هستند که میشه استفاده از حافظه فلش میکرو.
          معمولا برنامه هایی که ما می نویسیم حجم زیادی از فلش میکرو را اشغال نمی کنن و جای زیادی بلا استفاده می مونه که میشه برای ذخیره اطلاعات صدا ازش استفاده کرد.
          تازه میکرو خروجی PWM داره که میشه ازش برای تولید صدا استفاده کرد. فقط می مونه یه تقویت کننده صوتی که با LM386 میشه ساخت.
          در نهایت انتخاب روش با خود دایی electroactive است که معلوم نیست کجاست و اسم تاپیک رو چرا عوض نکرده تا دوستان با تجربه صوتی بیان و نظر بدن!!
          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

          دیدگاه


            #6
            پاسخ : pwm

            با سلام خدمت همه دوستان
            خب حالا
            خب مثلا من الان یه فایل 1 ثانیه ای پر کردم اسمش را هم گذاشتم test. حالا تو زبان c باید چی کار کنم؟
            منظورتون از اینکه بایت بایت بریزیم داخل pwm اینه که بریزیم داخل رجیستر مقایسه ای pwm؟
            اصلا این pwm به چه درد می خوره؟ فلسفه وجودیش چیه؟

            دیدگاه


              #7
              پاسخ : تولید صدای اعداد توسط میکرو

              فکر کنم باید یه جدول lookup درست کنید و یکی یکی مقادیر رو بخونید و مثلا ocr1a رو مساوی با اون مقادیر قرار بدید
              اما من بیسیک کار کردم باید صبر کنی دایی بهت بگه تو c چیکار کنی

              دیدگاه


                #8
                پاسخ : تولید صدای اعداد توسط میکرو

                اول باید فایل Wav. را به فایل متنی تبدیل کنی. یعنی بایت بایت بخونی و در یک فایل متنی بصورت عدد ذخیره کنی.
                پسوند این فایل متنی هم باید h. باشه.
                داخل فایل متنی با مثل زیر باشه:
                flash char sound[]={
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x5F, 0x00, 0x00,
                0x00, 0x07, 0x00, 0x07, 0x00,
                0x14, 0x7F, 0x14, 0x7F, 0x14
                ...
                }
                اعداد بین دو آکولاد همون دامنه صدا هستند که اگه صدای عدد 1 باشه باید مثلا در فایل s1.h ذخیره شده باشند.
                حالا اول برنامه C کافیه که بنویسی:
                include s1.h#
                با اینکار متغیر sound داخل برنامه در دسترس خواهد بود و می تونی باهاش هر کاری خواستی بکنی.
                یکی از اینکارها ریختن مقدار sound داخل رجیستر مقایسه PWM مثل ocr0a خواهد بود که اگه تنظیمات PWMآ‌ درست باشه توی پایه OC0A یه موج مربعی با دیوتی سایکل sound ظاهر میشه.
                مثلا اگه ocr0a برابر با 128 باشه موج مربعی 50% خواهد بود. یعنی زمان صفر و یک موج برابر میشه.
                یا اگه ocr0a برابر با 25 باشه موج مربعی 10% خواهد بود. یعنی زمان یک بودن موج مربعی در پایه OC0A حدود یک دهم کل پرید موج خواهد بود.
                جالب اینجاست که ما با فیلتر کردن این موج توسط یک مقاومت و خازن می تونیم ولتاژ دلخواه تولید کنیم.
                حال اگه دیوتی سایکل موج مربعی مطابق مقادیر فایل s1.h باشه. ولتاژی که می بینیم همون شکل موج عدد یک خواهد شد و بعد از تقویت و دادن به بلندگو ما می شنویم: یک

                امیدوارم دایی electroactive متوجه شده باشه و با کمی پشتکار نتیجه خوبی بگیره :biggrin:
                با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                دیدگاه


                  #9
                  پاسخ : تولید صدای اعداد توسط میکرو

                  من اون قسمت فایل متنی را درست متوجه نشدم.
                  علی آقا شما می دونید توی بسکام این فایل متنی را چه جوری باید درست کرد؟

                  دیدگاه


                    #10
                    پاسخ : تولید صدای اعداد توسط میکرو

                    فایل متنی ربطی به بسکام نداره و جزو اطلاعات کامپیوتر ب حساب میاد.
                    در کل نوع فایل در کامپیوتر های ما وجود داره:
                    1- فایل باینری
                    2- فایل متنی
                    بیشتر از 90 درصد فایلهای داخل کامپیوتر باینری هستند یعنی اگه با notepad بازشون کنی شکلهای عجق وجق می بینی! فایلهای صوتی مثل wav هم نوع باینری هستند. می تونی برای امتحان notepad رو باز کنی و یه فایل wav رو باهاش باز کنی و ببین! فایل wav توی کامپیوتر بوفور پیدا میشه و با سرچ توی هارد می تونی کلی پیدا کنی.
                    کمتر از 10 درصد فایلهای داخل PC متنی هستند و با notepad قابل مشاهده اند.
                    حالا باید اطلاعات داخل یه فایل wav توسط یه نرم افزار خونده بشه و بعد بصورت متنی ذخیره بشن.
                    اگه فرصت داشتم خودم یه برنامه دلفی برات می نوشتم که این کارو انجام بده.
                    راه دیگه اینه که توی گوگل کلمه Wav2txt رو جستجو کنی و یه نرم افزار آماده پیدا کنی.
                    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                    دیدگاه


                      #11
                      پاسخ : تولید صدای اعداد توسط میکرو

                      با آی سی های ضبط صدا هم همین مراحل تبدیل به فایل متنی نیاز هست؟ فکر می کنم با آی سی ضبط صدا کار راحت تر باشه نه؟

                      دیدگاه


                        #12
                        پاسخ : تولید صدای اعداد توسط میکرو

                        بله توی اونا کافیه میکروفن رو به پایه های مربوط وصل کنید و پایه مربوط به انتخاب حافظه و ضبط رو هم در حالت مناسب قرار بدید و کلمات رو ضبط کنید

                        دیدگاه


                          #13
                          پاسخ : تولید صدای اعداد توسط میکرو

                          اون وقت از کجا باید فهمید که هر کلمه ای که ضبط شده تو چه آدرسی قرار گرفته؟ و چه آی سی را پیشنهاد می کنید؟

                          دیدگاه


                            #14
                            پاسخ : تولید صدای اعداد توسط میکرو

                            من به شخصه فقط به صورت تئوری این در مورد این ای سی ها کار کردم و شماره خاصی مد نظرم نیست
                            در مورد پیدا کردن کلمه هم در بعضی ای سی ها میتونید در یک ادرس خاص ضبط کنید و بعدا با اون ادرس بهش دسترسی داشته باشید و در بعضی هم میتوانید شما ترک رو مشخص کنید و... که در واقع تقریبا الگوریتم های یکسانی دارند

                            دیدگاه


                              #15
                              پاسخ : تولید صدای اعداد توسط میکرو

                              قبلا ISD4004 توی بازار بود اما الان پیدا نکردم!!!
                              احتمالا باید بگردی.
                              قیمتش هم 13 تومنه که فکر نکنم بدرد یه کار ارزون بخوره!
                              با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                              دیدگاه

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