विषयसूची:

EV3 का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर: 6 चरण
EV3 का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर: 6 चरण

वीडियो: EV3 का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर: 6 चरण

वीडियो: EV3 का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर: 6 चरण
वीडियो: सिर्फ 51,000 में⚡Electric Scooter और कार दोनो का मजा लो एक ही गाड़ी में 😜| 3 Wheel Electric Scooter 2024, जुलाई
Anonim
EV3. का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर
EV3. का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर
EV3. का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर
EV3. का उपयोग करते हुए स्वचालित ब्लाइंड ओपनर

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

चरण 1: संभावित विचार या समाधान

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

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

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

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

चरण 2: विधानसभा बनाना

विधानसभा बनाना
विधानसभा बनाना
विधानसभा बनाना
विधानसभा बनाना

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

चरण 3: ब्लाइंड गियर डिजाइन करना

ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना
ब्लाइंड गियर डिजाइन करना

मैंने अंधे को यह देखने के लिए डिसाइड किया कि क्रैंक अधिक विस्तार से कैसे दिखता है। डिस्सेप्लर के दौरान मुझे एक छोटा सा 16-टूथ गियर मिला, जो एक तनावपूर्ण कॉइल द्वारा रखा गया था, यही वह हिस्सा था जिसकी मुझे तलाश थी। गियर की प्रतिकृति डिजाइन करने के बाद, मैंने आवश्यक लेगो-संगत छेद जोड़े, 3 अलग-अलग हिस्सों को मुद्रित किया और अंत में उन्हें सुपरग्लू के साथ जोड़ दिया। मुझे शुरू में लेगो को संगत बनाने में समस्या थी, इस अर्थ में कि मेरे 3 डी प्रिंटर में "x" छेद को पर्याप्त रूप से बनाने का संकल्प नहीं था, हालांकि इसके दोनों ओर गोलाकार छेद के साथ कोई समस्या नहीं थी। इसलिए मैंने "x" को एक गोलाकार छेद से बदल दिया और यह ठीक से छपा। फिर, थोड़ी मात्रा में परीक्षण के बाद मैं देख सकता था कि यह अंधे से टोक़ और वजन को संभाल सकता है। मैं नीचे गियर के लिए अपने डिजाइन लिंक करूंगा या आप इसे थिंगविवर्स पर यहां पा सकते हैं:

चरण 4: अंधे को कोडिंग

अंधे को कोडिंग
अंधे को कोडिंग

मुझे ऐसा कोड चाहिए था जो एक विशिष्ट प्रकाश स्तर पर पहुंचने पर स्वचालित रूप से अंधा को खोल और बंद कर दे, लेकिन उसमें एक ओवरराइड बटन भी था ताकि कोई भी अंधा को जब चाहे खोल या बंद कर सके। मैंने अपने GitHub को यहां कोड के अंतिम संस्करण के साथ लिंक किया है:https://github.com/TJSBearGithub/AutomaticBlindEV3Code

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

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

इन लूपों में से एक "बटनस्टेट" लूप है जो लगातार बटन की स्थिति को "बटनप्रेस" नामक एक चर में प्रकाशित करता है। यह स्क्रिप्ट पर कई बटन ब्लॉक रखने की आवश्यकता को समाप्त करता है।

दूसरा लूप "लाइट या डार्क" है जो लगातार मेरी खिड़की के बाहर प्रकाश स्तर की तुलना कोड में पहले परिभाषित स्थिरांक से करता है। यदि परिणाम उस स्थिरांक से नीचे है, तो लूप "ItIsLight" चर के लिए "गलत" लिखेगा, जबकि यदि यह मान से ऊपर है तो यह "सत्य" लिखेगा।

तीसरे लूप में 3 विकल्पों की एक संख्यात्मक सूची होती है जो मूल रूप से अंधे को बताती है कि क्या करना है, 0 = ब्लाइंड डाउन, 1 = ब्लाइंड अप, 2 = कुछ भी न करें क्योंकि ब्लाइंड सही जगह पर है। लूप "ब्लाइंडशोल्ड" वेरिएबल को पढ़कर शुरू होता है जो उस सही कार्य को निर्दिष्ट करता है जिसे अंधे को करना चाहिए, फिर उस कार्य को पूरा करता है, "ब्लाइंडओपन" वैरिएबल को सही विकल्प में बदल देता है और तब तक निष्क्रिय हो जाता है जब तक कि "ब्लाइंडशोल्ड" वेरिएबल को बदल नहीं दिया जाता है, जहां यह दोहराता है। यह नेत्रहीन को पूरी तरह से खुला या बंद करने के लिए "रोटेशन नीडेड" मान के साथ-साथ +/- 100% शक्ति का उपयोग करता है।

चौथा और अंतिम लूप सबसे जटिल है, यह "निर्णायक" लूप है जो सभी डेटा को संभालता है और यह तय करता है कि प्रत्येक क्रमचय के साथ क्या करना है। यह तर्क आधारित "सड़क में कांटे" का उपयोग करके ऐसा करता है जहां "बटन दबाया जाता है", "लाइट लेवल", "ब्लाइंड ओपन" सही या गलत प्रश्न हैं। सभी क्रमपरिवर्तनों में एक कठिन कोडित प्रतिक्रिया होती है, जो या तो 0 = ब्लाइंड डाउन, 1 = ब्लाइंड अप या 2 = कुछ भी नहीं है - यह मान "ब्लाइंडशोल्ड" वेरिएबल को लिखा जाता है जिसे तब पिछले लूप द्वारा नियंत्रित किया जाता है। कुछ प्रतिक्रियाएँ तब स्क्रिप्ट को समाप्त करने से पहले "ItIsLight" और / या "ButtonPressed" चर को बदलने के लिए प्रतीक्षा करेंगी, यह केवल बटन सक्रिय क्रमपरिवर्तन के मामले में है अन्यथा यह तुरंत अपनी स्थिति को सही करने का प्रयास करेगा जिसका अर्थ है कि अंधा वापस आ जाएगा अपनी मूल स्थिति में। इस प्रक्रिया को तब एक मजबूत और अपेक्षाकृत सरल स्वचालित प्रणाली बनाने के लिए लूप किया जाता है, जिसे आसानी से जोड़ा जा सकता है और डीबग किया जा सकता है। ओफ़्फ़।

चरण 5: फिनिशिंग टच

अंतिम समापन कार्य
अंतिम समापन कार्य

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

चरण 6: परियोजना का मूल्यांकन

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

सिफारिश की: