वहाँ एक पाई पर प्रोटोटाइप के बीच एक बड़ी छलांग है, और एक माइक्रोकंट्रोलर का उपयोग कर रहा है?


25

यह प्रश्न अन्य बातों के अलावा, अगर एक समापन बिंदु को प्रोटोटाइप करने के लिए एक रास्पबेरी पाई पर पायथन का उपयोग करने और एक माइक्रोकंट्रोलर का उपयोग करने के बीच एक बड़ा सीखने की अवस्था है।

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

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

एक एम्बेडेड विकास मंच पर, संभावित विकल्प C ++ (mbed या arduino), या micropython हैं। मेरी धारणा है कि ये लिनक्स के तहत चलाने के लिए कोड लिखने की तुलना में काफी अलग या अधिक जटिल नहीं हैं - हालांकि प्लेटफार्मों के व्यक्तिगत फायदे हैं। क्या मैंने ऐसा कुछ भी याद किया है जो एक सॉफ्टवेयर डेवलपर के लिए प्रासंगिक है?

विशेष रूप से, मैं IoT समापन बिंदुओं के बारे में पूछ रहा हूं - इसलिए यहां जिन अनुप्रयोगों में मेरी रुचि है, उनके लिए लिनक्स सिस्टम का पूरा संसाधन होना आवश्यक नहीं है। यह भी जोर देने के लायक है कि बिजली और विलंबता के विचार इस प्रकार के आवेदन में mcu कार्यान्वयन को एक कठिन आवश्यकता बनाते हैं।

जवाबों:


12

जॉर्ज के व्यापक उत्तर और बिंदु 2 में जोड़ना ) हार्डवेयर समर्थन। यहां तक ​​कि अगर वांछित हार्डवेयर (उदाहरण के लिए ईथरनेट, वाईफाई, एसडी कार्ड) को शील्ड या इसी तरह के विस्तार बोर्डों के माध्यम से माइक्रोकंट्रोलर / अरुडिनो में जोड़ा जाता है, तो उन्हें संचालित करने के लिए पुस्तकालय छोटी मेमोरी (यानी ATMEGA328 (एक विशिष्ट Arduino नियंत्रक) पर काफी दबाव डाल रहे हैं) 32 kb का फ्लेश और 2Kb का RAM) है। विशेष रूप से कई विशेषताओं (नेटवर्किंग, प्रदर्शन, एसडी कार्ड) को संयोजित करते समय यह एक गंभीर सीमा हो सकती है।

Arduino दुनिया से कुछ उदाहरण:

एक एसडी कार्ड और एक साधारण फाइल सिस्टम का समर्थन करना (FAT):

  • एसडी कार्ड (कोड आकार अज्ञात है, लेकिन हार्डवेयर एसपीआई का उपयोग किया जाता है तो यह बड़ा मुद्दा नहीं है), कम से कम 512 बाइट्स रैम बफर
  • पेटिट FAT FS के लिए ~ 2..4 kB FLASH और ~ 44 बाइट्स RAM की आवश्यकता होती है

मैट्रिक्स डिस्प्ले का उपयोग करना:

टीसीपी / आईपी प्रोटोकॉल स्टैक के साथ ईथरनेट:

  • यूआईपी : एक विशिष्ट पैकेट आकार (> 1 केबी) की सीमा में रैम की आवश्यकताएं, हालांकि, एकल-चिप ईथरनेट नियंत्रक आमतौर पर ऑन-चिप बफर के साथ आते हैं जो कुछ अधिकतम आकार के ईथरनेट फ़्रेमों को पकड़ सकते हैं।

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

  • Arduino के लिए टीसीपी और यूडीपी प्रोटोकॉल के साथ आईपी स्टैक : न्यूनतम 128 केबी बाहरी मेमोरी

  • सीरियल इंटरफ़ेस पर IP: SerialIP ~ 9 kB फ़्लैश और "पर्याप्त" रैम

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

जैसा कि प्रश्न विशेष रूप से mbed मंच के बारे में पूछता है, यह निश्चित रूप से उल्लेखनीय है कि इसमें IoT के लिए सबसे अधिक प्रासंगिक हैं, जैसे कि एन्क्रिप्शन, प्रमाणीकरण और प्राधिकरण के साथ कनेक्टिविटी। यह कम पावर वायरलेस पर्सनल एरिया नेटवर्क पर ब्लूटूथ लो एनर्जी और आईपीवी 6 का हार्डवेयर सपोर्ट प्रदान करता है। हालांकि ये कनेक्टिविटी फीचर्स आमतौर पर लिस्टेड डेवलपमेंट बोर्ड्स पर = = 128 kB FLASH और> = 16 kB RAM के साथ उपलब्ध हैं। दूसरी ओर के छोटे देव बोर्डों में 16KB फ्लैश, 4KB RAM (यानी मध्यम आकार के Arduinos से ज्यादा नहीं) के साथ समर्पित कनेक्टिविटी के बिना ARM Cortex-M0 + Core के रूप में छोटे माइक्रोकंट्रोलर के साथ सिस्टम शामिल हैं।


मेरी धारणाओं में संसाधन की कमी सबसे बड़ी खाई थी - ज्यादातर लोगों को इन मुद्दों के बिना विकसित करना भूलना आसान होता है।
सीन होलीहेन

20

यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं।

  1. सबसे बड़ा अंतर यह है कि आपके द्वारा उल्लिखित एक माइक्रोकंट्रोलर (जैसे कि Arduino) लिनक्स जैसे मल्टीटास्किंग ऑपरेटिंग सिस्टम को नहीं चलाता है। इसका मतलब है कि यदि आपका आवेदन मल्टीटास्किंग या मल्टीथ्रेडिंग पर निर्भर करता है, तो यह Arduino पर चलने के लिए बहुत कठिन या असंभव हो सकता है।

  2. दूसरा गैप हार्डवेयर सपोर्ट है। उदाहरण के लिए, रास्पबेरी पाई बॉक्स से बाहर कैमरों, यूएसबी ऑडियो, ईथरनेट, वाईफाई का समर्थन करती है। इनमें से कोई भी सीधे Arduino द्वारा समर्थित नहीं है, और जब आप विभिन्न ढालों (जैसे USB होस्ट, ईथरनेट या वाईफाई) का उपयोग कर सकते हैं, तो उनका उपयोग करना रास्पबेरी पाई पर नेटवर्किंग का उपयोग करने के समान सरल नहीं है।

  3. तीसरा अंतर संसाधन उपलब्ध है। अधिकांश माइक्रोकंट्रोलर रास्पबेरी पाई के संसाधनों के करीब भी नहीं आते हैं। उदाहरण के लिए, यहां तक ​​कि पहले रास्पबेरी पाई ने 256Mb रैम के साथ 700MHz पर सीपीयू की पेशकश की और 32 जीबी स्टोरेज के साथ इसका इस्तेमाल किया जा सकता है। ATMEGA328 पर आधारित एक विशिष्ट Arduino Uno 16MHz पर चल रहा है, और इसमें 32Kb का स्टोरेज और 2Kb का रैम है।

इसलिए रास्पबेरी पाई का उपयोग करना निश्चित रूप से पीसी से आने वाले डेवलपर्स के लिए बहुत आसान है। माइक्रोकंट्रोलर्स का उपयोग करने के मुख्य लाभ हैं:

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

यदि उनमें से कोई भी महत्वपूर्ण नहीं है, तो रास्पबेरी पाई का उपयोग निश्चित रूप से अधिक समझ में आता है।


3
बैटरी पावर, और कोई महान संसाधन आवश्यकता एक mcu का उपयोग करने के लिए ड्राइवर नहीं हैं - इसलिए मैं मान रहा हूं कि 10-100 मेगाहर्ट्ज प्रोसेसर पर्याप्त है। बाह्य उपकरणों का उपयोग करने पर मान्य बिंदु, हालांकि SPI संभवतः USB के बराबर mcu है।
शॉन होउलहिन

2
बस का होना ही काफी नहीं है। लिनक्स पर वाईफाई का उपयोग करने पर विचार करें, आपके ऐप को इसके बारे में किसी विशेष ज्ञान की आवश्यकता नहीं है, एक ही कोड जो ईथरनेट के साथ काम करता है वह वाईफाई इंटरफेस के साथ काम करेगा। यह माइक्रोकंट्रोलर के साथ ऐसा नहीं है, आपको विभिन्न पुस्तकालयों का उपयोग करना होगा, उनका उपयोग करना सीखना होगा और कोड बदलना होगा।
जॉर्ज वाई

1
ठीक है, एहसास नहीं था कि एक अलग पुस्तकालय का उपयोग करना एक बाधा का बहुत होगा।
सीन होलीहेन

2
यदि आपको कई पिनों की आवश्यकता नहीं है, तो आप एक ATtiny4 प्राप्त कर सकते हैं जो चावल के दाने के आकार का है: P
Nick T

1
जाहिरा तौर पर Attiny85 की तुलना में बहुत छोटा नहीं है :), लेकिन आप सही हैं, अगर हम गैर-डीआईपी सोच रहे हैं, तो भी 85 एक फिंगरप्रिंट है।
जॉर्ज वाई

9

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

जैसा कि पहले से ही अन्य उत्तरों में बताया गया है, माइक्रो-नियंत्रक बहुत अधिक संसाधन विवश हैं और इस प्रकार आप एक लिनक्स ऑपरेटिंग सिस्टम और स्थानीय स्तर पर चलने वाले सभी साधनों को खो सकते हैं। स्थानीय स्क्रिप्ट चलाने की तुलना में Arduino IDE के साथ छेड़छाड़ बहुत धीमी है।

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


9

हां, बड़ा अंतर है

अंतर दिन और रात की तरह है, हार्डवेयर और सॉफ्टवेयर दोनों के संबंध में। कोई वैध तुलना नहीं।

कब कौन सा उपयोग करना है

एक Arduino का उपयोग करें, यदि ...

  • अंतरिक्ष की कमी एक पाई को अचूक बनाती है।
  • एक पाई का बिजली उपयोग बहुत अधिक होगा।
  • पैसा एक मुद्दा है (विशेषकर यदि आपको अपनी परियोजना में कई या कई व्यक्तिगत नियंत्रकों की आवश्यकता है, तो प्रत्येक व्यक्ति केवल बहुत ही सरल तर्क करता है)।
  • आप मजाकिया और किरकिरा होना चाहते हैं और मज़े के लिए या ज्ञान प्राप्त करने के लिए बहुत निचले स्तर पर काम करते हैं।
  • आपको अत्यधिक सादगी और / या 100% परिभाषित वास्तविक समय व्यवहार और शून्य मौका चाहिए जो आपके नियंत्रण से बाहर कुछ आपके कार्यक्रम को मारता है।
  • आपको ईथरनेट, कठिन USB- होस्ट कार्यक्षमता (यानी, हार्ड ड्राइव तक पहुंच, क्लाइंट साइड पर, जैसे कि एक छिपाई डिवाइस के रूप में, ठीक है) और इतने पर की आवश्यकता नहीं है। इनमें से अधिकांश को Arduino (verrry slooowly) के लिए फिट किया जा सकता है, लेकिन RAM / EPROM और कार्यक्षमता के मामले में उच्च लागत पर। चूंकि प्रीमेप्टिव मल्टीटास्किंग नहीं है, इसलिए अनब्लॉकिंग कार्य बहुत जल्दी जटिल हो जाते हैं।
  • आप सरलीकृत Arduino विकास IDE के साथ, या बहुत गहराई से खुदाई करने के साथ ठीक हैं (यानी, खुद कार्यक्रमों का निर्माण), और - यदि आप प्रो माइक्रो जैसे यूएसबी-अपलोड डिवाइस के लिए नहीं जा रहे हैं - एक खरीदा या स्व-निर्मित विकास किट / बर्नर।

अन्य सभी मामलों में, एक पाई बहुत अधिक उपयोगकर्ता के अनुकूल है। पाई बस एक और (धीमा) कंप्यूटर है।

मुझे गलत मत समझो मैं एक पाई का मालिक हूं और अपने नेटवर्क में कई लिनक्स सेवाओं के लिए इसका उपयोग करता हूं। मैं अक्सर Arduinos (Pro Micros ज्यादातर) भी प्रोग्राम करता हूं। दोनों महान हैं, मैं उन्हें समान पसंद करता हूं, लेकिन उनके पास बहुत अलग उपयोग परिदृश्य हैं।

कठिनाई के बारे में आपके सवाल पर - यह सापेक्ष है। Arduino के लिए मेरे लिए मुश्किल समय ही मुश्किल था, खासकर अगर संदिग्ध इलेक्ट्रॉनिक्स (यानी, EM हस्तक्षेप, बहुत लंबी केबल आदि) के साथ संयुक्त मुद्दों पर बहस करना मुश्किल था। यदि आप अपनी पसंद की भाषा (यानी, Arduino IDE के लिए C) में दृढ़ हैं, तो आपको अपने द्वारा नियोजित किसी भी लाइब्रेरी को हैक करने में सक्षम होना चाहिए। फिर भी, यह हमेशा अधिक जटिल होगा फिर एक पीआई, जहां आप उदाहरण के लिए गैर-समय-आलोचनात्मक चीजों के लिए अपनी पसंद की स्क्रिप्टिंग भाषा का उपयोग कर सकते हैं - वे हमेशा विकसित करने और डिबग करने में अधिक आसान होंगे।


मैं यह नहीं पूछ रहा हूं कि सबसे अच्छा विकास मंच कौन सा है - मेरे उपयोग के मामले में मुख्य रूप से बिजली की कमी के कारण एक एमसीयू की आवश्यकता होती है । मैं देख रहा हूँ कि प्रश्न इस बिंदु पर बहुत स्पष्ट नहीं था।
सीन होलीहेन

सब ठीक है, तो जवाब का पहला हिस्सा पर्याप्त होगा। यदि आप चाहें तो मैं बाकी को "परिशिष्ट" के रूप में खड़ा कर दूंगा।
13

7

मेरा मानना ​​है कि कुछ बिंदु हैं जो अभी तक स्पष्ट रूप से निर्दिष्ट नहीं किए गए हैं।

विकास का माहौल पूरी तरह से अलग है। आप वास्तव में पाई पर पाई सॉफ्टवेयर विकसित कर सकते हैं - यदि आप चाहें तो आप GUI का उपयोग भी कर सकते हैं। उन्नत डिबगिंग टूल के साथ-साथ किसी भी कंप्यूटर सिस्टम के लिए उपलब्ध एक भयानक बहुत कुछ है।

नियंत्रकों को एक अलग कंप्यूटर पर विकसित / अनुकरण किया जा रहा है, फिर अंतिम परीक्षण के लिए नियंत्रक को भेजा जाता है।

पाई वस्तुतः किसी भी भाषा को आप इसके साथ प्रोग्राम करना चाहते हैं, माइक्रो कंट्रोलर आमतौर पर एक या दो चला सकते हैं।

पाई काफी कुछ ऑपरेटिंग सिस्टम (विंडोज़ IoT और विशेष सिस्टम का एक गुच्छा सहित) चला सकते हैं, एम्बेडेड कंट्रोलर "ऑपरेटिंग सिस्टम" को बिल्कुल भी नहीं चलाते हैं।

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

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

बेशक, आप हमेशा अपनी खुद की पाई छवि को बिना किसी वास्तविक ओएस के साथ विकसित कर सकते हैं और पूरे बोर्ड / सीपीयू को ले सकते हैं, जो सभी संबंधित लाभों / नुकसानों के साथ एक हेला-शक्तिशाली / महंगे माइक्रो नियंत्रक में बना देगा। किसी ने शायद यह भी पहले से ही किया है, लेकिन मैंने हाल ही में ऐसा कुछ नहीं देखा है।


अपने अंतिम पैराग्राफ को गलत करें, हाँ, जिसे नंगे-धातु कहा जाता है और कुछ लोग इसे करते हैं, लेकिन तकनीकी रूप से यह संभव है ... साइट पर आपका स्वागत है!
घनिमा

3

Pi के साथ एक एप्लिकेशन विकसित करने का अंतर बहुत अलग या कुछ हद तक हार्डवेयर अंतर के साथ-साथ सॉफ़्टवेयर डेवलपमेंट टूलचिन अंतर के कारण एक माइक्रोकंट्रोलर के साथ एप्लिकेशन विकसित करने के समान हो सकता है।

इसमें माइक्रोकंट्रोलर्स की एक विस्तृत श्रृंखला उपलब्ध है जो 8 बिट से 64 बिट प्रोसेसर तक और कहीं भी कुछ K की रैम से लेकर कुछ गीगाबाइट की रैम तक होती है। अधिक सक्षम माइक्रोकंट्रोलर अनुभव की तरह अधिक पाई प्रदान करते हैं। कम सक्षम माइक्रोकंट्रोलर नहीं करते हैं।

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

कंस्ट्रेन्ड अनुप्रयोग प्रोटोकॉल छोटे, विवश उपकरणों चीजें पर्यावरण के इंटरनेट के साथ इस्तेमाल किया जा रहा के लिए प्रयोग किया जाता है। माइक्रोकंट्रोलर हार्डवेयर और सॉफ्टवेयर की विविधता का अंदाजा लगाने के लिए, सीओएपी प्रोटोकॉल कार्यान्वयन पर यह पृष्ठ पर्यावरण को लक्षित करने का एक विचार प्रदान करता है। इसमें कंटकी ऑपरेटिंग सिस्टम का उल्लेख है, जिसे मैंने iOS, OSX और Android जैसे बेहतर ज्ञात OS के साथ अस्पष्ट रूप से सुना है। प्रोग्रामिंग की गई भाषाएं जावा, जावास्क्रिप्ट, सी, सी #, रूबी, गो, एर्लांग, रस्ट और पायथन हैं।

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

एक माइक्रोकंट्रोलर के लिए वास्तविक विकास वातावरण में एक EEPROM प्रोग्रामर और सॉफ्टवेयर टूल्स का उपयोग करके एक नई छवि बनाई जा सकती है और इसे डिवाइस पर धकेल दिया जा सकता है या डिवाइस में आवश्यक कनेक्टिविटी हो सकती है ताकि नई छवि को सीरियल कनेक्शन या ओवर डाउनलोड किया जा सके। एक नेटवर्क कनेक्शन।

मेरी धारणा है कि अधिकांश माइक्रोकंट्रोलर्स के पास सी क्रॉस कंपाइलर होता है, हालांकि कंपाइलर पुराने मानकों जैसे K & R या शायद 998 का ​​समर्थन कर सकता है। C क्रॉस कंपाइलरों में अक्सर माइक्रोप्रोसेसर विशिष्ट सुविधाओं के लिए गैर-मानक कीवर्ड होते हैं farऔर nearपुराने खंड 8080 और 8086 प्रोसेसर वाले पॉइंटर्स के लिए कीवर्ड उनकी खंडित मेमोरी के साथ होते हैं।

ऐसी विशेष भाषाएं भी हैं, जो माइक्रोकंट्रोलर जैसे कि FORTH प्रोग्रामिंग भाषा को लक्षित करती हैं । इन भाषाओं में अक्सर रन टाइम डिज़ाइन होता है जो नंगे धातु को लक्षित करता है ताकि भाषा चलाने के समय के अलावा कोई ऑपरेटिंग सिस्टम न हो।

ऑपरेटिंग सिस्टम व्यावहारिक रूप से गैर-मौजूद से लेकर नंगे हड्डियों वाले लिनक्स के लिए एक विशेष ओएस जैसे कि फ्रीआरटीओएस या विंडोज एंबेडेड या पूर्ण विकसित लिनक्स या माइक्रोसॉफ्ट विंडोज तक हो सकता है। रास्पबेरी पाई के लिए यह SourceForge प्रोजेक्ट MINIBIAN देखें । इस ई-बुक को देखें, बेकिंग पाई: ऑपरेटिंग सिस्टम डेवलपमेंट जो असेंबलर में रास्पबेरी पाई के लिए एक अल्पविकसित ओएस के विकास का वर्णन करता है।

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

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

कुछ बेहतर ज्ञात माइक्रोकंट्रोलर उपकरणों में अरुडिनो, बीगलबोर्ड और रास्पबेरी पाई शामिल हैं। इन वातावरणों में सभी लोगों का व्यापक सामुदायिक समर्थन होता है और बड़ी संख्या में तैयार बाहरी सेंसर, मोटर्स, सर्वो और जो कुछ भी आप कल्पना कर सकते हैं उसमें प्लग करने के लिए तैयार हैं। Adafruit, Limor "Ladyada" Fried द्वारा स्थापित सुपरस्टोर सीखने वाला इलेक्ट्रॉनिक्स, इन बोर्डों के लिए सभी प्रकार के बाह्य उपकरणों के साथ-साथ हल्के पंख विकास बोर्डों की अपनी लाइन प्रदान करता है।

...

Microsoft .NET फ्रेमवर्क और विज़ुअल स्टूडियो से परिचित डेवलपर्स के लिए उपकरणों का सबसे दिलचस्प ब्रह्मांड विंडोज 10 IoT कोर-संगत वातावरण हो सकता है। ये x86 और ARM-संचालित डिवाइस हैं जो C #, विजुअल बेसिक, पायथन और Node.js / जावास्क्रिप्ट सहित विभिन्न भाषाओं में लिखे यूनिवर्सल विंडोज प्लेटफॉर्म (UWP) ऐप्स को सपोर्ट करते हैं। विंडोज 10 IoT कोर रास्पबेरी पाई, एरो ड्रैगनबर्ड 410C, इंटेल जूल और कंप्यूट स्टिक और मिनवॉर्ड सहित उपकरणों का समर्थन करता है। दिलचस्प उत्पाद प्लेटफ़ॉर्म भी हैं, जैसे कि Askey TurboMate E1 पहनने योग्य।

एक माइक्रोकंट्रोलर एप्लिकेशन का एक विशिष्ट उदाहरण

यह एक स्वचालित कॉफी निर्माता से एक माइक्रोकंट्रोलर बोर्ड की एक छवि है। यह चीन में निर्मित स्वचालित कॉफी निर्माताओं के लिए एक मानक घटक प्रतीत होता है। निर्माता के लिए वेब साइट पीसीबी पर मुद्रित होती है।

छवि दो विचारों से बनी है। बाईं ओर का दृश्य बोर्ड के पीछे होता है जिसमें माइक्रोकंट्रोलर और सहायक सर्किटरी होते हैं। दायीं ओर का दृश्य एलसीडी स्क्रीन के साथ बोर्ड के सामने और बटन का एक सेट है जो वर्तमान समय को सेट करने और प्रारंभ समय की प्रोग्रामिंग जैसे कार्यों को करने के लिए उपयोग किया जाता है।

दाईं ओर का दृश्य एक वाहक में फिट बैठता है, जो तब कॉफी निर्माता के सामने एक उद्घाटन में फिट बैठता है। निचले पीसीबी पर स्विच रॉकर आर्म स्विच के साथ सक्रिय होते हैं। एलसीडी, जो विशेष उद्देश्य प्रतीत होता है, का उपयोग वर्तमान समय और स्थिति के साथ-साथ कॉफी निर्माता की सेटिंग्स को बदलते समय उपयोगकर्ता इंटरफ़ेस को प्रदर्शित करने के लिए किया जाता है। लाल एलईडी का उपयोग यह इंगित करने के लिए किया जाता है कि कॉफी बनाने वाला वास्तव में कॉफी बना रहा है और यह इंगित करने के लिए कि कब रोशनी को वापस बंद करके किया गया है।

यहाँ छवि विवरण दर्ज करें

माइक्रोकंट्रोलर एक ELAN माइक्रोइलेक्ट्रॉनिक कॉर्प EM78P447NAM (डेटाशीट) है जो कि 8 बिट माइक्रोकंट्रोलर है। कुछ बुनियादी आंकड़े बताते हैं कि यह एक छोटा और न्यूनतम उपकरण है, लेकिन यह अपने इच्छित उद्देश्य के लिए अच्छी तरह से काम करता है। इरादा सॉफ्टवेयर विकसित करने का है जिसे बाद में एक बार ROM में निर्माण के हिस्से के रूप में डाउनलोड किया जाता है।

• कम बिजली की खपत:

* Less then 2.2 mA at 5V/4MHz

* Typically 35 µA, at 3V/32KHz

* Typically 2 µA, during sleep mode

• चिप ROM पर 4K × 13 बिट्स

• ओटीपी मेमोरी कोड की घुसपैठ को रोकने के लिए तीन सुरक्षा बिट्स

• उपयोगकर्ता की आवश्यकताओं को समायोजित करने के लिए एक कॉन्फ़िगरेशन रजिस्टर

• चिप रजिस्टरों पर 148 × 8 बिट्स (SRAM, सामान्य प्रयोजन रजिस्टर)


2
मुझे नहीं लगता कि यह प्रश्न को संबोधित करता है। ज़रूर, कुछ उत्पादों को अच्छी तरह से पैक नहीं किया जाता है, लेकिन यह एक एसबीसी के लिए भी जाता है।
सीन हुलिएन

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

1
मेरे लिए, आप सिर्फ कह रहे हैं कि MCU दुनिया गड़बड़ है। जो मुझे लगता है कि भ्रामक है।
सीन हुलिएन

1
@ सीनहाउल्हानी मुझे खेद है कि मेरी पोस्ट से आपकी धारणा यह है कि MCU दुनिया गड़बड़ है। एक अन्य व्याख्या यह है कि MCU दुनिया कई अद्भुत विकल्पों और अवसरों में से एक है, हालांकि पाठक अपनी खुद की पूर्वाग्रहों और पूर्वाग्रहों को किसी भी कथा में लाता है।
रिचर्ड चेम्बर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.