ডিএফ প্লেয়ার ব্যবহার করে এমপি 3 প্লেয়ার - সম্পূর্ণ ডিজাইনের বিশদ

ডিএফ প্লেয়ার ব্যবহার করে এমপি 3 প্লেয়ার - সম্পূর্ণ ডিজাইনের বিশদ

এই পোস্টে আমরা আরডিউইনো এবং ডিএফপ্লেয়ার ব্যবহার করে একটি এমপি 3 প্লেয়ার তৈরি করতে যাচ্ছি। প্রস্তাবিত নিবন্ধটিতে দুটি এমপি 3 প্লেয়ার ডিজাইন রয়েছে, একটিতে পুশ বোতাম নিয়ন্ত্রণ এবং অন্যটি আইআর রিমোট কন্ট্রোল রয়েছে। আমরা ডিএফপ্লেয়ার (এমপি 3 প্লেয়ার মডিউল) এবং এর বৈশিষ্ট্যগুলিও দেখে নিই।



আমরা সকলেই সংগীত পছন্দ করি, আমরা জিমে পড়ার সময়, ঘুমানোর কিছু মুহুর্ত পরে বা কঠোর দিনের পরিশ্রমের পরে নিজের স্বাচ্ছন্দ্যের সময় শুনতে শুনতে চাই।

কয়েক দশক আগে বাড়িতে একটি সঙ্গীত প্লেয়ার নির্মাণ ইলেকট্রনিক্স উত্সাহীদের পক্ষে যান্ত্রিক উপাদানগুলির কারণে নির্মাণমূলক জটিলতার কারণে প্রায় অসম্ভব ছিল।





এই দিনগুলিতে কেবলমাত্র ক্যাসেটে সীমিত সংখ্যক গান সংযুক্ত করা যায়। অন্য ক্যাসেটে একটি গান অনুলিপি করা একটি দুঃস্বপ্ন ছিল। তবে এখন, ইলেক্ট্রনিক্সে অগ্রগতির জন্য একটি এমপি 3 প্লেয়ার আপনার পকেটের অর্থ দিয়ে স্ক্র্যাচ থেকে তৈরি করা যেতে পারে।

এখন প্রকল্পটির প্রযুক্তিগত বিবরণে এগিয়ে আসা যাক।



প্রকল্পের প্রাণকেন্দ্রটি ডিএফপ্লেয়ার যা একটি ছোট এমপি 3 প্লেয়ার মডিউল যা মাইক্রো এসডি কার্ড সমন্বিত করতে পারে এবং একটি মাইক্রোকন্ট্রোলার ব্যবহার করে নিয়ন্ত্রণ করা যায় be

ডিএফপ্লেয়ারের চিত্র:

ডিএফপ্লেয়ার

এতে ইন-বিল্ড এম্প্লিফায়ার রয়েছে যা স্টেরিও বা মনোতে 3 ওয়াটের লাউডস্পিকার চালাতে পারে। এটিতে অ্যানালগ রূপান্তরকারী (ডিএসি) 24-বিট ডিজিটাল রয়েছে যা এই জাতীয় স্বল্প ব্যয় এবং কমপ্যাক্ট মডিউলটির জন্য বেশ ভাল।

ডিএফপ্লেয়ারের নীচের দৃশ্য:

ডিএফপ্লেয়ারের নীচে দৃশ্য

এটি এমপি 3 এবং ডাব্লুএমভি হার্ডওয়্যার ডিকোডিং সমর্থন করে। এটি এর নমুনা হারকে সমর্থন করে
8KHz, 11.025KHz, 12KHz, 1 6KHz, 22.05KHz, 24KHz, 32KHz, 44.1KHz, 48KHz।

এটি 32 গিগাবাইট পর্যন্ত মাইক্রো এসডি কার্ড সমর্থন করতে পারে। এটি 100 টি পর্যন্ত ফোল্ডার সমর্থন করে, প্রতিটি ফোল্ডারটি 1000 টি গান পর্যন্ত নির্ধারিত হতে পারে।

এটিতে ইক্যুয়ালাইজারের 6 টি বিভিন্ন স্তর এবং ভলিউম সামঞ্জস্য নিয়ন্ত্রণের 30 টি স্তর রয়েছে। এটি 3.2V থেকে 5V পর্যন্ত পরিচালনা করতে পারে।

ডিএফপ্লেয়ারের পিন কনফিগারেশন:

ডিএফপ্লেয়ারের পিন কনফিগারেশন

উপরের স্পেসিফিকেশনগুলি DFPlayer এর ডেটা শীটের উপর ভিত্তি করে।

এতক্ষণে আপনি ডিএফপ্লেয়ার এবং এর বিশদকরণের সাথে পরিচিত হবেন। আপনি এই মডিউলটি ই-কমার্স সাইট বা স্থানীয় ইলেকট্রনিক্স বাজার থেকে কিনতে পারবেন।

এখন যাক স্কিমেটিক ডায়াগ্রামে ঝাঁপ দাও।

পুশ বোতাম এমপি 3 প্লেয়ার ডিজাইন:

আরডুইনো এবং ডিএফপ্লেয়ার ব্যবহার করে এমপি 3 প্লেয়ার

উপরের সার্কিটটি খুব সহজ আরডুইনো গানগুলি নিয়ন্ত্রণ করতে ডিএফপ্লেয়ার মডিউলে কমান্ড প্রেরণ করে। ব্যবহারকারী পুশ বোতামগুলির মাধ্যমে তাদের পছন্দটি ইনপুট করতে পারেন।

প্রোগ্রামটিতে আরডুইনোর অন্তর্নির্মিত পুল-আপ রেজিস্টর সক্রিয় করা হয়েছে, যাতে বোতামগুলি ধাক্কা দেওয়ার জন্য আমাদের কোনও শারীরিক প্রতিরোধক সংযুক্ত করার প্রয়োজন হয় না।

DFPlayer খুব ভাল মানের শব্দ সরবরাহ করতে পারে এমন ভাল মানের স্পিকার ব্যবহার করার চেষ্টা করুন।

উচ্চতর ভলিউম স্তরে যদি আপনি শব্দটিতে কোনও বিকৃতি পেয়ে থাকেন, তবে আরডুইনো এবং ডিএফপ্লেয়ারের মধ্যে সাধারণ গ্রাউন্ড সংযোগের সাথে 5V ডিসিতে বাহ্যিকভাবে DFPlayer মডিউলটি পাওয়ার করুন।

আপনি যদি স্টেরিও সাউন্ড সেটআপ চান তবে স্পিকারের একজনকে ডিএফপ্লেয়ারের এসপিকে 1 এবং অন্য স্পিকারকে এসপিকে 2-তে সংযুক্ত করুন এবং বাকী স্পিকারের তারগুলি স্থল করুন।

পুশ বোতাম নিয়ন্ত্রণের জন্য প্রোগ্রাম:

//---------Developed by R.Girish------//
#include
SoftwareSerial mySerial(10, 11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
const int btnNext = A0
const int btnPause = A1
const int btnPrevious = A2
const int volumeUP = A3
const int volumeDOWN = A4
int volume = 15
boolean Playing = false
void setup ()
{
pinMode(btnPause, INPUT)
pinMode(btnNext, INPUT)
pinMode(btnPrevious, INPUT)
pinMode(volumeUP, INPUT)
pinMode(volumeDOWN, INPUT)
digitalWrite(btnPause, HIGH)
digitalWrite(btnNext, HIGH)
digitalWrite(btnPrevious, HIGH)
digitalWrite(volumeUP, HIGH)
digitalWrite(volumeDOWN, HIGH)
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if (digitalRead(btnPause) == LOW)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (digitalRead(btnNext) == LOW)
{
if(Playing)
{
next()
}
}
if (digitalRead(btnPrevious) == LOW)
{
if(Playing)
{
previous()
}
}
if(digitalRead(volumeUP) == LOW)
{
volumeINC()
}
if(digitalRead(volumeDOWN) == LOW)
{
volumeDEC()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(500)
exe_cmd(0x06, 0, volume)
delay(500)
exe_cmd(0x11,0,1)
delay(500)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(500)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(500)
}
void next()
{
exe_cmd(0x01,0,1)
delay(500)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(500)
}
void volumeINC()
{
volume = volume+1
if(volume==31)
{
volume=30
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void volumeDEC()
{
volume = volume-1
if(volume==-1)
{
volume=0
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

এবার আসুন IR দূরবর্তী ভিত্তিক নকশায়।

আইআর নিয়ন্ত্রিত এমপি 3 প্লেয়ারের জন্য স্কিম্যাটিক:


উপরের নকশাটি সহজ কারণ পুশ বোতাম ভিত্তিক পার্থক্যটি পুশ বোতামগুলি অপসারণ এবং টিএসওপি 1738 আইআর রিসিভার অন্তর্ভুক্ত করা। আইআর রিমোট থেকে প্রাপ্ত সংকেতটি আরডুইনোর এ0 পিনে খাওয়ানো হয়।

এখন এই এমপি 3 প্লেয়ারটি নিয়ন্ত্রণ করতে আপনার অতিরিক্ত টিভি বা অন্য কোনও আইআর ভিত্তিক রিমোট দরকার যা আপনার জাঙ্ক বক্সে পড়ে থাকতে পারে। প্লে ও বিরাম ইত্যাদির মতো ফাংশনগুলি নিয়ন্ত্রণ করার জন্য কোন বাটনগুলি আপনাকে সিদ্ধান্ত নিতে হবে

এখানে 6 টি কার্য রয়েছে:

1) খেলুন এবং বিরতি দিন
2) পরবর্তী গান
3) পূর্ববর্তী গান
4) আয়তন বৃদ্ধি
5) আয়তন হ্রাস
6) সাউন্ড ইকুয়ালাইজার (সাধারণ / পপ / রক / জাজ / ক্লাসিক / বেস)

আপনাকে রিমোটের বোতামগুলি নির্বাচন করতে হবে এবং সেই বোতামগুলির হেক্সাডেসিমাল কোডগুলি সন্ধান করতে হবে যা দূরবর্তী দ্বারা প্রেরণ করা হবে। হেক্সাডেসিমাল কোডটি সন্ধানের জন্য, যদি না করা হয় তবে আইআর লাইব্রেরিটি ডাউনলোড করুন।

github.com/z3t0/Ardino-IRremote

আরডুইনো সফ্টওয়্যারটিতে লাইব্রেরি যুক্ত করুন এবং ফাইল> উদাহরণসমূহ> আইআরমিট> আইআররেভভি ডেমোতে নেভিগেট করুন এবং সম্পূর্ণ হার্ডওয়্যার সেটআপ সহ কোডটি আপলোড করুন।

সিরিয়াল মনিটরটি খুলুন এবং রিমোটে বোতামগুলি টিপুন, আপনি হেক্সাডেসিমাল কোডগুলি দেখতে পাবেন, কাগজের টুকরোতে সংশ্লিষ্ট বোতামে এটি নোট করুন।

নীচে দেওয়া প্রোগ্রামে আপনাকে হেক্সাডেসিমাল কোড প্রবেশ করতে হবে। একবার আপনি প্রদত্ত প্রোগ্রামে হেক্সাডেসিমাল কোড প্রবেশ করালে এটি আপলোড করুন। আপনি আপনার দূরবর্তী থেকে আপনার গান নিয়ন্ত্রণ করতে প্রস্তুত।

আইআর রিমোট ভিত্তিক ডিজাইনের জন্য প্রোগ্রাম:

//---Developed by R.Girish--//
#include
#include
SoftwareSerial mySerial(10,11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
//--------------------------------------------------------//
# define pause_play 0x2FD08F7
# define next_song 0x2FDD827
# define prev_song 0x2FDF807 //REPLACE THESE HEX CODE WITH YOUR REMOTE BUTTON CODE STARTS “0x”
# define vol_inc 0x2FD58A7
# define vol_dec 0x2FD7887
# define sound_equalizer 0x2FD30CF
//-------------------------------------------------------//
const int receive = A0
IRrecv irrecv(receive)
decode_results dec
int volume = 15
int eqset = 0
boolean Playing = false
void setup ()
{
irrecv.enableIRIn()
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if(irrecv.decode(&dec))
{
if (dec.value==pause_play)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (dec.value==next_song)
{
if(Playing)
{
next()
}
}
if (dec.value==prev_song)
{
if(Playing)
{
previous()
}
}
if(dec.value==vol_inc)
{
volumeINC()
}
if(dec.value==vol_dec)
{
volumeDEC()
}
if(dec.value==sound_equalizer)
{
equalizer()
}
irrecv.resume()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(100)
exe_cmd(0x06, 0, volume)
delay(100)
exe_cmd(0x11,0,1)
delay(100)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(100)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(100)
}
void next()
{
exe_cmd(0x01,0,1)
delay(100)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(100)
}
void volumeINC()
{
volume = volume+1
if(volume == 31)
{
volume = 30
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void volumeDEC()
{
volume = volume-1
if(volume == -1)
{
volume = 0
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void equalizer()
{
eqset = eqset+1
if(eqset == 6)
{
eqset = 0
}
exe_cmd(0x07, 0 ,eqset)
delay(100)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

দ্রষ্টব্য 1: সংকলন করার সময় আপনি প্রোগ্রামটিতে সতর্কতা দেখতে পাচ্ছেন, দয়া করে এটি উপেক্ষা করুন।

দ্রষ্টব্য 2: আপনার সমস্ত গান ফোল্ডার ছাড়াই এসডি কার্ডে রাখার চেষ্টা করুন।

লেখকের প্রোটোটাইপ:




পূর্ববর্তী: LiFi ইন্টারনেট ট্রান্সমিটার সার্কিট - এলইডি মাধ্যমে ইউএসবি সিগন্যাল স্থানান্তর পরবর্তী: 7 ওয়াট এলইডি ড্রাইভার এসএমপিএস সার্কিট - বর্তমান নিয়ন্ত্রিত