विषयसूची:

मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)
मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)

वीडियो: मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)

वीडियो: मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)
वीडियो: हाथ में Lightning Device फंस गया 😲 #asmr #viral 2024, नवंबर
Anonim
मौसम आधारित संगीत जनरेटर (ESP8266 आधारित मिडी जेनरेटर)
मौसम आधारित संगीत जनरेटर (ESP8266 आधारित मिडी जेनरेटर)
मौसम आधारित संगीत जनरेटर (ESP8266 आधारित मिडी जेनरेटर)
मौसम आधारित संगीत जनरेटर (ESP8266 आधारित मिडी जेनरेटर)

नमस्ते, आज मैं समझाऊंगा कि कैसे अपना खुद का छोटा मौसम आधारित संगीत जनरेटर बनाया जाए।

यह एक ESP8266 पर आधारित है, जो एक Arduino की तरह है, और यह तापमान, बारिश और प्रकाश की तीव्रता पर प्रतिक्रिया करता है।

यह उम्मीद न करें कि यह पूरे गाने या राग की प्रगति करेगा। यह जनरेटिव म्यूजिक की तरह है जिसे लोग कभी-कभी मॉड्यूलर सिंथेसाइज़र के साथ बनाते हैं। लेकिन यह थोड़ा कम यादृच्छिक है, उदाहरण के लिए, यह कुछ पैमानों से चिपक जाता है।

आपूर्ति

ESP8266 (मैं Adafruit से पंख Huzzah ESP8266 का उपयोग कर रहा हूँ)

BME280 तापमान, आर्द्रता और बैरोमीटर का दबाव सेंसर (I2C संस्करण)

अरुडिनो रेन सेंसर

25K LDR (लाइट डिपेंडेंट रेसिस्टर)

कुछ प्रतिरोधक (दो 47, एक 100, एक 220 और एक 1k ओम)

पीसीबी माउंटिंग के लिए उपयुक्त महिला मिडी कनेक्टर (5 पिन दीन)

जम्पर तार

ब्रेडबोर्ड या किसी प्रकार का प्रोटोटाइप बोर्ड

कंप्यूटर, मैं एक चल रहे विंडोज 8.1 का उपयोग कर रहा हूं, लेकिन जहां तक मुझे पता है, इसे किसी भी ओएस पर काम करना चाहिए।

वैकल्पिक: एडफ्रूट से जेएसटी कनेक्टर के साथ 1250 एमएएच लीपो बैटरी (केवल कुछ ईएसपी के साथ संगत)

चरण 1: चरण 1: सॉफ्टवेयर

सबसे पहले आपको Arduino IDE की आवश्यकता है।

फिर आपको SiLabs CP2104 ड्राइवर और ESP8266 बोर्ड पैकेज की आवश्यकता है।

यह आपके कंप्यूटर को अंतर्निहित UART के माध्यम से ESP को प्रोग्राम करने की अनुमति देता है और Arduino IDE को ESP प्रोग्राम करने की अनुमति देता है।

आप इस पेज पर एडफ्रूट वेबसाइट पर आईडीई, ड्राइवर और बोर्ड पैकेज के बारे में सभी जानकारी पा सकते हैं।

मिडी डेटा भेजने में सक्षम होने के लिए आपको Arduino मिडी लाइब्रेरी की भी आवश्यकता होगी। यह बिना किया जा सकता है, लेकिन यह सब कुछ बहुत आसान बनाता है।

BME280 के साथ संचार करने के लिए मैंने इस BME280-I2C-ESP32 पुस्तकालय का उपयोग किया। (यह BME280 के I2C संस्करण के लिए है)

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

चरण 2: चरण 2: हार्डवेयर

चरण 2: हार्डवेयर
चरण 2: हार्डवेयर
चरण 2: हार्डवेयर
चरण 2: हार्डवेयर
चरण 2: हार्डवेयर
चरण 2: हार्डवेयर

ठीक है तो हम अंत में अच्छी चीजें, हार्डवेयर प्राप्त करते हैं।

जैसा कि उल्लेख किया गया है कि मैंने इस एडफ्रूट ईएसपी का उपयोग किया है, लेकिन इसे सिर्फ एक नोडएमसीयू के साथ ठीक काम करना चाहिए। मैं V2 संस्करण की अनुशंसा करता हूं क्योंकि मेरा मानना है कि यह ब्रेडबोर्ड पर बहुत बेहतर फिट बैठता है और आप उन्हें eBay या AliExpress से बहुत सस्ते में प्राप्त कर सकते हैं। मुझे यह तथ्य पसंद है कि एडफ्रूट ईएसपी में एक तेज सीपीयू है, एक लीपो के लिए एक महिला जेएसटी कनेक्टर और एक चार्ज सर्किट के साथ आता है। यह पता लगाना भी थोड़ा आसान है कि आप किस पिन का उपयोग कर रहे हैं। मेरा मानना है कि एक NodeMCU पर पिन लेबल D1 वास्तव में उदाहरण के लिए GPIO5 है, इसलिए आपको हमेशा एक पिनआउट चार्ट की आवश्यकता होती है। कोई बड़ा मुद्दा नहीं है, लेकिन नए लोगों के लिए सुविधाजनक है, उन्होंने एडफ्रूट को इतना स्पष्ट रूप से लेबल किया है।

सबसे पहले BME280 को कनेक्ट करते हैं, क्योंकि इस मॉडल में कुछ भिन्नताएं हैं। जैसा कि आप तस्वीरों से देख सकते हैं कि मेरा एक बड़ा छेद है, लेकिन कुछ ऐसे भी हैं जिनमें 2 छेद हैं। आप देख सकते हैं कि इसमें 4 इन और आउटपुट हैं, 1 बिजली के लिए, एक जमीन के लिए और एक एससीएल और एसडीए। इसका मतलब है कि यह I2C के माध्यम से संचार करता है। मेरा मानना है कि अन्य मॉडल एसपीआई के माध्यम से संवाद करते हैं। और कुछ में आप या तो SPI या I2C चुन सकते हैं। एसपीआई को एक अलग पुस्तकालय या कम से कम अलग कोड और अलग तारों की आवश्यकता हो सकती है। मैं यह भी मानता हूं कि एसपीआई में एस सीरियल के लिए खड़ा है और मैं यह नहीं कह सकता कि क्या यह इस परियोजना के मिडी हिस्से में हस्तक्षेप करेगा क्योंकि यह सीरियल कनेक्शन के माध्यम से भी काम कर रहा है।

इस बीएमई को जोड़ना काफी सीधा है। ESP8266 पर आप पिन 4 और 5 को क्रमशः SDA और SCL लेबल करते हुए देख सकते हैं। बस उन पिनों को सीधे बीएमई पर एसडीए और एससीएल पिन से कनेक्ट करें। बेशक VIN को ब्रेडबोर्ड की पॉजिटिव रेल और GND को नेगेटिव रेल से भी कनेक्ट करें। वे बदले में ESP के 3V3 और GND पिन से जुड़े होते हैं।

आगे हम LDR को जोड़ेंगे। फ्रिट्ज़िंग उदाहरण में आप 3.3 वोल्ट को एक प्रतिरोधक से गुजरते हुए देख सकते हैं, फिर यह LDR और दूसरे अवरोधक में विभाजित हो जाता है। फिर LDR के बाद इसे फिर से एक रोकनेवाला और ADC में विभाजित किया जाता है।

यह ईएसपी को बहुत अधिक वोल्टेज प्राप्त करने से बचाने के लिए और यह सुनिश्चित करने के लिए है कि इसे पठनीय मान मिल रहे हैं। ADC 0-1 वोल्ट संभाल सकता है लेकिन 3V3 3.3 वोल्ट बचाता है। यदि आप 1 वोल्ट से ऊपर जाते हैं तो शायद यह कुछ भी नहीं उड़ाएगा, लेकिन यह अच्छी तरह से काम नहीं करेगा।

तो पहले हम वोल्टेज को 3.3 से 1.031 वोल्ट तक नीचे लाने के लिए 220 और 100 ओम प्रतिरोधों का उपयोग करके एक वोल्टेज डिवाइडर का उपयोग करते हैं। फिर 25k ओम LDR और 1k ओम रोकनेवाला एक और वोल्टेज डिवाइडर बनाते हैं जो LDR को मिलने वाले प्रकाश की मात्रा के आधार पर 1.031 और 0 वोल्ट के बीच कहीं से भी वोल्टेज नीचे लाते हैं।

फिर हमारे पास रेन सेंसर है। एक भाग FC-37 कहता है, दूसरा भाग HW-103 कहता है। मैंने अभी eBay पर पाया पहला खरीदा है जिसमें कहा गया है कि यह 3.3 और 5 वोल्ट को संभाल सकता है। (मुझे लगता है कि वे सभी कर सकते हैं)।

यह बहुत सीधा है, हम एक एनालॉग आउटपुट का उपयोग कर सकते हैं, लेकिन हम सेंसर को जितना चाहें उतना संवेदनशील बनाने के लिए छोटे ट्रिम्पोट को चालू कर सकते हैं (और हमने पहले से ही ईएसपी पर हमारे एक एनालॉग पिन का उपयोग किया है)। अन्य सेंसर की तरह हमें सकारात्मक रेल से बिजली की आपूर्ति करनी है और इसे ग्राउंड रेल से जोड़ना है। कभी-कभी पिनों का क्रम हालांकि भिन्न होता है। खदान पर यह वीसीसी, ग्राउंड, डिजिटल, एनालॉग है, लेकिन फ्रिट्ज़िंग तस्वीर पर यह अलग है। लेकिन अगर आप सिर्फ ध्यान दें तो इसे ठीक करना आसान होना चाहिए।

और अंत में, मिडी जैक। मेरे ब्रेडबोर्ड पर यह ब्रेडबोर्ड के किनारे पर नहीं बैठ सकता, क्योंकि पिन सभी संरेखित नहीं होते हैं। यदि यह आपको परेशान करता है तो मैं एक भौतिक स्टोर में ब्रेडबोर्ड प्राप्त करने का प्रयास करूंगा। या चित्रों का बहुत अच्छी तरह से निरीक्षण करें।

जैसा कि आप योजनाबद्ध से देख सकते हैं, सकारात्मक वोल्टेज और सीरियल सिग्नल दोनों 47 ओम अवरोधक से गुजरते हैं।

यदि आप उदाहरण के लिए Arduino Uno के साथ यह प्रोजेक्ट करते हैं तो 220 ओम प्रतिरोधों का उपयोग करना सुनिश्चित करें !! ये ESP 3.3 V लॉजिक पर काम करते हैं, लेकिन अधिकांश Arduino 5.0 V का उपयोग करते हैं, इसलिए आपको मिडी केबल से गुजरने वाले करंट को अधिक सीमित करना होगा।

और अंत में मिडिल पिन को ग्राउंड रेल से कनेक्ट करें। 5 पिन दीन से अन्य 2 पिन का उपयोग नहीं किया जाता है।

चरण 3: चरण 3: कोड

और अंत में हमारे पास कोड है!

इस जिप फाइल में मैंने 2 स्केच डाले हैं। 'लाइटरेनटेम्प' बस सभी सेंसरों का परीक्षण करता है और उनके मूल्यों को वापस भेजता है। (टर्मिनल विंडो खोलना सुनिश्चित करें!)

और निश्चित रूप से हमारे पास LRTGenerativeMidi (LRT का मतलब लाइट, रेन, टेम्परेचर) स्केच है।

अंदर आप क्या हो रहा है पर टिप्पणियों में स्पष्टीकरण का एक गुच्छा पा सकते हैं। मैं इसमें नहीं जा रहा हूं कि मैंने पूरी बात कैसे लिखी, इसमें घंटों लगेंगे। यदि आप यह जानना चाहते हैं कि इस तरह की किसी चीज़ के साथ कहाँ से शुरुआत करें, तो मेरे मन में कुछ अन्य परियोजनाएँ हैं। कुछ बटन के साथ एक छोटा रैंडम रिफ जनरेटर और सुविधाओं के एक समूह के साथ एक सीक्वेंसर जो मुझे अन्य मॉडलों पर नहीं मिल सकता है।

लेकिन जिन्हें मुझे पहले डिजाइनिंग और कोडिंग खत्म करनी होगी। मुझे बताएं कि क्या आप अन्य परियोजनाओं के बारे में अद्यतित रहना चाहते हैं। मैंने तय नहीं किया है कि मैं और निर्देश बनाऊंगा या वीडियो श्रृंखला बनाऊंगा।

चरण 4: चरण 4: इसे हुक करें और इसका परीक्षण करें

और अब इसका परीक्षण करने का समय आ गया है!

बस एक मिडी केबल कनेक्ट करें, चैनल 1 पर प्रतिक्रिया देने के लिए अपना सिंथ/कीबोर्ड सेट करना सुनिश्चित करें या चैनल को Arduino कोड में बदलें और देखें कि यह काम करता है या नहीं!

मैं वास्तव में यह देखने और सुनने के लिए उत्सुक हूं कि आप इसके साथ क्या करते हैं। यदि आप कुछ भी बदलाव, अपग्रेड, ट्वीक करते हैं (जैसे लाइट सेंसर और तापमान मान। बाहर यह बेहतर या बदतर काम कर सकता है)।

मैं यह देखने के लिए भी उत्सुक हूं कि क्या यह सभी सिंथेसाइज़र के साथ अच्छा काम करता है। मेरे वोल्का बास पर यह पूरी तरह से काम करता है, लेकिन जैसे ही मैं मिडी नोट भेजता हूं, मेरे न्यूट्रॉन पर एलएफओ फंस जाता है। जब मैं इसे रीबूट करता हूं तो यह ठीक है, लेकिन यह अजीब है। मुझे यकीन नहीं है कि मिडी लाइब्रेरी या मेरे कोड में कुछ है, मैं इसे जल्द ही लाइब्रेरी के बिना करने की कोशिश कर सकता हूं और देख सकता हूं कि यह बेहतर हो जाता है या नहीं।

पढ़ने और देखने के लिए धन्यवाद और शुभकामनाएँ !!

सिफारिश की: