در این پروژه، به شما نشان خواهیم داد که با استفاده از آردوینو و ماژول کارت خوان MicroSD، یک موزیک پلیر ساده تهیه کنید. با استفاده از این پروژه، می توانید فایل های صوتی (با فرمت خاص) که با استفاده از Arduino Uno یا Mega در microSD ذخیره می شوند را، پخش کنید. پروژه پخش صدا با آردوینو یک پروژه ساده ولی فوق العاده کاربری در پروژههایی که نیاز به پخش صدا است مانند نوبت دهی بانکها است.
مقدمه
ساخت موزیک پلیر با استفاده از Arduino Uno یک پروژه کوچک هیجان انگیز است. لزوماً در این پروژه نیازی نیست که یک موزیک پلیر قدرتمند پیاده سازی شود بلکه هدف بررسی قابلیت های Arduino Uno یا سایر بردهای آردوینو برای پخش فایل های صوتی با کمک فایل های کتابخانه پشتیبان است.
هنگامی که یک مدار با استفاده از Arduino Uno، یک ماژول microSD (آداپتور)، یک microSD و بلندگوها یا هدفون دارید، شما می توانید چندین افکت صوتی را در پروژه های خود پیاده سازی کنید، که در شرایط عادی امکان پذیر نیست. در ضمن اگر علاقمند بودید به پروژه تولید تن صدا با آردوینو هم سری بزنید.
راهنمای اتصال ماژول کارتحافظه MicroSD به آردوینو
همانطور که قبلا ذکر شد، مؤلفه های اصلی پروژه موزیک پلیر مبتنی بر آردوینو عبارتند از برد آردوینو و ماژول / آداپتور SD . فایل های صوتی ذخیره شده در microSD توسط آردوینو با کمک ماژول SD Card خوانده می شوند و از طریق بلندگو پخش می شوند. بنابراین، بسیار مهم است که شما بفهمید که چگونه یک ماژول کارتSD را به آردوینو وصل کنید و داده ها را از یک microSD بخوانید یا بنویسید.
شماتیک مدار پخش آهنگ با آردوینو
تصویر زیر مدار پروژه را نشان می دهد. توجه داشته باشید که مدار تنها اتصالات بین Arduino Uno و آداپتورcard SD و سه دکمه متصل به آردوینو را نشان می دهد، که عملکردهای پخش مانند play یا pause، previous track و next track را کنترل می کنند.
علاوه بر این، یک بلندگو به آردوینو وصل شده است، اما در مدار نشان داده نشده است. اتصالات بین آردوینو و بلندگو (یا هدفون) اتصال مثبت بلندگو/ هدفون است که به پین 9 آردوینو وصل شده و پین منفی به GND متصل شده است.
قطعات مورد نیاز
- Arduino Uno (یا هر برد آردوینو دیگر)
- آداپتور / ماژول card SD
- card microSD
- بلندگوهای کوچک
- 3 عدد کلید پوش باتن
- برد بورد
- سیم اتصال
طراحی مدار موزیک پلیر با استفاده از آردوینو
همانطور که قبلاً ذکر شد، بلندگو به پین 9 و GND (در نمودار مدار نشان داده نشده است) متصل می شود. علاوه بر این، ما باید ماژول SD Card و سه پوش باتن را به هم وصل کنیم.
از آنجا که رابط بین Arduino UNO و ماژول SD Card از طریق ارتباط SPI است، نحوه اتصالات به شرح زیر است.
پین cs از ماژول SD Card به پین 4 متصل شده است. پین (cs (chip select می تواند به هر پین دیجیتال I / O متصل شود اما بقیه پین های SPI ماژول card SD باید به پین های SPI مربوطه آردوینو متصل شوند.
پین (SPI Clock) SCK SD Card به پین 13 آردوینو وصل شده است. پین های MOSI و MISO ماژول card SD به ترتیب به پین های 11 و 12 Arduino UNO متصل می شوند.
پین های تغذیه یعنی VCC و GND به +5V و GND آردوینو وصل می شوند.
علاوه بر این، من از 3 پوش باتن برای کنترل پخش موسیقی استفاده کرده ام.
دکمه Play / Pause به پین 5 متصل است، دکمه Next Track به پین 6 وصل شده و دکمه Previous Track به پین 7 متصل است. تمام این دکمه ها با پول آپ های داخلی در برنامه پیکربندی شده اند.
تهیه فایلهای صوتی و کتابخانه PCM
فایل های WAV
قبل از ادامه کار، دو مورد وجود دارد که باید به آن توجه داشت. اولین مورد این است که فایل های صوتی یا موسیقی خود را به فرمت WAV تبدیل کنید یعنی آنها باید فایل های wav باشند. دلیل این امر این است که، کتابخانه های پشتیبان، که در ادامه به آنها اشاره خواهیم کرد، فقط از PCM Audio در فرمت فایل WAVE (.wav) پشتیبانی می کنند.
بنابراین، اولین قدم شما تبدیل فایل های 3mp خود به فایل های wav است. برای این کار می توانید از هر نرم افزار مبدل صوتی، گزینه تبدیل در VLC Media Player یا هر ابزار آنلاین استفاده کنید. من از یک ابزار آنلاین با نام ONLINE-CONVERT.com استفاده می کنم. این برنامه از چندین نوع فایل مانند فایل های فشرده، صدا، اسناد و غیره پشتیبانی می کند.
به گزینه Audio Converter در سایت بروید و گزینه Convert to WAV را انتخاب کنید یا از لینک زیر استفاده کنید:
پرونده mp3 را آپلود کنید و در تنظیمات اختیاری موارد زیر را تنظیم کنید:
- بیت رزولیشن: 8 بیت
- سمپل ریت: 16000 هرتز
- کانال صوتی: مونو
- فرمت PCM: PCM بدون علامت 8 بیتی
پس از ایجاد تغییرات فوق، بر روی گزینه شروع تبدیل کلیک کنید و فایل تبدیل شده به طور خودکار دانلود می شود.
کتابخانه PCM
نکته مهم دوم اضافه کردن یک کتابخانه ویژه به نام TMRpcm است که توسط TMRh20 توسعه داده شده است. می توانید آن را مستقیماً از صفحه رسمی GitHub دانلود یا آن را مستقیماً در Arduino IDE اضافه کنید. اگر در مورد گیتهاب و نحوه دانلود از آن اطلاعاتی ندارید توصیه میکنم آموزش گیت هاب را ببینید.
https://github.com/TMRh20/TMRpcm/archive/master.zip
در Arduino IDE، به ….Tools Management Libraries بروید و TMRpcm را جستجو کنید و روی نصب کلیک کنید.
توجه: این پروژه همچنین به کتابخانه های SPI و SD احتیاج دارد. این کتابخانه ها داخلی هستند.
#include <SD.h> // need to include the SD library #define SD_ChipSelectPin 4 //connect pin 4 of arduino to cs pin of sd card #include <TMRpcm.h> //Arduino library for asynchronous playback of PCM/WAV files #include <SPI.h> // need to include the SPI library TMRpcm tmrpcm; // create an object for use in this sketch int temp=1; int pp=5; int next=6; int prev=7; void setup() { pinMode(pp,INPUT_PULLUP); pinMode(next,INPUT_PULLUP); pinMode(prev,INPUT_PULLUP); tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc Serial.begin(9600); if (!SD.begin(SD_ChipSelectPin)) // returns 1 if the card is present { Serial.println("SD fail"); return; } tmrpcm.setVolume(5); // tmrpcm.play("song1.wav"); //the sound file "song" will play each time the arduino powers up, or is reset //try to provide the file name with extension } void loop() { while(digitalRead(pp)==0 || digitalRead(next)==0 || digitalRead(prev)==0) { if(digitalRead(pp)==0) { tmrpcm.pause(); while(digitalRead(pp)==0); delay(200); } else if(digitalRead(next)==0) { if(temp<4)//temp should be lesser than no. of songs temp=temp+1; while(digitalRead(next)==0); delay(200); song(); } else if(digitalRead(prev)==0) { if(temp>1) temp=temp-1; while(digitalRead(prev)==0); delay(200); song(); } } } void song (void) { if(temp==1) { tmrpcm.play("song1.wav"); } else if(temp==2) { tmrpcm.play("song2.wav"); } else if(temp==3) { tmrpcm.play("song3.wav"); } else if(temp==4) { tmrpcm.play("song4.wav"); } }
نحوه کار موزیک پلیر با آردوینو
همانطور که در ابتدا گفته شد پس از برقراری اتصالات سخت افزاری، آماده سازی فایل های صوتی، تنظیم Arduino IDE ( نصب کتابخانه ها)، شما آماده استفاده از موزیک پلیر خود با استفاده از آردوینو هستید.
ابتدا با استفاده از هر نرم افزار فرمت کننده مانندSD Memory Card Formatter ، microSD Card را به صورت FAT فرمت کنید و کلیه فایلهای صوتی WAV را روی کارت کپی کنید. کارت را درون شکاف موجود در ماژول sd cardقرار داده و تمام اتصالات لازم (اگر قبلاً متصل نشده است) را برقرار کنید.
Arduino UNO را به رایانه متصل کنید و در Arduino IDE از کد ذکر شده فوق استفاده کنید. در کد، تغییرات لازم را ایجاد کنید، به عنوان مثال در دستور ()void song ، نام فایل را با نام آهنگ در card SD خود جایگزین کنید.
من تمام فایلهای صوتی خود را با عنوان song1.wav ، song2.wav و غیره نامگذاری کرده ام و از همین اسم ها در دستور استفاده کرده ام. پس از ایجاد تغییرات لازم، کد را آپلود کنید.
به طور پیش فرض، اولین آهنگ (به عنوان مثال song1.wav) به محض ریست Arduino به طور خودکار پخش می شود. می توانید از دکمه Play / Pause برای پخش یا مکث در آهنگ فعلی، از دکمه Next برای پخش آهنگ بعدی و دکمه Prev برای پخش آهنگ قبلی استفاده کنید.
Ref: electronicshub
نتیجه
- در اینجا یک پروژه ساخت پخش کننده موسیقی با آردوینو پیاده سازی می شود، که می توانید با استفاده از Arduino UNO، فایل های صوتی را پخش کنید.
- این پروژه از فایلهای WAV پشتیبانی میکند و همچنین می تواند پخش کننده صدا را کنترل کند.
- برای تقویت توان خروجی میتوانید از آمپلی فایر اضافی مانند آیسی LM386 استفاده کنید.
- با استفاده از پروژه پخش فایل صوتی با آردوینو می توانید افکت صوتی را در پروژه های آردوینو خود مانند پروژه نوبت دهی بانک پیاده سازی کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
سلام خسته نباشيد من اين پروژه موزيك پلير با اردينو رو پياده كردم اما صداي بسيار كم و نا مفهومي دارد دليلش چيه
میتونی عکس کاری که درست کردی رو توی ایتا برای من بفرستی
ایدی من تو ایتا
mohammadrezagholampour
با سلام
آیا ماژول پخش صدا که موزیک ها توسط آردوینو انتخاب شوند وجود دارد و
کدام مدل؟
سلام، بله ماژول های پخش MP3 و WAVE در بازار با قیمت مناسب وجود دارند. در فروشگاه های الکترونیکی سرچ کنید «ماژول MP3 » یا «ماژول WAVE PLAYER »
در لینک زیر یکسری فروشگاه را لیست کردیم:
https://melec.ir/%d9%81%d8%b1%d9%88%d8%b4%da%af%d8%a7%d9%87%e2%80%8c-%d8%a7%db%8c%d9%86%d8%aa%d8%b1%d9%86%d8%aa%db%8c-%d9%82%d8%b7%d8%b9%d8%a7%d8%aa-%d8%a7%d9%84%da%a9%d8%aa%d8%b1%d9%88%d9%86%db%8c%da%a9/
سلام
ممنون از شما
من میخواهم برنامه ای بنویسم که دقیقا فایل مورد نظر را برایم پخش بکنه و با کلید next این کار را نکنم. مثلا 100 تا فایل دارم و میخواهم به ورودی میکرو بصورت سریال از 0 تا 100 یه عددی و بفرستم و اون فایل اجرا بشه
ممنون می شوم راهنمائیم کنید
سلام من این پروژه را اچرا کردم ولی فالی پخش نمی شود
سلام چطور میتونم این ماژول را به آردو اینو مگا متصل کنم
سلام بلندگو ها رو به کجا وصل می کنیم؟
سلام من این پروژه رو انجام دادم ولی صدایی نمیاد
دلیلیش چیه؟ (صدای بوق میاد)
چطوری اسم اهنگ رو عوض کنم لصفا راهنمایی کنید