- हार्डवेयर आवश्यक:
- Arduino के टोन () फ़ंक्शन को समझना :
- Pitches.h हेडर फाइल:
- Arduino पर संगीत नोट्स बजाना:
- योजनाबद्ध और हार्डवेयर:
- Arduino कार्यक्रम स्पष्टीकरण:
- इस मेलोडी प्लेयर Arduino सर्किट का कार्य:
Arduino अपनी माइक्रोकंट्रोलर परियोजनाओं को सरल और तेज़ करने का एक शानदार तरीका है, डेवलपर्स के अपने समुदाय के लिए धन्यवाद जिन्होंने लगभग सब कुछ सरल बना दिया है। आप की कोशिश करने और मज़े करने के लिए यहाँ बहुत सारे Arduino Projects हैं। आपकी कुछ परियोजनाओं को दर्शकों को प्रभावित करने के लिए कुछ के बारे में सूचित करने के लिए कुछ ध्वनियों की आवश्यकता हो सकती है। क्या होगा अगर मैंने आपको बताया कि पियानो पर बजाए जा सकने वाले लगभग किसी भी थीम गाने को एक साधारण प्रोग्राम और एक सस्ते पीजो स्पीकर की मदद से आपके Arduino पर नकल किया जा सकता है?
इस ट्यूटोरियल में हम सीखेंगे कि Arduino टोन () फ़ंक्शन का उपयोग करके पीजो बजर या स्पीकर पर मेलोडी खेलना कितना सरल और आसान है । इस ट्यूटोरियल के अंत में आप पायरेट्स ऑफ कैरिबियन, क्रेजी फ्रॉग, सुपर मारियो और टाइटैनिक के कुछ प्रसिद्ध स्वरों को बजा सकेंगे। आप यह भी सीखेंगे कि अर्डिनो के साथ पियानो संगीत के किसी भी टुकड़े को कैसे खेलना है। वीडियो को अंत में देखें।
हार्डवेयर आवश्यक:
- Arduino (किसी भी संस्करण - UNO का उपयोग यहां किया गया है)
- पीजो स्पीकर / बजर या कोई अन्य 8ohm स्पीकर।
- ब्रेड बोर्ड
- तारों को जोड़ना
- पुश बटन
- 1k रोकनेवाला (वैकल्पिक)
Arduino के टोन () फ़ंक्शन को समझना:
इससे पहले कि हम समझ सकें कि एक टोन () कैसे काम करता है हमें पता होना चाहिए कि पीजो बजर कैसे काम करता है। हमने अपने स्कूल में पीजो क्रिस्टल के बारे में सीखा होगा, यह एक क्रिस्टल के अलावा कुछ भी नहीं है जो यांत्रिक कंपन को बिजली या इसके विपरीत में परिवर्तित करता है। यहां हम एक वैरिएबल करंट (फ्रीक्वेंसी) लागू करते हैं, जिसके लिए क्रिस्टल इस प्रकार ध्वनि उत्पन्न करता है। इसलिए पीजो बजर को कुछ शोर करने के लिए हमें पाइजो इलेक्ट्रिक क्रिस्टल को कंपन करने के लिए बनाना पड़ता है, पिच और शोर का स्वर इस बात पर निर्भर करता है कि क्रिस्टल कितनी तेजी से कंपन करता है। इसलिए वर्तमान की आवृत्ति को अलग करके टोन और पिच को नियंत्रित किया जा सकता है।
ठीक है, तो हम Arduino से एक चर आवृत्ति कैसे प्राप्त करते हैं ? यह वह जगह है जहाँ टोन () फ़ंक्शन आता है। टोन () एक विशिष्ट पिन पर एक विशेष आवृत्ति उत्पन्न कर सकता है। आवश्यकता होने पर समय अवधि का भी उल्लेख किया जा सकता है। टोन के लिए वाक्यविन्यास () है
सिंटैक्स टोन (पिन, फ़्रीक्वेंसी) टोन (पिन, फ़्रीक्वेंसी, ड्यूरेशन) पैरामीटर्स पिन: वह पिन जिस पर टोन फ़्रीक्वेंसी जेनरेट की जाती है: हर्ट्ज़ में टोन की आवृत्ति - अहस्ताक्षरित अंतर अवधि: मिलीसेकंड (वैकल्पिक) में टोन की अवधि - लंबे समय तक अहस्ताक्षरित
पिन के मान आपके किसी भी डिजिटल पिन हो सकते हैं। मैंने यहां पिन नंबर 8 का उपयोग किया है। उत्पन्न होने वाली आवृत्ति आपके Arduino बोर्ड में टाइमर के आकार पर निर्भर करती है। संयुक्त राष्ट्र संघ और अधिकांश अन्य सामान्य बोर्डों के लिए न्यूनतम आवृत्ति जो उत्पादन की जा सकती है, वह है 31Hz और उत्पादन की जाने वाली अधिकतम आवृत्ति 65535Hz है। हालाँकि हम मनुष्य केवल 2000Hz और 5000 हर्ट्ज के बीच की आवृत्ति सुन सकते हैं।
Pitches.h हेडर फाइल:
अब, हम जानते हैं कि कैसे arduino टोन () फ़ंक्शन का उपयोग करके कुछ शोर पैदा करना है । लेकिन, हम कैसे जानते हैं कि प्रत्येक आवृत्ति के लिए किस प्रकार का स्वर उत्पन्न होगा?
Arduino ने हमें एक नोट तालिका दी है जो प्रत्येक आवृत्ति को एक विशिष्ट संगीत नोट प्रकार के बराबर करती है। यह नोट तालिका मूल रूप से ब्रेट हैगमैन द्वारा लिखी गई थी, जिसके कार्य पर स्वर () कमांड आधारित था। हम अपने विषयों को खेलने के लिए इस नोट तालिका का उपयोग करेंगे। यदि आप शीट संगीत से परिचित हैं, तो आपको इस तालिका का कुछ अर्थ निकालने में सक्षम होना चाहिए, मेरे जैसे अन्य लोगों के लिए यह कोड का एक और ब्लॉक है।
#define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_FS1 46 #define NOTE_FS1 #define NOTE_CS1 NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_GS2 104 #define NOTE_GS2 104 #GSfine नोट #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_GS3 208 #define NOTE3_GS3 NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349#define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS4 556 # नोटफिन नोट 5 जी 4 जी नोट 5 जी 4 जी नोट 4 जी नोट 4 जी नोट 4 जी नोट 4 जी नोट 4 जी नोट 4 जी नोट 4 जी नोट 4 जी के नोट नंबर NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_CS5 # 9 # 5f5 # 11f # नोट # 11f # नोट # 11 # # # # # # # # # # # # # # # # परफ़र्मिंग से ऐसे करें जैसे # ५१ # # ine # #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 1976 #define NOTE_C7 #93 #define NOTE_CS7 2217 #define NOTE_D6 # नोट 6998 नोट # नोट 248 नोट # 6f5 नोट # नोट 6G नोट # 15.18 # 6f5 नोट: नोट: 6% से अधिक NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS73729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
इस ज़िप फ़ाइल में पिच कोड के ऊपर कोड दिया गया है । आपको इस फाइल को हमारे Arduino कोड में डाउनलोड करने और शामिल करने की आवश्यकता है जैसा कि इस ट्यूटोरियल के अंत में दिया गया है या ज़िप फ़ाइल में दिए गए कोड का उपयोग करें।
Arduino पर संगीत नोट्स बजाना:
Arduino का उपयोग करके एक सभ्य मेलोडी खेलने के लिए हमें पता होना चाहिए कि इन धुनों का गठन क्या है। एक विषय को खेलने के लिए आवश्यक तीन मुख्य कारक हैं
- नोट मान
- नोट अवधि
- गति
हमारे पास किसी भी नोट मान को चलाने के लिए पिच। हेडर फ़ाइल है, अब हमें इसे खेलने के लिए इसकी विशिष्ट नोट अवधि का पता लगाना चाहिए। टेंपो और कुछ नहीं बल्कि राग कितना तेज बजाया जाना चाहिए। एक बार जब आप नोट मूल्य और नोट अवधि पता है कि तुम उनके साथ उपयोग कर सकते हैं टोन () की तरह
स्वर (पिननेम, नोट मान, नोट अवधि);
इस ट्यूटोरियल में खेले जाने वाले टोन के लिए मैंने आपको "themes.h" हेडर फ़ाइल के अंदर नोट वैल्यू और नोट की अवधि दी है, जिसके उपयोग से आप उन्हें अपनी परियोजनाओं में खेल सकते हैं। लेकिन अगर आपके पास मेरा कोई विशिष्ट स्वर है और आप इसे अपनी परियोजना में पढ़ना चाहते हैं तो…. इस विषय को छोड़ दें और अगले भाग पर जाएं।
किसी भी विशिष्ट स्वर को चलाने के लिए आपको उस विशेष संगीत का शीट संगीत प्राप्त करना होगा और उसमें से नोट मान और नोट अवधि को पढ़कर शीट संगीत को Arduino स्केच में बदलना होगा। यदि आप एक संगीत छात्र हैं, तो यह आपके लिए केक का एक टुकड़ा होगा, और कुछ समय बिताया और जैसे मैंने किया, वैसे ही आपका सिर फूटेगा। लेकिन दिन के अंत में जब आपका स्वर पिज़ो बजर पर बजता है तो आप अपने प्रयास को इसके लायक पाएंगे।
एक बार जब आपके पास नोट मूल्य और नोट की अवधि होती है, तो उन्हें नीचे दिखाए गए अनुसार "theme.h" हेडर फ़ाइल के अंदर प्रोग्राम में लोड करें
// ############# ** "वह एक समुद्री डाकू है" कैरिबियन के समुद्री डाकू का थीम गीत ** ############ // int Pirates_note = {NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4; NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_04, NOTE_D4, NOTE_D4, NOTE_D4; NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_D4, NOTE_D4, 0, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_G4, NOTE_4, 4, 4, 0, NOTE_D4, NOTE_E3, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_D4, 0, NOTE_D4, NOTE_F4,NOTE_E4, NOTE_E4, NOTE_F4, NOTE_D4}; int समुद्री डाकू_ अवधि = {4,8,4,8,4,8,8,8,8,4,4,4,4,4,8,8,8,8,8,8,4,4,4,4,4,4,4,4, 8,8,8,8,4,4,8,8,4,4,8,8,4,4,4,8,8,8,8,8,4,4,4,8,8,8,8,8,8,8,000 बार 4,4,8,8,4,4,8,4, 4,8,8,8,8,4,4,8,8,4,4,8,8,4,4,8,8,8,8,8,8,8,8,0,44,000 8,4,8,8,8,4,4,4,8,4,8,8,8,4,4,8,8}}; // ########### उनका अंत एक समुद्री डाकू गीत ############ // है
कोड का उपरोक्त ब्लॉक "वह एक समुद्री डाकू है" थीम नोट और नोट की अवधि दिखाता है। आप अपनी थीम को इसी तरह जोड़ सकते हैं।
योजनाबद्ध और हार्डवेयर:
इस Arduino टोन जेनरेटर प्रोजेक्ट प्रोजेक्ट की योजना नीचे दिए गए चित्र में दिखाई गई है:
कनेक्शन बहुत सरल है हमारे पास एक पीजो स्पीकर है जो 1K रोकनेवाला के माध्यम से पिन 8 और ग्राउंड ऑफ अरुडिनो से जुड़ा है। यह 1k रोकनेवाला एक वर्तमान सीमित अवरोधक है, जिसका उपयोग वर्तमान को सुरक्षित सीमा के भीतर रखने के लिए किया जाता है। आवश्यक माधुर्य का चयन करने के लिए हमारे पास चार स्विच भी हैं। स्विच का एक सिरा जमीन से जुड़ा होता है और दूसरा सिरा क्रमशः 2, 3, 4 और 5 से जुड़ा होता है। स्विच में सॉफ्टवेयर का उपयोग करके आंतरिक रूप से सक्षम प्रतिरोधों को खींच दिया जाएगा। चूंकि सर्किट बहुत सरल है, इसे नीचे दिखाए गए अनुसार ब्रेड बोर्ड का उपयोग करके कनेक्ट किया जा सकता है:
Arduino कार्यक्रम स्पष्टीकरण:
एक बार जब आप अवधारणा को समझ गए हैं, तो Arduino प्रोग्राम बहुत सीधे आगे है। पूरा कोड ट्यूटोरियल के अंत में दिया गया है। यदि आप शीर्ष लेख फ़ाइलों को जोड़ने से परिचित नहीं हैं, तो आप यहाँ से एक ज़िप फ़ाइल के रूप में कोड डाउनलोड कर सकते हैं और सीधे अपने Arduino पर अपलोड कर सकते हैं।
ऊपर दो हेडर फाइलें हैं जिन्हें जोड़ा जाना है। "पीच.एच" का उपयोग प्रत्येक संगीत नोट को एक विशेष आवृत्ति के लिए समान करने के लिए किया जाता है और "थीम.एच" में सभी चार स्वरों के नोट मूल्य और नोट की अवधि समाहित है।
#include "पिचों"। "#include" themes.h "
आवश्यकता होने पर प्रत्येक स्वर को चलाने के लिए एक फ़ंक्शन बनाया जाता है। यहाँ जब फ़ंक्शन Play_P समुद्री डाकू () को "वह एक समुद्री डाकू है" कहा जाता है, तो स्वर बजाया जाएगा। इस फ़ंक्शन में टोन फ़ंक्शन शामिल होता है जो पिन नंबर 8 पर आवृत्ति पैदा करता है। NoTone (8) संगीत को एक बार चलाने के लिए बंद करने के लिए कहा जाता है। यदि आप अपना स्वयं का स्वर चलाना चाहते हैं, तो "थीम.एच" मान में सहेजे गए नए नोट और अवधि मानों के लिए पाइरेट्स_नोट और पाइरेट्स_ड्यूरेंस बदलें।
शून्य Play_ पाइरेट्स () {के लिए (int thisNote = 0; इस नोट <(sizeof (Pirates_note) / sizeof (int); thisNote ++) {int noteDuration = 1000 / Pirates_duration; // अवधि को समय विलंब टोन (8, पाइरेट्सनोट, नोटडेशन) में परिवर्तित करें।); int pauseBetweenNotes = नोटडिशन * 1.05; // यहां 1.05 टेम्पो है, इसे धीमा करने के लिए बढ़ाएं विलंब (pauseBetweenNotes); noTone (8); }}
पिन 2, 3, 4 और 5 का इस्तेमाल होने वाले विशेष टोन को चुनने के लिए किया जाता है। इन पिनों को कोड की उपरोक्त लाइन का उपयोग करके आंतरिक पुल अप प्रतिरोधों का उपयोग करके डिफ़ॉल्ट रूप से उच्च रखा जाता है। जब बटन दबाया जाता है तो उसे नीचे जमीन पर खींचा जाता है।
pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); pinMode (4, INPUT_PULLUP); pinMode (5, INPUT_PULLUP);
एक बटन दबाने पर गाना बजाने के लिए कोड ऑफ ब्लॉक का उपयोग किया जाता है। यह प्रत्येक बटन के डिजिटल मूल्य को पढ़ता है और जब यह कम (शून्य) हो जाता है तो यह मान लेता है कि बटन दबाया गया है और आवश्यक फ़ंक्शन को कॉल करके संबंधित टोन निभाता है।
if (digitalRead (2) == 0) {Serial.println ("चयनित -> 'वह समुद्री डाकू है"); Play_ समुद्री डाकू (); } अगर (digitalRead (3) == 0) {Serial.println ("चयनित -> 'क्रेज़ी फ्रॉग"); Play_CrazyFrog (); } अगर (digitalRead (4) == 0) {Serial.println ("चयनित -> 'मारियो अंडरवर्ल्ड" "); Play_MarioUW (); } अगर (digitalRead (5) == 0) {Serial.println ("चयनित -> 'वह समुद्री डाकू है"); Play_ समुद्री डाकू (); }
इस मेलोडी प्लेयर Arduino सर्किट का कार्य:
एक बार जब आपका कोड और हार्डवेयर तैयार हो जाता है, तो बस प्रोग्राम को अपने Arduino में जलाएं और आपको केवल बटन दबाकर टोन को चलाने में सक्षम होना चाहिए। यदि आपको कोई समस्या है तो डिबगिंग के लिए अपने धारावाहिक मॉनिटर पर एक नज़र डालें या समस्या की रिपोर्ट करने के लिए टिप्पणी अनुभाग का उपयोग करें और मुझे मदद करने में खुशी होगी।
परियोजना का पूरा काम नीचे दिए गए वीडियो में दिखाया गया है । आशा है कि आपने इस परियोजना का आनंद लिया है और इसे अपनी किसी परियोजना में उपयोग करेंगे या अपनी परियोजना के लिए एक नया टोन बनाएंगे। अगर हाँ तो बेझिझक अपने काम को टिप्पणी अनुभाग में साझा करें।