विषयसूची:

रंग स्थान की खोज: 6 कदम
रंग स्थान की खोज: 6 कदम

वीडियो: रंग स्थान की खोज: 6 कदम

वीडियो: रंग स्थान की खोज: 6 कदम
वीडियो: 8 अरब लोग एक साथ मंगल पर अब क्या होगा मंगल 8 BILLION PEOPLe on mars planet ! science video 2024, नवंबर
Anonim
रंग अंतरिक्ष की खोज
रंग अंतरिक्ष की खोज

हमारी आंखें उन रिसेप्टर्स के माध्यम से प्रकाश का अनुभव करती हैं जो दृश्य स्पेक्ट्रम में लाल, हरे और नीले रंग के प्रति संवेदनशील होते हैं। लोगों ने पिछले एक सौ वर्षों में फिल्म, टेलीविजन, कंप्यूटर और अन्य उपकरणों के माध्यम से रंगीन चित्र प्रदान करने के लिए इस तथ्य का उपयोग किया है।

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

यह प्रोजेक्ट आपको Arduino, RGB LED और थोड़ा गणित का उपयोग करके लाल, हरे और नीले (RGB) रंग स्थान का पता लगाने में मदद करेगा।

आप तीन रंगों, लाल, हरे और नीले रंग की तीव्रता के बारे में सोच सकते हैं, एक घन में निर्देशांक के रूप में, जहां प्रत्येक रंग एक अक्ष के साथ होता है, और सभी तीन अक्ष एक दूसरे के लंबवत होते हैं। आप अक्ष के शून्य बिंदु, या मूल के जितने करीब होंगे, उस रंग का उतना ही कम दिखाई देगा। जब तीनों रंगों के मान शून्य बिंदु या मूल बिंदु पर होते हैं, तो रंग काला होता है, और RGB LED पूरी तरह से बंद हो जाती है। जब तीनों रंगों का मान उतना ही ऊंचा हो जितना वे जा सकते हैं (हमारे मामले में, तीन रंगों में से प्रत्येक के लिए 255), आरजीबी एलईडी पूरी तरह से चालू है, और आंख रंगों के इस संयोजन को सफेद मानती है।

चरण 1: आरजीबी कलर स्पेस

आरजीबी कलर स्पेस
आरजीबी कलर स्पेस

अपनी अच्छी छवि का उपयोग करने की अनुमति के लिए केनेथ मोरलैंड को धन्यवाद।

हम Arduino से जुड़े RGB LED का उपयोग करके 3D कलर स्पेस क्यूब के कोनों का पता लगाना चाहते हैं, लेकिन इसे दिलचस्प तरीके से करना भी चाहते हैं। हम इसे तीन छोरों (लाल, हरे और नीले रंग के लिए एक) को नेस्ट करके और हर संभव रंग संयोजन के माध्यम से चला सकते हैं, लेकिन यह वास्तव में उबाऊ होगा। क्या आपने कभी ऑसिलोस्कोप पर 2डी लिसाजस पैटर्न देखा है या ए लेजर लाइट शो? सेटिंग्स के आधार पर, एक लिसाजस पैटर्न एक विकर्ण रेखा, एक वृत्त, एक आकृति 8, या धीरे-धीरे घूमने वाले नुकीले तितली जैसे पैटर्न की तरह दिख सकता है। एक्स-वाई (या, हमारे मामले के लिए, एक्स-वाई-जेड या आर-जी-बी) कुल्हाड़ियों पर प्लॉट किए गए दो (या अधिक) ऑसिलेटर के साइनसोइडल संकेतों को ट्रैक करके लिसाजस पैटर्न बनाए जाते हैं।

चरण 2: द गुड शिप लिसाजौस

द गुड शिप लिसाजौस
द गुड शिप लिसाजौस

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

चरण 3: रुको - हम एक साइनसॉइडल वेव के साथ एक एलईडी कैसे चला सकते हैं?

तुमने मुझे पकड़ लिया! हम तीन रंगों में से प्रत्येक के लिए ऑफ (0) से लेकर फुल ऑन (255) तक के 3डी कलर स्पेस का पता लगाना चाहते हैं, लेकिन साइनसॉइडल तरंगें -1 से +1 तक भिन्न होती हैं। हम जो चाहते हैं उसे पाने के लिए हम यहां थोड़ा गणित और प्रोग्रामिंग करने जा रहे हैं।

  • -127 से +127. तक के मान प्राप्त करने के लिए प्रत्येक मान को 127 से गुणा करें
  • 127 जोड़ें और प्रत्येक मान को 0 से 255 तक के मान प्राप्त करने के लिए गोल करें (हमारे लिए 255 के काफी करीब)

0 से 255 तक के मान सिंगल-बाइट नंबर (C-लाइक Arduino प्रोग्रामिंग लैंग्वेज में "char" डेटा टाइप) द्वारा दर्शाए जा सकते हैं, इसलिए हम सिंगल-बाइट रिप्रेजेंटेशन का उपयोग करके मेमोरी को सेव करेंगे।

लेकिन कोणों के बारे में कैसे? यदि आप डिग्री का उपयोग कर रहे हैं, तो साइनसॉइड में कोण 0 से 360 तक होते हैं। यदि आप रेडियन का उपयोग कर रहे हैं, तो कोण 0 से 2 गुना π ("pi") तक होते हैं। हम कुछ ऐसा करने जा रहे हैं जो फिर से हमारे Arduino में मेमोरी को संरक्षित करता है, और एक सर्कल को 256 भागों में विभाजित करने के बारे में सोचता है, और "बाइनरी एंगल्स" होता है जो 0 से 255 तक होता है, इसलिए प्रत्येक रंग के लिए "कोण" हो सकते हैं सिंगल-बाइट नंबरों या वर्णों द्वारा यहां भी दर्शाया गया है।

Arduino जिस तरह से है, वह बहुत ही अद्भुत है, और यद्यपि यह साइनसॉइडल मूल्यों की गणना कर सकता है, हमें कुछ तेज़ चाहिए। हम मानों की पूर्व-गणना करेंगे, और उन्हें हमारे प्रोग्राम में सिंगल-बाइट, या चार मानों की 256-प्रविष्टि लंबी सरणी में डाल देंगे (Arduino प्रोग्राम में SineTable[…] घोषणा देखें)।

चरण 4: आइए एक 3D LIssajous पैटर्न बनाएं

आइए एक 3D LIssajous पैटर्न बनाएं
आइए एक 3D LIssajous पैटर्न बनाएं

तीन रंगों में से प्रत्येक के लिए एक अलग आवृत्ति पर तालिका के माध्यम से चक्र के लिए, हम प्रति रंग एक इंडेक्स रखेंगे, और रंगों के माध्यम से कदम रखते ही प्रत्येक इंडेक्स में अपेक्षाकृत प्राइम ऑफ़सेट जोड़ देंगे। हम रेड, ग्रीन और ब्लू इंडेक्स वैल्यू के लिए अपेक्षाकृत प्राइम ऑफ़सेट के रूप में 2, 5 और 11 को चुनेंगे। जब हम प्रत्येक अनुक्रमणिका में ऑफ़सेट मान जोड़ते हैं, तो Arduino की अपनी आंतरिक गणित क्षमताएं स्वचालित रूप से चारों ओर लपेटकर हमारी सहायता करेंगी।

चरण 5: यह सब एक साथ Arduino पर रखना

यह सब एक साथ Arduino पर रखना
यह सब एक साथ Arduino पर रखना

अधिकांश Arduinos में कई PWM (या पल्स चौड़ाई मॉड्यूलेशन) चैनल होते हैं। हमें यहां तीन की आवश्यकता होगी। इसके लिए एक Arduino UNO बहुत अच्छा है। यहां तक कि थोड़ा सा 8-बिट Atmel माइक्रोकंट्रोलर (ATTiny85) भी शानदार ढंग से काम करता है।

प्रत्येक PWM चैनल Arduino के "AnalogWrite" फ़ंक्शन का उपयोग करके RGB LED के एक रंग को चलाएगा, जहां साइनसॉइडल चक्र के चारों ओर प्रत्येक बिंदु पर रंग की तीव्रता को पल्स चौड़ाई, या कर्तव्य चक्र, 0 से (सभी बंद) द्वारा दर्शाया जाता है।) से 255 (सभी चालू)। हमारी आंखें इन अलग-अलग पल्स चौड़ाई को देखती हैं, जो कि एलईडी की अलग-अलग तीव्रता या चमक के रूप में काफी तेजी से दोहराई जाती हैं। आरजीबी एलईडी में तीन रंगों में से प्रत्येक को चलाने वाले सभी तीन पीडब्लूएम चैनलों को मिलाकर, हमें 256 * 256 * 256, या सोलह मिलियन से अधिक रंग प्रदर्शित करने की क्षमता मिलती है!

आपको Arduino IDE (इंटरएक्टिव डेवलपमेंट एनवायरनमेंट) सेट करना होगा, और इसके USB केबल का उपयोग करके इसे अपने Arduino बोर्ड से कनेक्ट करना होगा। PWM आउटपुट 3, 5, और 6 (प्रोसेसर पिन 5, 11, और 12) से तीन 1 KΩ (एक हजार ओम) रेसिस्टर्स को अपने प्रोटो बोर्ड या प्रोटो शील्ड पर और रेसिस्टर्स से LED R, G तक जंपर्स चलाएं।, और बी पिन।

  • यदि आरजीबी एलईडी एक सामान्य कैथोड (नकारात्मक टर्मिनल) है, तो कैथोड से वापस Arduino पर GND पिन पर एक तार चलाएं।
  • यदि आरजीबी एलईडी एक सामान्य एनोड (पॉजिटिव टर्मिनल) है, तो एनोड से वापस Arduino पर +5V पिन पर एक तार चलाएं।

Arduino स्केच किसी भी तरह से काम करेगा। मैं एक SparkFun Electronics / COM-11120 RGB आम कैथोड LED (ऊपर चित्रित, SparkFun वेब साइट से) का उपयोग करने के लिए हुआ। सबसे लंबा पिन सामान्य कैथोड है।

RGB-Instructable.ino स्केच डाउनलोड करें, इसे Arduino IDE के साथ खोलें, और टेस्ट कंपाइल करें। सही लक्ष्य Arduino बोर्ड या चिप निर्दिष्ट करना सुनिश्चित करें, फिर प्रोग्राम को Arduino में लोड करें। इसे तुरंत शुरू किया जाना चाहिए।

आप आरजीबी एलईडी चक्र को जितने रंगों के नाम से देख सकते हैं, और लाखों आप नहीं देख सकते हैं!

चरण 6: आगे क्या है?

हमने अभी-अभी अपने Arduino के साथ RGB Color Space की खोज शुरू की है। कुछ अन्य चीजें जो मैंने इस अवधारणा के साथ की हैं उनमें शामिल हैं:

चीजों को वास्तव में गति देने के लिए, AnalogWrite का उपयोग करने के बजाय, ऑन-चिप रजिस्टरों को सीधे लिखना

  • सर्किट को संशोधित करना ताकि एक IR निकटता सेंसर आपकी गति के आधार पर चक्र को गति या धीमा कर दे
  • Arduino बूटलोडर और इस स्केच के साथ Atmel ATTiny85 8-पिन माइक्रोकंट्रोलर प्रोग्रामिंग करना

सिफारिश की: