
क्या मैं अपने हॉबी क्लासेस के दौरान लगातार यह सवाल पूछता हूं - 16-बिट माइक्रोकंट्रोलर पर आधारित होम ऑटोमेटिक कंट्रोल सिस्टम (स्मार्ट होम) विकसित करना - क्या यह वास्तव में सही दृष्टिकोण है? डेढ़ महीने पहले, मैंने पहले ही अपने ब्लॉग पर
"माइक्रोकंट्रोलर्स बनाम सिस्टम-ऑन-ए-चिप" विषय पर लिखा था। इसलिए, मैं इसके बारे में फिर से लिखने जा रहा हूं।
इसका एक हिस्सा
स्टेलारिस लॉन्चपैड और
अरुडिनो ड्यू की बिक्री से प्रेरित था। वे दोनों 32-बिट माइक्रोकंट्रोलर पर आधारित हैं, और कई मायनों में समान हैं। मैंने दोनों के लिए डेटाशीट का अध्ययन किया है, और यद्यपि वे कीमत में काफी भिन्न हैं, वे एक ही लक्षित दर्शकों के लिए डिज़ाइन किए गए हैं। मैंने इस तथ्य के बारे में सोचा था कि शायद मुझे MSP430 से स्टेलारिस में स्विच करना चाहिए, या शायद एक बुनियादी रूप से अलग प्रणाली में भी स्थानांतरित करना चाहिए, रास्कबेरी पाई की तरह कुछ का उपयोग करें, माइक्रोकंट्रोलर के बजाय।
Stellaris Launchpad और Arduino Due, दोनों ही बहुत शक्तिशाली हैं, लेकिन लिनक्स चलाने के लिए डिज़ाइन नहीं किए गए हैं। वे या तो सीधे उनके लिए लिखे गए निष्पादन योग्य कोड पर काम करते हैं, या एक वास्तविक समय ऑपरेटिंग सिस्टम (आरटीओएस) के नियंत्रण में, बाहरी घटनाओं के लिए बहुत कम प्रतिक्रिया समय के साथ एक न्यूनतर ओएस। वे MSP430 या 8-बिट AVR की तुलना में बहुत अधिक जटिल हैं।
दूसरी ओर, वास्तविक जीवन में (इंटरनेट के बाहर), जिनमें से अधिकांश मुझे पता है कि रास्पबेरी पाई या अन्य एम्बेडेड लिनक्स सिस्टम का उपयोग करते हैं। माइक्रोकंट्रोलर्स का उपयोग उन लोगों के बीच एक दुर्लभ मामला है जो मुझे मिले हैं। यहां तक कि Arduino एम्बेडेड लिनक्स की तुलना में मेरे वातावरण में बहुत कम लोकप्रिय है। जैसा कि मैं इसे समझता हूं, जब आप रास्पबेरी पाई खरीद सकते हैं, तो कोई भी Arduino क्यों खरीदेगा, जो कि बहुत अधिक और समान या कम खर्च कर सकता है? लिनक्स में तैयार सॉफ्टवेयर की एक बड़ी मात्रा है, और इसे सरल स्क्रिप्टिंग भाषाओं का उपयोग करके प्रोग्राम किया जा सकता है।
मेरे लिए व्यक्तिगत रूप से, वह कारण जो मैं लिनक्स का उपयोग नहीं करना चाहता हूं, क्योंकि मैं इसे हर दिन काम पर उपयोग करता हूं, और घर लौटकर, मुझे लिनक्स जैसी प्रणालियों पर काम करने में खुशी नहीं होती है। मुझे लिनक्स का उपयोग करने में कोई समस्या नहीं है, लेकिन हर जगह यह बहुत अधिक है, यह मुझे उदास करता है। मुझे 8/16-बिट माइक्रोचिप्स पर सरल इलेक्ट्रॉनिक उपकरणों के साथ काम करने में बहुत अधिक दिलचस्पी है।
हालांकि, मैं वास्तविकता से मुंह नहीं मोड़ता। यदि मैं वास्तविक दुनिया के साथ समान तरंग दैर्ध्य पर रहना चाहता हूं, तो मुझे उन उपकरणों का उपयोग करना चाहिए जो वास्तविक दुनिया में उपयोग किए जाते हैं। अन्यथा, यह भाप इंजन के साथ कार चलाने की इच्छा की तरह दिखता है, केवल इसलिए कि आंतरिक दहन इंजन बहुत अधिक सांसारिक है, मैं हर समय इसका उपयोग करता हूं। यदि दुनिया एक अधिक उन्नत तकनीक की ओर बढ़ रही है, तो आपको इसे मास्टर करने की आवश्यकता है कि मुझे यह पसंद है या नहीं। खासकर अगर मैं चाहता हूं कि मेरा ब्लॉग लोगों के लिए दिलचस्प हो और प्रासंगिक बना रहे।
अपने स्मार्ट होम प्रोजेक्ट में, मैं वास्तव में इस समस्या में भाग गया। मैंने पहले से ही MSP430 पर नियंत्रण प्रणाली के लिए एक स्थानीय नेटवर्क ड्राइवर बनाया है, और सब कुछ बहुत सभ्य दिखता है। वास्तव में, मैं वह सब कुछ कर सकता हूं जो MSP430 पर स्वचालन प्रणाली के लिए आवश्यक है। हालांकि, मुझे आश्चर्य है कि अगर मैं ऐसा करता हूं तो यह सही है। जब मैं एक चम्मच के साथ एक कांटा के साथ सूप खाने की कोशिश कर रहा हूं? शायद लिनक्स एक अधिक उपयुक्त प्रणाली है? मुझे समझाने की।
यदि आप रोकते हैं और नवंबर 2012 में तकनीकी उपलब्धियों पर वर्तमान स्थिति को देखते हैं। मैं खुद से पूछता हूं कि क्या लिनक्स-आधारित सिस्टम-ऑन-ए-चिप की तुलना में माइक्रोकंट्रोलर अच्छे और प्रासंगिक हैं?
अगर मैं अपने दिमाग में आने वाले एम्बेडेड सिस्टम की परियोजनाओं को सूचीबद्ध करता हूं, तो ये हैं: ड्रोन, रोबोट, होम ऑटोमेशन, मोटर कंट्रोलर, सेंसर, घड़ियां, 3 डी प्रिंटर इत्यादि। इनमें से किस मामले में, एम्बेडेड लिनक्स माइक्रोकंट्रोलर की तुलना में अधिक उपयुक्त है? और क्यों?
मुझे लगता है कि तीन परिस्थितियां हैं जहां माइक्रोकंट्रोलर सबसे अच्छा विकल्प है: जहां घटनाओं के लिए वास्तविक प्रतिक्रिया महत्वपूर्ण है; जहां बेहद कम ऊर्जा खपत की जरूरत है; और जहाँ आपको चिप्स का कम से कम उपयोग करने की आवश्यकता है।
शुरुआत के लिए, सस्ते चिप्स का उपयोग मेरे लिए इतना महत्वपूर्ण नहीं है। मैं अपने लिए अपना शौक रखता हूं और प्रतिस्पर्धी उत्पादों का उत्पादन करने वाला नहीं हूं। मुझे गुलाम श्रम का उपयोग करके एक कारखाने में उत्पादन को स्थानांतरित करने के बारे में सोचने की ज़रूरत नहीं है, जो उन छोटी परियोजनाओं के लिए प्रतिस्पर्धी मूल्य है जो मैं विकसित करता हूं। मुझे खुशी होगी अगर मैं एक दिन में एक से अधिक बोर्ड खोल सकता हूं, अपनी क्षमताओं के लिए धन्यवाद!
उदाहरण के लिए, एक स्मार्ट होम प्रोजेक्ट के लिए, मैं दूरस्थ रूप से नियंत्रित स्विच डिजाइन कर सकता हूं। यह प्रकाश को चालू या बंद कर सकता है या कुछ और। उसी समय, मैं एक स्थानीय इलेक्ट्रॉनिक्स स्टोर पर जा सकता हूं और चीन में बने $ 20 के लिए समान खरीद सकता हूं। क्या मैं अपने स्वयं के स्विच को बेचने की कोशिश करके कभी भी इस कीमत को पार कर पाऊंगा? मुझे नहीं लगता कि यह संभव है।
यदि आप इसके बारे में सोचते हैं, तो यह होम ऑटोमेशन के लिए आवश्यक कई अन्य चीजों पर लागू होता है। तापमान, धुआं, चालन आदि के सेंसर, मैं स्वतंत्र रूप से समान बनाने में काफी सक्षम हूं, लेकिन यह संभावना नहीं है कि इससे वित्तीय लाभ हो सकता है। कौन मुझे $ 75 के लिए इन चीजों को खरीदने की परवाह करता है, जब वे उन्हें गृहिणियों में $ 20 के लिए पा सकते हैं?
यदि आप अपने शौक से कुछ लाभ प्राप्त करने के बारे में सोचते हैं, तो अधिक महंगे और जटिल उत्पादों पर ध्यान देना बेहतर है। उदाहरण के लिए, एक घर स्वचालन नियंत्रक या थर्मोस्टैट, आमतौर पर $ 100 से अधिक खर्च होता है, और व्यक्तिगत रचनात्मकता के लिए अधिक स्वतंत्रता छोड़ देता है, आप एक का निर्माण कर सकते हैं, इसे अपने पड़ोसियों को बेच सकते हैं और यहां तक कि इस पर पैसा भी बना सकते हैं।
लेकिन अंतिम डिवाइस के लिए बेहतर मूल्य प्राप्त करने की इच्छा का मतलब यह नहीं है कि आपको पृथ्वी पर सबसे सस्ता माइक्रोकंट्रोलर का उपयोग करने की आवश्यकता है। वास्तव में, यह एक बुरा विचार है, क्योंकि विकास के समय की उतनी ही लागत होती है जितनी कि उपयोग किए गए भागों की। माइक्रोकंट्रोलर सस्ता हो सकता है, लेकिन नियंत्रण कोड लिखने में अधिक समय लगता है। समय पैसा है, और यदि आप तेजी से काम करते हैं, तो आप अधिक हासिल कर सकते हैं।
ये सभी विचार मुझे इस निष्कर्ष पर ले जाते हैं कि मेरी व्यक्तिगत प्राथमिकताओं के बावजूद, लिनक्स पर स्मार्ट होम सिस्टम विकसित करने के लिए अधिक लाभदायक है, लिनक्स का उपयोग नहीं करने के लिए (मुझे स्क्रिप्ट की तुलना में निम्न-स्तरीय प्रोग्रामिंग पसंद है, लिनक्स मुझे ऊब जाता है)।
यदि हम विषय के विषय पर लौटते हैं, तो माइक्रोकंट्रोलर की कीमत, यह एक नया उत्पाद जारी करने के इच्छुक बड़े निगमों के लिए एक महत्वपूर्ण कारक हो सकता है, लेकिन एक व्यक्तिगत स्तर पर, यदि आप किकस्टार्टर-शैली के व्यवसाय का संचालन करने का प्रयास करते हैं, तो यह कारक इतना महत्वपूर्ण नहीं है, वास्तव में, तेज विकास समय। घटकों की लागत से अधिक महत्वपूर्ण है।
दूसरी ओर, माइक्रोकंट्रोलर, कम बिजली की खपत होने पर सिस्टम-ऑन-ए-चिप की तुलना में बेहतर विकल्प हो सकते हैं। ऐसी प्रणालियों में, दो बिंदु होते हैं: सर्किट की कम खपत, ऑपरेशन के दौरान, और एक छोटी शुरुआत का समय। छोटे उपकरणों के लिए बैटरी बचाने का एक विशिष्ट तरीका है बंद करना (बंद करना)। जब आप अपने कंप्यूटर को लिनक्स पर बंद करते हैं, तो उसे वापस काम करने के लिए एक सभ्य समय की आवश्यकता होती है, कभी-कभी कई मिनट तक। एम्बेडेड सिस्टम के लिए यह समय स्वीकार्य नहीं है।
यदि आप MSP430 जैसे एक माइक्रोकंट्रोलर लेते हैं, तो यह एक ही बैटरी पर सालों तक काम कर सकता है। स्टेलारिस लॉन्चपैड और अरुडिनो ड्यू, सिद्धांत रूप में, एक ही काम कर सकते हैं, वे MSP430 की तुलना में अधिक बिजली की खपत करते हैं, लेकिन रास्पबेरी पाई की तुलना में अभी भी बहुत कम है। इसके अलावा, MSP430 बंद होने के तुरंत बाद शुरू हो सकता है।
इस प्रकार, मुझे पूरा यकीन है कि सभी स्थितियों में जहां लो-वोल्टेज ऑपरेशन आवश्यक हैं, यह माइक्रोकंट्रोलर्स का उपयोग करने के लिए समझ में आता है। बैटरी चालित उपकरणों की एक विस्तृत विविधता है जहां ऐसी आवश्यकता उत्पन्न होती है।
तीसरे मामले में, जैसा कि मैंने कहा, एक तत्काल प्रतिक्रिया (रियलटाइम प्रतिक्रिया) की आवश्यकता वाले संचालन में लिनक्स की तुलना में एक माइक्रोकंट्रोलर का उपयोग अधिक सार्थक है। मेरा मतलब है कि 3 डी प्रिंटर और सीएनसी मशीनों जैसे डिवाइस, मुझे पता है कि मैं किस बारे में बात कर रहा हूं, क्योंकि मैंने उन्हें अध्ययन करने के लिए बहुत समय समर्पित किया। उनकी प्रकृति से, उन्हें काम में उच्च सटीकता की आवश्यकता होती है, जो कि कमांड के प्रतिक्रिया समय पर पूरी तरह से निर्भर होने से थोड़ा कम है।
उदाहरण के लिए, यदि आप एक परिपत्र देखा चला रहे हैं जो वर्तमान में लकड़ी या धातु के टुकड़े को काट रहा है, तो आप इस प्रक्रिया को रोक नहीं सकते हैं, क्योंकि कंप्यूटर जो इसे नियंत्रित करता है उसे मेमोरी से डिस्क या कुछ और डेटा डंप करने के लिए एक ठहराव की आवश्यकता होती है अन्यथा एक ही नस में। जिस किसी ने पीसी का उपयोग किया है, वह यादृच्छिक हैंग से परिचित है जो कभी-कभी सामान्य ऑपरेशन के दौरान होता है। अब कल्पना करें कि आपके पास एक बड़ी ड्रिलिंग मशीन है, जो एक पीसी के नियंत्रण में है, जो अचानक ऑपरेशन के दौरान विंडोज अपडेट की जांच करना शुरू कर देता है, और ड्रिल उस मेज के माध्यम से ड्रिल करता है जिस पर वह खड़ा होता है, क्योंकि कंप्यूटर ने इसका नियंत्रण खो दिया है।
पीसी और सिस्टम-ऑन-ए-चिप को विंडोज के साथ, यहां तक कि लिनक्स के साथ भी, वास्तविक समय में काम करने के लिए डिज़ाइन नहीं किया गया है, लेकिन स्वयं के द्वारा वे इसके करीब आने की कोशिश करते हैं। एक उदाहरण के रूप में, लिनक्स कर्नेल के लिए एक वास्तविक समय पैच है, और इस तरह के काम के लिए विशेष सीएनसी सॉफ्टवेयर बनाया गया है। मैं इस लिनक्स पैच से परिचित नहीं हूं, और मुझे नहीं पता कि वास्तविक समय की घटनाओं को पूरी तरह से नियंत्रित करना कितना लचीला है। लेकिन मुझे लगता है कि यह केवल एक संभावित विकल्प है, क्योंकि लिनक्स, इससे कोई फर्क नहीं पड़ता कि पैच किससे जुड़े हुए हैं, इस क्षेत्र में माइक्रोकंट्रोलर्स को कभी भी नहीं हराएंगे, उनके व्यवधान प्रणाली के लिए धन्यवाद।
अंत में, मैं यह कहना चाहता हूं कि मैंने उन क्षेत्रों को खोजने में बहुत समय बिताया है जहां मेरी परियोजनाओं में माइक्रोकंट्रोलर्स के उपयोग का एक फायदा है। और ऐसा लगता है कि रास्पबेरी पाई और बीगलबोन्स के विश्व प्रभुत्व का युग आ गया है। DIY समुदाय में यह वर्तमान स्थिति है। ज्यादातर मामलों में, इन प्रणालियों को विकसित करना अधिक तेज़ और आसान है, इसलिए यह अक्सर अधिकांश परियोजनाओं के लिए सबसे अच्छा विकल्प होता है।
माइक्रोकंट्रोलर्स के लिए, केवल लो-वोल्टेज डिवाइस, रियल-टाइम ऑपरेशन और कम-लागत वाले डिवाइस ही रहते हैं।
यह इस तथ्य पर निर्भर नहीं करता है कि पीसी की तुलना में माइक्रोकंट्रोलर "अधिक मजेदार" लग सकते हैं। यह कुछ शर्तों के साथ आने के लिए है।
मूल के अंग्रेजी अनुवाद
"क्या माइक्रोकंट्रोलर अप्रचलित हैं?" मैथ्यू कैशडॉलर द्वारा अपने DIY होम ऑटोमेशन उत्पाद विकास पर
ब्लॉग पोस्ट ।