एक Arduino, एक माइक्रोप्रोसेसर, और एक माइक्रोकंट्रोलर के बीच अंतर क्या है? मैं यह निर्धारित करने की कोशिश कर रहा हूं कि सस्ते प्रतिरोधक टच स्क्रीन को संचालित करने के लिए सबसे अच्छा क्या है।
एक Arduino, एक माइक्रोप्रोसेसर, और एक माइक्रोकंट्रोलर के बीच अंतर क्या है? मैं यह निर्धारित करने की कोशिश कर रहा हूं कि सस्ते प्रतिरोधक टच स्क्रीन को संचालित करने के लिए सबसे अच्छा क्या है।
जवाबों:
आम तौर पर एक डेस्कटॉप पीसी या लैपटॉप में पाया जाता है और इसमें बाहरी दुनिया से जुड़ने के लिए सीपीयू और एक बाहरी मेमोरी इंटरफेस और विभिन्न I / O बसें होती हैं जैसे SPI, I2C, UART, USB, LCD और अन्य। एक माइक्रोप्रोसेसर में एक घड़ी प्रदान करने के लिए एक बाहरी क्रिस्टल भी होगा।
अधिकांश माइक्रोप्रोसेसरों में चिप पर केवल पढ़ने के लिए मेमोरी नहीं होती है; इसके बजाय मदरबोर्ड पर एक बाहरी चिप है जहां प्रारंभिक बूट कोड स्थित है। इंटेल-आधारित पीसी पर, इसे बेसिक इनपुट / आउटपुट सिस्टम (BIOS) कहा जाता है और इसमें प्रारंभिक बूट कोड के अलावा I / O रूटीन भी होता है। बूट कोड पॉवर-ऑन सेल्फ टेस्ट (POST) करने से शुरू होता है और फिर यह देखने के लिए कि बूट कोड के अगले चरण को कहां लोड करना है - हार्ड ड्राइव से, सीडी (या पुराने दिनों में) एक फ्लॉपी डिस्क। यह दूसरा स्तर बूट ऑपरेटिंग सिस्टम को लोड करता है। (कुछ सिस्टम में बूट कोड के तीन स्तर भी हो सकते हैं।)
कुछ माइक्रोप्रोसेसरों (आमतौर पर स्मार्ट फोन और टैबलेट्स के लिए लक्षित, जिनके पास सीमित बूट विकल्प होते हैं) में थोड़ी मात्रा में रीड-ओनली मेमोरी होती है जिसमें शुरुआती बूट कोड होता है।
मैं बूट कोड को केवल पढ़ने के लिए संदर्भित करता हूं; वास्तव में कुछ सिस्टम पर, इसे अपडेट किया जा सकता है। हालाँकि यह काफी जोखिम भरा है; अगर कुछ गलत हो जाता है तो सिस्टम बूट नहीं हो सकता है।
माइक्रोकंट्रोलर्स के विपरीत, जो अपने कार्यक्रमों को रीड-ओनली मेमोरी से बाहर निकालते हैं, माइक्रोप्रोसेसरों को बूट करने के बाद अपने प्रोग्राम को बाहरी रैम में लोड करते हैं और इसे वहां से निष्पादित करते हैं।
दूसरी ओर एक स्टैंडअलोन सिंगल-चिप आईसी है जिसमें एक सीपीयू, प्रोग्राम को स्टोर करने के लिए रीड-ओनली मेमोरी, प्रोग्राम के निष्पादन में उपयोग होने वाले वैरिएबल को स्टोर करने के लिए RAM और बाहरी दुनिया से जुड़ने के लिए विभिन्न I / O बसें हैं। SPI, I2C, UART और अन्य के रूप में। अपने आप में, यह किसी भी प्रोग्राम को किसी बाहरी इंटरफ़ेस के माध्यम से पीसी पर प्रोग्राम किए बिना निष्पादित नहीं कर सकता है। एक घड़ी प्रदान करने के लिए एक माइक्रोकंट्रोलर को बाहरी क्रिस्टल की भी आवश्यकता हो सकती है, हालांकि कुछ में एक आंतरिक घड़ी होती है।
कुछ माइक्रोकंट्रोलर (जैसे कि माइक्रोचिप PIC32) फ्लैश मेमोरी के दो खंड होते हैं; एक इनिशियलाइज़ेशन (बूट) कोड रखने के लिए, और दूसरा एप्लीकेशन को स्टोर करने के लिए। इससे एप्लिकेशन कोड को जगह में अपडेट करना आसान हो जाता है।
अपने उद्देश्य के लिए, आप माइक्रोप्रोसेसर का उपयोग करना चाहेंगे, न कि माइक्रोप्रोसेसर का। एक माइक्रोकंट्रोलर का उपयोग करने के लिए, आपको या तो अपना बोर्ड डिजाइन करना होगा, या किसी प्रकार का विकास बोर्ड खरीदना होगा।
इस तरह का एक बोर्ड है, और इसमें एक माइक्रोकंट्रोलर, एक 8-बिट AVR जैसे कि ATmega8, ATmega168, ATmega328, ATmega1280 और ATmega2560, प्लस पावर सप्लाई, क्रिस्टल, और महिला हेडर जैसे विभिन्न परिधीय बोर्ड के साथ इंटरफेस है।
इन परिधीय बोर्डों को ढाल कहा जाता है , और एक दूसरे के ऊपर स्टैक करने के लिए डिज़ाइन किया गया है (खुद को या किसी अन्य ढाल से जोड़ने के लिए बोर्डों के नीचे पुरुष पिन हैं, और शीर्ष पर महिला हेडर पुरुष पिन को स्वीकार करने के लिए हैं एक ढाल इसके ऊपर खड़ी होती है)।
उदाहरण शील्ड मोटर नियंत्रण बोर्ड, सामान्य I / O बोर्ड, रिले बोर्ड, ईथरनेट बोर्ड और एलसीडी हैं, आमतौर पर एक टच-स्क्रीन के साथ। हालाँकि मैं किसी भी प्रतिरोधक टच स्क्रीन के बारे में नहीं जानता, जिसका इस्तेमाल सिर्फ (एलसीडी के बिना) पता लगाने के लिए किया जाएगा।
ऊपर वर्णित हार्डवेयर के अलावा, Arduino जावा में लिखे गए क्रॉस-प्लेटफ़ॉर्म इंटीग्रेटेड डेवलपमेंट एन्वायरमेंट (IDE) के साथ भी आता है। यह कलाकारों और अन्य शुरुआती लोगों को प्रोग्रामिंग पेश करने के लिए डिज़ाइन किया गया था, जितना कि 50 साल पहले बेसिक भाषा ने किया था। Arduino के लिए एक कार्यक्रम को एक स्केच कहा जाता है ।
Arduino प्रोग्राम C या C ++ में लिखे गए हैं, हालांकि कई विवरण उपयोगकर्ता से छिपे हुए हैं: केवल दो फ़ंक्शन (सिस्टम द्वारा कहा जाता है) को एक प्रोग्राम बनाने के लिए परिभाषित करने की आवश्यकता है जो लगातार लूप (जो आमतौर पर एम्बेडेड प्रोग्राम के लिए है)
setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off
आईडीई एक सॉफ्टवेयर लाइब्रेरी के साथ आता है जिसे "वायरिंग" कहा जाता है जिसका उपयोग आम इनपुट / आउटपुट ऑपरेशन के लिए किया जा सकता है।
एक Arduino एक पीसीबी है जिसमें एक Atmel AVR माइक्रोकंट्रोलर होता है और आमतौर पर एक मानक पैटर्न में कनेक्टर्स का एक सेट प्रदान करता है। माइक्रोकंट्रोलर को आमतौर पर "बूटलोडर" प्रोग्राम के साथ प्रीप्रोग्राम किया जाता है जो एक प्रोग्राम (जिसे "स्केच" कहा जाता है) को पीसी से TTY सीरियल कनेक्शन (या USB कनेक्शन पर वर्चुअल सीरियल) पर माइक्रोकंट्रोलर में लोड किया जाता है।
माइक्रोप्रोसेसर एक आईसी है जिसमें केवल एक केंद्रीय प्रसंस्करण इकाई (सीपीयू) होती है। IC में RAM, ROM या अन्य परिधीय नहीं होते हैं। IC में कैश मेमोरी हो सकती है लेकिन यह बिना किसी बाहरी मेमोरी के प्रयोग करने योग्य नहीं है।
माइक्रोप्रोसेसर प्रोग्राम को आंतरिक रूप से संग्रहीत नहीं कर सकते हैं और इसलिए आमतौर पर सॉफ़्टवेयर लोड करते हैं, जब इसे संचालित किया जाता है, इसमें आमतौर पर एक जटिल मल्टी-स्टेज "बूट" प्रक्रिया शामिल होती है जहां "फर्मवेयर" को बाहरी रोम से लोड किया जाता है और अंततः एक ऑपरेटिंग सिस्टम को अन्य स्टोरेज मीडिया (जैसे हार्ड डिस्क) से लोड किया जाता है )।
यह आमतौर पर एक पर्सनल कंप्यूटर में पाया जाता है।
एक माइक्रोकंट्रोलर एक आईसी है जिसमें एक सीपीयू के साथ-साथ कुछ राशि या रैम, रोम और अन्य परिधीय होते हैं। माइक्रोकंट्रोलर बाहरी मेमोरी या स्टोरेज के बिना कार्य कर सकते हैं।
आम तौर पर, माइक्रोकंट्रोलर्स को या तो पीसीबी में टांका लगाने से पहले प्रोग्राम किया जाता है या पर्सनल कंप्यूटर से जुड़े एक विशेष "प्रोग्रामर" डिवाइस के माध्यम से इन-सिस्टम-प्रोग्रामिंग (आईएसपी या आईसीएसपी) कनेक्टर्स का उपयोग करके प्रोग्राम किया जाता है।
विशिष्ट माइक्रोकंट्रोलर विशिष्ट माइक्रोप्रोसेसर की तुलना में बहुत सरल और धीमे होते हैं, लेकिन मेरा मानना है कि भेद अधिकतर पैमाने और अनुप्रयोग में से एक है।
यह पाया जाता है, उदाहरण के लिए, साधारण उपकरणों जैसे कि बुनियादी वाशिंग मशीन में।
"Arduino" एक सॉफ्टवेयर डेवलपमेंट वातावरण है और कई माइक्रोकंट्रोलर बोर्डों में से कोई भी है जो सॉफ़्टवेयर वातावरण के लिए प्रोग्राम विकसित कर सकता है। अधिकांश बोर्ड Atmel AVR माइक्रोकंट्रोलर का उपयोग करते हैं।
Arduino एक माइक्रोकंट्रोलर आधारित प्लेटफ़ॉर्म (UNO के लिए ATMEGA 328) है। सामान्य तौर पर माइक्रो-कंट्रोलर माइक्रोप्रोसेसर की तुलना में बेहतर होता है, जिसमें इनपुट की सेंसिंग की आवश्यकता होती है। ऐसा इसलिए है क्योंकि ATMEGA 328 जैसे माइक्रो-कंट्रोलर्स में डिजिटल वोल्टर्स (ADCs) का एनालॉग है, जो कि वॉल्टेज का अर्थ है और इसमें PWM आउटपुट के साथ-साथ डिजिटल I / Os भी है।
Arduino के साथ आपके पास Arduino Dev सिस्टम भी है जो नौसिखियों के लिए प्रोग्राम करना आसान है और समर्थन और पुस्तकालयों के लिए एक अच्छा समुदाय है।
एक प्रतिरोधक टच स्क्रीन पोटेंशियोमीटर की तरह व्यवहार करती है; एक x के लिए और एक y के लिए। तो आप Arduino एनालॉग इनपुट्स में डाल सकते हैं। विवरण के लिए यहां देखें ।
एक अन्य विकल्प एसपीआई या आई 2 सी को इस तरह से बदलना है , और अरुडिनो के साथ पढ़ना है।
किसी भी तरह से मुझे लगता है कि अरुडिनो एक अच्छा विकल्प है।
Arduino में एक माइक्रोकंट्रोलर (ATmega328on UNO संस्करण) शामिल है। तो Arduino एक पीसीबी है जिसमें माइक्रोकंट्रोलर के पिनों को अच्छी तरह से अलग किया गया है, एक पावरअप, एक क्रिस्टल और एक ऑन-बोर्ड फर्मवेयर के साथ USB कनेक्शन के लिए FTDI ताकि आप आसानी से इसे अपने आईडीई के साथ प्रोग्राम कर सकें। यहाँ arduino घटकों के बारे में एक सूची है: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq