Mundarija:
- Ta'minotlar
- 1 -qadam: DF Mini pleer MP3 moduli nima?
- 2 -qadam:
- 3 -qadam: Arduino yordamida DFMini pleerini boshqarish
- 4 -qadam:
Video: Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Bir nechta loyihalar, qandaydir funktsiyalarni qo'shish uchun, ovozni ko'paytirishni talab qiladi. Ushbu loyihalar orasida biz quyidagilarni ajratib ko'rsatamiz: ko'zi ojizlar uchun imkoniyatlar, MP3 musiqa pleyerlari va robotlar tomonidan ovozli tovushlarni ijro etish.
Bu tizimlarning barchasida Arduino -ga ulanish uchun bizga MP3 ovozini qayta ishlab chiqaruvchi qurilma kerak. Shuning uchun, ushbu maqolada biz quyidagi fikrlarni bilib olamiz: DFMini Player MP3 ning asosiy operatsion sxemasi; Xotira kartasidagi ovozli fayllarni tashkil qilish va sozlash; Arduino bilan musiqiy boshqaruv.
Ta'minotlar
PCBWay maxsus PCB;
DFPlayer Mini MP3 moduli - UTSOURCE;
10kR qarshilik - UTSOURCE;
Kalit tugmasi - UTSOURCE;
Breadboard - UTSOURCE;
Arduino UNO - UTSOURCE;
Sarlavha pin - UTSOURCE;
1 -qadam: DF Mini pleer MP3 moduli nima?
DFMini Player moduli - bu xotira kartasida saqlanadigan tovushlarni qayta ishlab chiqarish uchun mo'ljallangan, kam musiqali pleyer, past va past quvvat.
Bunga asoslanib, modulni mustaqil rejim orqali boshqarish mumkin, ya'ni bu rejimda faqat DFMini moduli, quvvatlanadigan batareya, karnay, uni boshqarish tugmalari va qo'shiqlari bo'lgan SD -karta bo'ladi. Buni boshqarishning yana bir usuli - Arduino yoki boshqa boshqaruv moslamasidan foydalanish.
Masalan, Arduino DFMini pleer moduli bilan ketma -ket aloqa orqali buyruqlar yuboradi. DFMini Player moduli 1 -rasmda ko'rsatilgan.
Buni nazorat qilish uchun asosiy avtonom sxemadan foydalanish muhim ahamiyatga ega. Ushbu sxema 2 -rasmda ko'rsatilgan.
Yuqoridagi sxemada ko'rsatilgan ikkita tugma musiqa treklarini o'zgartirish va ovoz balandligini boshqarish uchun ishlatiladi. IO1 piniga ulangan tugma oldingi trekka o'tish va ovoz balandligini pasaytirish uchun ishlatiladi. Tez tegish bilan tizim avvalgi qo'shiqqa qaytadi, lekin tugmani 1 soniyadan ko'proq bosib tursangiz, tizim qo'shiq tovushini pasaytiradi.
IO2 piniga ulangan tugma keyingi trekka o'tish va ovoz balandligini oshirish uchun ishlatiladi. Tez bosish bilan tizim keyingi qo'shiqqa o'tadi, lekin tugmani 1 sekunddan ko'proq bosib tursangiz, tizim qo'shiq tovushini oshiradi.
2 -qadam:
Ushbu mustaqil usulda qo'shiqlar 3 -rasmda ko'rsatilgandek xotira kartasida saqlanishi kerak.
Shunday qilib, har tugma bosilganda, tizim har bir qo'shiqni ko'tarilish yoki tushish tartibida ijro etadi, biroq Arduino yoki boshqa boshqaruv moslamasidan foydalanganda biz SD -kartadagi musiqiy fayllarni tartibga solish usulini o'zgartirishimiz kerak.
Endi men ketma -ket aloqa orqali Arduino yordamida DFMini pleerini qanday boshqarishni tushuntiraman.
3 -qadam: Arduino yordamida DFMini pleerini boshqarish
Bu bosqichda tovushni boshqarish, diapazonni boshqarish, tenglashtirish buyruqlari va boshqa funktsiyalar Arduino tomonidan yuboriladi.
Arduino DFMini Player bilan serial orqali aloqa o'rnatishi va boshqaruv buyruqlarini yuborishi kerak.
Boshqaruv sxemasining elektron sxemasi 4 -rasmda ko'rsatilgan.
Birinchidan, biz quyidagi rasmda ko'rsatilgan sxemani yig'ishimiz kerak, bu sxemani yig'ib bo'lgach, siz xotira kartangizga qo'shiq qo'shishingiz kerak. Bu bosqichda qo'shiqlar, masalan, 01, 02, 03 deb o'zgartirilishi kerak.
Siz qo'shiqlarni nomlari bilan qoldirolmaysiz, chunki Arduino ma'lum trekni bajarish buyrug'ini yuborganida muammo bo'ladi. Shuning uchun siz quyida ko'rsatilgandek sozlashingiz kerak.
4 -qadam:
Fayllarni nomlaganingizdan so'ng, Arduino -ga quyidagi kodni yozing.
// Ma'lumotni ketma -ket kirishni kutadi (Serial.available ()> 0) {command = Serial.read (); if ((buyruq> = '1') && (buyruq <= '9')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }
// Ovozni oshiradi
agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}} void menu_opcoes () {Serial.println (); Serial.println (F ("======================================== ================================================= ===================================== "))); Serial.println (F ("Buyruqlar:")); Serial.println (F ("[1-3] MP3 faylini tanlash uchun")); Serial.println (F ("[s] reproduktsiyani to'xtatish")); Serial.println (F ("[p] pauza/musiqani davom ettirish"))); Serial.println (F ("[+ yoki -] ovoz balandligini oshiradi yoki kamaytiradi")); Serial.println (F (" trekni oldinga yoki orqaga")); Serial.println (); Serial.println (F ("======================================== ================================================= ==================================== "))); }
Yuqorida keltirilgan kod juda oddiy va sizga qo'shiqni raqami bo'yicha tanlash, to'xtatish, pauza qilish, ovoz balandligini boshqarish va treklarni uzatishga yordam beradi.
Musiqiy boshqaruv Arduino IDE seriyasidagi ma'lumotlarni Arduino platamizga yuborishdan iborat. Dastlab, tizim konfiguratsiyani o'rnatadi va modulga SD -karta o'rnatilganligini tekshiradi.
Agar u kiritilmagan bo'lsa, tizim foydalanuvchini ogohlantiruvchi xabarni taqdim etadi.
Bundan tashqari, tizim tizim konfiguratsiyasi imkoniyatlari bo'lgan xabarlarni ko'rsatadi.
void setup () {// mySoftwareSerial.begin (9600) modulli Comunicacao seriyali; // Arduino Serial.begin (115200) serialini rasmiylashtirish; // Verifica se o module esta answerendo e se o // cartao SD kodi Serial.println (); Serial.println (F ("DFRobot DFPlayer Mini")); Serial.println (F ("DFPlayer moduli ishga tushirilmoqda… kuting!")); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println (F ("Boshlanmagan:")); Serial.println (F ("1. DFPlayer Mini ulanishlarini tekshiring"))); Serial.println (F ("2. SD -kartani joylash"))); while (rost); } Serial.println (); Serial.println (F ("DFPlayer Mini moduli ishga tushirildi!")); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms myDFPlayer.volume (5) ketma -ketligi. // 5 -jild myDFPlayer. EQ (0); // Equalizacao oddiy menu_opcoes (); }
Agar xotira kartasi o'rnatilgan bo'lsa, kod oqimi pastadir funktsiyasiga kiradi.
void loop () {// Ma'lumotni ketma -ket kiritishni kutadi (Serial.available ()> 0) {command = Serial.read (); if ((buyruq> = '1') && (buyruq <= '3')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }
// Ovozni oshiradi
agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}}
Foydalanuvchi quyidagi nazorat belgilarini yuborishi mumkin:
1 dan 3 gacha raqamlar: ijro etiladigan qo'shiqni tanlang;
- Harf s: qo'shiqni to'xtatish; p harfi: qo'shiqni pauza qilish;
- + Belgisini yuboring: Qo'shiq tovushini oshiring;
- - signalini yuborish: qo'shiq tovushini pasaytirish;
- Signalni yuborish <: oldingi qo'shiqni tanlang;
- Signal yuborish>: Keyingi qo'shiqni tanlang;
Bu signallar, harflar va raqamlardan Arduino ularni serial orqali qabul qiladi va ijro etiladigan musiqani boshqaradi.
Har bir shart quyida va ichkarida, unga tegishli buyruqlar bilan berilgan.
if ((buyruq> = '1') && (buyruq <= '3')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }
// Ovozni oshiradi
agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}
Shunday qilib, agar siz taqdim etilgan barcha qadamlarni qo'llasangiz, quyidagilarni bilib olishingiz mumkin edi:
- DFMini Player MP3 ning asosiy ishchi davri;
- Xotira kartasidagi ovozli fayllarni tashkil qilish va sozlash;
- Arduino bilan musiqiy boshqaruv. Ushbu koddan siz tizimning funksionalligi sifatida ovozdan foydalanish kerak bo'lgan boshqa loyihalarni ishlab chiqa olasiz.
Rahmatlar
Oxirida, o'qiganingiz va sizga ushbu maqolani ishlab chiqarishda Silício Lab -ni qo'llab -quvvatlaganingiz uchun PCBWAY. COM -ni qo'llab -quvvatlaganingiz uchun tashakkur bildiramiz.
Silícios laboratoriyasi UTSOURCEga ushbu loyihani amalga oshirish uchun elektron komponentlarni taklif qilgani uchun minnatdorchilik bildiradi.
Tavsiya:
Haqiqiy vaqtda soat modulidan qanday foydalanish kerak (DS3231): 5 qadam
Haqiqiy vaqtda soat modulidan qanday foydalanish kerak (DS3231): DS3231-bu past haroratli, juda aniq I2C real vaqtda soat (RTC), haroratni kompensatsiyalangan kristalli osilator (TCXO) va kristalli. Qurilma batareya quvvatini o'z ichiga oladi va uning asosiy quvvati quvvat olganda vaqtni aniq saqlaydi
Linux yuklash diskini qanday yaratish kerak (va undan qanday foydalanish kerak): 10 qadam
Linux yuklash diskini qanday yaratish kerak (va undan qanday foydalanish kerak): Bu Linux, xususan Ubuntu -dan qanday boshlash haqida oddiy kirish
[Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: 18 qadam
[Docker Pi Series] Raspberry Pi -da IoT Node (A) modulidan qanday foydalanish kerak: IoT Node (A) moduli nima? IoT tuguni (A) Docker Pi seriyali modullaridan biridir. IOT tugunlari (A) = GPS/BDS + GSM + Lora. I2C Lorani bevosita boshqaradi, ma'lumotlarni yuboradi va qabul qiladi, GSM/GPS/BDS modulini SC16IS752 orqali boshqaradi, anakartga faqat I2C suppo kerak
SkiiiD bilan tugma modulidan qanday foydalanish kerak: 9 qadam
SkiiiD bilan tugmachali modulni qanday ishlatish kerak: Ushbu loyiha "Buzzer HW-508 (KY-006 uchun amal qiladi) ni Arduino bilan skiiiD orqali qanday ishlatish bo'yicha ko'rsatma. Ishni boshlashdan oldin, quyida skiiiD-dan foydalanish bo'yicha asosiy ko'rsatma https: // www.instructables.com/id/Getting-Started-With-SkiiiD-Editor
RGB Led modulidan qanday foydalanish kerak: 4 qadam
RGB Led modulini qanday ishlatish kerak: Tavsiflar: LEDning yonib ketishiga yo'l qo'ymaslik uchun o'rnatilgan rezistorli, Har xil mikro kontroller bilan ishlashga qodir, Faoliyati yuqori ishchi Ishchi kuchlanish: 3.3V / 5V Arduino-ga to'g'ridan-to'g'ri, hech qanday o'tish simisiz ulanishi mumkin