اتصال کارت صدا (میکروفن و اسپیکر) به رزبری پای زیرو
یک کارت صدای USB به همراه میکروفون برای افزودن قابلیت های صوتی به Raspberry Pi Zero استفاده می شود که مانند سایر نسخه های Pi فاقد رابط صوتی است. همه ما می دانیم که Raspberry pi zero W دارای سخت افزار صوتی و وضعیت PWM مبتنی بر پین نیست. کارت صدای USB یا آنالوگ سفارشی با ADC (مبدل آنالوگ به دیجیتال) می تواند برای اتصال سخت افزار اضافی به Raspberry Pi استفاده شود. ما قصد داریم کارت صدای USB را در Raspberry Pi zero W نصب کنیم و از ابزارهای ALSA برای تست کارت صدا و دستگاه صدا استفاده خواهیم کرد.
قطعات مورد نیاز
انتظار می رود که در رزبری پای شما یک سیستم عامل نصب شده باشد و بتواند به اینترنت متصل شود.
کارت صدا USB
کارت صدای USB یک مبدل USB به جک 3.5 میلیمتری میکروفون و هدفون است که برای اتصال میکروفون و بلندگو به Raspberry pi zero W استفاده میکنیم. این کارت صدا یک USB را به دو جک 3.5 میلیمتری مادگی تبدیل میکند و به شما امکان میدهد از آن استفاده کنید. یک پورت USB برای افزودن یک ورودی میکروفون مونو و یک خروجی استریو به رایانه شخصی یا لپ تاپ شما کافیست. در تصویر زیر تصویر کارت صدای USB را مشاهده می کنید.
اتصال کارت صدا USB به رزبری پای
اکنون مانیتور خود را با استفاده از کابل micro-HDMI به Raspberry Pi zero W وصل کنید و کابل OTG را به Raspberry Pi zero W وصل کنید. پس از آن، کارت صدای USB را با استفاده از هاب USB به Raspberry Pi zero W وصل کنید و Speaker و Mic را به کارت صدای USB متصل کنید. در تصویر زیر می توانید تمامی اتصالات Raspberry Pi zero W را مشاهده کنید. اکنون همه اتصالات تکمیل شده است، بنابراین Raspberry Pi zero W را روشن کنید.
اکنون، ابتدا باید چیپست دستگاه خود را مشخص کنید. چهار نوع مختلف چیپست موجود است. دستگاه شما باید یکی از چهار چیپست لیست زیر را پشتیبانی کند.
- نوع CM108
- نوع هدفون CM
- نوع CM109
- GeneralPlus
کارت صوتی USB خود را با استفاده از هاب USB و کابل OTG به Raspberry Pi zero W متصل کنید. سپس Raspberry Pi zero W را به طور معمول بوت کنید. اکنون audio را از جک 3.5 میلی متری به USB در تنظیمات پیکربندی تغییر دهید.
حالا دستور dmesg | grep cm109
را در ترمینال تایپ کنید. اگر جواب نداد، dmesg | grep Headphone
را امتحان کنید. اگر چیزی ظاهر نشد، دستور dmesg | grep C-Media
را بنویسید. اگر دوباره چیزی ظاهر نشد، دستور dmesg | grep General
را بنویسید و با عبارت “GeneralPlus” روبرو خواهید شد. در تصویر زیر می توانید ببینید برای دستگاه من فقط یک دستور کار می کند و بقیه کار نمی کنند. یعنی نوع چیپست دستگاه من C-Media (C-108) است. ابتدا پیکربندی نوع C-Media (C-108) را انجام می دهیم.
دستور lsusb
را در پنجره ترمینال وارد کنید. شما باید خروجی مشابه تصویر زیر را ببینید.
اکنون دستور aplay –l
را در پنجره ترمینال وارد کنید. لیستی از دستگاه های سخت افزاری پخش را مشاهده خواهید کرد.
پیکربندی ALSA روی رزبری پای
ALSA یک معماری صدای لینوکس پیشرفته است. ما قصد داریم درایور ALSA را برای رزبری پای zero W خود نصب کنیم. با تغییر فایل سیستم “alsa.conf”، دستگاه صدای USB را می توان به عنوان دستگاه صوتی پیش فرض تنظیم کرد. دستور sudo nano /usr/share/alsa/alsa.conf
را در پنجره ترمینال وارد کنید سپس دو خط زیر را خواهید دید.
defaults.ctl.card 0 defaults.pcm.card 0
کارت صوتی 0 را به کارت 1 تغییر دهید زیرا کارت 0 برای صدای پیش فرض و کارت 1 برای صدای داخلی استفاده می شود.
defaults.ctl.card 1 defaults.pcm.card 1
حالا دستور sudo nano /etc/asound.conf
را در پنجره ترمینال وارد کنید و کد زیر را در این فایل کپی کرده و ذخیره کنید. کارت کنترل پیش فرض و PCM (صوتی) پیش فرض را 1 می کند.
pcm.!default { type hw card 1 } ctl.!default { type hw card 1 }
ما ALSA را برای سیستم عامل شما پیکربندی کرده ایم. اکنون، باید رزبری پای را راه اندازی مجدد کنیم. با دستور sudo reboot رزبری پای خود را ریست کنید و دوباره وارد سیستم شوید. اکنون میخواهیم صدا را آزمایش کنیم، بنابراین ابتدا فرمان زیر را در پنجره ترمینال وارد کنید.
speaker-test -c2
این کار نویز سفید را از طریق بلندگوهای چپ و راست کارت صدا پخش می کند. پس از انجام کار (برای فایلهای WAV، نه MP3) یک فایل صوتی را با استفاده از تست بلندگو پخش کنید.
برای بررسی صدای جلو و مرکز، دستور زیر را وارد کنید.
speaker-test -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav
صدای بلندگو (صدای خروجی) را برای Raspberry Pi zero W تست کردهایم. اکنون میخواهیم صدا را با استفاده از آداپتور نوع هدفون CM ضبط کنیم. با استفاده از دستور زیر می توانیم صدا را ضبط کنیم.
arecord --device=hw:1,0 --format S16_LE --rate 44100 -c1 test.wav
این دستور صدای 16 بیتی (S16_LE) را با فرکانس 44100 هرتز (–rate 44100) صدای مونو (-c1) در test.wav ضبط می کند. صدای ضبط شده از بلندگو منعکس می شود. اگر به خط فرمان mono-V اضافه کنید، یک VU متر کوچک ظاهر می شود.
با استفاده از دستور زیر می توانیم صدای ضبط شده را پخش کنیم.
aplay --device=plughw:1,0 test.wav
بنابراین، اینگونه می توانید کارت صدای USB را روی Raspberry Pi zero W نصب کنید و بلندگو و میکروفون متصل به این کارت صدا را بررسی کنید. امیدوارم از پروژه لذت برده باشید و چیز مفیدی یاد گرفته باشید، اگر سؤالی دارید، لطفاً آنها را در بخش نظرات زیر مطرح کنید یا از انجمن ما برای شروع بحث در این مورد استفاده کنید.