ساخت Wave Player بسیار کوچک :
این Wave Player (پخش کننده ی صدا) دارای مدار خیلی سادهای است که فقط از یک کارتحافظه و یک میکروی AVR کوچک ساخته شدهاست. میکروکنترلرهای خانواده (25/45/85) ATtinyX5، دارای دو خروجی PWM سریع با فرکانس 250 کیلوهرتز هستند، این ویژگی باعث میشود که قادر به تولید محدودهی وسیعی از سیگنالهای صوتی باشم که برای ساخت یک Wave Player مناسب میباشد.
کارتحافظه فقط با شش سیم کنترل می شود: دو سیم برای تهیه توان (برق) و چهار سیم برای سیگنال های کنترلی که به راحتی می توان آن را به یک میکروکنترلر 8 پینی نیز متصل کرد. به نظر می رسد کاربرد اصلی میکروکنترلرهای ATTINY سری X5 با توجه به وسایل جانبی همراه آن ،بیشتر کارهای مرتبط به SMPS است. به هر حال این پخشکننده صدا بسیار ساده است و مدار خیلی کوچکی دارد. پس برای یک تمرین سادهی لحیمکاری در ابتدای روز نیز مناسب میباشد!
سخت افزار
دو مدار از پخشکننده وجود دارد؛ یکی برای حالت منو و یکی برای حالت استریو.
دقت داشته باشید که برای ساخت Wave Player در حالت استریو نیاز به پروگرامر HVSP دارید و چرا که نمیباید حالت ISP را غیرفعال کنید. کارت حافظه استفادهشده از نوع میکرو SD است. قاعدتا با استفاده از سوکت مناسب میتوان از کارت حافظه مینی وکارت SD استاندارد نیز استفاده کرد. اسپیکرها مستقیما به خروجی PWM متصل شدهاند. ممکن است بار برای پورت خروجی سنگین باشد؛ اما نگران نباشید جریان خروجی هیچوقت از حداکثر قابل تحمل پورت بیشتر نمیشود چرا که ولتاژ تغذیه 3 است. پس این پخشکننده صدای زیادی نخواهد داشت اما صدای مناسبی تولید خواهد کرد که از روی میز با اسپیکرهای مناسب به خوبی شنیده خواهند شد. استفاده اختیاری از یک سلف سری 100μH روی خروجی PWM باعث کاهش مصرف توان خواهد شد. اگر قصد دارید خروجی صدا را به آمپلیفایر وصل کنید ، فراموش نکنید که با استفادهاز یک مدار LPF فرکانسهای بالا را فیلتر کنید تا کیفیت خروجی بهتر شود. سیگنال PWM را مستقیما به آمپلیفایر وصل نکنید چون باعث ایجاد آسیب میشود.
نرم افزار
استفاده از کارت حافظه در پروژه، به این معنی است که سیستم باید از فایل سیستم FAT پشتیبانی کند. من از ماژول Petit-FatFs که از ماژول FatFs گرفتهشده را استفاده کردهام. ماژول Petit-FatFs برای سیستمهایی با میزان حافظهکم و RAM زیر 512 بایت ایجاد شدهاست. این ماژول برای AVR ها و PIC های کوچک مناسب است. در آرشیو، فایلهای سورس و Hex آماده برای سخت افزارهای موجود وجود دارد. مقدار فیوز با فایلهای هگزا ترکیب شده است(اگر از Avrdude استفاده می کنید). با این حال برخیاز پروگرامرهای AVR این نوع فایلهای Hex را پشتیبانی نمیکنند. درچنین حالتی، قسمت فیوز را از فایل Hex حذف کنید و آن را بهصورت جداگانه پروگرام کنید. مقدارهای فیوزی که باید برنامهریزی شوند در main.c نیز وجود دارند. در حالت مونو (تکی) از 5 پین ورودی خروجی استفاده می کند و نیازی به تعویض فیوزبیت RSTDISBL نیست.در این حالت می توان با متد ISP پروگرام کرد که توسط همهی پروگرامرهای AVR پشتیبانی میشود. در حالت خروجی استریو از تمامی پینهای ورودی و خروجی به علاوه ی پین ریست استفاده میشود. برای تعویض فیوز RSTDISBL مشکلی وجود دارد و آن این است که به متد high voltage serial programming نیاز داریم. ولی بسیاری از برنامه ریزهای AVR از متد HVSP پشتیبانی نمیکنند. متد ISP همچنین میتواند فیوز RSTDISBL را فقط برای بار اول برنامهریزی کند اما نمیتواند دستگاههایی که این فیوز برنامهریزی کرده را تغییر دهد. این پخشکننده فقط میتواند فایلهای صوتی با فرمت RIFF-WAVE که در واقع فایلهای Microsoft wave هستند، با LPCM ، 8 یا 16 بیت، مونو یا استریو و تا حداکثر نرخ نمونهبرداری 48 کیلوهرتز را پخش کند. پخشکننده هنگام قرار دادن کارت حافظه یا فعالکردن برق شروع به پخش فایلها می کند. اگر یک فولدر صوتی با نام “WAV” در ریشه اصلی کارت وجود داشته باشد، فایلهای صوتی به همان ترتیبی که در فولدر قرار دارند پخش خواهند شد. اگر فولدر “WAV” وجود نداشته باشد، فایلهای صوتی WAVE موجود در فولدر ریشه پخش میشوند. با فشاردادن دکمهی سوییچ میتوان فایل صوتی بعدی را پخش کرد.
برای تبدبل فایل های MP3 به Wave می توانید این مقاله را مطالعه نمایید.
دانلود سورس + فایل های Hex
منبع: سیسوگ