Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[you]
ضبط صوت دیجیتال توسط میکرو AVR
Post: #1
۳-۲۷-۱۳۸۹, ۰۷:۱۱ عصر (This post was last modified: ۳-۲۹-۱۳۸۹ ۰۶:۳۰ عصر by tondar.)
ضبط صوت دیجیتال توسط میکرو AVR
ضبط صوت دیجیتال توسط میکرو AVR
دراین مقاله با موارد زیر اشنا میشوید :

* پخش صدای ضبط شده در میکرو بدون نیاز به حافظه جانبی.
* ضبط صدا توسط میکرو.
* ارتباط با کارت های حافظه های MMC و ُِSD جهت ذخیره و خواندن اطلاعات.
* پخش صدا توسط PWM در میکرو.
* و ...
بنا به سفارش یکی از دوستان که مداری مشابه یکی از توضیحات شرکت اتمل در مورد Digital Sound Recorder که از آدرس زیر میتوانید مطالعه کنید به من شد.
http://www.atmel.com/atmel/acrobat/doc1456.pdf
من هم پس از مطالعه مطلب فوق با ایجاد اصلاحاتی در مدار آن را مجددا طراحی و ساختم که در ادامه با آن آشنا می شوید.


من در برنامه خودم اطلاعات صدای شروع ویندوز XP را که به اسم Windows XP Startup.wav در سیستم قرار دارد را توسط برنامه WinHex در فلاش رام میکرو قرار دادم. تا میکرو بدون نیاز به هیچگونه حافظه جانبی بتواند صدای فوق را پخش کند. البته طبق محاسبات من برای پخش هر یک ثانیه صدای مونو شما نیاز به حدود 7 کیلو بایت حافظه دارید که با توجه به اینکه من از میکرو ATmega32 با 32 کیلوبایت حافظه فلاش استفاده کردم میتوانستم تا 4 ثانیه صدا در آن ذخیره کنم. توجه داشته باشید که در اغلب برنامه ها ما درصد کمی از این حافظه را مورد استفاده قرار میدهیم پس در پروژه های خود میتوانید برای کاربر پسندتر شدن از این قابلیت بهره ببرید. مثلا میتوانید با استفاده از میکرو ATmega128 تا حدود 18 ثانیه صدا ذخیره کنید و بعنوان مثال تک تک اعداد 0 تا 9 و برخی ارقام و حروف را در آن قرار دهید و تا پس از آن هر شماره ای را که میخواهید برایتان بخواند!
خوب حال برای تبدیل فایل صوتی به فرمتی که بتوان در سورس برنامه از آن استفاده کرد به برنامه های زیر نیاز داریم :

* ImTOO Video Converter Ultimate برای تبدیل فرمت های مختلف صدا و تصویر به هم.
* WinHex برای ویرایش و مشاهده فایلها بصورت Hex.
* Sound Recorder ویندوز که بهمراه ویندوز بر روی کامپیوتر نصب میشود.

حالا کمی درباره برنامه های بالا توضیح میدهم. برنامه را من برای تبدیل فیلمهایی که از اینترنت با فرمت mkv دانلود میکردم گرفتم.[Image: Digital%20Sound%20Recorder.jpg]



فوق العاده برنامه سبک ولی کارآمدی هست که تا با اون کار نکنید متوجه منظور من نخواهید شد. از اون دسته برنامه هایی هست که واقعا من خوشم میاد ساده و کاربردی و سبک. هیچ فرمتی را نمیتونید پید ا کنید که ساپورت نکنه. شما هم اگه فایل صوتی با فرمتی غیر از wav دارید برای تبدیل و یا برش قسمتی از آن میتونید از این برنامه استفاده کنید. برای دانلود فایل با حجم 42.45 مگابایت از آدرس زیر استفاده کنید:
http://www.brothersoft.com/imtoo-video-c...http://www.brothersoft.com/imtoo-video-converter-ultimate-2
حالا که فایل wav شما آماده شد باید توسط برنامه Sound Recorder ویندوز فایل را باز کنید. باز کردن این برنامه بر روی Start کلیک کنید.بر رروی All Programs رفته ، بر روی Accessories بروید ، بر روی Entertainment رفته و Sound Recorder را اجرا کنید.

[Image: Sound_Recorder_XP.png]




فایل مورد نظرتان را در باین برنامه باز کنید. و منوی File گزینه Save As را انتخاب کنید در پنجره باز شده بر روی دکمه Change کلیک کنید و در پنجره جدید از منوی کشویی Attributes گزینه اول (8.000kHz;8Bit;Mono) را انتخاب کنید و Ok کنید و فایلتان را ذخیره کنید.
حالا نوبت به تبدیل فایل به اطلاعات قابل استفاده در برنامه است. با توجه به اینکه من برنامه را به زبان سی نوشتم (البته توضیحات فوق را با کمی تغییر میتواند در مورد سایر زبانها همچون بیسیک و یا اسمبلی هم استفاده کرد) باید مراحل زیر را دنبال کنید.
برای این منظور برنامه WinHex را دانلود کنید:
http://winhex.software.informer.com/download
سپس بعد از اجرای برنامه فایل مورد نظر را در آن باز کنید.


سپس بر روی کدهای نشان داده شده کلیک کنید و دکمه های Ctrl+A را بزنید تا تماما انتخاب شوند.
حال از منوی Edit گزینه Copy Block و از منوی باز شده گزینه C Source را انتخاب کنید.
در این مرحله در برنامه خود Paste کنید. خواهید دید کدی مشابه زیر تولید شده:






unsigned char data[140] = {
0x3E, 0x3E, 0x3E, 0x27, 0x44, 0x75, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x64, 0x69,
0x72, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x27, 0x25, 0x73, 0x27, 0x20, 0x69, 0x67, 0x6E,
0x6F, 0x72, 0x65, 0x64, 0x2E, 0x27, 0x29, 0x3B, 0x0D, 0x0A, 0x44, 0x75, 0x70, 0x6C, 0x69, 0x63,
0x61, 0x74, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x27, 0x43,
0x3A, 0x5C, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x73, 0x5C,
0x44, 0x65, 0x73, 0x69, 0x67, 0x6E, 0x20, 0x45, 0x78, 0x70, 0x6C, 0x6F, 0x72, 0x65, 0x72, 0x20,
0x39, 0x39, 0x20, 0x53, 0x45, 0x5C, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x5C, 0x27, 0x20, 0x69,
0x67, 0x6E, 0x6F, 0x72, 0x65, 0x64, 0x2E, 0x0D, 0x0A, 0x3E, 0x3E, 0x3E, 0x27, 0x44, 0x75, 0x70,
0x6C, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63
};[/color][/color][/color]
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


Powered By MyBB, © 2002-1389 MyBB Group
Theme by MyBBIran.com