विषयसूची:

मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण: १३ कदम
मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण: १३ कदम

वीडियो: मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण: १३ कदम

वीडियो: मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण: १३ कदम
वीडियो: ✨The Melee Mage EP 01 - 13 Full Version [MULTI SUB] 2024, जुलाई
Anonim
मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण
मल्टी-टाइमर डब्ल्यू / बाहरी नियंत्रण

यह प्रोजेक्ट इंस्ट्रक्शनल एक मल्टी फंक्शन टाइमर का निर्माण है।

यह टाइमर इस प्रकार कार्य करने में सक्षम है:

  1. 1 सेकंड और +90 घंटे के बीच चयन योग्य समय के साथ एक सामान्य प्रयोजन अलार्म। श्रव्य अलार्म और/या समाप्त होने तक बाहरी डिवाइस के नियंत्रण के साथ उलटी गिनती होने के बाद अलार्म के बाद से समय की गिनती का संकेत।
  2. 7 चयन योग्य समय के साथ एक झपकी टाइमर, पूरा होने पर उलटी गिनती और अलार्म।
  3. 4 चयन योग्य समय के साथ एक ध्यान टाइमर, काउंट-डाउन के साथ और पूरा होने पर एक छोटा चिरप, उसके बाद 5 मिनट पर एक और चहक के साथ काउंट-अप।

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

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

जब भी मैं एक सर्किट बोर्ड बनाता हूं तो मुझे अक्सर पता चलता है कि घटकों के डिजाइन या प्लेसमेंट में खामियां हैं, मैं जो बोर्ड बनाता हूं वह भी दो ऑफ में से एक है। इसके अलावा, मैं शुरू से अंत तक किसी परियोजना के सभी पहलुओं में शामिल होना पसंद करता हूं। ये कुछ कारण हैं जिनकी वजह से मैं अपने स्वयं के सर्किट बोर्ड बनाता हूँ बजाय इसके कि मैं निर्माण के लिए Gerber फ़ाइलों को विदेशों में भेजूँ। हो सकता है कि मैं अभी बूढ़ा हो गया हूं और अपने तरीके से फंस गया हूं। यह परियोजना इसी पूर्वाग्रह को दर्शाती है। चूंकि मैं अपने स्वयं के सर्किट बोर्ड बनाता हूं, मेरे डिजाइन और मेरी Gerber फाइलें विनिर्माण मानकों को पूरा नहीं करती हैं, इसलिए मैंने इन फाइलों को शामिल नहीं किया है। जो लोग बोर्डों को खोदना और खत्म नहीं करना चाहते हैं, उनका स्वागत है कि वे अपने स्वयं के डिजाइन तैयार करें और टिप्पणी अनुभाग में Gerber फाइलें पोस्ट करें। कृपया पोस्ट करने से पहले अपने बोर्डों का निर्माण और परीक्षण करवाएं।

चरण 1: हार्डवेयर तत्वों का अवलोकन

डिवाइस 4 AAA बैटरी द्वारा संचालित है और इसे Arduino Pro Mini 5V द्वारा नियंत्रित किया जाता है।

एक छोटा बजर/स्पीकर एक श्रव्य अलार्म प्रदान करता है।

एक लघु 5v रिले बाहरी उपकरणों को नियंत्रण वोल्टेज प्रदान करता है। इस नियंत्रण वोल्टेज आउटपुट के स्रोत में लचीलापन प्रदान किया जाता है।

पुश बटन के साथ एक रोटरी एनकोडर मेनू चयन प्रदान करता है।

एक OLED डिस्प्ले और क्षणिक स्टार्ट/स्टॉप स्विच यूजर इंटरफेस को पूरा करता है।

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

इसके अलावा, इस परियोजना में आपकी सहायता करने के लिए फाइलें उपलब्ध कराई गई हैं:

3डी प्रिंटेड प्रोजेक्ट केस के लिए एसटीएल फाइलें।

नियंत्रण सर्किट बोर्ड और रोटरी एन्कोडर की नक़्क़ाशी और परिष्करण के लिए कॉपर और सोल्डर मास्क छवियां।

मेरे डिजाइन को संशोधित करने की इच्छा रखने वालों के लिए एक संदर्भ के रूप में योजनाबद्ध और बोर्ड चित्र।

आप सर्किट बोर्ड उत्पादन के उदाहरण के रूप में दो तरफा सर्किट बोर्ड बनाने पर मेरे निर्देश की समीक्षा करना चाह सकते हैं।

चरण 2: सॉफ्टवेयर अवलोकन

Arduino स्रोत फ़ाइलों के साथ, कुछ अतिरिक्त जानकारी जो सहायक हो सकती है।

उपलब्ध होने पर हार्डवेयर नियंत्रण पुस्तकालयों का उपयोग किया जाता है (बटन डी-बाउंस, ओएलईडी नियंत्रण, रोटरी एन्कोडर रीडिंग)।

प्रोग्राम लूप फ़ंक्शन में स्विच स्टेटमेंट के रूप में कोड निष्पादन को नियंत्रित करने के लिए एक साधारण परिमित राज्य मशीन (FSM) को लागू करता है।

ओएलईडी पर प्रदर्शित विकल्पों के चयन और रोटरी एनकोडर का उपयोग करके चयन की अनुमति देने के लिए एक मेनू वर्ग को परिभाषित किया गया है।

इनपुट प्रत्यक्ष मतदान (गैर-बाधित संचालित) द्वारा कार्यान्वित किया जाता है क्योंकि यह समय महत्वपूर्ण नहीं है और कोड को स्पष्ट करता है।

सीरियल में प्रिंट स्टेटमेंट का उपयोग कोड निष्पादन और डिबगिंग को ट्रेस करने में सहायता के लिए किया जाता है

विभिन्न प्रकार के कार्यक्रम संरचना तत्व जिनमें शामिल हैं:

  • कुछ हार्डवेयर नियंत्रण कार्यों और चरों को अलग करने के लिए एकाधिक कोड टैब।
  • स्टेट वैल्यू (FSM) और कंट्रोल वैरिएबल सेट करने के लिए स्टेटमेंट स्विच करें।
  • संरचना परिभाषा
  • पाठ के रूप में राज्य मूल्यों के असाइनमेंट की अनुमति देने के लिए गणना।
  • #हार्डवेयर पिन और मानक मानों के लिए प्री-प्रोसेसर परिभाषाएँ परिभाषित करें।

चरण 3: भागों की सूची

संलग्नक बनाएं
संलग्नक बनाएं

मुझे यकीन नहीं था कि यह कदम कहाँ रखा जाए क्योंकि यह लगभग किसी भी समय किया जा सकता है। मैंने एक 3 डी प्रिंटेड एनक्लोजर बॉक्स का इस्तेमाल किया। हो सकता है कि आपके पास 3D प्रिंटर तक पहुंच न हो या किसी अन्य प्रकार के बाड़े को पसंद न करें जैसे कि एल्यूमीनियम बॉक्स, लेजर कट प्लास्टिक, हाथ से नक्काशीदार लकड़ी या अन्य प्रकार जो आप अपने इलेक्ट्रॉनिक प्रोजेक्ट के लिए उपयोग करते हैं। मैंने ऊपर, नीचे, रोटरी एनकोडर नॉब और OLED बेज़ल के लिए STL फाइलें शामिल की हैं। अपने प्रिंटर के लिए gcode फ़ाइलें बनाने के लिए इन फ़ाइलों और अपनी पसंद के स्लाइसर का उपयोग करें।

मैं पीएलए फिलामेंट का उपयोग करके सभी भागों को प्रिंट करता हूं, एक रंग संलग्नक के ऊपर और नीचे के लिए, दूसरा नॉब और बेज़ेल के लिए एक विपरीत (जो ऊपर से चिपका हुआ है।) मैं अपनी सभी स्लाइसर सेटिंग्स को निर्दिष्ट नहीं करने जा रहा हूं, लेकिन एक ट्राई का उपयोग करें - षट्भुज कम से कम ३५% इनफिल करें ताकि कोने के शिकंजे को टैप किया जा सके और छितरी हुई लेटरिंग को पढ़ने के लिए "नो सपोर्ट" सेटिंग की जा सके। मैंने अपने प्रिंटर "सामान्य" परत की ऊंचाई का उपयोग करके बॉक्स को मुद्रित किया।

चरण 9: डिजाइन और लेखन कोड

यह कदम वैकल्पिक है लेकिन बेहतर समझ के लिए सुझाया गया है।

घंटों के संदर्भ में अधिकांश प्रयास कोड का लेखन है। यदि आप संलग्न प्रोग्राम को -is के रूप में उपयोग करते हैं तो आप इस चरण को छोड़ सकते हैं। हालाँकि, यह सुझाव दिया जाता है कि आप अपनी आवश्यकताओं को पूरा करने के लिए बेहतर समझ या संशोधन के लिए कोड की समीक्षा करने के लिए समय निकालें।

निम्नलिखित टिप्पणियाँ इस प्रक्रिया को समझने में सहायक हो सकती हैं।

  • टिप्पणियाँ- जैसे ही आप जाते हैं, व्यापक रूप से टिप्पणी करें - मैं कोड लिखने से पहले अक्सर टिप्पणियां लिखता हूं।
  • फूट डालो और जीतो - कार्यों, कक्षाओं और मॉड्यूल (टैब) का उपयोग करें। सिंटैक्स की जांच के लिए लगातार संकलन (सत्यापित करें) का उपयोग करें। डीबग - प्रवाह और परीक्षण मूल्यों और हार्डवेयर इंटरफेस को सत्यापित करने के लिए प्रिंट स्टेटमेंट का उपयोग करें। समस्याओं के माध्यम से काम करने से डरो मत, कोई भी कोड नहीं लिखता है जो बग-मुक्त है!
  • स्थिरांक - #define प्री-कंपाइलर निर्देश पिन नंबरों को नाम निर्दिष्ट करते हैं। टिप्पणियों के साथ स्थिरांक चर परिभाषाएं "जादू" संख्या को कम या समाप्त करती हैं। किसी प्रोग्राम या फ़ंक्शन की शुरुआत में स्थित स्थिरांक का उपयोग कोड को फिर से लिखे बिना मापदंडों को बदलने की अनुमति देता है
  • पूर्वनिर्धारित पुस्तकालय - पूर्वनिर्धारित पुस्तकालयों का उपयोग प्रोग्रामिंग बोझ और डिबग समय को कम करता है।
  • डिज़ाइन ब्लॉक - फ़ंक्शन का उपयोग करके बनाया गया, अलग-अलग टैब में कोड को अलग करना (संबद्ध प्रोग्राम और.hfiles), गणना, कक्षाएं और संरचनाएं। बाकी कोड के संबंध में वे कैसे काम करते हैं, यह समझने के लिए हर एक पर अपना ध्यान केंद्रित करें।
  • स्टेट मशीन (एस) - यह एक प्रोग्रामिंग पैटर्न है जो Arduinos या किसी भी प्रोग्राम के साथ बढ़िया काम करता है जिसका उपयोग आउटपुट को नियंत्रित करने या इनपुट पर प्रतिक्रिया करने के लिए किया जाता है। राज्य मशीनों के कई स्वाद मौजूद हैं। यह कोड लूप फ़ंक्शन में स्विच स्टेटमेंट के आधार पर स्टेट मशीन का उपयोग करता है। इस फॉर्म को समझना और डिबग करना आसान है।
  • प्रदर्शन और मेनू - OLED आउटपुट संक्षिप्त है लेकिन आकस्मिक उपयोगकर्ताओं के लिए पर्याप्त प्रतिक्रिया प्रदान करता है और विकल्प चयन का समर्थन करता है। यह राज्य मशीन के साथ अच्छी तरह से एकीकृत है (लगभग सभी राज्यों में एक संबद्ध OLED स्क्रीन है)। मेनू विकल्प प्रदर्शित करने और चुनने के लिए कोड को अलग करने में मेनू वर्ग सहायक था

कृपया कार्यक्रम को कई बार पढ़ें। यह एक बार में एक फंक्शन या सेक्शन लेने में मदद करता है। मैं अक्सर उस कोड को नहीं समझता जो मैंने लिखा है जब तक कि मैंने इसे कम से कम दो बार नहीं पढ़ा!

चरण 10: प्रोग्राम स्थापित करें

संलग्न फ़ाइल को अपने कंप्यूटर पर कॉपी करें और फिर उसे अपनी स्केच निर्देशिका में अनज़िप करें

Arduino को अपने कंप्यूटर से कनेक्ट करें और सामान्य तरीके से प्रोग्राम कोड डाउनलोड करें। यह सत्यापित करने के लिए कि प्रोग्राम चल रहा है और डिबगिंग में सहायता करने के लिए Arduino IDE सीरियल मॉनिटर खोलें।

चरण 11: टाइमर को इकट्ठा करें

टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो
टाइमर इकट्ठा करो

एक बार केस के ऊपर और नीचे के हिस्से प्रिंट और साफ हो जाने के बाद, छोटे सेल्फ-टैपिंग प्लास्टिक स्क्रू का उपयोग करके घटकों को जोड़ा जा सकता है। सबसे पहले बैटरी होल्डर को पीछे की तरफ खींचा जाता है। शेष भाग निम्नलिखित क्रम में संलग्नक शीर्ष से जुड़े हुए हैं:

  1. OLED और केबल
  2. स्टार्ट/स्टॉप स्विच और वायरिंग
  3. रोटरी एनकोडर और केबल
  4. स्पीकर / बजर और वायरिंग
  5. बाहरी नियंत्रण जैक और वायरिंग
  6. ऑन/ऑफ स्लाइड स्विच और वायरिंग (डबल चेक ओरिएंटेशन ताकि ऑन उस दिशा में हो जो आप चाहते हैं

यदि आप केबलों को सीधे अपने सर्किट बोर्ड में टांका लगाने जा रहे हैं, तो तार टूटने को कम करने के लिए सभी भागों को आपके बाड़े से जोड़ने के बाद ऐसा करें। इससे पहले कि आप उस बोर्ड को पीछे की ओर पेंच करें, तब तक आपको मुख्य बोर्ड पर केबलों के तार होने तक प्रतीक्षा करनी होगी।

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

बाड़े का निचला भाग 4-40 राउंड हेड मशीन स्क्रू का उपयोग करके ऊपर से जुड़ता है, प्रत्येक कोने में एक। शीर्ष में चार छेदों को या तो 4/40 टैप से टैप किया जाना चाहिए या यदि आप 4-40 थ्रेडेड इंसर्ट का उपयोग करते हैं, तो आपको उन्हें स्वीकार करने के लिए छेद ड्रिल करने की आवश्यकता होगी। मुख्य सर्किट बोर्ड के तल पर बढ़ते हुए 4 छेदों को भी ड्रिल करने की आवश्यकता होती है। इस बोर्ड को स्नैप-इन बैटरी माउंट पर रखें और छिद्रों के स्थानों को चिह्नित करें। अपने बढ़ते शिकंजा के लिए उपयुक्त के रूप में ड्रिल करें।

चरण 12: एकीकरण परीक्षण

एकीकरण जांच
एकीकरण जांच
एकीकरण जांच
एकीकरण जांच
एकीकरण जांच
एकीकरण जांच

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

चरण 13: अंतिम विचार

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

इस परियोजना को देखने और/या बनाने के लिए आपके समय के लिए धन्यवाद।

सिफारिश की: