विषयसूची:

Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल: 13 कदम
Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल: 13 कदम

वीडियो: Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल: 13 कदम

वीडियो: Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल: 13 कदम
वीडियो: Arduino + MP3 Player Module | Serial MP3 Player Module YX5300 / AA19HFA440-94 with Arduino Uno 2024, नवंबर
Anonim
Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल
Arduino और YX5300 MP3 मॉड्यूल Catalex के साथ स्वर खेल

क्या आप इस प्रश्न को पढ़ सकते हैं? वह अजीब है! मैंने यह सवाल जानबूझ कर पूछा था। यदि आप इस पाठ को पढ़ सकते हैं, तो इसका कारण यह है कि आप पूरी वर्णमाला जानते हैं और निश्चित रूप से, सभी स्वरों के बारे में जानते हैं।

स्वर सभी शब्दों में मौजूद हैं। उनमें से प्रत्येक से बचना असंभव है। अब, मैं आपसे एक प्रश्न पूछता हूं। क्या आपका बचपन मजेदार था और इसमें तकनीकी संसाधन शामिल थे?

मुझे यकीन है कि सीखने के संसाधन कम थे और आपने स्वर और वर्णमाला सीखने के लिए पारंपरिक तरीकों का इस्तेमाल किया था।

आखिरकार, क्या स्वर सीखने के लिए कुछ तकनीकी संसाधनों का उपयोग करना संभव है?

इस लेख में, मैं आपको सिखाऊंगा कि कैसे एक खेल के माध्यम से अपने छात्रों और बच्चों के स्वरों को पढ़ाना है।

मैं आपको सिखाऊंगा कि आवाज के साथ एक प्रणाली कैसे बनाई जाती है, जहां आपका बच्चा/छात्र पत्र की आवाज सुनेंगे और सही अक्षर को इंगित करने के लिए एक बटन दबाएंगे।

इस प्रकार, वे खेलते समय सीखेंगे और हमेशा अध्ययन के लिए प्रेरित होंगे।

अब, मैं आपको अपना गेम बनाने और बच्चों को स्वर सिखाने की चरण-दर-चरण प्रक्रिया दिखाने जा रहा हूँ।

आपूर्ति

JLCPCB प्रिंटेड सर्किट बोर्ड

Arduino Uno

स्विच को दबाएं

10kR रोकनेवाला

पुरुष हैडर 2, 54 मिमी 1x7

चरण 1: Arduino के साथ स्वरों का खेल विकसित करना

Arduino के साथ स्वरों का खेल विकसित करना
Arduino के साथ स्वरों का खेल विकसित करना

खेल का दिल स्वरों का JLCPCB मुद्रित सर्किट बोर्ड है। आप इस लिंक तक पहुंच सकते हैं और प्रोजेक्ट फाइलों को डाउनलोड कर सकते हैं। इसमें 5 बटन हैं। आप प्रत्येक बटन का उपयोग एक स्वर का प्रतिनिधित्व करने और इसे अपने Arduino से जोड़ने के लिए करेंगे।

मुद्रित सर्किट बोर्ड चित्र 1 में दिखाया गया है।

चरण 2:

छवि
छवि

इस PCB प्रोजेक्ट के साथ, आप इसे Arduino से जोड़ सकते हैं और अपना गेम बना सकते हैं। इसके बाद, मैं आपको आपके प्रोटोबार्ड पर प्रोजेक्ट को इकट्ठा करने या बनाने के लिए एक इलेक्ट्रॉनिक योजनाबद्ध की पेशकश करूंगा।

चरण 3:

इस योजना से, हम इलेक्ट्रॉनिक बोर्ड का लेआउट सेट करते हैं। यह चित्र 2 में दिखाया गया है और आप फ़ाइलें डाउनलोड कर सकते हैं और अपना प्रोजेक्ट बना सकते हैं।

Arduino से 5 पिन चुनें और बोर्ड पर जंपर्स को Arduino से कनेक्ट करें। या अन्यथा, आप निम्नलिखित इलेक्ट्रॉनिक आरेख को इकट्ठा कर सकते हैं।

चरण 4: प्रोजेक्ट आइडिया

प्रोजेक्ट आइडिया
प्रोजेक्ट आइडिया

मैं आपको सिखाऊंगा कि कैसे Arduino के साथ MP3 साउंड सिस्टम को असेंबल किया जाए। यह प्रणाली पत्र बोलने वाली आवाज को पुन: प्रस्तुत करने के लिए जिम्मेदार होगी। प्रत्येक अक्षर की ध्वनि 1 से 5 तक के मान का उपयोग करके खींची जाएगी, जहां 1 A का प्रतिनिधित्व करता है और 5 U का प्रतिनिधित्व करता है।

इस प्रकार, जब बच्चा ध्वनि सुनता है, तो उसे कीबोर्ड को देखना चाहिए, स्वर की वर्तनी को पहचानना चाहिए और सही कुंजी को दबाना चाहिए।

यदि यह विफल हो जाता है, तो सिस्टम लाल एलईडी को 3 बार फ्लैश करेगा। अन्यथा, सिस्टम 5 सेकंड के लिए बजर को सक्रिय करेगा और एक नया स्वर तैयार करेगा।

ऐसा करने के लिए, आपको निम्नलिखित सर्किट को इकट्ठा करना होगा।

इस सर्किट में, आप Arduino पर MP3 मॉड्यूल और स्वर बोर्ड को जोड़ेंगे। Catalex MP3 मॉड्यूल का प्रतिनिधित्व करने के लिए ब्लूटूथ मॉड्यूल का उपयोग किया गया था।

Arduino 5 नंबरों को सॉर्ट करने और फिर खींचे गए स्वर को सक्रिय करने के लिए कमांड भेजने के लिए जिम्मेदार होगा।

चरण 5:

छवि
छवि

उसके बाद, हम तब तक प्रतीक्षा करेंगे जब तक बच्चा सुनता है और एक बटन दबाता है, जैसा कि ऊपर चित्र में दिखाया गया है।

ऊपर दिया गया प्रत्येक बटन वर्णमाला के एक स्वर का प्रतिनिधित्व करता है। इसके बाद, मैं आपको दिखाऊंगा कि आप इस प्रोजेक्ट के लिए प्रोग्रामिंग लॉजिक कैसे बनाएंगे।

चरण 6: गेम के प्रोग्रामिंग लॉजिक का निर्माण

गेम के प्रोग्रामिंग लॉजिक का निर्माण
गेम के प्रोग्रामिंग लॉजिक का निर्माण

स्वर खेल प्रणाली YX5300 मॉड्यूल के संचालन पर आधारित है। इस मॉड्यूल में कुछ कार्य हैं, हालांकि, हम YX5300 मॉड्यूल के मुख्य कार्यों के माध्यम से गेम की कार्य संरचना को प्रस्तुत करने पर ध्यान केंद्रित करेंगे।

नीचे मैं आपको प्रोजेक्ट के सभी प्रोग्रामिंग लॉजिक प्रदान कर रहा हूं।

चरण 7:

निम्नलिखित में, मैं बच्चों के लिए इस मजेदार खेल के तर्क के निर्माण के लिए चरण दर चरण समझाऊंगा।

#शामिल

#define ARDUINO_RX 5 // सीरियल MP3 प्लेयर मॉड्यूल के TX से कनेक्ट होना चाहिए #define ARDUINO_TX 6 // मॉड्यूल के RX से कनेक्ट करें SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX); स्थिर int8_t Send_buf[8] = {0}; // कमांड भेजने के लिए बफर। // बेहतर स्थानीय रूप से स्थिर uint8_t ansbuf[10] = {0}; // उत्तर के लिए बफर। // बेहतर स्थानीय रूप से स्ट्रिंग mp3Answer; // MP3 से उत्तर दें। स्ट्रिंग उत्तर (शून्य); स्ट्रिंग sbyte2hex (uint8_t b); /************ कमांड बाइट *************/ #परिभाषित करें CMD_NEXT_SONG 0X01 // आगे खेलें गाना। #define CMD_PREV_SONG 0X02 // पिछला गाना चलाएं। #define CMD_PLAY_W_INDEX 0X03 #define CMD_VOLUME_UP 0X04 #define CMD_VOLUME_DOWN 0X05 #define CMD_SET_VOLUME 0X06 #define CMD_SNG_CYCL_PLAY 0X08 // सिंगल साइकिल प्ले। #define CMD_SEL_DEV 0X09 #define CMD_SLEEP_MODE 0X0A #define CMD_WAKE_UP 0X0B #define CMD_RESET 0X0C #define CMD_PLAY 0X0D #define CMD_PAUSE 0X0E #define CMD_PLAY_XOLDER_FILE 0define CMD_PLAY_XOLDER_FILE #define CMD_FOLDER_CYCLE 0X17 #define CMD_SHUFFLE_PLAY 0x18 // #define 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 / ********* *** राय **************/ #DEV_TF 0X02 परिभाषित करें /************** *************************************************** *****/ पूर्णांक अंक; बाइट एस्टाडो; बाइट बजर = 2; बाइट पिन = 0; बाइट सॉर्टनंबर = 0; बूल बटन = 0; शून्य सेटअप () {Serial.begin (९६००); mp3.begin (९६००); देरी (500); के लिए (पिन = 8; पिन 13) {पिन = 8; } Serial.println ("वरेंडो…"); सीरियल.प्रिंट्लन (पिन); // देरी (1000); }जबकि (बटन! = 1); Serial.println ("साइउ …"); अगर (बटन == 1 && (पिन -1)! = सॉर्टनंबर) {sendCommand (0x03, 0, 6); देरी (3000); } अगर (बटन == 1 && (पिन -1) == सॉर्टनंबर) {sendCommand (0x03, 0, 7); देरी (3000); }//उत्तर के लिए जाँच करें। अगर (mp3.उपलब्ध ()) { Serial.println (decodeMP3Answer ()); } देरी (१००); // Serial.println ("टोकैंडो संगीता …"); } /******************************** ********************************/ /*फंक्शन SendMP3Command: एक 'c' कमांड की तलाश करें और इसे MP3 पर भेजें */ /*पैरामीटर: सी. MP3 कमांड के लिए कोड, मदद के लिए 'h'। */ /*वापसी: शून्य */ शून्य भेजेंMP3Command(char c) {स्विच (c) {केस '?': केस 'h': Serial.println("HELP"); Serial.println ("पी = प्ले"); Serial.println ("पी = पॉज़"); 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: डिकोडेडMP3Answer += "-> एरर"; ब्रेक; केस 0x41: डिकोडेडMP3Answer += "-> डेटा सही ढंग से प्राप्त हुआ।"; ब्रेक; केस 0x42: डिकोडेडMP3Answer + = "-> स्टेटस प्लेइंग:" + स्ट्रिंग (Ansbuf [6], डीईसी); ब्रेक; केस 0x48: डिकोडेडएमपी३एन्सवर += "-> फाइल काउंट:" + स्ट्रिंग (एन्सबफ [६], डीईसी); ब्रेक; केस ०एक्स४सी: डिकोडेडएमपी३एन्सवर += "-> प्लेइंग:" + स्ट्रिंग (एन्सबफ [६], DEC); ब्रेक; केस 0x4E: डिकोडेडMP3Answer + = "-> फोल्डर फाइल काउंट:" + स्ट्रिंग (Ansbuf [6], DEC); ब्रेक; केस 0x4F: डिकोडेडMP3Answer + = "-> फोल्डर काउंट:" + स्ट्रिंग (Ansbuf) [६], डीईसी); ब्रेक; } डीकोडेड एमपी३ उत्तर; } /********************* ************* *******/*फ़ंक्शन: MP3 को कमांड भेजें *//*पैरामीटर: बाइट कमांड *//*पैरामीटर: कमांड के लिए बाइट डेटा1 पैरामीटर */ /*पैरामीटर: कमांड के लिए बाइट डेटा2 पैरामीटर */ void sendCommand(बाइट कमांड){ sendCommand(command, 0, 0); } शून्य भेजें कमांड (बाइट कमांड, बाइट डेटा 1, बाइट डेटा 2) {देरी (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; // डेटा भेजें_बफ [6] = डेटा 2; // डेटाल Send_buf [7] = 0xEF; // सीरियल.प्रिंट ("भेजना:"); के लिए (uint8_t i = 0; i <8; i++) { mp3.write(Send_buf); सीरियल.प्रिंट (sbyte2hex (Send_buf )); } सीरियल.प्रिंट्लन (); } /******************************** ********************************//*फ़ंक्शन: sbyte2hex. हेक्स प्रारूप में एक बाइट डेटा देता है। */ /*पैरामीटर:- uint8_t ख। हेक्स में कनवर्ट करने के लिए बाइट। */ /*वापसी: स्ट्रिंग */ स्ट्रिंग sbyte2hex(uint8_t b) { स्ट्रिंग शेक; शेक्स = "0X"; अगर (बी <16) हेक्स + = "0"; हेक्स + = स्ट्रिंग (बी, हेक्स); शेक्स + = ""; रिटर्न शेक्स; } /******************************** ********************************//*फ़ंक्शन: shex2int. HEX स्ट्रिंग से एक इंट लौटाता है। */ /*पैरामीटर: एस। चार * एस हेक्स में कनवर्ट करने के लिए। */ /*पैरामीटर: n. चार * एस 'लंबाई। */ /*वापसी: int */ int shex2int(char *s, int n){ int r = 0; के लिए (int i=0; i='0' && s='A' && s<='F'){ r *= 16; आर + = (एस - 'ए') + 10; } } वापसी आर; } /******************************** ********************************//*कार्य: उत्तर। एमपी3 यूएआरटी मॉड्यूल से एक स्ट्रिंग उत्तर देता है। */ /*पैरामीटर:- uint8_t ख। शून्य। */ /*वापसी: String. अगर उत्तर अच्छी तरह से तैयार उत्तर है। */ स्ट्रिंग उत्तर (शून्य) { uint8_t i = 0; स्ट्रिंग mp3answer = ""; // केवल 10 बाइट्स प्राप्त करें जबकि (mp3.उपलब्ध () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; मैं++; mp3answer += sbyte2hex(b); } // अगर उत्तर प्रारूप सही है। अगर ((ansbuf[0] == 0x7E) && (ansbuf[9] == 0xEF)) {वापसी mp3answer; } वापसी "???:" + mp3answer; }

सबसे पहले, हम YX5300 मॉड्यूल के सभी प्रोग्राम वैरिएबल और एक्सेस रजिस्टर एड्रेस को परिभाषित करते हैं।

#शामिल

#define ARDUINO_RX 5 // सीरियल MP3 प्लेयर मॉड्यूल के TX से कनेक्ट होना चाहिए #define ARDUINO_TX 6 // मॉड्यूल के RX से कनेक्ट करें SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX); स्थिर int8_t Send_buf[8] = {0}; // कमांड भेजने के लिए बफर। // बेहतर स्थानीय रूप से स्थिर uint8_t ansbuf[10] = {0}; // उत्तर के लिए बफर। // बेहतर स्थानीय रूप से स्ट्रिंग mp3Answer; // MP3 से उत्तर दें। स्ट्रिंग उत्तर (शून्य); स्ट्रिंग sbyte2hex (uint8_t b); /************ कमांड बाइट *************/ #परिभाषित करें CMD_NEXT_SONG 0X01 // आगे खेलें गाना। #define CMD_PREV_SONG 0X02 // पिछला गाना चलाएं। #define CMD_PLAY_W_INDEX 0X03 #define CMD_VOLUME_UP 0X04 #define CMD_VOLUME_DOWN 0X05 #define CMD_SET_VOLUME 0X06 #define CMD_SNG_CYCL_PLAY 0X08 // सिंगल साइकिल प्ले। #define CMD_SEL_DEV 0X09 #define CMD_SLEEP_MODE 0X0A #define CMD_WAKE_UP 0X0B #define CMD_RESET 0X0C #define CMD_PLAY 0X0D #define CMD_PAUSE 0X0E #define CMD_PLAY_XOLDER_FILE 0define CMD_PLAY_XOLDER_FILE #define CMD_FOLDER_CYCLE 0X17 #define CMD_SHUFFLE_PLAY 0x18 // #define 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 / ********* *** राय **************/ #DEV_TF 0X02 परिभाषित करें /************** *************************************************** *****/ पूर्णांक अंक; बाइट एस्टाडो; बाइट बजर = 2; बाइट पिन = 0; बाइट सॉर्टनंबर = 0; बूल बटन = 0;

चरण 8:

इन रजिस्टर पतों का उपयोग मॉड्यूल के संचालन को कॉन्फ़िगर करने के लिए किया जाता है। उदाहरण के लिए, नीचे यह पंजीकरण पता देखें।

#परिभाषित करें सीएमडी_PLAY_W_INDEX 0X03

पता 0x03 को CMD_PLAY_W_INDEX नाम से परिभाषित किया गया है। इसका उपयोग किसी गाने को उसके नंबर से ट्रिगर करने के लिए किया जाता है, यानी आप ध्वनि की संख्या दर्ज करते हैं और इसे बजाया जाएगा।

यह इन मूल्यों के साथ होगा कि हम उनका उपयोग करेंगे और अपनी परियोजना के कामकाज को कॉन्फ़िगर करेंगे।

आपके द्वारा उपयोग किए जाने वाले विभिन्न पतों को परिभाषित करने के बाद, हम सेटअप फ़ंक्शन में प्रवेश करेंगे और हमारे प्रोजेक्ट के लिए पिन और सीरियल संचार को कॉन्फ़िगर करेंगे।

चरण 9: शून्य सेटअप () फ़ंक्शन

इसके बाद, शून्य सेटअप फ़ंक्शन देखें। मैंने बटन पिन की सभी सेटिंग्स, एमपी3 मॉड्यूल का सीरियल कम्युनिकेशन और एमपी3 में कार्ड मॉड्यूल को इनिशियलाइज़ किया।

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); mp3.begin (९६००); देरी (500); के लिए (पिन = 8; पिन <13; पिन ++) {पिनमोड (पिन, इनपुट); } SendCommand(CMD_SEL_DEV, 0, DEV_TF); देरी (500); }

मैंने कंप्यूटर के सीरियल पर डेटा प्रिंट करने के लिए सीरियल कम्युनिकेशन शुरू किया और फिर हमने mp3 ऑब्जेक्ट के जरिए सीरियल कम्युनिकेशन शुरू किया।

सीरियल.बेगिन (९६००);

mp3.begin (९६००); देरी (500);

mp3 मॉड्यूल को Arduino सीरियल द्वारा प्राप्त कमांड के माध्यम से नियंत्रित किया जाता है। इस प्रक्रिया में, हमने SoftwareSerial लाइब्रेरी का उपयोग किया और Arduino डिजिटल पिन पर एक सीरियल का अनुकरण किया।

इस प्रकार, आप इसे भेजे गए आदेशों के माध्यम से एमपी3 मॉड्यूल को नियंत्रित करने के लिए Arduino का उपयोग करने में सक्षम होंगे।

इसके अलावा, हमने डिजिटल पिन का विन्यास और एमपी3 कार्ड मॉड्यूल का आरंभीकरण किया है

के लिए (पिन = 8; पिन <13; पिन ++) {पिनमोड (पिन, इनपुट); } SendCommand(CMD_SEL_DEV, 0, DEV_TF); देरी (500);

कॉन्फ़िगरेशन करने के बाद, हमें शून्य लूप फ़ंक्शन में मुख्य तर्क पर जाना चाहिए।

चरण 10: मुख्य कार्य शून्य लूप ()

कोड बहुत सरल है और संपूर्ण तार्किक संरचना नीचे प्रस्तुत की जा रही है। निम्नलिखित में, मैं आपको मुख्य फ़ंक्शन का पूरा तर्क समझाऊंगा।

शून्य लूप ()

{पिन = 8; यादृच्छिक बीज (एनालॉगरेड (ए 0)); अंक = यादृच्छिक (8, 12); सॉर्टनंबर = अंक; अंक = अंक - 7; Serial.println (संख्या); SendCommand (0x03, 0, अंक); देरी (1000); करो {बटन = डिजिटल रीड (पिन); Serial.println (बटन); पिन++; अगर (पिन> 13) {पिन = 8; } Serial.println ("वरेंडो…"); सीरियल.प्रिंट्लन (पिन); // देरी (1000); }जबकि (बटन! = 1); Serial.println ("साइउ …"); अगर (बटन == 1 && (पिन -1)! = सॉर्टनंबर) {sendCommand (0x03, 0, 6); देरी (3000); } अगर (बटन == 1 && (पिन -1) == सॉर्टनंबर) { SendCommand (0x03, 0, 7); देरी (3000); }//उत्तर के लिए जाँच करें। अगर (mp3.उपलब्ध ()) {Serial.println (decodeMP3Answer ()); } देरी (१००); // Serial.println ("टोकैंडो संगीता …"); }

लूप फ़ंक्शन चक्र की प्रत्येक शुरुआत में, हम स्वर की ध्वनि उत्पन्न करने के लिए 8 और 12 के बीच एक नया मान उत्पन्न करेंगे। 8 से 12 तक का मान स्वर के डिजिटल पिन को दर्शाता है।

यादृच्छिक मान उत्पन्न करने के लिए कोड नीचे दिखाया गया है।

पिन = 8;

यादृच्छिक बीज (एनालॉगरेड (ए 0)); अंक = यादृच्छिक (8, 12); सॉर्टनंबर = अंक;

इसके अलावा, हम 8 और 12 के बीच निकाली गई राशि में से 7 घटाते हैं। यह हमें मेमोरी कार्ड पर रिकॉर्ड किए गए गानों में से 1 से 5 की स्थिति को इंगित करने की अनुमति देगा।

अंक = अंक - 7;

उसके बाद, मैंने नीचे की रेखा पर खींची गई स्वर की ध्वनि को पुन: प्रस्तुत किया।

SendCommand (0x03, 0, अंक);

देरी (1000);

अब महत्वपूर्ण समय आ गया है: वह क्षण जब हम बच्चे द्वारा दबाए गए बटन को पढ़ने जा रहे हैं। कोड भाग नीचे प्रस्तुत किया जा रहा है।

करना

{बटन = डिजिटल रीड (पिन); Serial.println (बटन); पिन++; अगर (पिन> 13) {पिन = 8; } Serial.println ("वरेंडो…"); सीरियल.प्रिंट्लन (पिन); // देरी (1000); }जबकि (बटन! = 1);

इस लूप को तब तक क्रियान्वित किया जाएगा जब तक कि उपयोगकर्ता बटन नहीं दबाता। लूप आपको 5 डिजिटल पिन को स्कैन करने की अनुमति देता है और जैसे ही बच्चा किसी एक बटन को दबाता है, वह लूप से बाहर आ जाएगा और जांच करेगा कि क्या बच्चे ने सही प्रतिक्रिया दी है।

आप नीचे दिए गए कोड का उपयोग करके सत्यापन करेंगे।

अगर (बटन == 1 && (पिन -1)! = सॉर्टनंबर)

{भेजें कमांड (0x03, 0, 6); देरी (3000); } अगर (बटन == 1 && (पिन -1) == सॉर्टनंबर) { SendCommand (0x03, 0, 7); देरी (3000); }

पहली शर्त तब निष्पादित की जाएगी जब उपयोगकर्ता गलती करता है क्योंकि एक बटन दबाया गया था और पिन का ट्रिगर मान खींचे गए पिन (सॉर्टनंबर) से अलग था।

इस बिंदु पर, आपको नीचे दिए गए आदेश को निष्पादित करना होगा।

SendCommand (0x03, 0, 6);

देरी (3000);

इस कमांड का उपयोग गलत प्रतिक्रिया टोन को ट्रिगर करने के लिए किया जाता है। अंत में, हमारे पास दूसरी शर्त है जिसका उपयोग यह जांचने के लिए किया जाएगा कि बच्चा सही है या नहीं।

अगर (बटन == 1 && (पिन -1) == सॉर्टनंबर)

{भेजें कमांड (0x03, 0, 7); देरी (3000); }

चरण 11:

छवि
छवि

यदि एक बटन दबाया गया था और जो डिजिटल पिन दबाया गया था, वह खींचे गए पिन के समान है, तो सिस्टम एक सही उत्तर ध्वनि को ट्रिगर करेगा।

जैसा कि मैं आपको समझाता हूं, यह कोड बहुत सरल है और किसी भी बच्चे को Arduino के साथ एक खेल के माध्यम से स्वरों के अपने ज्ञान को विकसित करने में मदद करेगा।

साउंडबॉक्स के ऊपर की आकृति में एमपी3 मॉड्यूल YX5300 के एसडी कार्ड में संग्रहीत गीत को क्रियान्वित किया जा रहा है।

चरण 12: निष्कर्ष

कक्षा शिक्षा को लगातार बदलने की जरूरत है और मजेदार कार्यों को बनाने में Arduino एक महान सहयोगी हो सकता है।

इस परियोजना के माध्यम से, एक सरल गतिविधि विकसित करना संभव था जो प्रत्येक स्वर की ध्वनि और वर्तनी के ज्ञान के माध्यम से बच्चों के कौशल को विकसित कर सके।

पारंपरिक शिक्षण विधियों के विपरीत, बच्चे खेल और इलेक्ट्रॉनिक्स के माध्यम से कक्षा की मस्ती के माध्यम से सीखेंगे।

चरण 13: पावती

कंपनी JLCPCB के समर्थन और प्रोत्साहन के लिए इस परियोजना को विकसित किया गया था। उन्होंने शिक्षा को प्रोत्साहित किया और हमें कक्षा में बच्चों को पढ़ाने के लिए स्वरों के खेल को विकसित करने के लिए आमंत्रित किया।

यदि आप स्वरों के खेल की इलेक्ट्रॉनिक प्लेट खरीदना चाहते हैं, तो आप इस लिंक तक पहुँच सकते हैं और JLCPCB पर $ 2 के लिए 10 इकाइयाँ खरीद सकते हैं।

सिफारिश की: