مقدمه
رسپبری پای زیرو Raspberry Pi Zero کوچکترین و ارزان کامپیوتر تک بورد از خانواده رسپبری پای (Raspberry Pi ) با ابعادی کوچکتر از یک کارت ویزیت 30x65x5 و وزن کمتر از 10 گرم است. این مینی کامپیوتر پیشرفته مجهز به یک پردازنده یک گیگا هرتزی از نوع ARM11 است که 40 درصد قوی تر از نسل اول رسپبری پای (Raspberry Pi) میباشد. همچنین رسپبری پای زیرو (Raspberry Pi Zero) مجهز به 512 مگابایت رم شده است که برای این سیستم کافی به نظر میرسد.
نمای کلی
در این پست به آموزش اتصال کارت صدا USB به Raspberry Pi Zero W جهت اتصال میکروفون و هدفون می پردازیم. یک کارت صدا USB با ورودی میکروفون و خروجی هدفون برای افزودن قابلیتهای صوتی به Raspberry Pi Zero استفاده میشود که مانند سایر نسخههای Pi فاقد رابط صوتی است. همه ما میدانیم که Raspberry pi zero W دارای سخت افزار صوتی نیست. کارت صدای USB میتواند برای اتصال سخت افزار اضافی به Raspberry Pi استفاده شود. این آموزش بخشی از سری Raspberry Pi Zero ما است که در آن قصد داریم کارت صدای USB را بر روی Raspberry Pi zero W نصب کنیم و از ابزارهای ALSA برای تست کارت صدا و دستگاه صدا استفاده خواهیم کرد.

وسایل مورد نیاز
- Raspberry Pi Zero W
- مانیتور
- USB Hub
- کابل OTG
- کابل Micro HDMI
- کارت حافظه Micro SD
- Speaker
- Mic
- کارت صدا USB
پیشنیاز
برای شروع آموزش اتصال صدای USB، ابتدا باید Raspberry Pi شما دارای سیستم عامل باشد و بتواند به اینترنت متصل شود. اگر تا کنون سیستم عامل نصب نکردهاید، میتوانید آموزش نصب Raspberry Pi OS را در سایت ما دنبال کنید. همچنین فرض ما بر این است که شما به پنجره ترمینال Raspberry Pi خود دسترسی دارید. در این آموزش قصد داریم از MobXterm در حالت SSH برای اتصال آن به Raspberry Pi Zero W استفاده کنیم.
کارت صدا USB
کارت صدای USB یک مبدل USB به جک 3.5 میلیمتری میکروفون و هدفون است که برای اتصال میکروفون و هدفون به Raspberry pi zero W استفاده میکنیم. با اتصال USB یک ورودی میکروفون مونو و یک خروجی هدفون استریو به رایانه شخصی یا لپ تاپ شما اضافه میکند. در تصویر زیر تصویر کارت صدای USB را مشاهده میکنید.

آموزش نصب کارت صدا USB در Raspberry Pi Zero W
ابتدا مانیتور خود را با استفاده از کابل micro-HDMI به Raspberry Pi zero W و کابل OTG را به Raspberry Pi zero W وصل کنید. سپس کارت صدای USB را با استفاده از هاب USB به Raspberry Pi zero W وصل کنید و میکروفون و هدفون را به کارت صدای USB متصل کنید. در تصویر زیر میتوانید تمام اتصالات Raspberry Pi zero W را مشاهده کنید. اکنون همه اتصالات تکمیل شده است، بنابراین Raspberry Pi zero W را با استفاده از کابل میکرو USB روشن کنید.

اکنون باید چیپست دستگاه خود را مشخص کنید. چهار نوع مختلف چیپست موجود است. دستگاه شما باید یکی از چهار چیپست لیست زیر را پشتیبانی کند. در ادامه نحوه تشخیص چیپست را آموزش میدهیم.
1- نوع CM108
2- نوع هدفون CM
3- نوع CM109
4-GeneralPlus
کارت صوتی USB خود را با استفاده از هاب USB و کابل OTG به Raspberry Pi zero W متصل کنید. سپس Raspberry Pi zero W را به طور معمول بوت کنید. اکنون در تنظیمات پیکربندی ورودی صدا را از جک 3.5 میلیمتری به USB تغییر دهید.


حالا دستور dmesg | را تایپ کنید grep cm109 در پنجره ترمینال، سپس اگر چیپست CM109 دارید، میتوانید خطوطی را در مورد آن ببینید. اگر جواب نداد، dmesg | را امتحان کنید هدفون grep درایور مجموعه هدفون USB C-Media ظاهر میشود. این نشان میدهد که یک هدفون CM است. اگر چیزی ظاهر نشد، دستور dmesg | را بنویسید grep C-Media در پنجره ترمینال. چند یادداشت C-Media وجود دارد، اما درایور cm109 ذکر نشده است. این نشان می دهد که CM108 است. اگر دوباره چیزی ظاهر نشد، دستور dmesg | را بنویسید grep General در پنجره ترمینال و با عبارت “GeneralPlus” روبرو خواهید شد. این نشان میدهد که جنرال پلاس است.
در تصویر زیر میتوانید ببینید برای دستگاه من فقط یک دستور کار میکند و بقیه کار نمیکنند. یعنی نوع چیپست دستگاه من C-Media (C-108) است. ابتدا پیکربندی نوع C-Media (C-108) را انجام میدهیم.

دستور lsusb را در پنجره ترمینال وارد کنید. شما باید خروجی مشابه تصویر زیر را ببینید.

اکنون دستور aplay –l را در پنجره ترمینال وارد کنید. لیستی از دستگاههای سخت افزاری پخش را مشاهده خواهید کرد.

نصب پیکربندی ALSA روی Raspberry Pi zero W
ALSA معماری صدای لینوکس پیشرفته است. ما قصد داریم درایور ALSA را برای Raspberry Pi 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 sample.wav
صدای 16 بیتی (S16_LE) را با فرکانس 44100 هرتز (–نرخ 44100) صدای مونو (-c1) در home.wav ضبط میکند. صدای ضبط شده از بلندگو منعکس میشود. اگر به خط فرمان mono-V اضافه کنید، یک VU متر کوچک ظاهر میشود.

با استفاده از دستور زیر میتوانیم صدای ضبط شده را پخش کنیم.
aplay --device=plughw:1,0 test.wav
با این آموزش میتوانید کارت صدای USB را روی Raspberry Pi zero W نصب کنید و بلندگو و میکروفون متصل به این کارت صدا را بررسی کنید.