विषयसूची:
- चरण 1: सिद्धांत
- चरण 2: हार्डवेयर: एलईडी क्यूब बिल्ड
- चरण 3: एलईडी पंक्तियाँ
- चरण 4: परत विधानसभा
- चरण 5: क्यूब वायरिंग
- चरण 7: Arduino + ब्लूटूथ नियंत्रण बोर्ड
- चरण 8: वैकल्पिक: सर्किट बोर्डों को नक़्क़ाशी करना
- चरण 9: घन को जोड़ना
- चरण 10: सॉफ्टवेयर: बहुसंकेतन चक्र
- चरण 11: कस्टम एनिमेशन
- चरण 12: अतिरिक्त: एनिमेशन निर्माता
- चरण 13: ब्लूटूथ ऐप
- चरण 14: शोकेस
वीडियो: ब्लूटूथ ऐप के साथ आरजीबी एलईडी क्यूब + एनिमेशन निर्माता: 14 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह एक Arduino नैनो का उपयोग करके ब्लूटूथ ऐप द्वारा नियंत्रित 6x6x6 RGB LED (कॉमन एनोड्स) क्यूब बनाने का निर्देश है। संपूर्ण बिल्ड आसानी से 4x4x4 या 8x8x8 क्यूब के अनुकूल है। यह प्रोजेक्ट ग्रेटस्कॉट से प्रेरित है। मैंने बड़ी एलईडी (8 मिमी) का उपयोग करके अधिक परिष्कृत निर्माण के लिए जाने का फैसला किया, कम दूरी के साथ + ब्लूटूथ संचार जोड़ना जो नए कार्यों को जोड़ना इतना आसान बनाता है और क्यूब को नियंत्रित करने के लिए एक ऐप बनाने की क्षमता भी जोड़ता है। यह मुझे उदा। कोड ए स्नेक गेम (अंत में तीसरा शोकेस वीडियो)। उसके ऊपर मैंने एक ऑडियो विज़ुअलाइज़र मोड जोड़ा जो क्यूब को औक्स इनपुट की कल्पना करने की अनुमति देता है उदा। MSGEQ7 का उपयोग करने वाला संगीत (अंत में वीडियो दिखाएं)। इसके अतिरिक्त मैंने जावा में एक एनिमेशन क्रिएटर एप्लिकेशन लिखा है जिसमें एनिमेशन बनाने और ट्वीक करने के लिए यूआई का उपयोग करना आसान है, ताकि कोई भी कस्टम एनिमेशन बहुत जल्दी बना सके। तो स्केच + ब्लूटूथ ऐप किसी भी एलईडी क्यूब कॉन्फ़िगरेशन के लिए एक ढांचा प्रदान करता है और एनिमेशन निर्माता के साथ आपको कस्टम एनिमेशन लागू करने के बारे में चिंता करने की आवश्यकता नहीं है।
Arduino स्केच और ब्लूटूथ ऐप के लिंक:
RGBCube_Arduino स्केच (Github)+एनीमेशन Creator.jar
क्यूबो ब्लूटूथ ऐप (जीथब)
घन के लिए भागों की सूची:
- 216x आरजीबी एलईडी (सामान्य एनोड) (8 मिमी) (अलीएक्सप्रेस / ईबे) -> 6x6x6 = 216
- रिबन केबल (1m 40Pin पर्याप्त होना चाहिए) (AliExpress / Ebay / Amazon)
- महिला और पुरुष हेडर (प्रत्येक में कम से कम 4x40pin) (AliExpress / Ebay / Amazon)
- टिनडेड कॉपर/सिल्वर वायर 0.8mm (~25Meter) (AliExpress/Ebay/Amazon)
- सिकुड़ती ट्यूब (AliExpress / eBay / Amazon)
नियंत्रण बोर्डों के लिए भागों की सूची:
- 7 x TLC5940 एलईडी ड्राइवर (ईबे / अलीएक्सप्रेस)
- 6 एक्स आईआरएफ 9540 पी-चैनल एमओएसएफईटी (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 8 x 10 यूएफ कैपेसिटर (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 3 x 1000 यूएफ कैपेसिटर (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 14x 2.2kOhm रेसिस्टर्स (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 1 x 1kOhm रोकनेवाला (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 7 x 28pin आईसी सॉकेट (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 1 एक्स अरुडिनो नैनो (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 1 x 1N4001 डायोड (कोई भी सामान्य डायोड) (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 8 x 0.1uF कैपेसिटर (ईबे)
- 1 एक्स डीसी जैक पीसीबी माउंट (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
- 1 एक्स एचसी -05 ब्लूटूथ मॉड्यूल (अमेज़ॅन / ईबे / अलीएक्सप्रेस)
चरण 1: सिद्धांत
यदि आप वास्तविक निर्माण की शुरुआत के लिए चरण 2 पर कूदने के बजाय मल्टीप्लेक्सिंग के सिद्धांत में रुचि नहीं रखते हैं
चूंकि हार्डवेयर और सॉफ्टवेयर इस परियोजना के समान रूप से बड़े हिस्से हैं, आइए पहले सिद्धांत पर एक नजर डालते हैं।
घन का मस्तिष्क एक Arduino Nano है। यह उपयोग किए गए एलईडी ड्राइवर्स के साथ इंटरैक्ट करने के साथ-साथ एचसी-05 मॉड्यूल और अन्य नियंत्रण हार्डवेयर के लिए ब्लूटूथ कनेक्शन स्थापित करने के लिए पर्याप्त I/O प्रदान करता है। यदि आपने अन्य एलईडी क्यूब बिल्ड को देखा है, तो आप जानेंगे कि ज्यादातर लोग साधारण शिफ्ट रजिस्टर का उपयोग अलग-अलग एल ई डी के रंगों के चमक मूल्यों को संग्रहीत करने के लिए करते हैं। यह बिल्ड शिफ्ट रजिस्टरों का उपयोग नहीं करता है, बल्कि इसके बजाय तथाकथित "TLC5940" LED ड्राइवर्स का उपयोग करता है। जैसा कि हम बाद में देखेंगे, यह हमें बहुत समय बचाता है और साथ ही अतिरिक्त हार्डवेयर (जैसे प्रतिरोधक) के टन बचाता है।
क्यूब को नियंत्रित करने की मूल कार्यक्षमता मल्टीप्लेक्सिंग का उपयोग करती है। इस मामले में हम क्यूब की 6 परतों को मल्टीप्लेक्स कर रहे हैं, जिसका अर्थ है कि एक परत में सभी एल ई डी के सभी एनोड (+) जुड़े हुए हैं, जबकि एक ही कॉलम में सभी एल ई डी के अलग-अलग कैथोड नीचे की ओर जुड़े हुए हैं। इसका मतलब यह है कि यदि आप स्थिति x = 1, y = 2, z = 3, रंग: हरे रंग में एलईडी को रोशन करना चाहते हैं, तो आपको परत 3 के एनोड पर 5V प्रदान करना होगा और GND को कॉलम के कैथोड से जोड़ना होगा। x=1, y=2 का हरा पिन। तो वास्तव में एक समय में, क्यूब की केवल एक परत वास्तव में चालू होती है, लेकिन जैसा कि आप बाद में कोड में देखेंगे कि हम बंद कर रहे हैं और अलग-अलग परतों पर इतनी तेजी से, कि हमारी आंख को लगता है कि पूरा घन चालू है.
चमक, एनिमेशन आदि जैसी चीजों को नियंत्रित करने के लिए हम Arduino Nano से जुड़े HC-05 ब्लूटूथ मॉड्यूल का उपयोग करते हैं। Arduino के साथ मॉड्यूल का उपयोग करना बहुत आसान है क्योंकि आपको केवल 4 पिन कनेक्शन की आवश्यकता है और Arduino के डिफ़ॉल्ट सीरियल-संचार के माध्यम से मॉड्यूल को आसानी से इंटरफ़ेस कर सकते हैं। इस निर्देश के अंत में आप देखेंगे कि क्यूब को नियंत्रित करने के लिए अपना खुद का ब्लूटूथ ऐप लिखना कितना आसान है।
ध्यान दें
Arduino सर्किट बोर्ड के मेरे योजनाबद्ध में आप MSGEQ7 चिपटो प्रक्रिया ऑडियो इनपुट को इंटरफेस करने के लिए एक छोटा सा योजनाबद्ध भी देख सकते हैं, यह वास्तविक क्यूब के लिए बिल्कुल आवश्यक नहीं है और यह केवल एक अतिरिक्त कार्यक्षमता है जिसे मैंने जोड़ा है, इसलिए आप केवल योजनाबद्ध चिह्नित को अनदेखा कर सकते हैं "MSGEQ7" के साथ
चरण 2: हार्डवेयर: एलईडी क्यूब बिल्ड
तो आइए Arduino नैनो के चारों ओर नियंत्रण सर्किट के बारे में बात करने से पहले, क्यूब का निर्माण कैसे करें, इस पर एक नज़र डालते हैं।
घन निर्माण के लिए भागों की सूची:
- 216x आरजीबी एलईडी (सामान्य एनोड) (अलीएक्सप्रेस / ईबे) -> 6x6x6 = 216
- रिबन केबल (1m 40Pin पर्याप्त होना चाहिए) (AliExpress / Ebay / Amazon)
- महिला और पुरुष हेडर (कम से कम 4x40pin) (AliExpress / eBay / Amazon)
- टिनडेड कॉपर/सिल्वर वायर 0.8mm (~25Meter) (AliExpress/Ebay/Amazon)
- सिकुड़ती ट्यूब (AliExpress / eBay / Amazon)
करने के लिए पहली बात, और मैं अब यह थकाऊ लेकिन आवश्यक है, हमें एल ई डी का परीक्षण करना होगा। ऐसा करने के लिए, हम एक बिजली की आपूर्ति को सरलता से जोड़ते हैं जैसे 9वी बैटरी ब्लॉक को क्लिप के साथ एक ब्रेकबोर्ड से। जैसा कि आप चित्र 3 में देख सकते हैं कि एल ई डी का सबसे लंबा पिन एनोड (+) है, इसलिए आप इस पिन को बैटरी के +9वी से कनेक्ट करें। अब GND को अलग-अलग रंगों से जोड़ने से पहले कैथोड (लाल, हरा, नीला) करंट को सीमित करने के लिए प्रत्येक कैथोड में 220Ohm रोकनेवाला जोड़ें। अब सभी 216 LED के सभी रंगों का परीक्षण करने का मज़ा लें।
अगले चरण में हम परीक्षण किए गए एल ई डी तैयार करेंगे ताकि बाद में हम उन्हें कॉलम में आसानी से इकट्ठा कर सकें।
चरण 3: एलईडी पंक्तियाँ
इससे पहले कि हम एल ई डी को उनकी संबंधित पंक्तियों में मिलाप कर सकें, हमें लीड को मोड़ने और काटने की आवश्यकता है।
जैसा कि आप पहली तस्वीर में देख सकते हैं कि मैंने लकड़ी के एक टुकड़े में एक 8 मिमी छेद (8 मिमी एल ई डी के लिए) को सरल रूप से ड्रिल किया और एलईडी छेद के बाईं ओर 3 बहुत छोटे ड्रिल और दूसरे को छेद के दाईं ओर ड्रिल किया। ये ड्रिल लीड को सही ढंग से मोड़ने के लिए मार्कर हैं और एलईडी के लिए छेद के बीच से लगभग 1 सेमी की दूरी होनी चाहिए।
यह तकनीक स्टीव मैनले से प्रेरित है, आप YouTube पर एक छोटे से बदलाव में उनका ऐसा करते हुए एक वीडियो पा सकते हैं।
इससे पहले कि आप ड्रिल के चारों ओर लीड्स को काटें और मोड़ें जैसा कि चित्र 2 और 3 में देखा गया है, सुनिश्चित करें कि लीड का ओरिएंटेशन चित्र 1 से मेल खाता है (ऊपर से बाईं ओर नीला, फिर हरा, फिर एनोड + दाईं ओर, और लाल फिर से छोड़ दिया)। जिस सर्कल को आप लीड में मोड़ते हैं, उसमें टिन किए गए तांबे के तार (0.8 मिमी) में फिट होने के लिए एक बड़ा पर्याप्त व्यास होना चाहिए। यह कदम एल ई डी को अच्छी तरह से मिलाप करना आसान बनाता है।
अब जब सभी एल ई डी तैयार हो गए हैं, हम उन्हें 6 की पंक्तियों में इकट्ठा करना चाहते हैं जहां एनोड (+) जुड़े हुए हैं:
- एक छोटा जिग बनाएं जैसा कि चित्र 6 में देखा गया है, अगले छेद से 2.5 सेमी की दूरी के साथ 6 छेद (व्यास 0.8 मिमी) ड्रिल करें। यह हमें जिगो में एक बार में 6 एल ई डी फिट करने की अनुमति देता है
- एनोड को जोड़ने के लिए हमें ~ 16cm लंबाई (कुछ अतिरिक्त मार्जिन के साथ) के सीधे टिन वाले तांबे के तार के टुकड़े की आवश्यकता होती है। तार को अच्छा और सीधा पाने के लिए आप तार के एक छोर को एक इलेक्ट्रिक ड्रिल में माउंट कर सकते हैं, एक टेबल पर एक बार में लगभग 2 मीटर तारों को सुरक्षित कर सकते हैं, फिर ड्रिल को पकड़ कर रख सकते हैं ताकि तार खिंच जाए और ड्रिल पर शक्ति हो कुछ सेकंड के लिए तार को बहुत जल्दी सीधा कर देता है। फिर आप तार को वहीं से काट सकते हैं जहां आपने टुकड़ा सुरक्षित किया था। आप एक बार में दो सरौता का उपयोग कर सकते हैं और तार के छोटे टुकड़ों को कस सकते हैं, लेकिन यह बहुत अधिक थकाऊ है
- एक बार जब आपके पास 16 सेमी लंबे तार होते हैं, तो आप उन्हें जिग में एल ई डी के एनोड (+) छेद के माध्यम से निर्देशित करते हैं और एनोड पिन को तार में मिलाते हैं (चित्र 7)
पूरे घन के लिए हमें इन एलईडी पंक्तियों में से 6x6 = 36 की आवश्यकता होगी
चरण 4: परत विधानसभा
जैसा कि मैंने पहले उल्लेख किया है, हम क्यूब की परतों को मल्टीप्लेक्स करेंगे, लेकिन असेंबली के लिए 6x6 एलईडी की 6 दीवारें बनाना आसान है और फिर उन्हें एक-दूसरे के बगल में असेंबल करना और बस एक टिन वाले तांबे के तार को एनोड्स से जोड़ना आसान है। एक साथ एक परत में पंक्तियाँ।
सावधान रहें कि इस कदम को सही करने में बहुत समय और धैर्य लगता है, कुल मिलाकर आपको निर्माण के लिए लगभग 1000 सोल्डर जोड़ों को मिलाप करना होगा, इसलिए अपना समय लें!
एक एलईडी दीवार बनाने के लिए:
- जिग के लिए: हमें दीवार बनाने के लिए 6 पंक्तियों को एक के ऊपर एक 6 पंक्तियों में फिट करने के लिए लकड़ी के एक टुकड़े की आवश्यकता होती है। आप जिग को चित्र २ में ही देख सकते हैं (पंक्तियों के बीच की दूरी: २.५ सेमी)
- आप नक्काशी में एलईडी की 6 पंक्तियों को फिट करते हैं, जिसमें एनोड तार नीचे की ओर नक्काशीदार रेखा में होता है, ताकि 3 कैथोड (आर, जी, बी) का सामना करना पड़े
- एक दूसरे के ऊपर स्थित कैथोड को जोड़ने के लिए (चित्र 2 देखें) हमें कुछ और तार चाहिए (इसलिए फिर से हम 6 कॉलम x 3 कैथोड x 6 दीवारें = 108 टिन वाले तार के टुकड़े जैसा कि अंतिम चरण (2.) में वर्णित है (समान लंबाई भी))
- एक स्तंभ के नीचे से तार के टुकड़ों को कैथोड के छेद के माध्यम से शीर्ष पंक्ति तक स्लाइड करें और प्रत्येक एलईडी पर तार को मिलाप करें
एलईडी की 6 दीवारें पाने के लिए आप ऐसा 6 बार करें।
अब हम वास्तव में दीवारों को वास्तविक घन में ही इकट्ठा कर सकते हैं। लेकिन क्यूब को पकड़ने के लिए, हमें किसी तरह का ग्राउंड प्लेन बनाने की जरूरत है। इसके लिए मैंने बस कुछ पतले प्लाईवुड का इस्तेमाल किया और उसमें 0.8 मिमी के छोटे छेद ड्रिल किए, ताकि सबसे कम एलईडी पंक्तियों (सभी 6 एलईडी दीवारों के लिए) से लटके तारों को फिट किया जा सके। एकल एलईडी के छेद के लिए माप को चरण 3 में प्रलेखित किया गया है और प्रत्येक एलईडी के बीच की दूरी 2.5 सेमी है।
जगह में छेद के साथ अब हम पहली दीवार लेते हैं और इसे प्लाईवुड के बाईं ओर छेद में घुमाते हैं। नीचे की ओर एलईडी पंक्ति लकड़ी पर सही बैठनी चाहिए, ताकि अंत में सभी दीवारें समान रूप से संरेखित हों।
बाकी एलईडी दीवारों के साथ भी ऐसा ही करते रहें, लेकिन याद रखें कि दीवारों के एनोड हमेशा एक ही दिशा की ओर होते हैं। (चित्र ३ में दीवारों के सभी एनोड बाईं ओर हैं)
एक बार जब पूरा घन जगह पर हो जाता है, तो हमें प्रत्येक परत के एनोड को एक साथ मिलाप करने की आवश्यकता होती है। ऐसा करने के लिए हम सीधे तार का एक और ~ 16cm टुकड़ा लेते हैं और इसे पहली परत के ऊपर बिछाते हैं, ताकि तार एक परत में 6 दीवारों के सभी एनोड तारों को छू ले। ध्यान रहे कि नया तार किसी कैथोड को स्पर्श न करे। तार को जगह में मिलाएं और शेष 5 परतों के लिए भी यही बात दोहराएं।
चरण 5: क्यूब वायरिंग
एलईडी चालक बोर्ड के लिए पुर्जे:
- 7 एक्स टीएलसी5940
- 6/7 x 10 यूएफ कैपेसिटर
- 2 x 1000 यूएफ कैपेसिटर
- 7x 2.2kOhm रेसिस्टर्स
- 7 x 28pin आईसी सॉकेट
- 7 x 0.1uF कैपेसिटर
- रिबन केबल
कंट्रोलिंग सर्किट की ओर बढ़ते हुए, आइए सबसे पहले LED ड्राइवर बोर्ड पर एक नज़र डालते हैं। जैसा कि पहले उल्लेख किया गया है कि हमें Arduino नैनो से जुड़े 7 TLC5940 की आवश्यकता है। सभी TLC5940 चिप्स डेज़ी जंजीर हैं जिसका अर्थ है कि ड्राइवरों के सभी नियंत्रण पिन आपस में जुड़े हुए हैं (उदाहरण के लिए पहले TLC का BLANK पिन दूसरे, तीसरे, चौथे, … TLC के BLANK से जुड़ा है) और सभी Arduinowith से जुड़े हैं वही तार, सीरियल को छोड़कर जिसमें पहले एक Arduino Digital Pin से पहले TLC से जुड़ा होता है, फिर इस पहले TLC का सीरियल आउट पिन दूसरे TLC के SIN पिन से जुड़ा होता है और इसी तरह (चित्र 4 देखें)…
तो टीएलसी बोर्ड की योजना काफी सरल है जैसा कि आप संलग्न योजना में देख सकते हैं।
(यदि आप चरण 8 पर बोर्ड कूदना चाहते हैं)
मैंने फ्रिज़ में योजनाबद्ध का एक स्क्रीनशॉट भी संलग्न किया है जिसमें पिन लेबल और एक GIMP.xcf फ़ाइलें भी शामिल हैं, जिसमें प्रत्येक नियंत्रण पिन कनेक्शन के लिए परतें अलग हैं।
सभी IC सॉकेट्स को जगह-जगह मिलाप करके शुरू करें, फिर प्रत्येक TLC में 100nF कैपेसिटर जोड़ें, उसके बाद IREFand GND में 2.2kOhm रेसिस्टर्स और ऊपरी दाएं कोने में 7 पिन हैडर। उसके बाद आप बस.xcf फ़ाइल का अनुसरण कर सकते हैं। जिम्प फ़ाइल में "SIN लेयर" से शुरू होता है जो दिखाता है कि रिबन केबल्स का उपयोग करके ड्राइवरों के सीरियल इन / आउट पिन को कैसे कनेक्ट किया जाए, फिर GIMP में CLK लेयर को सक्षम किया जाए और इसी तरह। सुनिश्चित करें कि आपके पास शीर्ष दाईं ओर पिन हेडर के लिए + और - पिन के अच्छे कनेक्शन हैं, बाकी योजनाबद्ध आत्म व्याख्यात्मक होना चाहिए, लेकिन सुनिश्चित करें कि आप बोर्ड में पर्याप्त 1000uF और 10uF कैपेसिटर जोड़ते हैं, यह इतना प्रासंगिक नहीं है जहां वास्तव में आप उन्हें स्थिति दें।
एक बार जब यह बोर्ड समाप्त हो जाता है तो आप अगले चरण में Arduino Board पर जा सकते हैं।
चरण 7: Arduino + ब्लूटूथ नियंत्रण बोर्ड
नियंत्रण बोर्ड के लिए भाग:
- 6 एक्स आईआरएफ 9540 पी-चैनल एमओएसएफईटी
- 1 x 10 यूएफ कैपेसिटर
- 1 x 1000 यूएफ कैपेसिटर
- 7 x 2.2kOhm रेसिस्टर्स
- 1 एक्स 1kOhm रोकनेवाला
- 2 x 14 महिला पिन हैडर
- 1 एक्स अरुडिनो नैनो
- 1 एक्स 1N4001 डायोड
- 1 x 0.1uF कैपेसिटर
- 1 एक्स डीसी जैक पीसीबी माउंट
- 1 एक्स एचसी-05 ब्लूटूथ मॉड्यूल
- 1 एक्स 3.5 मिमी ऑडियो जैक
Arduino Control Board मुख्य रूप से LED ड्राइवर बोर्ड के पिन हेडर के समकक्ष प्रदान करने के साथ-साथ मल्टीप्लेक्सिंग को भी संभाल रहा है।
परफ़ॉर्मर पर सोल्डरिंग:
- बोर्ड के बीच में Arduino के लिए सॉकेट के रूप में कार्य करने के लिए दो महिला पिन हेडर रखें।
- 6 MOSFETs को Arduino (एनालॉग पिन के साथ साइड) के दाईं ओर एक दूसरे के बगल में एक पंक्ति में रखें और प्रत्येक के पहले और अंतिम पिन के बीच 2.2kOhm रोकनेवाला जोड़ें।
- अब 6 पिन हेडर को MOSFETs (पंक्ति के मध्य) के सामने रखें और FETs (मध्य पिन) के 6 DRAIN पिन को हेडर से और FET के GATE पिन (बाएं पिन) को संबंधित Arduino एनालॉग पिन से कनेक्ट करें।.
- इसके बाद, Arduino के दूसरी तरफ LEDDriver कनेक्शन के लिए 7pin हेडर को मिलाप करें, Arduino से पिन हेडर तक सभी कनेक्शनों को केबल और सोल्डर के लिए कुछ जगह छोड़ दें।
- संभावित वर्तमान नालियों के लिए कुछ कैपेसिटर (1-2 1000uF, 1 10uF, Arduino के बगल में 100nF) जोड़ें।
- HC-05 मॉड्यूल के लिए Arduino के पिछले हिस्से के बगल में एक 4 पिन हेडर मिलाएं और VCC, RX, TX, GND से 4 कनेक्शन बनाएं और HC-05 के RX पिन से वोल्टेज डिवाइडर बनाना न भूलें और Arduino का TX पिन (यहां देखें)
- डीसी जैक को बोर्ड के किसी भी किनारे पर एक स्विच के साथ रखें और स्विच के दाहिने पिन को डीसी जैक के + पिन से कनेक्ट करें
- अंत में DC जैक के GND पिन और स्विच (VCC) के दाहिने पिन से Arduino, MOSFETs, Capacitors और HC-05 तक सभी आवश्यक बिजली कनेक्शन बनाएं जैसा कि योजनाबद्ध में देखा गया है। स्विच के VCC पिन से केवल पावर देने वाले डायोड को Arduinos 5V पिन में प्रवाहित करने के लिए जोड़ना याद रखें, दूसरे तरीके से नहीं। (यह USB कनेक्शन के माध्यम से प्रोग्रामिंग करते समय Arduino की सुरक्षा करता है)
बिजली कनेक्शन के लिए मैंने एक साधारण स्विच के साथ एक डीसी पावर जैक का उपयोग किया, आप चाहें तो एक यूएसबी कनेक्टर का भी उपयोग कर सकते हैं। मैंने अपने लकड़ी के मामले में अच्छी तरह से फिट होने के लिए पावर कनेक्टर को दूसरे छोटे सर्किट बोर्ड को आउटसोर्स किया लेकिन आप इसे सीधे रख सकते हैं Arduino बोर्ड पर। जैसा कि पहले चरण में बताया गया है कि योजनाबद्ध में एक MSGEQ7 कनेक्शन सर्किट भी है, लेकिन इसे अनदेखा करें यदि आप MSGEQ7 का उपयोग नहीं करते हैं। (MSGEQ7 कार्यक्षमता के बारे में अधिक जानकारी के लिए यहां क्लिक करें)
Arduino बोर्ड को ड्राइवर बोर्ड से जोड़ने के लिए प्रत्येक छोर पर पुरुष पिन हेडर के साथ एक और 7Pin रिबन केबल बनाना न भूलें।
चरण 8: वैकल्पिक: सर्किट बोर्डों को नक़्क़ाशी करना
इसलिए यदि आप निश्चित रूप से बहुत सारे केबलों को टांका लगाना पसंद नहीं करते हैं, तो आप आवश्यक पीसीबी को भी खोद सकते हैं यदि आप इसे पसंद करते हैं।
मेरे क्यूब में Arduino बोर्ड और पावर/ऑडियो कनेक्टर बोर्ड संलग्न योजनाबद्ध/EAGLE फ़ाइलों का उपयोग करके दोनों नक़्क़ाशीदार बोर्ड हैं। पहली बार मैंने योजनाबद्ध में गलती की थी इसलिए मुझे एलईडी ड्राइवर बोर्ड को फिर से करना पड़ा जैसे मैंने अंतिम चरण में किया था। पेरबोर्ड का उपयोग करने के बजाय बोर्ड को खोदने के कोई बड़े फायदे नहीं हैं, इसलिए बेझिझक बोर्ड को खोदें या इसे परफ़ॉर्म पर मिलाप करें।
संलग्न.zip में आप BOARD फ़ाइल के साथ-साथ SCHEMATIC फ़ाइल दोनों पा सकते हैं।
ध्यान दें कि शीर्ष परत के निशान (लाल) को तार पुल माना जाता है (क्योंकि मैं घर पर दो तरफा बोर्ड नहीं बना सकता)। बिना रूट किए गए निशान महिला पिन हेडर के लिए केबल के माध्यम से किए जाने वाले कनेक्शनों को प्रदर्शित करते हैं।
योजनाबद्ध में MSGEQ7 सुविधा शामिल है, जिसे आप.pdf योजनाबद्ध के स्क्रीनशॉट में "(MSGEQ7)" के रूप में चिह्नित योजनाबद्ध अनुभाग को हटाकर आसानी से छोड़ सकते हैं।
चरण 9: घन को जोड़ना
क्यूब के सभी हिस्सों को जोड़ने के लिए, 7pin केबल को Arduino बोर्ड और ड्राइवर बोर्ड में प्लग करके शुरू करें (सुनिश्चित करें कि ओरिएंटेशन सही है!) HC05 मॉड्यूल में अगला प्लग 4 पिन हेडर में लगाएं और अलग होने पर पावर बोर्ड को कनेक्ट करें।
क्यूब के 7x16 पिन हेडर को जोड़ने के लिए पहले टीएलसी (जिसका एसआईएन पिन सीधे Arduino से जुड़ा है) से शुरू करना सुनिश्चित करें। क्यूब से सही 16pin केबल ढूंढें और इसे पहले TLC के पिन हेडर से कनेक्ट करें (सुनिश्चित करें कि कैथोड Nr.0 के लिए केबल पहले TLC OUT0 पिन से कनेक्ट हो!)। आगे बढ़ें और अन्य 16pin केबल्स को सही क्रम में संबंधित TLC हेडर से कनेक्ट करें।
अंतिम लेकिन कम से कम, MOSFETs के बगल में कंट्रोल बोर्ड पर क्यूब से एनोड के लिए 6Pin केबल को 6Pin हेडर से कनेक्ट करें।
क्यूब को खत्म करने के लिए मैंने केस में दीवारों को कुछ और प्लाईवुड के साथ काले रंग से जोड़ा और उन्हें चिपका दिया।
अब हम पूरे निर्माण के लिए आवश्यक सभी हार्डवेयर के साथ समाप्त कर चुके हैं!
चरण 10: सॉफ्टवेयर: बहुसंकेतन चक्र
अब सिद्धांत रूप में Arduino लगातार निम्नलिखित चक्र को क्रियान्वित कर रहा है:
- यदि LayerDuration बीत चुका है, तो TLC में अगली परत के लिए मान लोड करें, वर्तमान परत को बंद करें, अगली परत को चालू करें, LayerDuration को रीसेट करें, TLC को नए मान दें
- यदि FrameDuration बीत चुका है, तो ValueLed बफ़र में सभी LED और रंगों के मानों को संग्रहीत करके वर्तमान एनिमेशन के नए फ़्रेम को लोड करें, FrameDuration को रीसेट करें
- यदि ब्लूटूथ डेटा उपलब्ध है, तो उन पर प्रतिक्रिया दें(एनिमेशन बदलें, चमक,…)(अधिक जानकारी बाद में)
जैसा कि आप देख सकते हैं कोड का मुख्य फोकस गति है। यह महत्वपूर्ण है कि परत को बदलने का समय न्यूनतम हो।
जितनी तेज़ी से आप परतों को चालू/बंद करेंगे उतने अधिक "फ़्रेम्स" आपको मिलेंगे। इस तरह एक 6x6x6 आरजीबी एलईडी क्यूब के लिए मुझे पता चला कि 1700 माइक्रोसेक की परत अवधि। कम से कम टिमटिमाते रहने के लिए पर्याप्त है और इसे इस मूल्य पर छोड़ दिया जाना चाहिए। FrameDuration एनिमेशन की गति को अधिक नियंत्रित करता है ताकि इसे विभिन्न एनिमेशन के लिए बदला जा सके।
अगले चरण में हम देखेंगे कि हम वास्तव में अपने स्वयं के एनिमेशन कैसे लिख सकते हैं।
चरण 11: कस्टम एनिमेशन
एक एनीमेशन को लागू करने के लिए हमें ValueLed बफ़र को उन मानों पर सेट करना होगा जो हम अगले फ़्रेम के लिए हर बार FrameDuration बीतने पर चाहते हैं। हम मैक्रो फ़ंक्शन "सेटलेड (एक्स, वाई, जेड, रंग, चमक)" को कॉल करके ऐसा करते हैं।
x, y, z एलईडी के निर्देशांक हैं जिन्हें हम सेट करना चाहते हैं और रंग (लाल, हरा या नीला) वह रंग है जिसे हम सेट करना चाहते हैं और चमक इस विशेष रंग के लिए वास्तविक मूल्य है जिसे हम सेट करते हैं।
तो उदाहरण के लिए एक एनीमेशन लागू करें जो पूरे घन में यादृच्छिक रूप से लाल, हरा और नीला रंग प्रदर्शित करता है, आप बस यह कर सकते हैं:
शून्य रैंडम लेड्सफुल () {
के लिए (uint8_t j = 0; j <CUBE_SIZE; j++){ के लिए (uint8_t x = 0; x <CUBE_SIZE; x++){ के लिए (uint8_t y = 0; y < CUBE_SIZE; y++){ uint8_t rand = random8(3); SETLED (एक्स, वाई, जे, रैंड, मैक्सब्राइट); } } } }
इस विधि को हर बार FrameDuration पारित होने पर कहा जाता है और लूप () में स्विच-केस कमांड से चुना जाता है। यदि आप नए एनिमेशन लिखते हैं तो आप उन्हें केवल स्विच-केस में जोड़कर जोड़ सकते हैं।
चरण 12: अतिरिक्त: एनिमेशन निर्माता
मैंने अतिरिक्त रूप से JavaFX और Java3D का उपयोग करके एक एनिमेशन क्रिएटर लिखा।
यह समझने में आसान UI प्रदान करके कस्टम एनिमेशन बनाना और संपादित करना बहुत आसान बनाता है।
आप 4x4x4, 6x6x6 या 8x8x8 एलईडी क्यूब के लिए एनिमेशन बना सकते हैं, संपादित कर सकते हैं, नाम बदल सकते हैं और पुन: कॉन्फ़िगर कर सकते हैं।
एक नया एनिमेशन बनाने के लिए बस फ़ाइल> नया हिट करें, "क्यूब" के तहत आप क्यूब आकार का चयन कर सकते हैं, एलईडी का रंग सेट करने के लिए बाईं ओर कलर पिकर के साथ इच्छित रंग का चयन करें और फिर उस एल ई डी पर क्लिक करें जिसमें आप चाहते हैं उस फ्रेम के लिए वह रंग। एक और फ़्रेम जोड़ने के लिए "अगला" या "+" हिट करें। बाकी यूआई नियंत्रण काफी आत्म व्याख्यात्मक हैं, क्यूब्स परतों के बगल में स्थित चेकबॉक्स यह जांचना है कि स्थानांतरण से कौन सी परतें प्रभावित होनी चाहिए और "फ़्रेम रखें"। बस इसका परीक्षण करें और आप कुछ ही समय में सब कुछ समझ जाएंगे।
इसके अतिरिक्त एनिमेशन का अनुकरण करने के लिए आप "3D देखें" बटन पर क्लिक कर सकते हैं जो क्यूब के Java3D मॉडल के साथ एक और विंडो खोलता है। आप बाईं माउस बटन को दबाए रखते हुए कैमरा घुमा सकते हैं (कैमरा रीसेट करने के लिए R दबाएं)। एनिमेशन चलाने/रोकने के लिए P कुंजी दबाएं, एनिमेशन हिट Q को रीसेट करने के लिए। फ़्रेमटाइम, अपने एनीमेशन की गति को कम करें।
जब आप एनिमेशन के साथ कर लें तो इसे एक नाम दें और फ़ाइल> इस रूप में सहेजें … को हिट करें और एनिमेशन को उसी फ़ोल्डर में सहेजें जैसे कि Cubo_Control.ino स्केच।
स्केच में आपको नया एनिमेशन शामिल करने के लिए Cubo_Control.ino खोलें और स्केच के ऊपर निम्नलिखित कोड जोड़ें:
#शामिल "RGBit.h" // बदलें
BTEvent () तक स्क्रॉल करें और एनिमेशन के स्विच-केस में केस स्टेटमेंट जोड़ें
स्विच (कुरएनीम) {
… केस १०: एनिमेशन= &ani_cubesmove[0][0]; FRAME_TIME= ANI_CUBESMOVE_FRAMTIME; मैक्सकाउंट = ANI_CUBESMOVE_FRAMES; टूटना; केस 11: //आपका नया एनिमेशन एनिमेशन= &ani_rgbit[0][0]; FRAME_TIME= RGBIT_FRAMETIME; मैक्सकाउंट = ANI_RGBIT_FRAMES; टूटना; }
चरण 13: ब्लूटूथ ऐप
क्यूब को वास्तव में नियंत्रित करने के लिए, एचसी-05 मॉड्यूल के लिए धन्यवाद, अपने फोन को क्यूब से जोड़ने के लिए ब्लूटूथ ऐप बनाना काफी आसान है।
ऐप का लिंक: जीथूब
ऐप ओपन सोर्स है इसलिए बेझिझक अतिरिक्त एनिमेशन/फीचर्स खुद जोड़ें।
- ऐप शुरू करें, यह आपको ब्लूटूथ चालू करने के लिए कहता है
- "खोज" पर क्लिक करें और उपलब्ध ब्लूटूथ कनेक्शन की एक सूची दिखाई देती है। क्यूब से HC-05 मॉड्यूल को पहचानें और उस पर क्लिक करें।
- यदि क्यूब से कनेक्ट करने का प्रयास करते समय कोई त्रुटि होती है, तो ब्लूटूथ सेटिंग्स में HC-05 मॉड्यूल को मैन्युअल रूप से पेयर करने का प्रयास करें।
- एक बार कनेक्ट होने पर ऐप कंट्रोल स्क्रीन पर स्विच हो जाता है और ब्लूटूथ कनेक्शन स्थापित हो जाता है
नियंत्रण
- गति और चमक: एनिमेशन को तेज़/धीमा करने या चमक बदलने के लिए स्लाइडर मान बदलें
- एनिमेशन: एनिमेशन बदलने के लिए एक बटन पर क्लिक करें, डिफ़ॉल्ट रूप से एनिमेशन लूपिंग कर रहे हैं (ऊपर बाईं ओर से बटन currAnim के अनुरूप है)
- टेक्स्ट स्क्रॉल: "टेक्स्ट" बटन पर क्लिक करें जो कुछ टेक्स्ट इनपुट करने के लिए एक डायलॉग लाता है जिसे क्यूब के माध्यम से स्क्रॉल किया जाएगा
- कमांड: आप कमांड टेक्स्टफिल्ड के साथ मैन्युअल रूप से कमांड दर्ज कर सकते हैं (सिंटैक्स के लिए Cubo_Control.ino की BTEvent () विधि देखें)
- सांप: क्लासिक सांप गेम (लाल: सेब, हरा: सांप सिर, नीला: चुपके पूंछ) (नियंत्रण: 4 दिशात्मक बटन, ऊपर और नीचे फोन को आगे (ऊपर) या पीछे (नीचे) घुमाकर ट्रिगर किया जाता है)
- ऑडियो विज़ुअलाइज़र: MSGEQ7 AUX जैक से 6 ऑडियो बैंड की कल्पना करता था (एनीमेशन के लिए बटन 7)
चरण 14: शोकेस
सिफारिश की:
PUBG थीम सॉन्ग+अरुडिनो के साथ एनिमेशन!: 13 कदम (चित्रों के साथ)
PUBG थीम सॉन्ग+एनीमेशन विद Arduino !: नमस्ते और इस मजेदार इंस्ट्रक्शनल में आपका स्वागत है! मुझे आशा है कि आप सभी अच्छे हैं और स्वस्थ रह रहे हैं। यह छोटा लेकिन अद्भुत प्रोजेक्ट PUBG थीम सॉन्ग बजाने और यहां तक कि arduino का उपयोग करके कुछ गेम एनिमेशन बनाने के बारे में है। उपयोग किए जाने वाले घटक बहुत ही ई
अल्ट्रासोनिक सेंसर स्वचालित एलईडी वेलकम एनिमेशन लाइट्स और एलसीडी सूचना स्क्रीन: 6 कदम
अल्ट्रासोनिक सेंसर ऑटोमैटिक एलईडी वेलकम एनिमेशन लाइट्स और एलसीडी इंफॉर्मेशन स्क्रीन: जब आप थक कर घर वापस आते हैं और बैठकर आराम करने की कोशिश करते हैं, तो हर दिन अपने आस-पास एक ही चीज को बार-बार देखना बहुत उबाऊ होना चाहिए। आप कुछ मजेदार और दिलचस्प क्यों नहीं जोड़ते जिससे आपका मूड बदल जाए? एक सुपर-आसान Arduin बनाएँ
एलईडी पट्टी स्नोफ्लेक / स्टार एनिमेशन: 5 कदम
एलईडी स्ट्रिप स्नोफ्लेक / स्टार एनिमेशन: मैंने एक अन्य प्रोजेक्ट से छोड़ी गई एलईडी स्ट्रिप्स के साथ क्रिसमस की सजावट कैसे बनाई, इस पर एक छोटी सी गाइड। योजना, सॉफ्टवेयर और एनिमेशन फ़ाइलें प्रदान की जाती हैं। यह परियोजना निम्नलिखित यूट्यूब वीडियो से प्रेरित थी
वेब-आधारित नियंत्रण कक्ष के साथ वेब-कनेक्टेड स्मार्ट एलईडी एनिमेशन घड़ी, टाइम सर्वर सिंक्रोनाइज़्ड: 11 चरण (चित्रों के साथ)
वेब-आधारित कंट्रोल पैनल के साथ वेब-कनेक्टेड स्मार्ट एलईडी एनिमेशन क्लॉक, टाइम सर्वर सिंक्रोनाइज़्ड: इस घड़ी की कहानी बहुत पहले की है - 30 साल से अधिक। मेरे पिता ने इस विचार का बीड़ा उठाया था जब मैं एलईडी क्रांति से बहुत पहले सिर्फ 10 साल का था - जब एलईडी की 1/1000 उनकी वर्तमान चमकदार चमक की चमक थी। सच्चा
Arduino Uno: Visuino के साथ ILI9341 TFT टचस्क्रीन डिस्प्ले शील्ड पर बिटमैप एनिमेशन: 12 चरण (चित्रों के साथ)
Arduino Uno: ILI9341 पर बिटमैप एनिमेशन Visuino के साथ TFT टचस्क्रीन डिस्प्ले शील्ड: ILI9341 आधारित TFT टचस्क्रीन डिस्प्ले शील्ड Arduino के लिए बहुत लोकप्रिय कम लागत वाली डिस्प्ले शील्ड हैं। विसुइनो को उनके लिए काफी समय से समर्थन मिला है, लेकिन मुझे उनका उपयोग करने के तरीके पर एक ट्यूटोरियल लिखने का मौका कभी नहीं मिला। हाल ही में हालांकि कुछ लोगों ने पूछा