मुझे किस माइक्रोकंट्रोलर का उपयोग करना चाहिए?


10

मैं वास्तविक दुनिया के साथ संवाद करने के लिए अपने कंप्यूटर प्रोग्राम के लिए सबसे अच्छा माइक्रो कंट्रोलर पैकेज खोजने की कोशिश कर रहा हूं। मैं बड़ी संख्या में I / O पिंस के लिए उम्मीद कर रहा हूं (अब तक 64 डिजिटल सभी की आवश्यकता है, एनालॉग और PWM जैसे फैंसी कुछ भी नहीं) जिसे मैं अपने सीपीयू पर चलने वाले अपने कार्यक्रम से कॉल फ़ंक्शन द्वारा सीधे पढ़ और लिख सकता हूं।

मैं खुद को चलाने के लिए माइक्रो कंट्रोलर पर प्रोग्राम डाउनलोड नहीं करना चाहता, बल्कि मैं कुछ ऐसा चाहूंगा जो बस मेरे यूएसबी में प्लग हो और मुझे सीपीयू का एक गुच्छा नियंत्रित करे I / O पिन जो कि मैं अपने C ++ प्रोग्राम से नियंत्रित कर सकता हूं।

मेरे लिए सबसे अच्छा माइक्रो कंट्रोलर पैकेज क्या होगा? मैं ऐसी चीज़ की उम्मीद करता हूं जो काफी सस्ती हो लेकिन भविष्य का प्रमाण हो, क्योंकि यह USB से चलता है और इसमें विंडोज 7. जैसे आधुनिक ओएस के लिए 64-बिट ड्राइवर हैं। एक ही कंप्यूटर प्रोग्राम के साथ इन माइक्रो कंट्रोलर में से एक से अधिक इंटरफ़ेस करने में सक्षम होना एक होगा महान बोनस के रूप में अच्छी तरह से (भविष्य के विस्तार)।

संपादित करें: मुझे उच्च नमूनाकरण दरों की आवश्यकता नहीं है (शायद इनपुट्स पढ़ने के लिए 10 हर्ट्ज, आउटपुट संकेतों के लिए 1 kHz) और अधिकांश पिन केवल आउटपुट के लिए उपयोग किए जाते हैं। मैं बिल्कुल नए कंप्यूटर (कोर i7 860) के साथ काम कर रहा हूं, भले ही नमूना थोड़ा अक्षम या धीमा हो, यह अभी भी ठीक होना चाहिए (बस एक धागा I / O के लिए समर्पित है और इसके साथ मुख्य कार्यक्रम संवाद है)।

मुझे एकल माइक्रो नियंत्रक पैकेज पर सभी 64 I / O पिन की भी आवश्यकता नहीं है। अगर मैं एक ही समय में कई माइक्रो कंट्रोलर पैकेज को इंटरफ़ेस कर सकता हूं, तो यह भी काम करेगा (वास्तव में यह कई छोटे माइक्रो नियंत्रक पैकेजों को इंटरफ़ेस करने में सक्षम होने के लिए आदर्श होगा, इसका मतलब है कि इसका विस्तार करना आसान है)।

मैंने इसे देखा है: http://www.schmalzhaus.com/UBW32/index.html

किसी को भी इस तरह से कुछ के साथ कोई अनुभव था? किसी भी विचार अगर यह काम करेगा या नहीं? मुख्य चिंता यह है कि यह माइक्रो कंट्रोलर है जो प्रोग्राम को चला रहा है, न कि मेरे सीपीयू को।


1
आपको किस डेटा दर की आवश्यकता है?
केविन वर्मी

@reemrevnivek: मेरा अनुमान है कि मुझे इनपुट के लिए 10 हर्ट्ज सैंपलिंग दर और आउटपुट के लिए 1 kHz, बहुत धीमे I / O की आवश्यकता होगी।
फक

आपके मामले में आपको जो प्रोजेक्ट मिला है वह संभवतः काफी अच्छा काम करेगा। यह एक प्रणाली है जो पहले से ही एक साथ रखी गई है (कोई सोल्डरिंग की जरूरत हमेशा अच्छी नहीं होती है) और लगता है कि आपको अपनी ज़रूरत के सभी बंदरगाहों तक पहुँच प्रदान करने के लिए बहुत ही बुनियादी फ़र्मवेयर है। कम नमूनाकरण दरों का मतलब है कि सीरियल कनेक्शन पर्याप्त रूप से अच्छी तरह से काम करेगा। 40 $ आपको दिवालिया नहीं होगा, है ना? यदि ऐसा है, तो इससे पहले कि आप एक अधिक महंगे समाधान को देखें।
राउटर सिमन्स

जवाबों:


4

Faken,

UBW32 जाने के लिए एक बहुत अच्छा तरीका है, जो मैं आपकी आवश्यकताओं के बारे में बता सकता हूं। यह ठीक उसी तरह से सपोर्ट करेगा जो आपको चाहिए, जब तक आप 3.3VI / O के साथ ठीक हैं (कुछ 5V सहिष्णु हैं, लेकिन सभी नहीं।) यह सस्ती है ($ 40) और किसी भी भाषा का उपयोग करने के लिए बात करना बहुत आसान है जो समर्थन कर सकता है। सीरियल पोर्ट (जो उन सभी में बहुत अधिक है - बेसिक, सी, सी #, प्रोसेसिंग, आदि)

आप इनपुट या आउटपुट के रूप में 76 I / O पिंस में से किसी का भी उपयोग कर सकते हैं। शेयर फर्मवेयर के रूप में भेज दिया आप क्या करना चाहते हैं की अनुमति देगा, कोई प्रोग्रामिंग एम्बेडेड पक्ष पर आवश्यक है। USB (केवल 10 हर्ट्ज पर) पर पीसी तक डेटा प्राप्त करना कोई समस्या नहीं होगी। 1KHz पर जाने के लिए आउटपुट प्राप्त करना संभवत: ठीक काम करेगा।

यदि आपका कोई सवाल है, तो कृपया मुझे बताएं। मुझे आपकी मदद करने में खुशी हो रही है।

* ब्रायन श्मल्ज़ UBW32 निर्माता


अच्छा बोर्ड, श्री। शल्मज़
राउटर सिमन्स

अच्छी तरह से यह आराम से आराम है। प्रोग्रामिंग के बारे में बहुत कम और यहां तक ​​कि इलेक्ट्रॉनिक्स के बारे में जानने के लिए एक मैकेनिकल इंजीनियर होने के नाते; एक प्रीबिल्ट प्लेटफ़ॉर्म जो सी / सी ++ के साथ इंटरफेस करता है, वही है जो मुझे इलेक्ट्रॉनिक्स और माइक्रोकंट्रोलर प्रोग्रामिंग पहलू को बनाने के लिए आवश्यक था। आपकी सहायताके लिए धन्यवाद!
फुल

9

मैं एक Teensy ++ 2.0 (या किसी अन्य AT90USB1286 विकास बोर्ड) की सलाह देता हूं

128KB फ्लैश, 8KB रैम, 46 I / O पिन, 8 एनालॉग इनपुट

$ 24

Teensy बोर्ड USB पावर्ड हैं और एक वर्चुअल COM पोर्ट (USB कम्युनिकेशंस डिवाइस क्लास) प्रदान कर सकते हैं। आप अपने पिन नियंत्रण प्रोटोकॉल के लिए इस धारावाहिक लिंक का उपयोग कर सकते हैं। यह विंडोज, ओएसएक्स और लिनक्स पर किसी भी कस्टम ड्राइवरों के बिना काम करता है।

पिन कंट्रोल फर्मवेयर बनाने के लिए, TeensyDuino या सादा पुराना C है।

जब थोड़ा धमाका होता है, तो टोंटी माइक्रोकंट्रोलर का यूएसबी इंटरफ़ेस होने वाला है। इसलिए आप I2C और SPI जैसे प्रोटोकॉल को माइक्रोकंट्रोलर में शिफ्ट करना चाह सकते हैं। इसके लिए आप मेरी बस निंजा का उपयोग कर सकते हैं ।

अपने सेटअप में अतिरिक्त टेन्सियों को जोड़ना सरल है, आपको बस एक USB पोर्ट प्रति डिवाइस की आवश्यकता है, एक वर्चुअल COM पोर्ट प्रति डिवाइस प्रस्तुत करना।

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

एक और तरीका यह हो सकता है कि आई / ओ के विस्तार के लिए एक Arduino और Caterpillar Shield का उपयोग किया जाए । एक कस्टम बोर्ड पर मैंने उसी I / O विस्तारक के चारों ओर निर्माण किया, जिसे मैं 1KHz पर 256 आउटपुट अपडेट करने में सक्षम था।


4

मुझे लगता है कि आप जो चाहते हैं वह माइक्रोकंट्रोलर नहीं है, लेकिन राष्ट्रीय उपकरण PCI-6509 I / O कार्ड जैसा कुछ है । आप USB संस्करण भी प्राप्त कर सकते हैं, लेकिन उनके पास PCI-6509 की तुलना में कई कम I / O हैं। राष्ट्रीय उपकरण आपको C ++ ड्राइवर भी बेचेंगे।

यदि यह बहुत महंगा लगता है, तो आप लाबजैक यू 3 जैसी कुछ कोशिश कर सकते हैं ।


मैंने लैकजैक का उपयोग किया है, यह वास्तव में आपके कंप्यूटर को धीमा कर देता है यदि आप कुछ अधिक गंभीर (उच्च नमूना दर) करते हैं, लेकिन यह धीमी नमूना दर सरल तर्क के लिए बहुत अच्छा है। NI सिस्टम अद्भुत हैं, लेकिन घरेलू उपयोग के लिए सॉफ्टवेयर पैकेज बहुत महंगा है। (कम से कम मेरे घरेलू उपयोग के लिए।)
रूटर सिमन्स

4

आपके द्वारा वर्णित समाधान कम कीमतों के लिए मौजूद नहीं है। समस्या यह है कि आप एक ऐसे सिस्टम पर नियंत्रण सॉफ़्टवेयर चलाना चाहते हैं जिसे इसके लिए डिज़ाइन नहीं किया गया है। 64 बंदरगाहों को सीरियल करना और उच्च नमूनाकरण दर पर यूएसबी के माध्यम से इसे धक्का देना मेजबान कंप्यूटर को बेहद धीमा कर देता है।

ऐसे समाधान हैं जो निम्न प्रदर्शन अनुप्रयोगों के लिए काम करते हैं जैसे कि लैकजैक का उल्लेख किया गया है। लेकिन उच्च IO दरों को संभालने के लिए आपको जिस वास्तविक समाधान की आवश्यकता होगी, उसमें एक प्रोग्राम्ड सिस्टम शामिल होगा। सवाल यह है कि सिस्टम को लागू करने के लिए आपको किस प्रोग्रामिंग का उपयोग करना है।

LabView अत्यधिक महंगा सॉफ़्टवेयर है (जो बहुत अच्छा काम करता है, मुझे गलत नहीं लगता)। यह सॉफ्टवेयर को डिजाइन करने के लिए एक ग्राफिकल भाषा का उपयोग करता है और FPGA या ARM सिस्टम पर चलने वाले कोड को संकलित करता है। सभी घटक उच्च मात्रा में एम्बेडेड ऐप के लिए बहुत महंगे हैं, लेकिन त्वरित विकास, उच्च प्रदर्शन की पेशकश के कारण परीक्षण वातावरण में बिल्कुल अद्भुत है।

एक कम खर्चीला समाधान एक प्रणाली ढूंढना है जो कई आई / ओ के साथ लिनक्स चलाता है। एंबेडेडार्म डॉट कॉम एक ऐसी साइट है जो इसके लिए कई तरह के उत्पाद पेश करती है। आप जो कोड लिख सकते हैं वह शेल स्क्रिप्ट, जावा, सी आदि में हो सकता है।

Arduino सिस्टम माइक्रोकंट्रोलर्स कि एक सरल विकास परिवेश के साथ विकसित किया जा सकता हैं। उनके ओपन सोर्स नेचर का मतलब है कि पहले से ही कई प्रोजेक्ट्स हैं जिनसे सीखना है।


3

मैं 64 GPIO पिन के साथ किसी के बारे में पता नहीं है, एक बहुत कुछ है, आप अपने आप को बनाने के लिए हो सकता है।

मैं धारावाहिक परीक्षण बेंच बेंच के लिए इसका इस्तेमाल करता हूं, लेकिन इसमें 23 GPIO पिन भी हैं।

यदि आप 'USB से GPIO' के लिए सिर्फ गूगल करते हैं, तो वहाँ परियोजनाओं का एक समूह है जो यह किया है, मैं 64 GPIO के साथ पहले जोड़े पृष्ठों में से किसी को नहीं देखा , यह निकटतम मैं पाया गया है, 32 पिन के साथ।

भवन बनाना बहुत कठिन नहीं होगा, मैं शायद USB PHY में निर्मित 100P pic18 का उपयोग करूंगा (आपकी गति आवश्यकताओं के आधार पर अधिक शक्तिशाली सीपीयू क्रम में हो सकता है)

जब तक आपका यूसी विक्रेता USB ड्राइवर कंकाल प्रदान करता है, तब तक इसे काम करने के लिए आपको बहुत अधिक कोडिंग नहीं करनी होगी।

आपको इसके लिए एक पीसीबी का निर्माण करना होगा, इसकी सबसे अधिक संभावना है कि चिप्स जो कि 64 GPIO पिन के लिए काफी बड़े हैं, आमतौर पर थ्रू-होल पैकेज में नहीं आते हैं। आप एक छोटे माइक्रोकंट्रोलर का उपयोग भी कर सकते हैं और अपने GPIO के लिए बाहरी पोर्ट विस्तारक IC का उपयोग कर सकते हैं, लेकिन यह एक अधिक जटिल डिजाइन और प्रोग्राम के लिए अधिक जटिल होगा।

आप देव बोर्डों को भी देख सकते हैं जो हेडर को सभी I / O पिन को रूट करते हैं और USB है। ये संभावित रूप से बहुत अधिक महंगे होंगे क्योंकि वे संभवतः आपके सामान की एक गुच्छा होगा जिसकी आपको आवश्यकता नहीं है।

एक अंतिम टिप, यदि आपको RS232 के साथ एक बोर्ड मिलता है, लेकिन 64 GPIO पिन उपलब्ध हैं, तो आप USB एडाप्टर के लिए RS232 का उपयोग कर सकते हैं, मेरे पास इनमें से कुछ हैं जिन्होंने मेरे लिए अच्छा काम किया है। हालांकि यह आपको RS232 इंटरफ़ेस की गति तक सीमित करता है।


3

NI Labview का वातावरण महंगा है, लेकिन यह वही करेगा जो आपको चाहिए (जो आपको मिलता है, उसके आधार पर USB, ईथरनेट या PCI)।

Arduino Mega में 54 पिन हैं, जो आपको $ 60 के लिए बंद कर देता है। हालाँकि, यह बॉक्स से बाहर एक तर्क विश्लेषक नहीं है; आपको ऐसा करने के लिए एक स्केच लिखना या खोजना होगा। एक उपलब्ध हो सकता है, मुझे नहीं पता। यह कम बस दरों पर काफी सरल होना चाहिए। मेगा पर प्रत्येक निर्देश 16 मेगाहर्ट्ज पर होता है, इसलिए आपके पास काफी धीमी बॉड दर होगी, यदि आप 115200 बॉड सिग्नल प्राप्त कर सकते हैं तो आप भाग्यशाली या बहुत चतुर होंगे।

अंत में, यह एक बहुत अलग परियोजना है यदि आप 9600 बॉड या 50 मेगाहर्ट्ज पर नमूना ले रहे हैं। याद रखें, USB 480 मेगाहर्ट्ज पर चलता है (सिद्धांत रूप में, आपकी वास्तविक डेटा दर विलंब और ओवरहेड की वजह से कम होगी) इसलिए आप बिना बफरिंग के 480/64 = 7.5MHz से बेहतर नहीं कर सकते हैं। बफ़रिंग और अश्लील राशियों (आपकी कार से अधिक) के साथ, तर्क विश्लेषक आपको गिगाहर्ट्ज़ डेटा दरों पर 68, 102 या 136 चैनल प्राप्त कर सकते हैं।

मेरा सुझाव है कि आप बहुत गंभीरता से यह पता लगाने की कोशिश करें कि क्या आप एक ऐसे उपकरण का उपयोग कर सकते हैं जो आपको 8 चैनल या तो देता है, और उन्हें अलग से विश्लेषण करने का प्रयास करें।

संपादित करें: अर्घ, मैं क्या सोच रहा था? यदि आप इस तरह धीमी दरों पर जा रहे हैं, तो एक सीरियल लिंक पर काम करना निश्चित रूप से जाने का तरीका है। मैं काम पर हर समय एड्वेंचर से एडीएएम 4000 मॉड्यूल प्रणाली का उपयोग करता हूं ; वे मजबूत, उपयोग में आसान (COM पोर्ट पर ASCII प्रोटोकॉल के साथ आसानी से हस्तक्षेप किए गए, या शामिल GUI सॉफ़्टवेयर का उपयोग करें), विस्तार योग्य, और अच्छी तरह से समर्थित हैं। अपने आप को 4500 (RS-232, अपने कंप्यूटर पर USB कनवर्टर या COM पोर्ट का उपयोग करें (यदि यह अभी भी एक है)) या 4501 (एम्बेडेड वेबसर्वर के साथ ईथरनेट) नियंत्रक, 4053, 4055 और 4056 मॉड्यूल के एक समूह में लिंक का उपयोग करें। और तुम जाने के लिए अच्छा हो


ओह। लेकिन वे बहुत महंगे हैं .... जैसे 16 चैनलों के लिए $ 100 से $ 150।
केविन वर्मर

मेरे पास अपने सॉफ़्टवेयर का परीक्षण करने के लिए एक इंट्रोनिक्स 34 पोर्ट लॉजिक विश्लेषक है (यानी इनपुट को माइक्रोकंट्रोलर नियंत्रित पिंस के आउटपुट से कनेक्ट करें)। यह लगभग 500 डॉलर है जो मुझे लगता है, लेकिन यह वास्तव में डिजिटल I / O भी नहीं है? यह केवल चैनल का विश्लेषण करने के लिए कस्टम तर्क के साथ कार्यक्रम करने के लिए नहीं है। मेरा 500Mhz नमूनाकरण दर पर काम कर सकता है, लेकिन मुझे आमतौर पर उस गति की आवश्यकता नहीं होती है, जब तक कि परिधीय धारावाहिक नियंत्रक को मैं 200Mhz तक की गति का समर्थन करने की गति या (जो वे आमतौर पर नहीं करते हैं) चाहते हैं। - वैसे भी, लंबी कहानी छोटी। मेरा मानना ​​है कि एक लॉजिक एनालाइजर वह नहीं है जो सवाल पूछने वाले को चाहिए।
राउटर सिमन्स

यह निश्चित रूप से मैं हूं, लेकिन ओ नहीं। मैं इस बात से सहमत हूं कि लॉजिक एनालाइजर वह नहीं है जो व्यक्ति को चाहिए, नई जानकारी दी।
केविन वर्मियर

2

इस चीज़ को $ 70 के लिए 70 GPIO और एक USB इंटरफ़ेस मिला।


क्या आप अपने CPU पर चलने वाले C ++ प्रोग्राम से सीधे पिन डेटा को पढ़ने और लिखने के लिए कॉल फ़ंक्शन का उपयोग कर सकते हैं?
23-13 को फुल जूल

मैं यह सुझाव देने जा रहा था कि NXP में कुछ I / O के साथ ARM आधारित होंगे, और यदि आप उनमें से काफी को I2C IO विस्तारकों पर थप्पड़ नहीं मार सकते। आप उस चीज़ की कीमत को हरा नहीं सकते, और यह प्लग 'एन प्ले है। उत्कृष्ट कार्य।
एकोहेल्समिथ

मुझे पता नहीं है। मैंने इसे स्पार्कफुन के नए उत्पादों के पोस्ट पर देखा।
एंडोलिथ जूथ

2

हां, ऐसा लगता है कि UBW32 आपके लिए ठीक काम करेगा, और डिफ़ॉल्ट फर्मवेयर आपको I / O पिन को आपके पीसी पर आपके सॉफ़्टवेयर से नियंत्रित करने देता है।

"कैसे एक बिट SPI और एक FT232R पर समानांतर इंटरफेस धमाका करने के लिए " के अनुसार , आप जाहिरा तौर पर अपने पीसी पर सॉफ्टवेयर द्वारा नियंत्रित FT232R पर 8 डिजिटल पिंस (संभवतः अधिक?) कर सकते हैं।

FT232RL के लिए $ 15 ब्रेकआउट बोर्ड

ऐसा लगता है कि आप वास्तव में क्या चाहते हैं एक डिजिटल I / O इंटरफ़ेस है; आपको न तो जरूरत है और न ही प्रोग्रामेबल माइक्रोकंट्रोलर चाहिए। यदि आप केवल 16 बिट्स चाहते हैं, तो मैं FT232RL बोर्डों के एक जोड़े के साथ जाऊंगा। हालांकि, यह एक एकल $ 40 UBW32 की तरह लग रहा है, यह आपको 64 I / O देगा, जो कि FT232RL बोर्डों में से 8 से कम लागत के लिए चाहिए, इसे 64 I / O प्राप्त करने की आवश्यकता होगी।

मुझे लग रहा है कि यह तेजी से सामान्य हो रहा है - कभी-कभी एक समस्या पर एक पूरे माइक्रोकंट्रोलर को फेंकने के लिए कम खर्च होता है, भले ही इसके पास एक लाख "अतिरिक्त" ट्रांजिस्टर हों, जिनका मैं कभी भी उपयोग नहीं करूंगा, एक हार्ड-वायर्ड समाधान का उपयोग करने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.