সুচিপত্র:

Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা: 13 টি ধাপ
Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা: 13 টি ধাপ

ভিডিও: Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা: 13 টি ধাপ

ভিডিও: Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা: 13 টি ধাপ
ভিডিও: Audio Wav Media Player Making Using Arduino in Bangla Tutorial 2024, জুলাই
Anonim
Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা
Arduino এবং YX5300 MP3 মডিউল Catalex সহ স্বরবর্ণ খেলা

আপনি কি এই প্রশ্নটি পড়তে সক্ষম? এটা বিরক্তিকর! আমি উদ্দেশ্যমূলকভাবে এই প্রশ্নটি করেছি। আপনি যদি এই লেখাটি পড়তে পারেন, কারণ আপনি পুরো বর্ণমালা জানেন এবং অবশ্যই, সমস্ত স্বরবর্ণ সম্পর্কে জানতে পেরেছেন।

সব কথায় স্বরবর্ণ বিদ্যমান। তাদের প্রত্যেকের কাছ থেকে পালানো অসম্ভব। এখন আমাকে আপনি একটি প্রশ্ন জিজ্ঞাসা করুন. আপনার শৈশব শেখার মজা ছিল এবং প্রযুক্তিগত সম্পদ জড়িত ছিল?

আমি নিশ্চিত যে শেখার সংস্থানগুলি অল্প ছিল এবং আপনি স্বরবর্ণ এবং বর্ণমালা শিখতে traditionalতিহ্যগত পদ্ধতি ব্যবহার করেছিলেন।

সর্বোপরি, স্বরবর্ণ শেখার জন্য কিছু প্রযুক্তিগত সম্পদ ব্যবহার করা কি সম্ভব?

এই প্রবন্ধে, আমি আপনাকে শিখাব কিভাবে একটি গেমের মাধ্যমে আপনার ছাত্র এবং শিশুদের স্বরবর্ণ শেখানো যায়।

আমি আপনাকে শেখাব কিভাবে একটি ভয়েস দিয়ে একটি সিস্টেম তৈরি করতে হয়, যেখানে আপনার শিশু/ছাত্র চিঠির শব্দ শুনতে পাবে এবং সঠিক অক্ষর নির্দেশ করতে একটি বোতাম টিপতে হবে।

সুতরাং, তারা খেলার সময় শিখবে এবং সর্বদা অধ্যয়নের জন্য অনুপ্রাণিত হবে।

এখন, আমি আপনাকে ধাপে ধাপে প্রক্রিয়া দেখাতে যাচ্ছি যাতে আপনি আপনার নিজের খেলা তৈরি করতে পারেন, এবং শিশুদের স্বরবর্ণ শেখাতে পারেন।

সরবরাহ

JLCPCB প্রিন্টেড সার্কিট বোর্ড

আরডুইনো উনো

পুশবাটন সুইচ

10kR প্রতিরোধক

পুরুষ শিরোলেখ 2, 54 মিমি 1x7

ধাপ 1: Arduino এর সাথে স্বরবৃত্তের খেলা বিকাশ

Arduino সঙ্গে স্বরবর্ণের খেলা উন্নয়ন
Arduino সঙ্গে স্বরবর্ণের খেলা উন্নয়ন

গেমটির হৃদয় হল স্বরগুলির JLCPCB মুদ্রিত সার্কিট বোর্ড। আপনি এই লিঙ্কটি অ্যাক্সেস করতে পারেন এবং প্রকল্পের ফাইলগুলি ডাউনলোড করতে পারেন। এটিতে 5 টি বোতাম রয়েছে। আপনি একটি স্বরকে প্রতিনিধিত্ব করতে এবং আপনার Arduino এর সাথে সংযুক্ত করতে প্রতিটি বোতাম ব্যবহার করবেন।

ছাপা সার্কিট বোর্ড চিত্র 1 এ দেখানো হয়েছে।

ধাপ ২:

ছবি
ছবি

এই PCB প্রজেক্টের সাথে, আপনি এটিকে Arduino এর সাথে সংযুক্ত করতে পারেন এবং আপনার গেমটি তৈরি করতে পারেন। এরপরে, আমি আপনাকে আপনার প্রোটোবোর্ডে প্রকল্পটি একত্রিত বা নির্মাণের জন্য একটি বৈদ্যুতিন পরিকল্পিত প্রস্তাব দেব।

ধাপ 3:

এই পরিকল্পিত থেকে, আমরা ইলেকট্রনিক বোর্ডের বিন্যাস সেট আপ। এটি চিত্র 2 এ দেখানো হয়েছে এবং আপনি ফাইলগুলি ডাউনলোড করে আপনার প্রকল্প তৈরি করতে পারেন।

Arduino থেকে 5 টি পিন চয়ন করুন এবং বোর্ডে জাম্পারগুলিকে Arduino এর সাথে সংযুক্ত করুন। অথবা অন্যথায়, আপনি নিম্নলিখিত বৈদ্যুতিন চিত্রটি একত্রিত করতে পারেন।

ধাপ 4: প্রকল্প ধারণা

প্রজেক্ট আইডিয়া
প্রজেক্ট আইডিয়া

আমি আপনাকে শিখাব কিভাবে আরডুইনো দিয়ে একটি এমপি 3 সাউন্ড সিস্টেম একত্রিত করতে হয়। চিঠিতে কথা বলার ভয়েস পুনরুত্পাদন করার জন্য এই সিস্টেম দায়ী থাকবে। প্রতিটি অক্ষরের শব্দ 1 থেকে 5 এর মান ব্যবহার করে আঁকা হবে, যেখানে 1 A এবং 5 U কে প্রতিনিধিত্ব করে।

এইভাবে, যখন শিশুটি শব্দ শোনে, তাকে অবশ্যই কীবোর্ড দেখতে হবে, স্বরবর্ণের বানান চিনতে হবে এবং সঠিক কী টিপতে হবে।

যদি এটি ব্যর্থ হয়, সিস্টেমটি 3 বার লাল LED ফ্ল্যাশ করবে। অন্যথায়, সিস্টেমটি 5 সেকেন্ডের জন্য একটি বজার সক্রিয় করবে এবং একটি নতুন স্বর আঁকবে।

এটি করার জন্য, আপনাকে অবশ্যই নিম্নলিখিত সার্কিটটি একত্রিত করতে হবে।

এই সার্কিটে, আপনি আরডুইনোতে এমপি 3 মডিউল এবং স্বরবোর্ড সংযুক্ত করবেন। ব্লুটুথ মডিউলটি ক্যাটালেক্স এমপি 3 মডিউলের প্রতিনিধিত্ব করতে ব্যবহৃত হয়েছিল।

আরডুইনো 5 টি সংখ্যা সাজানোর জন্য দায়ী থাকবে এবং তারপরে টানা স্বরবর্ণ সক্রিয় করতে কমান্ড পাঠাবে।

ধাপ 5:

ছবি
ছবি

এর পরে, আমরা অপেক্ষা করব যতক্ষণ না শিশুটি শুনতে পায় এবং একটি বোতাম টিপতে পারে, উপরের ছবিতে দেখানো হয়েছে।

উপরের প্রতিটি বোতাম বর্ণমালার একটি স্বরকে উপস্থাপন করে। পরবর্তী, আমি আপনাকে দেখাব কিভাবে আপনি এই প্রকল্পের জন্য প্রোগ্রামিং লজিক তৈরি করবেন।

ধাপ 6: গেমের প্রোগ্রামিং লজিক তৈরি করা

গেমের প্রোগ্রামিং লজিক তৈরি করা
গেমের প্রোগ্রামিং লজিক তৈরি করা

স্বরবিন্যাস পদ্ধতিটি YX5300 মডিউলের ক্রিয়াকলাপের উপর ভিত্তি করে। এই মডিউলের কিছু ফাংশন আছে, তবে আমরা YX5300 মডিউলের প্রধান ফাংশনগুলির মাধ্যমে গেমের কাজের কাঠামো উপস্থাপনের দিকে মনোনিবেশ করব।

নীচে আমি আপনাকে প্রকল্পের সমস্ত প্রোগ্রামিং যুক্তি প্রদান করছি।

ধাপ 7:

নীচে, আমি শিশুদের জন্য এই মজার গেমের যুক্তি তৈরির ধাপে ধাপে ব্যাখ্যা করব।

#অন্তর্ভুক্ত

#ডিফাইন ARDUINO_RX 5 // সিরিয়াল MP3 প্লেয়ার মডিউলের TX- এর সাথে সংযুক্ত হওয়া উচিত স্ট্যাটিক int8_t Send_buf [8] = {0}; // সেন্ড কমান্ডের জন্য বাফার। // আরও ভাল স্থানীয়ভাবে স্থির uint8_t ansbuf [10] = {0}; // উত্তরের জন্য বাফার। // ভাল স্থানীয়ভাবে স্ট্রিং mp3 উত্তর; // MP3 থেকে উত্তর। স্ট্রিং সেন্সওয়ার (অকার্যকর); স্ট্রিং sbyte2hex (uint8_t b); / ************ কমান্ড বাইট ****************************/ #ডিফাইন CMD_NEXT_SONG 0X01 // পরবর্তী খেলুন গান #সংজ্ঞায়িত করুন CMD_PREV_SONG 0X02 // আগের গানটি চালান। #CMD_PLAY_W_INDEX 0X03 #CMD_VOLUME_UP 0X04 সংজ্ঞায়িত করুন #ডিফাইন CMD_SEL_DEV 0X09 #ডিফাইন CMD_SLEEP_MODE 0X0A #ডিফাইন CMD_WAKE_UP 0X0B #ডিফাইন CMD_RESET 0X0C #ডিফাইন CMD_PLAY 0X0D #ডিফাইন CMD_PAUSE 0FEFE0FEFEFE0FEFE0FEFEFE0FEFE0FE0FEFE0FEFEFE0FEFE0FEFE0FE0FEFE0FEFE0FE0FEFE0FE0EFE0EFE0FE0FEFE0EFEFE0FE0FE0EFE0FE0EFE0FE04 #define CMD_FOLDER_CYCLE 0X17 #CMD_SHUFFLE_PLAY 0x18 // #CMD_SET_SNGL_CYCL 0X19 নির্ধারণ করুন // একক চক্র সেট করুন। # define CMD_SET_DAC 0X1A # define DAC_ON 0X00 # define DAC_OFF 0X01 # define CMD_PLAY_W_VOL 0X22 # define CMD_PLAYING_N 0x4C # define CMD_QUERY_STATUS 0x42 # define CMD_QUERY_VOLUME 0x43 # define CMD_QUERY_FLDR_TRACKS 0x4e # define CMD_QUERY_TOT_TRACKS 0x48 # define CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons **************************** / #DEF_TF 0X02 / ************** ****************************************************** *****/ int সংখ্যা; বাইট estado; বাইট বুজার = 2; বাইট পিন = 0; বাইট SortNumber = 0; বুল বোতাম = 0; অকার্যকর সেটআপ () {Serial.begin (9600); mp3.begin (9600); বিলম্ব (500); জন্য (পিন = 8; পিন 13) {পিন = 8; } Serial.println ("Varrendo …"); Serial.println (পিন); // বিলম্ব (1000); } যখন (বাটন! = 1); Serial.println ("সাইউ …"); if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); বিলম্ব (3000); } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); বিলম্ব (3000); } // উত্তরের জন্য চেক করুন। যদি (mp3.available ()) {Serial.println (decodeMP3Answer ()); } বিলম্ব (100); //Serial.println("Tocando musica… "); } /**************************************************** ************************************ * / /*পরামিতি: গ। MP3 কমান্ডের জন্য কোড, সাহায্যের জন্য 'h'। *// *রিটার্ন: void */ void sendMP3Command (char c) {switch (c) {case '?': Case 'h': Serial.println ("HELP"); Serial.println ("p = Play"); Serial.println ("P = Pause"); Serial.println ("> = পরবর্তী"); Serial.println ("': Serial.println (" Next "); sendCommand (CMD_NEXT_SONG); sendCommand (CMD_PLAYING_N); // ফাইলের সংখ্যা জিজ্ঞাসা করুন ব্রেক বাজছে; কেস' মেমরি কার্ড.োকানো হয়েছে।"; বিরতি; কেস 0x3D: decodedMP3Answer + = " -> সমাপ্ত খেলার সংখ্যা" + স্ট্রিং (ansbuf [6], DEC); // sendCommand (CMD_NEXT_SONG); // sendCommand (CMD_PLAYING_N); // ফাইলের সংখ্যা জিজ্ঞাসা করুন বিরতি চলছে; কেস 0x40: decodedMP3Answer += " -> ত্রুটি"; বিরতি; কেস 0x41: decodedMP3Answer += " -> ডেটা সঠিকভাবে রিসিভ করা হয়েছে।"; বিরতি; কেস 0x42: decodedMP3Answer += " -> স্ট্যাটাস প্লে হচ্ছে:" +স্ট্রিং (ansbuf [6], DEC); break; case 0x48: decodedMP3Answer + = " -> ফাইল কাউন্ট:" + স্ট্রিং (ansbuf [6], DEC); বিরতি; কেস 0x4C: decodedMP3Answer + = " -> বাজানো:" + স্ট্রিং (ansbuf [6], DEC); break; case 0x4E: decodedMP3Answer + = " -> ফোল্ডার ফাইল কাউন্ট:" + স্ট্রিং (ansbuf [6], DEC); break; case 0x4F: decodedMP3Answer + = " -> Folder count:" + string (ansbuf [6], ডিসি); বিরতি;} ডিকোডেড এমপি 3 উত্তর;} /******************************** ************ *********************************** / /*ফাংশন: MP3* / /*প্যারামিটারে কমান্ড পাঠান: বাইট কমান্ড *// *প্যারামিটার: কমান্ডের জন্য বাইট dat1 প্যারামিটার *// *প্যারামিটার: কমান্ডের জন্য বাইট dat2 প্যারামিটার */ অকার্যকর সেন্ড কমান্ড (বাইট কমান্ড) {sendCommand (কমান্ড, 0, 0); } void sendCommand (বাইট কমান্ড, বাইট dat1, বাইট dat2) {বিলম্ব (20); Send_buf [0] = 0x7E; // Send_buf [1] = 0xFF; // Send_buf [2] = 0x06; // লেন Send_buf [3] = কমান্ড; // Send_buf [4] = 0x01; // 0x00 না, 0x01 প্রতিক্রিয়া Send_buf [5] = dat1; // datah Send_buf [6] = dat2; // ডেটাল Send_buf [7] = 0xEF; // সিরিয়াল.প্রিন্ট ("পাঠানো:"); জন্য (uint8_t i = 0; i <8; i ++) {mp3.write (Send_buf ); Serial.print (sbyte2hex (Send_buf )); } Serial.println (); } /**************************************************** ********************************** / /*ফাংশন: sbyte2hex। HEX ফরম্যাটে একটি বাইট ডেটা প্রদান করে। * / /*প্যারামিটার:- uint8_t খ। HEX এ রূপান্তর করতে বাইট। *// *রিটার্ন: স্ট্রিং */ স্ট্রিং sbyte2hex (uint8_t b) {স্ট্রিং শেক্স; শেক্স = "0 এক্স"; যদি (b <16) শেক্স += "0"; shex += স্ট্রিং (b, HEX); শেক্স += ""; শেক্স ফেরত; } /**************************************************** ********************************** / /*ফাংশন: shex2int। একটি HEX স্ট্রিং থেকে একটি int প্রদান করে। * / /*পরামিতি: গুলি হেক্সে রূপান্তর করতে char *s। * / /*পরামিতি: n। গৃহস্থালি *এর দৈর্ঘ্য। *// *রিটার্ন: int */ int shex2int (char *s, int n) {int r = 0; জন্য (int i = 0; i = '0' && s = 'A' && s <= 'F') {r *= 16; r + = (গুলি - 'A') + 10; }} r ফিরুন; } /************************************************** ********************************** / /*ফাংশন: sanswer। Mp3 UART মডিউল থেকে একটি স্ট্রিং উত্তর প্রদান করে। * / /*প্যারামিটার:- uint8_t খ। অকার্যকর * / /*রিটার্ন: স্ট্রিং। যদি উত্তরটি ভালভাবে গঠন করা হয়। */ স্ট্রিং সেন্সওয়ার (অকার্যকর) {uint8_t i = 0; স্ট্রিং mp3answer = ""; // মাত্র 10 বাইট পান যখন (mp3.available () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; আমি ++; mp3answer += sbyte2hex (b); } // যদি উত্তর বিন্যাস সঠিক হয়। যদি ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {return mp3answer; } ফেরত "???:" + mp3answer; }

প্রথমে, আমরা সমস্ত প্রোগ্রাম ভেরিয়েবল এবং YX5300 মডিউলের অ্যাক্সেস রেজিস্টার ঠিকানাগুলি সংজ্ঞায়িত করি।

#অন্তর্ভুক্ত

#ডিফাইন ARDUINO_RX 5 // সিরিয়াল MP3 প্লেয়ার মডিউলের TX- এর সাথে সংযুক্ত হওয়া উচিত স্ট্যাটিক int8_t Send_buf [8] = {0}; // সেন্ড কমান্ডের জন্য বাফার। // আরও ভাল স্থানীয়ভাবে স্থির uint8_t ansbuf [10] = {0}; // উত্তরের জন্য বাফার। // ভাল স্থানীয়ভাবে স্ট্রিং mp3 উত্তর; // MP3 থেকে উত্তর। স্ট্রিং সেন্সওয়ার (অকার্যকর); স্ট্রিং sbyte2hex (uint8_t b); / ************ কমান্ড বাইট ****************************/ #ডিফাইন CMD_NEXT_SONG 0X01 // পরবর্তী খেলুন গান #সংজ্ঞায়িত করুন CMD_PREV_SONG 0X02 // আগের গানটি চালান। #ডিফাইন CMD_PLAY_W_INDEX 0X03 #ডিফাইন CMD_VOLUME_UP 0X04 #ডিফাইন CMD_VOLUME_DOWN 0X05 #ডিফাইন CMD_SET_VOLUME 0X06 #ডিফাইন CMD_SNG_CYCL_PLAY 0X08 // সিঙ্গেল সাইকেল #ডিফাইন CMD_SEL_DEV 0X09 #ডিফাইন CMD_SLEEP_MODE 0X0A #ডিফাইন CMD_WAKE_UP 0X0B #ডিফাইন CMD_RESET 0X0C #ডিফাইন CMD_PLAY 0X0D #ডিফাইন CMD_PAUSE 0FEFE0FEFEFE0FEFE0FEFEFE0FEFE0FE0FEFE0FEFEFE0FEFE0FEFE0FE0FEFE0FEFE0FE0FEFE0FE0EFE0EFE0FE0FEFE0EFEFE0FE0FE0EFE0FE0EFE0FE04 #define CMD_FOLDER_CYCLE 0X17 #CMD_SHUFFLE_PLAY 0x18 // #CMD_SET_SNGL_CYCL 0X19 নির্ধারণ করুন // একক চক্র সেট করুন। # define CMD_SET_DAC 0X1A # define DAC_ON 0X00 # define DAC_OFF 0X01 # define CMD_PLAY_W_VOL 0X22 # define CMD_PLAYING_N 0x4C # define CMD_QUERY_STATUS 0x42 # define CMD_QUERY_VOLUME 0x43 # define CMD_QUERY_FLDR_TRACKS 0x4e # define CMD_QUERY_TOT_TRACKS 0x48 # define CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons **************************** / #DEV_TF 0X02 / ************** ****************************************************** *****/ int সংখ্যা; বাইট estado; বাইট বুজার = 2; বাইট পিন = 0; বাইট SortNumber = 0; বুল বোতাম = 0;

ধাপ 8:

এই নিবন্ধন ঠিকানাগুলি মডিউলটির ক্রিয়াকলাপ কনফিগার করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, নীচের এই নিবন্ধন ঠিকানা দেখুন।

#CMD_PLAY_W_INDEX 0X03 সংজ্ঞায়িত করুন

ঠিকানা 0x03 CMD_PLAY_W_INDEX নাম দিয়ে সংজ্ঞায়িত করা হয়েছে। এটি একটি গানকে তার নম্বর থেকে ট্রিগার করার জন্য ব্যবহার করা হয়, অর্থাৎ, আপনি শব্দের সংখ্যা লিখুন এবং এটি বাজানো হবে।

এই মানগুলির সাথে আমরা তাদের ব্যবহার করব এবং আমাদের প্রকল্পের কার্যকারিতা কনফিগার করব।

আপনি যে বিভিন্ন ঠিকানা ব্যবহার করবেন তা সংজ্ঞায়িত করার পরে, আমরা সেটআপ ফাংশনে প্রবেশ করব এবং আমাদের প্রকল্পের জন্য পিন এবং সিরিয়াল যোগাযোগ কনফিগার করব।

ধাপ 9: অকার্যকর সেটআপ () ফাংশন

পরবর্তী, অকার্যকর সেটআপ ফাংশন দেখুন। আমি বোতাম পিনের সমস্ত সেটিংস, এমপি 3 মডিউলের সিরিয়াল যোগাযোগ এবং এমপি 3 তে কার্ড মডিউল শুরু করার কাজ করেছি।

অকার্যকর সেটআপ()

{Serial.begin (9600); mp3.begin (9600); বিলম্ব (500); জন্য (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); বিলম্ব (500); }

আমি কম্পিউটারের সিরিয়ালে ডেটা প্রিন্ট করার জন্য সিরিয়াল যোগাযোগ শুরু করেছিলাম এবং তারপর আমরা mp3 বস্তুর মাধ্যমে সিরিয়াল যোগাযোগ শুরু করেছিলাম।

Serial.begin (9600);

mp3.begin (9600); বিলম্ব (500);

Arduino সিরিয়াল দ্বারা প্রাপ্ত কমান্ডের মাধ্যমে mp3 মডিউল নিয়ন্ত্রণ করা হয়। এই প্রক্রিয়ায়, আমরা SoftwareSerial লাইব্রেরি ব্যবহার করেছি এবং Arduino ডিজিটাল পিনগুলিতে একটি সিরিয়াল অনুকরণ করেছি।

সুতরাং, আপনি প্রেরিত কমান্ডের মাধ্যমে MP3 মডিউলটি নিয়ন্ত্রণ করতে Arduino ব্যবহার করতে সক্ষম হবেন।

উপরন্তু, আমরা ডিজিটাল পিনগুলির কনফিগারেশন এবং MP3 কার্ড মডিউলের সূচনা করেছি

জন্য (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); বিলম্ব (500);

কনফিগারেশন করার পর, আমাদের অবশ্যই void loop ফাংশনে মূল লজিকের দিকে যেতে হবে।

ধাপ 10: প্রধান ফাংশন অকার্যকর লুপ ()

কোডটি খুবই সহজ এবং সম্পূর্ণ যৌক্তিক কাঠামো নিচে উপস্থাপন করা হচ্ছে। নিম্নলিখিতগুলিতে, আমি আপনাকে মূল ফাংশনের সম্পূর্ণ যুক্তি ব্যাখ্যা করব।

অকার্যকর লুপ ()

{পিন = 8; randomSeed (analogRead (A0)); সংখ্যা = এলোমেলো (8, 12); SortNumber = numero; numero = numero - 7; Serial.println (numero); sendCommand (0x03, 0, numero); বিলম্ব (1000); করুন {button = digitalRead (pin); Serial.println (বাটন); পিন ++; যদি (পিন> 13) {পিন = 8; } Serial.println ("Varrendo …"); Serial.println (পিন); // বিলম্ব (1000); } যখন (বাটন! = 1); Serial.println ("সাইউ …"); if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); বিলম্ব (3000); } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); বিলম্ব (3000); } // উত্তরের জন্য চেক করুন। যদি (mp3.available ()) {Serial.println (decodeMP3Answer ()); } বিলম্ব (100); //Serial.println("Tocando musica… "); }

লুপ ফাংশন চক্রের প্রতিটি প্রারম্ভে, আমরা একটি স্বরধ্বনি তৈরি করতে 8 থেকে 12 এর মধ্যে একটি নতুন মান তৈরি করব। 8 থেকে 12 পর্যন্ত মানটি স্বরের ডিজিটাল পিন বোঝায়।

এলোমেলো মান তৈরির কোড নিচে দেখানো হয়েছে।

পিন = 8;

randomSeed (analogRead (A0)); সংখ্যা = এলোমেলো (8, 12); SortNumber = numero;

উপরন্তু, আমরা 8 থেকে 12 এর মধ্যে অঙ্কিত পরিমাণ থেকে 7 বিয়োগ করি। এটি আমাদের মেমরি কার্ডে রেকর্ড করা গানগুলির 1 থেকে 5 এর অবস্থান নির্দেশ করতে দেয়।

numero = numero - 7;

তারপরে, আমি নীচের লাইনে আঁকা স্বরবর্ণের শব্দটি পুনরুত্পাদন করলাম।

sendCommand (0x03, 0, numero);

বিলম্ব (1000);

এখন গুরুত্বপূর্ণ সময় এসেছে: সেই মুহুর্তে যখন আমরা সন্তানের চাপানো বোতামটি পড়তে যাচ্ছি। কোড অংশ নিচে উপস্থাপন করা হচ্ছে।

কর

{button = digitalRead (pin); Serial.println (বাটন); পিন ++; যদি (পিন> 13) {পিন = 8; } Serial.println ("Varrendo …"); Serial.println (পিন); // বিলম্ব (1000); } যখন (বাটন! = 1);

ব্যবহারকারী বোতাম টিপে না হওয়া পর্যন্ত এই লুপটি কার্যকর করা হবে। লুপটি আপনাকে 5 টি ডিজিটাল পিন স্ক্যান করার অনুমতি দেয় এবং যে মুহূর্তে শিশুটি একটি বোতাম টিপবে, এটি লুপ থেকে বেরিয়ে আসবে এবং পরীক্ষা করবে যে শিশুটি সঠিকভাবে সাড়া দিয়েছে কিনা।

আপনি নিচের কোড ব্যবহার করে যাচাই করবেন।

if (button == 1 && (pin-1)! = SortNumber)

{sendCommand (0x03, 0, 6); বিলম্ব (3000); } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); বিলম্ব (3000); }

ব্যবহারকারী ভুল করলে প্রথম শর্তটি কার্যকর করা হবে কারণ একটি বোতাম চাপানো হয়েছিল এবং পিনের ট্রিগার মানটি টানা পিন (SortNumber) থেকে আলাদা ছিল।

এই মুহুর্তে, আপনাকে অবশ্যই নীচের কমান্ডটি কার্যকর করতে হবে।

sendCommand (0x03, 0, 6);

বিলম্ব (3000);

এই কমান্ডটি ভুল প্রতিক্রিয়া স্বর ট্রিগার করতে ব্যবহৃত হয়। পরিশেষে, আমাদের দ্বিতীয় শর্ত আছে যা শিশুটি ঠিক আছে কিনা তা পরীক্ষা করার জন্য ব্যবহার করা হবে।

if (button == 1 && (pin-1) == SortNumber)

{sendCommand (0x03, 0, 7); বিলম্ব (3000); }

ধাপ 11:

ছবি
ছবি

যদি একটি বোতাম চাপানো হয় এবং যে ডিজিটাল পিনটি চাপানো হয় তা টানা পিনের মতো হয়, সিস্টেমটি একটি সঠিক উত্তর সাউন্ড ট্রিগার করবে।

যেমন আমি আপনাকে ব্যাখ্যা করছি, এই কোডটি খুবই সহজ এবং যে কোনো শিশুকে Arduino এর সাথে একটি খেলার মাধ্যমে স্বরবর্ণের জ্ঞান বিকাশে সাহায্য করবে।

সাউন্ডবক্সের উপরের চিত্রে MP3 মডিউল YX5300 এর SD কার্ডে সংরক্ষিত গানটি সম্পাদন করা হচ্ছে।

ধাপ 12: উপসংহার

শ্রেণীকক্ষের শিক্ষা ক্রমাগত পরিবর্তন করা প্রয়োজন এবং মজাদার কাজ তৈরিতে আরডুইনো দারুণ সহযোগী হতে পারে।

এই প্রকল্পের মাধ্যমে, একটি সহজ ক্রিয়াকলাপ বিকাশ করা সম্ভব ছিল যা প্রতিটি স্বরের শব্দ এবং বানানের জ্ঞানের মাধ্যমে শিশুদের দক্ষতা বিকাশ করতে পারে।

Traditionalতিহ্যবাহী শিক্ষাদান পদ্ধতির বিপরীতে, শিশুরা ক্লাসরুমের মজার মাধ্যমে গেম এবং ইলেকট্রনিক্সের মাধ্যমে শিখবে।

ধাপ 13: স্বীকৃতি

এই প্রকল্পটি JLCPCB কোম্পানির সমর্থন এবং উৎসাহের জন্য ধন্যবাদ। তারা শিক্ষাকে উৎসাহিত করেছিল এবং আমাদের শ্রেণিকক্ষে শিশুদের শেখানোর জন্য স্বরবর্ণের খেলা বিকাশের জন্য আমন্ত্রণ জানায়।

আপনি যদি স্বরবৃত্তের ইলেকট্রনিক প্লেট কিনতে চান, তাহলে আপনি এই লিঙ্কটি অ্যাক্সেস করতে পারেন এবং JLCPCB এ $ 2 এর জন্য 10 ইউনিট কিনতে পারেন।

প্রস্তাবিত: