मैंने पोस्टों की यह शृंखला मुख्य रूप से अपने लिए, या कम से कम किसी ऐसे व्यक्ति के लिए लिखी है जो बेचने के लिए कुछ इलेक्ट्रॉनिक बनाने की कोशिश कर रहा है। यदि वह आप हैं, तो मुझे आशा है कि यह आपकी यात्रा में आपकी सहायता करेगा! यदि आप केवल अंतिम उत्पाद देखना चाहते हैं तो आप इसे https://hortus.dev/products/social-battery पर पा सकते हैं।
यह एक लंबी पोस्ट है, इसलिए मैंने इसे पचाने में थोड़ा आसान बनाने के लिए इसे टुकड़ों में तोड़ दिया है। ये हैं:
मैं जेएलसी पीसीबी की असेंबली सेवा के साथ प्रयोग करना चाहता था - जबकि मैंने मैन्युअल रूप से घटकों को रखने और सोल्डर करने से पहले नंगे पीसीबी को डिजाइन और निर्मित किया है, मेरे मन में कुछ भविष्य की परियोजनाएं हैं जो मात्रा और दोनों के कारण हाथ से सोल्डर करना अव्यावहारिक होंगी। घटकों का आकार.
जब आप सोचते हैं कि इसमें क्या शामिल है तो यह आश्चर्यजनक है कि यह सेवा कितनी सस्ती है, लेकिन यह अभी भी इतनी महंगी है कि अपना पैसा सौंपना थोड़ा कठिन हो सकता है, और फिर यह पता लगाने के लिए इंतजार करना कि क्या आपने कोई गलती की है जो बर्बाद हो जाएगी अंतिम परिणाम।
मैंने सोचा कि मुझे कुछ सरल से शुरुआत करनी चाहिए, कुछ ऐसा जिससे मैं न केवल पीसीबी असेंबली बल्कि ई-कॉमर्स की क्षमता का भी परीक्षण कर सकूं। मेरी योजना एक छोटी वस्तु लाने की थी जिसे मैं वास्तविक रूप से डिज़ाइन कर सकूं और एक दिन से भी कम समय में निर्माण के लिए प्रस्तुत कर सकूं, फिर उम्मीद है कि इसे Etsy जैसे बाज़ार में आसानी से बेच सकूं।
मैं उम्मीद कर रहा था कि चीज़ों का डिज़ाइन और विनिर्माण पक्ष कठिन हिस्सा होगा और उत्पाद को Etsy पर सूचीबद्ध करना आसान होगा, लेकिन यह बिल्कुल विपरीत था जैसा कि आप पढ़ते रहेंगे तो आप देखेंगे!
मेरे पास Etsy का एक त्वरित स्कैन था, यह देखने के लिए कि लोग किस प्रकार की चीज़ें सफलतापूर्वक बेच रहे थे जिन्हें मैं बना सकता था। मुझे इलेक्ट्रॉनिक पिन बैज बनाने वाले लोगों के कुछ उदाहरण मिले - एकदम सही परियोजना! इनमें अधिकतर नए आकार के बोर्ड पर यादृच्छिक या पूर्व-निर्धारित चमकती पैटर्न वाले एलईडी शामिल थे।
ये मुझे ठीक लग रहे थे, लेकिन मैं कुछ अधिक इंटरैक्टिव और सार्थक प्रयास करना चाहता था, जिसे मैं शुरुआती इकाइयों की एक छोटी संख्या पर उचित मार्जिन बनाने के लिए पर्याप्त पैसे में बेच सकूं।
Etsy पर बेचे जा रहे नियमित पिन बैज को देखते हुए, मैंने स्लाइडिंग इंडिकेटर के साथ इनेमल 'सोशल बैटरी' पिन का एक गुच्छा देखा। ये तुरंत ही मेरे सामने ऐसे आ गए जैसे कि क) मैं व्यक्तिगत रूप से पहचान सकता हूं (लोग मेरी सामाजिक बैटरी के बारे में अंतहीन चुटकुले बनाते हैं...), ख) एक इलेक्ट्रॉनिक संस्करण के रूप में वास्तव में मजेदार होगा, और ग) डिजाइन करना आसान होगा - बस एक इन सबको एक साथ जोड़ने के लिए कुछ एलईडी, एक स्विच और एक माइक्रोकंट्रोलर!
अपने कौशल में विश्वास रखते हुए, मैंने किकाड में एक त्वरित सर्किट आरेख तैयार किया। मैंने ATtiny13A का उपयोग करने का निर्णय लिया - मुख्यतः क्योंकि मेरे पास पिछले प्रोजेक्ट से कुछ उपलब्ध थे, और क्योंकि मेरे पास समान चिप्स के साथ अच्छा अनुभव है।
यदि आप इससे परिचित नहीं हैं, तो ATtiny13A 6 IO पिन वाला एक छोटा 8-बिट माइक्रोप्रोसेसर है और MCUs के AVR परिवार का हिस्सा है। यह ATmega चिप्स के समान है जो ऐतिहासिक रूप से अधिकांश Arduinos के मूल में रहा है, सिवाय इसके कि इसकी क्षमताएं बहुत अधिक सीमित हैं।
लाभ यह है कि एटीटीनी रेंज के चिप्स छोटे और सस्ते होते हैं, इसलिए यदि आपको बहुत अधिक मेमोरी या बाह्य उपकरणों की आवश्यकता नहीं है, तो वे बहुत अच्छे हैं! (हालाँकि अब उपलब्ध एआरएम चिप्स की अंतहीन विविधता के कारण संभवतः यह थोड़ा पुराना हो गया है)।
मैंने KiCad में अपने सर्किट के लिए PCB बिछाया, फिर उसे गेरबर्स और ड्रिल फ़ाइलों (जो PCB के निर्माण के लिए उपयोग किया जाता है), और सामग्री और प्लेसमेंट फ़ाइलों के बिल (जो PCB पर घटकों को इकट्ठा करने के लिए उपयोग किया जाता है) को बाहर निकालने के लिए मिला। . मैंने उन्हें जेएलसी पीसीबी को यह देखने के लिए सौंप दिया कि क्या वे उन्हें सही ढंग से संसाधित करने में सक्षम हैं।
बीओएम और प्लेसमेंट फ़ाइलों को सही प्रारूप में लाने के लिए डिफ़ॉल्ट से थोड़ा बदलाव की आवश्यकता थी (पता चला कि मैंने इसे कठिन तरीके से किया, और KiCad के लिए एक बहुत आसान प्लगइन है जो एक ही क्लिक में सब कुछ पूरी तरह से करता है)।
जेएलसी पीसीबी घटकों की एक बहुत बड़ी लाइब्रेरी रखता है जिसे वे असेंबली ऑर्डर के लिए स्टॉक में रखते हैं। हालाँकि, मेरे मामले में, ATtiny13a उपलब्ध नहीं था, इसलिए मुझे उन्हें ऑर्डर करना पड़ा। उनकी वैश्विक सोर्सिंग सेवा का उपयोग करना बहुत सीधा था। मैं अपनी आवश्यक मात्रा के लिए सबसे अच्छी कीमत वाला आपूर्तिकर्ता ढूंढने में सक्षम था और फिर जेएलसी पीसीबी को मेरी ओर से उन्हें अपने गोदाम में ऑर्डर करने दिया।
जब तक मैं प्रतीक्षा कर रहा था, मुझे लगा कि मुझे अपने डिज़ाइन पर काम करना चाहिए और कोड पर काम करना शुरू करना चाहिए, और मुझे खुशी है कि मैंने ऐसा किया क्योंकि मुझे तुरंत एक समस्या का पता चला! मेरे डिज़ाइन ने एलईडी को सीधे चलाने के लिए ATtiny13a पर उपलब्ध पांच IO पिनों का उपयोग किया (छठे का उपयोग बटन की निगरानी के लिए किया गया)।
पिछली बार जब मैंने यह गलती की थी (हाँ, यह पहले भी हो चुका है) तो मुझे इस बात का एहसास/याद नहीं आया कि उन आईओ में से एक रीसेट पिन भी है। आप इसका उपयोग कर सकते हैं, लेकिन यह अधिक करंट की आपूर्ति करने में सक्षम नहीं है, और इसे एक एलईडी के माध्यम से जमीन पर बांधकर, मैं चिप को स्थायी रीसेट स्थिति में रख रहा था।
इससे निजात पाने का एक तरीका चिप पर एक फ्यूज जलाना है जो पिन की रीसेट कार्यक्षमता को स्थायी रूप से अक्षम कर देता है और इसे एक नियमित आईओ में बदल देता है। हालाँकि इसके साथ समस्या यह है कि आप चिप को केवल एक बार प्रोग्राम कर सकते हैं (जब तक कि आपके पास हाई-वोल्टेज प्रोग्रामर न हो, जो कि मेरे पास नहीं है), और चीजों को कठिन तरीके से सीखने की मेरी प्रवृत्ति को देखते हुए, यह संभावित रूप से काफी बेकार लग रहा था!
दूसरा विकल्प कम पिन के साथ अधिक करने का तरीका ढूंढना है ताकि रीसेट पिन को अकेला छोड़ा जा सके। इसे चार्लीप्लेक्सिंग नामक तकनीक का उपयोग करके प्राप्त किया जा सकता है जो आपको उपलब्ध पिनों की संख्या की तुलना में कई अधिक एलईडी को संबोधित करने की अनुमति देता है।
फिर आप इन एल ई डी के माध्यम से स्कैन कर सकते हैं, उन्हें उच्च दर पर व्यक्तिगत रूप से चालू और बंद कर सकते हैं ताकि ऐसा प्रतीत हो सके कि दृष्टि की दृढ़ता के माध्यम से एक साथ कई एलईडी चालू हैं।
मेरे मामले में, मैं तीन पिनों से चार हरी एलईडी चला रहा हूं, और एक समर्पित पिन के साथ लाल एलईडी चला रहा हूं। यह चार्लीप्लेक्सिंग का सबसे कुशल उदाहरण नहीं है, क्योंकि मैं तीन पिनों से सभी एलईडी चला सकता हूं, लेकिन जब प्रोग्रामिंग की बात आती है तो एक समर्पित पिन पर लाल रखने से कोड सरल हो जाता है।
मैंने अपने सर्किट आरेख और पीसीबी डिज़ाइन को संशोधित किया, फिर आवश्यक फ़ाइलों को फिर से निर्यात किया और उन्हें पांच प्रोटोटाइप के प्रारंभिक सेट के निर्माण और संयोजन के लिए जेएलसी पीसीबी को भेज दिया।
लगभग एक सप्ताह बाद, मुझे मेरे प्रोटोटाइप प्राप्त हुए, और मैं वास्तव में उनसे बहुत प्रसन्न हुआ! कुछ चीज़ें थीं जिन्हें मैं देख सकता था कि मुझे बदलने की ज़रूरत है:
मैंने वास्तव में योजना नहीं बनाई थी कि मैं बोर्डों को कैसे प्रोग्राम करूँगा। मैंने अभी-अभी AVR प्रोग्रामिंग पिन को तोड़ा था और सर्वश्रेष्ठ की आशा की थी। यह पांच प्रोटोटाइप के लिए ठीक था क्योंकि मैं प्रोग्रामिंग तारों को सबसे छोटे सोल्डर के साथ जोड़ सकता था, लेकिन यह बड़े पैमाने पर बहुत जल्दी थकाऊ हो जाता था।
पीठ पर फास्टनर के लिए स्पाइक को ग्राउंड पैड पर टांका लगाया गया था। यह ठीक होता, सिवाय इसके कि स्पाइक के थर्मल द्रव्यमान और बोर्ड पर ग्राउंड प्लेन ने एक अच्छा जुड़ाव बनाना मुश्किल बना दिया। यह बैटरी होल्डर के पॉजिटिव मेटल केज के बहुत करीब चिपक जाता है, जिसका मतलब है कि अगर लोग बैज को प्रवाहकीय सतहों पर लगाते/लगाते हैं तो आकस्मिक शॉर्ट्स होने की अच्छी संभावना है।
बैटरी के लिए नकारात्मक संपर्क पर्याप्त रूप से स्पष्ट नहीं था, इसलिए अच्छा कनेक्शन बनाने के लिए मुझे इसमें थोड़ा सा सोल्डर जोड़ना पड़ा। फिर - प्रोटोटाइप की एक छोटी संख्या के लिए दुनिया का अंत नहीं है, लेकिन अगर मुझे बहुत सारे भार के लिए ऐसा करना पड़ा तो दर्द होगा।
ये सभी लागू करने योग्य सरल समाधान थे। मैंने एक उचित प्रोग्रामिंग हेडर जोड़ा है जिसका उपयोग त्वरित और दोहराने योग्य प्रोग्रामिंग के लिए पोगो पिन जिग के साथ किया जा सकता है।
मैंने ग्राउंड प्लेन से स्पाइक को अलग कर दिया ताकि यह तांबे का अपना छोटा अलग किया हुआ द्वीप हो जो अधिक आसानी से गर्म हो जाए और शॉर्ट्स का कारण न बने।
और मैंने बैटरी के लिए नकारात्मक संपर्क का विस्तार किया ताकि ठोस संबंध बनाने के लिए इसका सतह क्षेत्र अधिक हो।
कोड बहुत सरल है. मैं उस मोड पर नज़र रखता हूं जिसमें बैज है जिसे एक पूर्णांक द्वारा दर्शाया जाता है जो हर बार बटन दबाए जाने पर घट जाता है। फिर मैं मोड के अनुसार अपने रास्ते पर प्रत्येक एलईडी को लूप और ब्लिंक करता हूं। जब मोड 0 पर पहुंच जाता है, तो मैं इसे वापस मूल नंबर पर रीसेट कर देता हूं और फिर एटीटीनी को स्लीप मोड में डाल देता हूं।
बटन को दोबारा दबाने से व्यवधान शुरू हो जाता है जो चिप को जगा देता है और पूरी प्रक्रिया को फिर से शुरू कर देता है।
कुल मिलाकर, मैं वास्तव में परिणामों से प्रसन्न था, जिसका मतलब था कि यह देखने का समय था कि क्या मैं उन्हें बेच सकता हूँ!
ऐसा करने में मेरे अनुभव के बारे में आप इस शृंखला की अगली पोस्ट में पढ़ सकते हैं।