विषयसूची:

मैजिकबिट से सरल DIY रंग सेंसर: 5 कदम
मैजिकबिट से सरल DIY रंग सेंसर: 5 कदम

वीडियो: मैजिकबिट से सरल DIY रंग सेंसर: 5 कदम

वीडियो: मैजिकबिट से सरल DIY रंग सेंसर: 5 कदम
वीडियो: Science के जादुई Trick PART :- 16 || Science कमाल Magic Trick #shorts #viralshorts #creatingforindia 2024, नवंबर
Anonim
Image
Image

इस ट्यूटोरियल में हम सीखेंगे कि कैसे Arduino के साथ Magicbit का उपयोग करके एक साधारण रंग सेंसर बनाया जाए।

आपूर्ति

  • मैजिकबिट
  • यूएसबी-ए से माइक्रो-यूएसबी केबल

चरण 1: कहानी

हार्डवेयर सेटअप
हार्डवेयर सेटअप

नमस्ते दोस्तों, कभी-कभी आपको कुछ उद्देश्यों के लिए रंग सेंसर का उपयोग करना पड़ता है। लेकिन हो सकता है कि आप नहीं जानते कि ये कैसे काम करते हैं। तो इस ट्यूटोरियल में आप सीखेंगे कि कैसे Arduino के साथ Magicbit का उपयोग करके एक साधारण DIY कलर सेंसर बनाया जाए। चलिए शुरू करते हैं।

चरण 2: सिद्धांत और कार्यप्रणाली

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

चरण 3: हार्डवेयर सेटअप

यह बहुत ही सरल है। अपने आरजीबी मॉड्यूल को मैजिकबिट के ऊपरी दाएं बंदरगाह में प्लग करें। इस मॉड्यूल में WS2812B Neopixel LED है। इस एलईडी में 4 पिन हैं। दो पावर के लिए और दो डेटा इन और आउट के लिए। क्योंकि हम एक एलईडी का उपयोग करते हैं, हमें केवल पिन में पावर पिन और डेटा की आवश्यकता होती है। यदि आपके पास वह मॉड्यूल नहीं है तो आप Neopixel मॉड्यूल खरीद सकते हैं। यदि आपने उस तरह का मॉड्यूल खरीदा है तो आपको पिन में पावर पिन और डेटा को मैजिकबिट से कनेक्ट करना होगा। यह बहुत आसान है। मैजिकबिट के VCC और GND को RGB मॉड्यूल के पावर पिन से और D33 पिन को डेटा पिन से कनेक्ट करें।

चरण 4: सॉफ्टवेयर सेटअप

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

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

magicbit-arduino.readthedocs.io/en/latest/

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

चरण 5: कलर सेंसर का Arduino कोड

#शामिल

#परिभाषित करें LED_पिन 33

#define LED_COUNT 1 Adafruit_NeoPixel LED(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #include #include #include #define OLED_RESET 4 Adafruit_SSD1306 डिस्प्ले(128, 64); #define LDR 36 #define Button 35 int R_value, G_value, B_value; शून्य सेटअप () {LED.begin (); एलईडी.शो (); पिनमोड (एलडीआर, इनपुट); पिनमोड (बटन, इनपुट); डिस्प्ले.बेगिन (SSD1306_SWITCHCAPVCC, 0x3C); डिस्प्ले.डिस्प्ले (); देरी (1000); डिस्प्ले.क्लियरडिस्प्ले (); सीरियल.बेगिन (९६००); } शून्य लूप () { अगर (डिजिटल रीड (बटन) == 0) {// बटन दबाया जाता है तो LED.setPixelColor (0, LED. Color (0, 50, 0)); // रेड कलर LED.शो पर (); देरी (100); R_value=analogRead(LDR);//रेड माउंट LED.setPixelColor(0, LED. Color(150, 0, 0));//ग्रीन कलर LED.show() पर प्राप्त करें; देरी (100); G_value=analogRead(LDR);//ग्रीन माउंट LED.setPixelColor(0, LED. Color(0, 0, 255)); // ब्लूकलर LED.शो पर (); देरी (100); B_value=analogRead(LDR);//नीला माउंट प्राप्त करें यदि (R_value>G_value && R_value>B_value){//red सबसे अधिक प्रतिबिंबित प्रदर्शन ("RED", 3); } और अगर (G_value>R_value && G_value>B_value){// हरा सबसे अधिक प्रतिबिंबित प्रदर्शन ("ग्रीन", 3); } और अगर (बी_वैल्यू>आर_वैल्यू && बी_वैल्यू>जी_वैल्यू){//ब्लू सबसे ज्यादा रिफ्लेक्टेड डिस्प्ले ("ब्लू", 3); } सीरियल.प्रिंट ("रेड ="); सीरियल.प्रिंट (R_value); सीरियल.प्रिंट ("ग्रीन ="); सीरियल.प्रिंट (G_value); सीरियल.प्रिंट ("ब्लू ="); Serial.println (B_value); } और { LED.setPixelColor (0, LED. Color (0, 0, 0)); // बंद आरजीबी एलईडी। शो (); प्रदर्शन ("कोई रंग नहीं", 2); } } शून्य डिस्प्ले (स्ट्रिंग कॉमनड, इंट साइज) {// डिस्प्ले डेटा डिस्प्ले। क्लियरडिस्प्ले (); display.setTextSize (आकार); // सामान्य 1:1 पिक्सेल स्केल डिस्प्ले।सेटटेक्स्टकोलर (सफेद); // सफेद टेक्स्ट डिस्प्ले बनाएं। सेट कर्सर (0, 20); // टॉप-लेफ्ट कॉर्नर डिस्प्ले पर शुरू करें।प्रिंट्लन (कॉमॉन्ड); डिस्प्ले.डिस्प्ले (); }

सिफारिश की: