विषयसूची:

स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर: 5 कदम (चित्रों के साथ)
स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर: 5 कदम (चित्रों के साथ)
वीडियो: From Trash to Treasure: 3D Printing a Lamp#3dprint #3dprinting #recycleplastic #sunlu #sunlut3 2024, नवंबर
Anonim
स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर
स्मार्ट 3डी प्रिंटर फिलामेंट काउंटर

फिलामेंट गिनने में परेशानी क्यों? कुछ कारण:

सफल प्रिंट के लिए ठीक से कैलिब्रेटेड एक्सट्रूडर की आवश्यकता होती है: जब जीकोड एक्सट्रूडर को फिलामेंट 2 मिमी को स्थानांतरित करने के लिए कहता है, तो उसे ठीक 2 मिमी स्थानांतरित करने की आवश्यकता होती है। बुरी चीजें तब होती हैं जब यह ओवर-एक्सट्रूड या अंडर-एक्सट्रूड हो। एक अच्छी तरह से कैलिब्रेटेड काउंटर एक एक्सट्रूडर को ईमानदार रख सकता है।

स्लाइसर अनुमान लगाते हैं कि किसी दिए गए प्रिंट में कुल कितना फिलामेंट लगेगा (लंबाई और वजन दोनों में) और मैं उन मानों की जांच करना चाहता हूं।

फिलामेंट की गति को मापना यह भी बताता है कि छपाई कब शुरू हुई और कब रुकी।

मुझे अपने प्रिंटर के मोर्चे पर बदसूरत विशाल लोगो को हटाने के द्वारा छोड़ी गई जगह को कवर करने के लिए कुछ चाहिए था।

यह बढ़ीया है।

मैं इस निर्देश से प्रेरित था, जिसने एक पुराने PS / 2 माउस को 3D प्रिंटर के लिए फिलामेंट काउंटर के रूप में पुन: प्रस्तुत किया। इसने न केवल 3D प्रिंटर में एक उपयोगी सुविधा जोड़ी, बल्कि इसने एक पुराने उपकरण को फिर से तैयार किया जो अन्यथा एक लैंडफिल में समाप्त हो जाता। लेकिन वह प्रोजेक्ट माउस के PS/2 इंटरफ़ेस के आसपास बनाया गया था, जो अनावश्यक रूप से बोझिल लग रहा था। इसलिए मैंने इसे एकमात्र आवश्यक घटक: रोटरी एनकोडर के बारे में जानने के अवसर के रूप में लिया।

आपूर्ति

रोटरी कोडित्र

ESP32 आधारित देव बोर्ड

I2C OLED डिस्प्ले (दो-रंग इकाई विशेष रूप से अच्छी लगती है)

छोटे क्षणिक पुशबटन

डी-ग्रीस 608ZZ असर

हार्डवेयर स्टोर से दो ओ-रिंग (~33 मिमी आईडी x ~ 1.5 मिमी प्रोफ़ाइल व्यास - टिप्पणियां देखें)

बाड़े के लिए दो 2.5 मिमी स्व-टैपिंग शिकंजा

माउंट को अपने प्रिंटर से जोड़ने के लिए दो 4 मिमी स्क्रू, नट और वाशर

तारों का गुच्छा

3डी प्रिंटर और कुछ फिलामेंट

चरण 1: एक रोटरी एनकोडर चुनें

एक रोटरी एनकोडर चुनें
एक रोटरी एनकोडर चुनें
एक रोटरी एनकोडर चुनें
एक रोटरी एनकोडर चुनें

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

यदि यह करने योग्य है, तो यह अति-करने योग्य है। इसलिए मैंने एक बड़ा, मित्रवत, 360-पल्स प्रति क्रांति एन्कोडर खरीदा और इसके चारों ओर अपना प्रोजेक्ट बनाया। मैंने जो चुना वह एक साइनवाइज इंक्रीमेंटल ऑप्टिकल रोटरी एनकोडर था, टाइप एलपीडी३८०६-३६०बीएम-जी५-२४सी। लेकिन कोई भी सभ्य एन्कोडर करेगा।

चरण 2: एक चरखी और आइडलर जोड़ें

पुली और आइडलर जोड़ें
पुली और आइडलर जोड़ें

फिलामेंट के रैखिक आंदोलन को एक चरखी द्वारा एन्कोडर के घूर्णन आंदोलन में अनुवादित किया जाता है। और फिलामेंट को एक आइडलर द्वारा चरखी के खिलाफ रखा जाता है।

चरखी में दो खांचे होते हैं, प्रत्येक में एक फैला हुआ ओ-रिंग होता है, ताकि कोई फिसलन न हो, एन्कोडर चरखी पर फिलामेंट केंद्रित रखने के लिए आइडलर के पास एक एकल वी-नाली है। यह एक 608ZZ असर पर बैठता है जिसे मैंने चारों ओर बिछाया था, और यह मेरी परियोजना के मुख्य भाग में मुद्रित एक सर्पिल वसंत पर लगाया गया है। (एसटीएल फाइलें नीचे संलग्न हैं।)

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

चरण 3: कोडिंग

Image
Image

फिलामेंट की गिनती के लिए, दो डिजिटल इनपुट वाला कोई भी देव बोर्ड करेगा। मेरे द्वारा चुने गए एन्कोडर में चार पिन हैं: वीसीसी, ग्राउंड, और दो एन्कोडर पिन। यहां वास्तव में एक अच्छा लेखन है जो बताता है कि रोटरी एन्कोडर कैसे काम करते हैं और उन्हें Arduino के साथ कैसे इंटरफ़ेस करना है। (इसके अलावा: यह लेख 3-पिन एन्कोडर के बारे में है।)

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

शून्य सेटअपपिन () {

पिनमोड (ENCODER_PIN_1, INPUT_PULLUP); पिनमोड (ENCODER_PIN_2, INPUT_PULLUP); पिनमोड (ZERO_BTN_PIN, INPUT_PULLUP); अटैचइंटरप्ट (ENCODER_PIN_1, एन्कोडरपिनडिड चेंज, चेंज); अटैचइंटरप्ट (ZERO_BTN_PIN, जीरोबटन प्रेस, चेंज); } शून्य IRAM_ATTR एन्कोडरPinDidChange () { अगर (डिजिटल रीड (ENCODER_PIN_1) == डिजिटल रीड (ENCODER_PIN_2)) { स्थिति + = 1; } और { स्थिति - = 1; } } शून्य IRAM_ATTR शून्य बटन दबाया () {// शून्य संभाल और रीसेट}

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

पूरा कोड जीथब पर है।

कोड पर कुछ नोट्स:

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

शून्य बटन भी रीसेट के रूप में दोगुना हो जाता है - बोर्ड को रीबूट करने के लिए इसे दबाए रखें, जो डिबगिंग के लिए उपयोगी है।

व्यवधान शक्तिशाली होते हैं - कभी-कभी बहुत शक्तिशाली। शून्य बटन का एक टैप शून्य बटन दबाए गए() फ़ंक्शन को 10-20 बार कॉल करने का कारण बन सकता है, इसलिए मैंने कुछ बहस तर्क जोड़ा। मेरे ऑप्टिकल एनकोडर को इसकी आवश्यकता नहीं थी, लेकिन YMMV।

जबकि व्यवधान अतुल्यकालिक रूप से इनपुट का ध्यान रखता है, लूप () रूटीन बहीखाता पद्धति को संभालता है। एनकोडरस्टेट - एक एनम जो फीडिंग, रिट्रैक्टिंग या रोकी जा सकती है - एनकोडर की स्थिति में बदलाव के साथ अपडेट की जाती है। टाइमआउट तब निर्धारित करते हैं कि प्रिंटर ने छपाई कब शुरू और समाप्त की है। लेकिन मुश्किल हिस्सा यह है कि 3D प्रिंटर अक्सर शुरू करते हैं और गति को रोकते हैं, इसलिए जो सबसे अच्छा काम करता है वह यह था कि "प्रिंट पूर्ण" घटना को कम से कम 5 सेकंड के लिए लगातार रुके रहने के लिए परिभाषित किया जाए। कोई भी गति एक दूसरे टाइमर को ट्रिगर करती है जो "प्रिंटिंग प्रारंभ" घटना को केवल तभी परिभाषित करती है जब 15 सेकंड की समय सीमा में कोई "प्रिंट पूर्ण" घटना नहीं होती है। व्यवहार में, यह तैरने का काम करता है।

तो मुख्य लूप () कोड बिना भार के चल सकता है, डेब्यू कोड RTOS टास्क लूप में चलता है। इसी तरह, सूचनाएं भेजने के लिए http अनुरोध समकालिक हैं और इसलिए पृष्ठभूमि में हैं। इस प्रकार एनिमेशन सुचारू रूप से चलते हैं और गिनती कभी नहीं रुकती है।

मेरे उदाहरण में अतिरिक्त कोड का एक गुच्छा है (ए) वाईफाई और एमडीएनएस के साथ नेटवर्क कनेक्शन स्थापित करना और बनाए रखना, (बी) एनटीसी सर्वर से समय प्राप्त करना ताकि मैं अपनी शुरुआत और समाप्ति अधिसूचनाओं को टाइम-स्टैम्प कर सकूं और एक भयानक घड़ी प्रदर्शित कर सकूं मेरे ओएलईडी पर, और (सी) ओटीए अपडेट को संभालता है, इसलिए मुझे कोड अपडेट के लिए अपने बोर्ड को अपने मैक से भौतिक रूप से कनेक्ट करने की आवश्यकता नहीं है। फिलहाल, यह सब एक मोनोलिथिक सी++ फ़ाइल में है, केवल इसलिए कि मैंने इसे बेहतर ढंग से व्यवस्थित करने के लिए समय नहीं लिया है।

मैंने अपने फोन पर पुश नोटिफिकेशन भेजने के लिए अद्भुत (और मुफ्त) प्रोल आईओएस ऐप का इस्तेमाल किया, जिसमें HTTP गेट विधियों से ज्यादा कुछ नहीं था।

कोड विकसित करने और बोर्ड को फ्लैश करने के लिए, मैंने विजुअल स्टूडियो कोड पर चलने वाले शानदार PlatformIO का उपयोग किया, दोनों मुफ्त।

अपनी परियोजना के लिए, मैंने इन पुस्तकालयों का उपयोग किया: ओलिवर द्वारा u8g2, पॉल स्टॉफ्रेजेन द्वारा elapsedMillis, और मार्कस सैटलर द्वारा HTTP क्लाइंट, जो एस्प्रेसिफ ESP32 प्लेटफॉर्म के साथ आता है। बाकी सब कुछ या तो Arduino लाइब्रेरी या PlatformIO में ESP32 प्लेटफॉर्म के साथ आता है।

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

चरण 4: वायरिंग

तारों
तारों

मैंने इसे डिज़ाइन किया है ताकि वायरिंग मृत सरल हो, ज्यादातर इसलिए मेरा बाड़ा छोटा हो सकता है, लेकिन इतना डिबगिंग भी सीधे-फ़ॉरवर्ड होगा। मेरे छोटे से डिब्बे में तंग परिस्थितियों पर ध्यान दें।:)

पहली आवश्यकता मेरे रोटरी एनकोडर की 5V आपूर्ति वोल्टेज थी। विभिन्न ESP32 देव बोर्डों में से मेरे पास मेरे स्टैश में थे, केवल कुछ ही USB द्वारा संचालित होने पर Vcc पिन पर सही 5V की आपूर्ति करते थे। (अन्य ने ४.५-४.८ वी मापा, जो, यदि आपका गणित खराब है, तो ५ वी से कम है।) मैंने जिस बोर्ड का उपयोग किया वह एक वेमोस लोलिन ३२ था।

इसके बाद, दो रोटरी एनकोडर सिग्नल पिन आते हैं। चूंकि मैं इंटरप्ट का उपयोग कर रहा हूं, मुख्य चिंता यह है कि जिन पिनों का मैं उपयोग करता हूं वे किसी भी चीज में हस्तक्षेप नहीं करते हैं। ESP32 डॉक्स बताता है कि ADC2 का उपयोग वाईफाई के रूप में एक ही समय में नहीं किया जा सकता है, इसलिए दुर्भाग्य से इसका मतलब है कि मैं किसी भी ADC2 GPIO पिन का उपयोग नहीं कर सकता: 0, 2, 4, 12, 13, 14, 15, 25, 26, या 27. मैंने 16 और 17 को चुना।

प्रो टिप: यदि, यह सब एक साथ रखने के बाद, आपका एन्कोडर पीछे की ओर गिनता हुआ प्रतीत होता है, तो आप बस दो पिन असाइनमेंट को config.h में स्वैप कर सकते हैं।

अंत में, रोटरी एनकोडर ग्राउंड वायर को… ड्रम रोल… ग्राउंड पिन से कनेक्ट करें।

इसके बाद, शून्य/रीसेट पुश बटन जमीन और एक अन्य मुफ्त पिन के बीच जुड़ जाता है (मैंने GPIO 18 को चुना)।

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

अंत में, OLED, यदि यह पहले से आपके बोर्ड से कनेक्ट नहीं है, तो केवल चार पिन की आवश्यकता है: 3V3, ग्राउंड, i2c क्लॉक और i2c डेटा। मेरे देव बोर्ड पर, घड़ी और डेटा क्रमशः 22 और 21 हैं।

चरण 5: भागों का प्रिंट आउट लें

भागों का प्रिंट आउट लें
भागों का प्रिंट आउट लें

मैंने इस निर्माण के लिए सात भाग तैयार किए हैं:

चरखी, जो सीधे रोटरी एन्कोडर के शाफ्ट पर माउंट होती है।

आइडलर, जो एक ६०८जेडजेड बेयरिंग पर फिट बैठता है (शील्ड्स को हटा दें और डब्ल्यूडी४० के साथ नीचा करें ताकि यह स्वतंत्र रूप से घूमता रहे)।

धारक, जिस पर दो वील और एनकोडर माउंट होते हैं - आइडलर के लिए सर्पिल स्प्रिंग पर ध्यान दें।

धारक को स्थिर करने के लिए एक ब्रैकेट। इस चरण में फोटो दिखाता है कि ब्रैकेट धारक से कैसे जुड़ता है।

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

OLED स्क्रीन को होल्ड करने के लिए संलग्नक (शीर्ष), शून्य / रीसेट बटन के लिए एक और सर्पिल

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

सब कुछ समर्थन के बिना मुद्रित करने के लिए डिज़ाइन किया गया है। अपनी पसंद के रंग में सामान्य पीएलए आप सभी की जरूरत है।

यह सब एक साथ रखो, अपने प्रिंटर से संलग्न करें (यहां कुछ रचनात्मकता की आवश्यकता हो सकती है), और आप जाने के लिए अच्छे हैं।

सिफारिश की: