विषयसूची:

ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग: 5 कदम
ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग: 5 कदम

वीडियो: ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग: 5 कदम

वीडियो: ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग: 5 कदम
वीडियो: सस्ती RGB Light ने तो कमाल कर दिया 2024, जुलाई
Anonim
ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग
ब्लूटूथ के माध्यम से DIY नियंत्रण आरजीबी एलईडी रंग

स्मार्ट बल्ब हाल ही में लोकप्रियता में बढ़ रहे हैं और लगातार स्मार्ट होम टूलकिट का एक महत्वपूर्ण हिस्सा बन रहे हैं। स्मार्ट बल्ब उपयोगकर्ता के स्मार्ट फोन पर एक विशेष एप्लिकेशन के माध्यम से उपयोगकर्ता को अपने प्रकाश को नियंत्रित करने में सक्षम बनाता है; बल्ब को चालू और बंद किया जा सकता है और एप्लिकेशन इंटरफ़ेस से रंग बदला जा सकता है। इस परियोजना में, हमने एक स्मार्ट बल्ब नियंत्रक बनाया है जिसे ब्लूटूथ के माध्यम से मैन्युअल बटन या मोबाइल एप्लिकेशन से नियंत्रित किया जा सकता है। इस परियोजना में कुछ विशिष्टता जोड़ने के लिए हमने कुछ विशेषताएं जोड़ी हैं जो उपयोगकर्ता को एप्लिकेशन इंटरफ़ेस में शामिल रंगों की सूची से एक हल्का रंग चुनने की अनुमति देती हैं। यह रंग प्रभाव उत्पन्न करने के लिए एक "ऑटो मिक्स" को भी सक्रिय कर सकता है और हर आधे सेकंड में प्रकाश व्यवस्था को बदल सकता है। उपयोगकर्ता पीडब्लूएम सुविधा का उपयोग करके अपना स्वयं का रंग मिश्रण बना सकता है जिसे तीन मूल रंगों (लाल, हरा, नीला) के लिए डिमर के रूप में भी इस्तेमाल किया जा सकता है। हमने सर्किट में बाहरी बटन भी जोड़े ताकि उपयोगकर्ता मैनुअल मोड में स्विच कर सके और बाहरी बटन से हल्का रंग बदल सके।

यह निर्देशयोग्य दो खंडों से युक्त है; GreenPAK™ डिज़ाइन और Android ऐप डिज़ाइन। ग्रीनपैक डिजाइन संचार के लिए यूएआरटी इंटरफेस का उपयोग करने पर आधारित है। UART को इसलिए चुना गया है क्योंकि यह अधिकांश ब्लूटूथ मॉड्यूल, साथ ही अधिकांश अन्य बाह्य उपकरणों, जैसे कि वाईफ़ाई मॉड्यूल द्वारा समर्थित है। नतीजतन, ग्रीनपैक डिज़ाइन का उपयोग कई कनेक्शन प्रकारों में किया जा सकता है।

इस परियोजना को बनाने के लिए, हम SLG46620 CMIC, एक ब्लूटूथ मॉड्यूल और एक RGB LED का उपयोग करने जा रहे हैं। ग्रीनपाक आईसी इस परियोजना का नियंत्रण केंद्र बनने जा रहा है; यह एक ब्लूटूथ मॉड्यूल और/या बाहरी बटन से डेटा प्राप्त करता है, फिर सही प्रकाश व्यवस्था प्रदर्शित करने के लिए आवश्यक प्रक्रिया शुरू करता है। यह PWM सिग्नल भी जेनरेट करता है और इसे LED को आउटपुट करता है। नीचे चित्र 1 ब्लॉक आरेख दिखाता है।

इस परियोजना में प्रयुक्त ग्रीनपैक डिवाइस में एक एसपीआई कनेक्शन इंटरफेस, पीडब्लूएम ब्लॉक, एफएसएम और एक आईसी में कई अन्य उपयोगी अतिरिक्त ब्लॉक शामिल हैं। यह इसके छोटे आकार और कम ऊर्जा खपत की विशेषता भी है। यह निर्माताओं को एकल आईसी का उपयोग करके एक छोटा व्यावहारिक सर्किट बनाने में सक्षम करेगा, इस प्रकार समान प्रणालियों की तुलना में उत्पादन लागत को कम किया जाएगा।

इस परियोजना में, हम एक आरजीबी एलईडी को नियंत्रित करते हैं। परियोजना को व्यावसायिक रूप से व्यवहार्य बनाने के लिए, एक प्रणाली को समानांतर में कई एल ई डी को जोड़कर और उपयुक्त ट्रांजिस्टर का उपयोग करके चमक के स्तर को बढ़ाने की आवश्यकता होगी; पावर सर्किट को भी ध्यान में रखा जाना चाहिए।

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

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

चरण 1: यूएआरटी रिसीवर

यूएआरटी रिसीवर
यूएआरटी रिसीवर

सबसे पहले, हमें ब्लूटूथ मॉड्यूल सेट करने की आवश्यकता है। अधिकांश ब्लूटूथ आईसी संचार के लिए यूएआरटी प्रोटोकॉल का समर्थन करते हैं। UART का मतलब यूनिवर्सल एसिंक्रोनस रिसीवर / ट्रांसमीटर है। UART समानांतर और धारावाहिक स्वरूपों के बीच डेटा को आगे और पीछे परिवर्तित कर सकता है। इसमें एक सीरियल टू पैरेलल रिसीवर और एक समानांतर टू सीरियल कन्वर्टर शामिल है जो दोनों अलग-अलग क्लॉक किए जाते हैं।

ब्लूटूथ मॉड्यूल में प्राप्त डेटा हमारे ग्रीनपाक डिवाइस को प्रेषित किया जाएगा। Pin10 के लिए निष्क्रिय अवस्था उच्च है। भेजा गया प्रत्येक वर्ण एक लॉजिक LOW स्टार्ट बिट के साथ शुरू होता है, उसके बाद डेटा बिट्स की एक कॉन्फ़िगर करने योग्य संख्या और एक या अधिक लॉजिक हाई स्टॉप बिट्स होते हैं।

UART ट्रांसमीटर 1 START बिट, 8 डेटा बिट और एक STOP बिट भेजता है। आमतौर पर, UART ब्लूटूथ मॉड्यूल के लिए डिफ़ॉल्ट बॉड दर 9600 है। हम ब्लूटूथ IC से डेटा बाइट को GreenPAK™ SLG46620 के SPI ब्लॉक में भेजेंगे।

चूँकि ग्रीनपैक SPI ब्लॉक में START या STOP बिट नियंत्रण नहीं है, हम SPI क्लॉक सिग्नल (SCLK) को सक्षम और अक्षम करने के बजाय उन बिट्स का उपयोग करेंगे। जब Pin10 कम हो जाता है, तो हम जानते हैं कि हमें एक START बिट प्राप्त हुआ है, इसलिए हम संचार की शुरुआत की पहचान करने के लिए PDLY फॉलिंग एज डिटेक्टर का उपयोग करते हैं। वह गिरता हुआ किनारा डिटेक्टर DFF0 को देखता है, जो SCLK सिग्नल को SPI ब्लॉक को देखने में सक्षम बनाता है।

हमारी बॉड दर 9600 बिट प्रति सेकंड है, इसलिए हमारी SCLK अवधि 1/9600 = 104 μs होनी चाहिए। इसलिए, हमने OSC फ़्रीक्वेंसी को 2MHz पर सेट किया और CNT0 को फ़्रीक्वेंसी डिवाइडर के रूप में इस्तेमाल किया।

2 मेगाहर्ट्ज-1 = 0.5 μs

(१०४ μs / ०.५ μs) - १ = २०७

इसलिए, हम चाहते हैं कि CNT0 काउंटर वैल्यू 207 हो। यह सुनिश्चित करने के लिए कि हम किसी भी डेटा को याद नहीं करते हैं, हमें SPI घड़ी को आधे घंटे के चक्र में देरी करने की आवश्यकता है ताकि SPI ब्लॉक को उचित समय पर देखा जा सके। हमने इसे CNT6, 2-बिट LUT1 और OSC ब्लॉक की बाहरी घड़ी का उपयोग करके पूरा किया। CNT6 का आउटपुट DFF0 के क्लॉक होने के बाद 52 μs तक उच्च नहीं होता है, जो कि हमारे 104 μs SCLK अवधि का आधा है। जब CNT6 उच्च होता है तो 2-बिट LUT1 और गेट 2MHz OSC सिग्नल को EXT में जाने की अनुमति देता है। CLK0 इनपुट, जिसका आउटपुट CNT0 से जुड़ा है।

चरण 2: पीडब्लूएम यूनिट

पीडब्लूएम यूनिट
पीडब्लूएम यूनिट

PWM सिग्नल PWM0 और एक संबद्ध क्लॉक पल्स जनरेटर (CNT8/DLY8) का उपयोग करके उत्पन्न होता है। चूंकि पल्स चौड़ाई उपयोगकर्ता-नियंत्रित है, हम उपयोगकर्ता डेटा की गणना करने के लिए FSM0 (जिसे PWM0 से जोड़ा जा सकता है) का उपयोग करते हैं।

SLG46620 में, 8-बिट FSM1 का उपयोग PWM1 और PWM2 के साथ किया जा सकता है। ब्लूटूथ मॉड्यूल जुड़ा होना चाहिए, जिसका अर्थ है कि एसपीआई समानांतर आउटपुट का उपयोग किया जाना चाहिए। SPI समानांतर आउटपुट बिट्स 0 से 7 DCMP1, DMCP2, और LF OSC CLK के OUT1 और OUT0 के साथ मिश्रित हैं। PWM0 अपना आउटपुट 16-बिट FSM0 से प्राप्त करता है। अपरिवर्तित छोड़ दिया यह नाड़ी की चौड़ाई को अधिभारित करने का कारण बनता है। काउंटर वैल्यू को 8 बिट्स पर सीमित करने के लिए एक और एफएसएम जोड़ा जाता है; FSM1 का उपयोग सूचक के रूप में यह जानने के लिए किया जाता है कि काउंटर 0 या 255 पर कब पहुँचता है। FSM0 का उपयोग PWM पल्स उत्पन्न करने के लिए किया जाता है। FSM0 और FSM1 को सिंक्रनाइज़ किया जाना चाहिए। चूंकि दोनों FSM में पूर्व निर्धारित घड़ी विकल्प होते हैं, CNT1 और CNT3 दोनों FSM को CLK पास करने के लिए मध्यस्थ के रूप में उपयोग किए जाते हैं। दो काउंटर एक ही मान पर सेट हैं, जो इस निर्देश के लिए 25 है। हम इन काउंटर मूल्यों को बदलकर पीडब्लूएम मूल्य के परिवर्तन की दर को बदल सकते हैं।

FSM का मान '+' और '-' संकेतों द्वारा बढ़ाया और घटाया जाता है, जो SPI समानांतर आउटपुट से उत्पन्न होते हैं।

चरण 3: नियंत्रण इकाई

नियंत्रण विभाग
नियंत्रण विभाग

नियंत्रण इकाई के भीतर प्राप्त बाइट ब्लूटूथ मॉड्यूल से एसपीआई समांतर आउटपुट में ले जाया जाता है और फिर संबंधित कार्यों को पास कर दिया जाता है। सबसे पहले, PWM CS1 और PWM CS2 आउटपुट को यह देखने के लिए जांचा जाएगा कि PWM पैटर्न सक्रिय है या नहीं। यदि यह सक्रिय है तो यह निर्धारित करेगा कि कौन सा चैनल PWM को LUT4, LUT6 और LUT7 के माध्यम से आउटपुट करने वाला है।

LUT9, LUT11 और LUT14 अन्य दो LED की स्थिति की जाँच के लिए जिम्मेदार हैं। LUT10, LUT12, और LUT13 जांचें कि मैनुअल बटन सक्रिय है या नहीं। यदि मैनुअल मोड सक्रिय है, तो RGB आउटपुट D0, D1, D2 आउटपुट स्टेट्स के अनुसार काम करता है, जो हर बार कलर बटन दबाए जाने पर बदल जाते हैं। यह CNT9 से आने वाले राइजिंग एज के साथ बदलता है, जिसका उपयोग राइजिंग एज डिब्यूसर के रूप में किया जाता है।

पिन 20 को एक इनपुट के रूप में कॉन्फ़िगर किया गया है और इसका उपयोग मैनुअल और ब्लूटूथ नियंत्रण के बीच स्विच करने के लिए किया जाता है।

यदि मैनुअल मोड अक्षम है और ऑटो मिक्सर मोड सक्रिय है, तो रंग हर 500ms में CNT7 से बढ़ते किनारे के साथ बदलता है। D0 D1 D2 के लिए '000' स्थिति को रोकने के लिए 4-बिट LUT1 का उपयोग किया जाता है, क्योंकि यह स्थिति ऑटो मिक्सर मोड के दौरान प्रकाश को बंद कर देती है।

यदि मैनुअल मोड, पीडब्लूएम मोड, और ऑटो मिक्सर मोड सक्रिय नहीं हैं तो लाल, हरे और नीले एसपीआई कमांड पिन 12, 13 और 14 में प्रवाहित होते हैं, जो आउटपुट के रूप में कॉन्फ़िगर किए जाते हैं और बाहरी आरजीबी एलईडी से जुड़े होते हैं।

DFF1, DFF2 और DFF3 का उपयोग 3-बिट बाइनरी काउंटर बनाने के लिए किया जाता है। CNT7 दालों के साथ काउंटर वैल्यू बढ़ जाती है जो ऑटो मिक्सर मोड में P14 से गुजरती है, या मैनुअल मोड में कलर बटन (पिन 3) से आने वाले सिग्नल से।

चरण 4: Android एप्लिकेशन

एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन
एंड्रॉइड एप्लिकेशन

इस खंड में, हम एक Android एप्लिकेशन बनाने जा रहे हैं जो उपयोगकर्ता के नियंत्रण चयनों की निगरानी और प्रदर्शन करेगा। इंटरफ़ेस में दो खंड होते हैं: पहले खंड में बटनों का एक सेट होता है जिसमें पूर्वनिर्धारित रंग होते हैं ताकि जब इनमें से कोई भी बटन दबाया जाता है, तो उसी रंग का एक एलईडी जलाया जाता है। दूसरा खंड (MIX वर्ग) उपयोगकर्ता के लिए मिश्रित रंग बनाता है।

पहले खंड में, उपयोगकर्ता उस एलईडी पिन को चुनता है जिससे वे चाहते हैं कि पीडब्लूएम सिग्नल गुजरे; PWM सिग्नल को एक बार में केवल एक पिन तक ही भेजा जा सकता है। निचली सूची PWM मोड के दौरान अन्य दो रंगों को तार्किक रूप से चालू/बंद नियंत्रित करती है।

ऑटो मिक्सर बटन स्वचालित लाइट चेंजिंग पैटर्न को चलाने के लिए जिम्मेदार है जहां प्रकाश हर आधे सेकेंड में बदल जाएगा। MIX अनुभाग में दो चेकबॉक्स सूचियाँ हैं ताकि उपयोगकर्ता यह तय कर सके कि किन दो रंगों को एक साथ मिलाना है।

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

सबसे पहले, हमने पूर्वनिर्धारित रंगों को प्रदर्शित करने के लिए जिम्मेदार बटनों का एक सेट जोड़कर एक ग्राफिकल इंटरफ़ेस डिज़ाइन किया, हमने दो चेक बॉक्स सूचियाँ भी जोड़ीं, और प्रत्येक सूची में 3 तत्व हैं; प्रत्येक तत्व को उसके अलग-अलग बॉक्स में रेखांकित किया गया है, जैसा कि चित्र 5 में दिखाया गया है।

उपयोगकर्ता इंटरफ़ेस के बटन सॉफ़्टवेयर कमांड से जुड़े हुए हैं: ऐप द्वारा ब्लूटूथ के माध्यम से भेजे जाने वाले सभी आदेश बाइट प्रारूप में होंगे, और प्रत्येक बिट एक विशिष्ट फ़ंक्शन के लिए ज़िम्मेदार है। तालिका 1 ग्रीनपैक को भेजे गए कमांड फ्रेम के रूप को दिखाती है।

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

बिट्स B3 और B4 में '+' और '-' कमांड होते हैं, जो पल्स की चौड़ाई बढ़ाने और घटाने के लिए जिम्मेदार होते हैं। जब बटन दबाया जाता है तो बिट मान 1 होगा और जब बटन जारी किया जाएगा तो बिट मान 0 होगा।

B5 और B6 बिट्स पिन (रंग) को चुनने के लिए जिम्मेदार हैं जिससे PWM सिग्नल गुजरेगा: इन बिट्स के रंग पदनाम तालिका 3 में दिखाए गए हैं। अंतिम बिट, B7, ऑटो मिक्सर को सक्रिय करने के लिए जिम्मेदार है।

चित्र 6 और चित्र 7 बटनों को प्रोग्रामिंग ब्लॉकों से जोड़ने की प्रक्रिया को प्रदर्शित करते हैं जो पिछले मानों को भेजने के लिए जिम्मेदार हैं।

एप्लिकेशन का पूरा डिज़ाइन देखने के लिए, आप संलग्न फ़ाइल ".aia" को प्रोजेक्ट फ़ाइलों के साथ डाउनलोड कर सकते हैं और इसे मुख्य साइट के भीतर खोल सकते हैं।

नीचे दिया गया चित्र 8 शीर्ष स्तरीय सर्किट आरेख दिखाता है।

चरण 5: परिणाम

नियंत्रक का सफलतापूर्वक परीक्षण किया गया था और रंग मिश्रण, अन्य विशेषताओं के साथ, उचित रूप से काम करने के लिए दिखाया गया था।

निष्कर्ष

इस निर्देश में, एक एंड्रॉइड एप्लिकेशन द्वारा वायरलेस तरीके से नियंत्रित करने के लिए एक स्मार्ट बल्ब सर्किट बनाया गया था। इस परियोजना में प्रयुक्त ग्रीनपैक सीएमआईसी ने एक छोटे से आईसी में प्रकाश नियंत्रण के लिए कई आवश्यक घटकों को छोटा और एम्बेड करने में भी मदद की।

सिफारिश की: