تاکنون در این مجموعه نگاهی متفاوت به نحوه تعامل آردوینو با طیف وسیعی از دستگاههای واقعی از موتورهای سروو گرفته تا تلویزیونهای فاصله یاب اولتراسونیک و سنسورهای رطوبت داشتهایم. اکنون خواهیم دید که آیا میتوانیم آردوینو چند صدا تولید کنیم یا خیر. ما در واقع کمی بهتر از این کار خواهیم کرد - با ساختن پخش کننده صوتی دیجیتال خود به نام Auduino به اهمیت مدولاسیون عرض پالس (PWM) برای میکروکنترلرها نگاه خواهیم کرد .
چیزی که ما می سازیم
چند ماه پیش به طور تصادفی با یک پخش کننده صوتی دیجیتال تک دکمه ای برخورد کردم که بر اساس Raspberry Pi ساخته شده بود که توسط مردی برای مادربزرگ 90 ساله اش ساخته شده بود که به چیزی ساده برای استفاده نیاز داشت. تنها چیزی که داشت یک دکمه و یک LED بود و برای پخش کتاب های صوتی دیجیتال برنامه ریزی شده بود. دکمه ای که به سرعت فشار داده می شد مکث می کرد و در حالی که آن را برای بیش از چهار ثانیه نگه داشتید، آهنگ قبلی پخش می شد.
![پخش کننده صوتی دیجیتال پروژه آردوینو](https://duino4projects.com/wp-content/uploads/2015/06/Arduino-Project-Digital-audio-player.jpg)
چیزی که ما می سازیم
چند ماه پیش به طور تصادفی با یک پخش کننده صوتی دیجیتال تک دکمه ای برخورد کردم که بر اساس Raspberry Pi ساخته شده بود که توسط مردی برای مادربزرگ 90 ساله اش ساخته شده بود که به چیزی ساده برای استفاده نیاز داشت. تنها چیزی که داشت یک دکمه و یک LED بود و برای پخش کتاب های صوتی دیجیتال برنامه ریزی شده بود. دکمه ای که به سرعت فشار داده می شد مکث می کرد و در حالی که آن را برای بیش از چهار ثانیه نگه داشتید، آهنگ قبلی پخش می شد.
ساخت فایل های WAV
اگر نمیدانید که کجا میتوانید فایلهای WAV 19 کیلوهرتز/8 بیتی/مونو پیدا کنید، ما آن را پوشش دادهایم. من یک مبدل صوتی با کاربری آسان ایجاد کرده ام که با Windows Explorer ادغام می شود و هر فایل صوتی را به فرمت WAV مورد نیاز تبدیل می کند. حتی می توانید چندین فایل را همزمان تبدیل کنید و به طور خودکار آن فایل ها را به نام فایل های 8.3 تبدیل می کند که پخش کننده ما نیاز دارد. تنها کاری که شما انجام می دهید این است که فایل های WAV را در ریشه یک کارت SDHC کلاس 4 با فرمت FAT32 کپی کنید (ما کارت های تا 8 گیگابایت را آزمایش کرده ایم). کارت را در ماژول کارت خوان SD پخش کننده قرار دهید، دکمه را فشار دهید و اولین آهنگ شروع به پخش خواهد کرد.
چگونه کار می کند
توانایی تبدیل داده های دیجیتال - 1s و 0s - به یک ولتاژ آنالوگ متناسب یکی از ویژگی های اساسی صدای دیجیتال است و این جایی است که مبدل دیجیتال به آنالوگ (DAC) مشهورترین کاربرد خود را دارد. DAC های صوتی در هر رایانه لوحی و لپ تاپ پخش کننده MP3 رایانه لوحی تلفن هوشمند ظاهر می شوند. آنها همه جا هستند. DACها همچنین برای کنترل موتورها و حسگرهای LED و موارد دیگر مورد استفاده قرار میگیرند - در هر جایی که نیاز دارید یک عدد دیجیتال را به یک ولتاژ آنالوگ واقعی تبدیل کنید. یکی از سادهترین راهها برای انجام آن چیزی است که میکروکنترلرها را بسیار محبوب میکند – به آن مدولاسیون عرض پالس (PWM) میگویند.
مشکل همه میکروکنترلرها این است که خروجی های دیجیتال استاندارد آنها فقط دو موقعیت دارند: بالا و پایین. خروجی یا در ریل تغذیه (5 ولت آردوینو) یا زمین (0 ولت) خواهد بود. هیچ در این بین وجود ندارد اینجاست که PWM وارد میشود. با یک سیگنال ساعت خروجی شروع میشود که با سرعتی بسیار بالاتر از آنچه ما نیاز داریم اجرا میشود. در مورد ما فراتر از طیف صوتی 20 کیلوهرتز. این سیگنال ساعت یک موج مربعی است به این معنی که نیمی از زمان را در دیجیتال-1 و نیمی را در دیجیتال-0 در هر چرخه ساعت می گذراند. در گیک اسپیک می گوییم چرخه وظیفه 50 درصدی دارد.
کاری که PWM به ما امکان می دهد این است که چرخه وظیفه را تعدیل کنیم تا زمانی که خروجی شکل موج پالس آن از طریق یک دستگاه خاص تغذیه و فیلتر می شود، شکل موج متوسط می شود و به یک ولتاژ آنالوگ متناسب با چرخه وظیفه تبدیل می شود. بنابراین اگر سیگنال شکل موج بین 0 تا 5 ولت متغیر باشد و سیکل کاری 10 درصد داشته باشد، ولتاژ آنالوگ متوسط 0.5 ولت خواهد بود. در چرخه کاری 50% 2.5 ولت خواهد بود. در 90٪ آن 4.5 ولت خواهد بود.
LED ضربان دار در آیفون یا آیپد شما به این صورت عمل می کند. LED با یک شکل موج PWM تغذیه می شود که بین 0 تا 100٪ چرخه کاری با فرکانس کافی بالا متغیر است، بنابراین نمی توانید LED چشمک زن را ببینید.
فایل موسیقی معمولی شما نتیجه فرآیند معکوس است: تبدیل یک ولتاژ آنالوگ پیچیده به یک نمایش دیجیتال. سی دی های صوتی دو کانال (استریو) را با نرخ نمونه 44.1 کیلوهرتز با وضوح 16 بیت ضبط می کنند. این بدان معناست که 216 یا 65536 سطح ولتاژ متمایز وجود دارد که می توان هر 22.6 میلی ثانیه یا بیشتر آن را گرفت.
آن را مدولاسیون کدگذاری پالس (PCM) می نامند و فرمت اصلی مورد استفاده در فرمت فایل WAV ویندوز است. به یک فایل WAV نگاه کنید و یک سری طولانی از اعداد 16 بیتی را خواهید دید که نشان دهنده صدا هستند (یکی در هر نمونه و یکی در هر کانال). تبدیل آن نمونه های دیجیتال به ولتاژ آنالوگ کاری است که هر پخش کننده صوتی انجام می دهد.
یکی از راه های انجام این کار PWM است. به یاد داشته باشید که چگونه قبلاً گفتیم که یک سیگنال PWM برای ایجاد یک شکل موج چرخه کاری متغیر مدوله می شود؟ حدس بزنید برای تعدیل سیگنال ساعت از چه چیزی استفاده می کنیم؟ نمونه های صوتی دیجیتال از فایل WAV ما. بنابراین چیزی که در نهایت به آن می رسیم یک خروجی شکل موج PWM است که چرخه کاری آن متناسب با داده های صوتی PCM در فایل WAV است. ما خروجی را به یک تقویت کننده صوتی وارد می کنیم و هی از قبل! ما می شنویم که فایل WAV صوتی دیجیتال از طریق بلندگوها می آید.
محدودیت های آردوینو
در حالی که ما عاشق آردوینو هستیم، اینجا جایی است که با محدودیتهای آن مواجه میشویم – این تنها یک گذرگاه 8 بیتی دارد و همراه با سرعت ساعت محدود 16 مگاهرتز و کتابخانه کد صوتی ما، ما فقط سرعت کافی برای مدیریت فایلهای WAV با نرخ نمونه 19 کیلوهرتز و 8 را داریم. - عمق بیت گفته میشود که من روی مبدل صوتی ساده خود کار کردهام تا رمزگذاری را بهینه کنیم تا فایلهایی با صدای خوب با پهنای باند فرکانس رادیویی AM بهتر تولید کند که برای موسیقی به اندازه کافی خوب است و مطمئناً برای کتابهای صوتی دیجیتال بیش از اندازه کافی است.
هر فایل صوتی را به فرمت "Auduino" تبدیل کنید
01 Auduino را دانلود کنید
فایل "auduino.zip" را از apcmag.com/arduino.htm دانلود کنید و آن را در پوشه "C:Auduino" در درایو C: خود از حالت فشرده خارج کنید. فایل InstallWavConverter.reg را اجرا کنید. این یک کلید رجیستری شل را نصب می کند که یک ورودی منوی جدید را به منوی زمینه Windows Explorer اضافه می کند. (فایل REG را در Notepad باز کنید و میتوانید ببینید که چگونه کار میکند.) برای تأیید روی دکمه «بله» کلیک کنید و پس از تکمیل آن روی «OK» کلیک کنید (در صورت تمایل، «RemoveWavConverter.reg» کلید رجیستری را حذف میکند).