در این مدار شما میتوانید فایل صوتی که با پسوند WAV بر روی کارت MMC یا MICROSD ذخیره شده است را توسط میکروکنترلر به وسیله PWM پخش کنید.
یکی از پر کاربرد ترین مدارات در دستگا های هوشمند صوتی را میتوان پخش صوت یا موزیک توسط ان نام برد . در این پست قصد داریم WAV PLAYER را برایتان معرفی کنیم که فایل های صوتی که می تواند صدا یا موزیک با زمان های مختلف باشد را توسط میکروکنترلر خواند و صدا را پخش نمود.
به دلیل این که در پروژه ها از کارت های MMC یا MICRO SD استفاده شده است میتوان گفت مدت زمان پخش صوت نا محدود خواهد بود .ظرفیت کارت های میکرو اس دی را میتوان تا ظرفیت 32 گیگ انتخاب نمود . ظرفیت کارت های موجود فعلی 1-2-4-8-16-32 گیگ می باشد که در بازار فعلی شاید نتوان دیگر کارت 1 و 2 گیگ پیدا کنید.کارت ها بر اساس سرعت به کلاس بندی متفاوت تقسیم می شوند که عبارتند از کلاس2، کلاس 4، کلاس6، کلاس 8 وکلاس 10 که هرچه اعداد بزرگتر باشد سرعت ان کارت نیز به همان صورت بالا است و قیمت ان ها نیز افزایش می یابد.
( شما به سرعت بالا نیاز ندارید یعنی می توانید از کارت های قدیمی دست دوم و کلاس پایین استفاده نمایید ولی اگر جنس خوب میخواهید در هنگام خرید حتما بگویید رم میکرو اس دی با ظرفیت دلخواه اما کلاس 10 باشد.)
مثلا در عکس بالا کارت ظرفیت 16 گیگ دارد و عدد کوچکی کنار ان که داخل دایره قرار دارد کلاس کارت را مشخص میکند که در این مدل کلاس 4 می باشد.
فعلا تا این قسمت به اطلاعات مورد نیاز جهت کارت میکرو اس دی بسنده میکنیم و میریم به شناسایی فایل صوتی با پسوند wav
فایل صوتی wav:
زمانی که اطلاعات یک فایل wav را بخواهیم بررسی میکنیم میتوانیم از عکس بالا استفاده نمایید.در عکس فوق اطلاعات یک فایل صوتی که دارای یک هدر در ابتدا می باشد را نشان می دهد که بعد از طی کردن 44 بایت به data یا همان صوت اصلی می رسیم.
اطلاعات اولیه حایز اهمیت هستند که مهم ترین ان سمپل ریست و تعداد کانال (استریو - مونو بودن صدا )و حجم فایل را میتواند از ان استخراج نمود.
در قسمت زیر به تشریح کامل بایت ها می پردازیم.
chunk id : این چهار بایت که به صورت هگز عدد 0x52494646 می باشد RIFF Signature می باشد و ثابت هست یعنی عدد هگز 52 همان حرف R -عدد 49 حرف I -عدد 46 حرف F و در اخر عدد 46 باز حرف F می باشد.
چهار بایت بعدی حجم فایل صوتی را مشخص می کند و بعد از ان فرمت فایل که WAV است با 4 بایت مشخص شده است.
در بلوک بعدی اطلاعات دیگر قرار داده شده است که میتوانید از جداول بالا ان اطلاعات را کسب نمایید.
اما میخواهیم با یک مثال ادامه موضوع را پیش بگیریم.
برای پخش فایل صوتی توسط میکرو کنترلر باید ابتدا فایل صوتی مورد نظر را به وسیله نرم افزار کانورت به پسوند WAV تبدیل کرده و سپس فایل را بروی کارت MMC ریخته (ابتدا کارت را به صورت FAT فرمت کرده و بعد اقدام به کپی کردن فایل صوتی بروی کارت نمایید )و بعد از ان فایل ها توسط میکرو از حافظه MMC خوانده شود و به خروجی جهت پخش ارسال گردد.
جهت بخش صوت باید دیتا به سیگنال صوت تبدیل شود که در نگاه اول مبدل دیجیتال به انالوگ یا همان DAC نیاز هست که در میکرو کنترلر های AVR وجود ندارد به همین دلیل با کمی تحقیق متوجه می شود که می توان همان سیگنال را به وسیله PWM ایجاد نمود و به وسیله فیلتر امواج PWM را به صوت تبدیل کرد. که در زیر نشان داده شده است.
فایل صوتی باید WAV به صورت مونو -هشت بیت با فرکانس 22.050 کیلو هرتز تبدیل نمایید که برای ان از نرم افزار JETAUDIO استفاده می کنیم . در ادامه اموزش تبدیل فایل موسیقی با جت ای دیو خدمتتان قرار داده شده است.
1:نرم افزار را اجرا کرده و در بالای صفحه دکمه CONVERT را بزنید.
2: سپس دکمه ADD FILES را بزنید و از صفحه باز شده فایل صوتی مد نظر خود را که میتواند هر پسوند صوتی باشد را انتخاب نمایید که پسوند فایل صوتی ما ابتدا MP3 است.
3: سپس طبق شماره عکس بالا اقدام نمایید و پسوند فایل خروجی WAV انتخاب نمایید و سپس CONFIG را بزنید.
4: سپس گزینه CONVERT USING ACM انتخاب نمایید و بعد بروی دکمه SELECT WAV FORMAT انتخاب نمایید.
5:در صفحه جدید نوع فرمت PCM و تعداد کانال صوتیو فرکانس ان را از لیست ATTRIBUTES به صورت 22.050KHZ ,8BIT,MONO انتخاب نمایید و OK را بزنید.
6: سپس START را بزنید تا عملیات تبدیل انجام شود و فایل جدید با همان نام فایل صوتی اما با پسوند WAV ایجاد میگردد.
7: همانگونه که در عکس بالا می بینید فایل اتخابی شما ابتدا پسوند MP3 داشته که بعد از تبدیل فایل جدید با همان نام اما با پسوند WAV ایجاد شده است که باید در کارت حافظه MMC یا میکرو اس دی کپی بشود.
تا اینجا فایل صوتی تبدیل شده و در کارت ذخیره شده است که باید توسط میکرو خوانده شود . جهت خواندن فایل باید برنامه نویسی میکرو انجام شود که میتوان از 2 روش استفاده کرد که روش اول ان برنامه نویسی به صورت FAT هست که با انتخاب فایل صوتی از طریق نام ان میتوان فایل را پخش نمود و مهم نیست فایل صوتی چه زمانی و به چه ترتیبی در کارت کپی شده است.
اما در روش دوم که فعلا از ان استفاده کرده ایم سکتور های کارت MICRO SD خوانده می شودو پخش می شود و فایل های صوتی به ترتیبی که در کارت کپی شده است پخش میگردد به همین دلیل باید خانه شروع فایل صوتی تعیین گردد که فعلا عدد 2123776 برای خانه شروع در نظر گرفته ایم که ممکن است نسبت به کارت حافظه با ظرفیت مختلف این اعداد کم و زیاد شود که در صورتی که هنگام پخش اهنگ ابتدا صداهای قرچ قوروچ به گوش می رسید این عدد را افزایش دهید و مجدد برنامه را پروگرام نمایید تا به صوت برسید.
در ادامه فایل شماتیک اورده شده است .
میکرو مورد استفاده ATMEGA 16 با کریستال خارجی 11.059200 مگاهرتز می باشد که باید در فیوز بیت میکرو ان را تعیین نمایید.
سه میکرو سوییچ قرار داده شده جهت پخش -جلو - عقب بردن اهنگ مورد استفاده قرار میگیرد و خروجی صوت از طریق PWM پخش شده و با تقویت کننده صوتی به بلندگو وصل شده است.
توسط دو کلید دیگر S4,S5 نور بک لایت ال سی دی که توسط PWM 1B کنترل شده کم و زیاد میگردد.
برنامه نوشته شده به زبان بیسیک و کامپایلر بسکام می باشد که ان را می توانید رایگان دانلود نمایید.
در خط 31 تایمر یک به صورت PWM کانفیگ شده است.
در خط 81 جهت راه اندازی کارت حافظه MMC یا MICRO SD از مد نرم افزاری SPI استفاده شده است.
کم وزیاد کردن نور بک لایت ال سی دی در خطوط 300 تا 313 قرار دارد.
مهم ترین قسمت که پخش اهنگ می باشد در خطوط 232 تا 244 قرار دارد که بلوک های 512 بایتی را میخواند و پخش میکند و در خط 237 سرعت پخش اهنگ تنظیم میگردد.
مابقی خطوط برنامه جهت راه اندازی و داده مورد نیاز جهت راه اندازی کارت می باشد.
روزتون پر از برکت.