क्या मैं एक असली बोर्ड के बिना Arduino के लिए कार्यक्रम कर सकता हूं?


205

मैं कुछ बुनियादी Arduino परियोजनाओं के विकास को शुरू करना चाहूंगा, लेकिन मेरे पास अभी तक एक Arduino बोर्ड नहीं है। क्या कोई ऐसा तरीका है जिससे मैं अपना कोड लिख सकता हूं और डेस्कटॉप कंप्यूटर का उपयोग करके उसका अनुकरण / परीक्षण कर सकता हूं ताकि मेरे बोर्ड आने के बाद मुझे बस उस पर अपना प्रोजेक्ट अपलोड करना और चलाना हो?


1
मुझे भी दिलचस्पी है, क्या आपको ऐसा कोई मिला है जो Arduino IDE के साथ अच्छा खेलता है ? यह आईडीई द्वारा पता लगाया गया है जैसे कि यह एक बोर्ड था, इसकी सभी कार्यक्षमता के साथ।
rrallvv

जवाबों:


128

वहाँ Arduino सिमुलेटर की एक पूरी श्रृंखला है, कई मुफ्त, और कुछ भुगतान किए गए उत्पादों के रूप में भी।

  • Codeblocks Arduino विकास पर्यावरण अभी भी विकास लेकिन कार्यात्मक के तहत, एक नि: शुल्क Arduino सिम्युलेटर भी शामिल है।
  • Simuino Arduino Uno और Mega pins का अनुकरण करता है - एक सुंदर दिखने वाला यथार्थवादी सिम्युलेटर नहीं है, लेकिन यह काम करता है।
  • पायडॉन स्थित अरुडिनो सिम्युलेटर एक और विकल्प है, जो आधिकारिक आईडीई के साथ अच्छा खेलता है
  • Arduino के लिए Virtronics सिमुलेटर आशाजनक लग रहा है, लेकिन मुझे नहीं लगता कि मैं इसके लिए $ 14.99 का भुगतान क्यों करूंगा, जब मैं उस कीमत के लिए एक या अधिक वास्तविक Arduino क्लोन खरीद सकता था

यदि आप खोज करते हैं, तो कई अन्य Arduino सिमुलेटर वहाँ हैं, और नए लोगों की घोषणा की जा रही है, यहां तक ​​कि क्राउडफंड, हर समय।


10
एक नोट के रूप में, वे एमुलेटर नहीं हैं, लेकिन सिमुलेटर हैं , सबसे महत्वपूर्ण अंतर यह है कि यह एक AVR वर्चुअल मशीन पर कोड नहीं चलाता है (जैसे कि qemu क्या करता है), लेकिन मूल कोड के लिए Arduino फ़ंक्शन को बांधता है। इसलिए मूल रूप से वे देशी AVR सामान को चलाने में सक्षम नहीं होंगे और रजिस्टर / टाइमर व्यवहार वास्तविक AVR हार्डवेयर पर समान नहीं होगा। उस उत्तर में समझाया गया अंतर अच्छी तरह से देखें । यद्यपि, Aremino Due कोड का qemu के साथ अनुकरण करना सैद्धांतिक रूप से संभव है ।
जोमो

5
आप "यह नहीं देखते हैं कि क्यों [एक] इसके लिए $ 14.99 का भुगतान करेगा, जब [एक] उस कीमत के लिए एक या अधिक वास्तविक Arduino क्लोन खरीद सकता है"? मैं आपको बता सकता हूं कि क्यों: क्योंकि हार्डवेयर में एक अंतर्निहित डीबगर नहीं है जो कि एक सिम्युलेटर द्वारा प्रदान की जा सकती हैं।
आर। मार्टिनो फर्नांडिस

8
Arduino सिम्युलेटर मेरी रुचि भी खफा, लेकिन दुर्भाग्य से sourceforge साइट पर से संबंधित कोई फाइल को प्रतीत होता है। क्या मुझे कुछ याद आ रहा है, या आप अपना उत्तर लिखने के बाद से पदावनत हो गए हैं?
ग्रीननलाइन

जैसा कि ऊपर टिप्पणी में कहा गया है, arduino सिम्युलेटर स्रोत फोर्ज साइट में कोई फाइलें नहीं हैं। क्या इसके लिए एक वेबसाइट है या कोई और सिम्युलेटर है जो आधिकारिक आईडीई के साथ मैक में अच्छी तरह से काम करता है?
गोर्धनविज

4
Simuino भयानक, अव्यवसायिक और बेकार है। कोड करने के लिए उनके पास कोई सुराग नहीं है। Arduino सिम्युलेटर की कोई रिलीज़ नहीं है। CodeBlocks केवल Windows है। Arduino के लिए सिम्युलेटर खुला-स्रोत नहीं है।
dhchdhd

81

मुझे इसके लिए circuit.io aka TinkerCAD का उपयोग करना पसंद है ।

यह क्लाउड आधारित है और इसमें पीसीबी डिजाइन और सहयोग सहित कुछ अच्छी विशेषताएं हैं।

IMO Arduino सिमुलेशन और क्षमता प्रभावशाली और सहज है।


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

मैंने इसे एक त्वरित प्रयास दिया और इसे मुफ्त उत्पाद के लिए बहुत प्रभावशाली पाया । मैं सिमुलेशन यथार्थवाद के संदर्भ में इसकी सीमाओं को नहीं जानता, लेकिन संपादक बहुत ही अनुकूल है और सिर्फ सही पिन और ब्लिंकिंग लूप के साथ स्वचालित रूप से बनाए गए कोड में एक लीड लगा रहा है!
हेल्टनबाइकर

यहां तक ​​कि मेरी पसंद 123d होगी, लेकिन इस साइट के बारे में मेरी केवल शिकायत है कि वे नए घटकों को नहीं जोड़ते हैं। यह वास्तव में बहुत अच्छा होगा यदि वे अपनी सूची में कुछ नए घटक रख सकते हैं
केडी।

2
सर्किट के इलेक्ट्रॉनिक लैब का हिस्सा ।io साइट tinkercad.com पर स्थानांतरित हो गई है , जहां आप इसे सर्किट के तहत पा सकते हैं ।
सिग्यिफ़ जूल

1
मैंने इसे संपादित किया है और लिंक अपडेट किए हैं।
sa_leinad

40

इलेक्ट्रॉनिक्स सिमुलेटर की दुनिया में बहुत सारे विकल्प मौजूद हैं, लेकिन सर्किट.आईओ उर्फ ​​टिंकरकैड संभवत: सबसे बहुमुखी है।

  • आप अपने सर्किट को एक आभासी ब्रेडबोर्ड पर लिख सकते हैं जो वास्तविक जैसा दिखता है।
  • आप वास्तव में एक एलईडी ब्लिंकिंग देख सकते हैं या अमूर्त तरंगों के साथ संघर्ष करने के बजाय वास्तविक समय सिमुलेशन के दौरान एक बटन दबा सकते हैं।
  • आप डिजिटल उपकरणों को 555 टाइमर या शिफ्ट रजिस्टरों जैसे (इंटरेक्टिव) एनालॉग घटकों जैसे प्रतिरोधों और एल ई डी के साथ जोड़ सकते हैं।
  • आप एक Arduino प्रोग्राम कर सकते हैं और अपने एनालॉग सर्किट के चारों ओर एक साथ माइक्रोकंट्रोलर का अनुकरण कर सकते हैं।
  • आप एक Arduino को डीबग कर सकते हैं: जब सिम्युलेटर आपके ब्रेकपॉइंट तक पहुंचता है, तो सिमुलेशन को रोक दिया जाता है और आप आसानी से अपने कोड में प्रत्येक चर और आपके सर्किट में प्रत्येक वोल्टेज या वर्तमान की जांच कर सकते हैं।
  • आप UART, I2C और SPI जैसे विभिन्न संचार प्रोटोकॉल का उपयोग और निरीक्षण कर सकते हैं।
  • आप ड्राइवर कोड में एक ब्रेकपॉइंट लगाकर I2C अनुक्रम के बीच में सिमुलेशन को रोक सकते हैं (उदाहरण के लिए 2K के लिए नियमित सेवा बाधित)
  • यह मुफ़्त है!

उदाहरण

यह एक उदाहरण सर्किट है जिसमें आईआर रिमोट और एक एलसीडी स्क्रीन है।

अस्वीकरण: हम 123D सर्किट के निर्माता हैं


1
यह Arduino IDE के साथ कैसे खेलता है ? यह फ़्लैश, डिबग, आदि के लिए उपलब्ध होगा?
रैल्वव

14

ध्यान रखें कि कोई भी सिम्युलेटर वास्तविक जीवन की स्थितियों को पुन: पेश नहीं करेगा। कोड या इलेक्ट्रॉनिक्स के साथ समस्याओं के बारे में Arduino मंच पर बहुत सारे पद हैं, जो कुछ सूक्ष्म हो जाते हैं, जैसे:

  • समय संबंधी समस्याएं
  • दौड़ की स्थिति (संबंधित / आश्रित घटनाएँ हमेशा एक ही क्रम में नहीं हो रही हैं)
  • वोल्टेज का स्तर, जैसे; फ्लोटिंग इनपुट पिन
  • ड्राइविंग मोटर्स जो Arduino वोल्टेज को पर्याप्त रूप से गिराते हैं जो इसे रीसेट करता है
  • कैपेसिटर्स का डिकूपिंग न होना
  • इनपुट पिन एक "अपरिभाषित" स्थिति में है (जैसे कि एक पिन पर 2.5V जहां 2 या उससे कम V कम है और 3V या अधिक है)
  • बाधा हैंडलर के साथ समस्याएं, जैसे कि चर को अस्थिर नहीं घोषित किया जा रहा है
  • मोटरों पर फ्लाईबैक डायोड नहीं होने के कारण वोल्टेज स्पिक
  • 10 से अधिक एलईडी को एक बार रीसेट करने पर प्रोसेसर चालू हो जाता है क्योंकि वर्तमान ड्रॉ उस राशि से अधिक होता है जो हार्डवेयर आपूर्ति कर सकता है
  • केवल µS उपलब्ध होने पर बाधा को संसाधित करने के लिए 10 µS लेने में बाधा डालने वाले हैंडलर।

उनके स्वभाव से सिमुलेटर इस सब को पुन: उत्पन्न नहीं कर सकते हैं। यहां तक ​​कि अगर वे कर सकते हैं, तो क्या आप "मोटर्स से यादृच्छिक शोर सम्मिलित करें" विकल्प को टॉगल करने के लिए सोचेंगे?


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


मज़े और अपने Arduino के साथ प्रयोग करने का आनंद लें!


13

आप Arduino, PIX, PIXACE और अन्य बोर्डों को डिजिटल, एनालॉग और सीरियल I / O के साथ अनुकरण करने के लिए येनका (घरेलू उपयोग के लिए मुफ्त) का उपयोग कर सकते हैं । यह बहुत सारे घटक और नमूना परियोजनाएं प्रदान करता है।

स्क्रीनशॉट:

येनका अरुडिनो अनुकरण


क्या इसे Arduino IDE से प्रोग्राम किया जा सकता है ?
rrallvv

12

हां, आप अपना कोड अनुकरण करने के लिए प्रोटीज आईएसआईएस का उपयोग करने की कोशिश कर सकते हैं ...

Arduino के पूर्ण अनुकरण के लिए, VBB (वर्चुअल ब्रेडबोर्ड) नामक एक शेयरवेयर कार्यक्रम है , मैंने इसे भी आज़माया और यह अच्छा था।

संपादित करें: आप यहां मेरे विस्तृत ट्यूटोरियल की जांच कर सकते हैं कि प्रोटीज आईएसआईएस पर कैसे अनुकरण किया जाए


9

मेरा मानना ​​है कि इस वेबसाइट में उनके मूल्य और उपलब्धता के साथ-साथ एमुलेटर और सिमुलेटर दोनों की एक सूची है।

अपडेट करें:

चूँकि कुछ उपयोगकर्ताओं ने उल्लेख किया है कि उस वेबसाइट में लिंक टूटे हुए हैं, यहाँ मुझे मिले एमुलेटर का चयन है। ध्यान दें कि कुछ विवरण उल्लिखित लिंक से लिए गए हैं:

  • एमुलिनो : अर्लीनो -विशिष्ट MCUs का अनुकरण करने वाले प्रारंभिक विकास में एक खुला स्रोत लिनक्स आधारित सॉफ्टवेयर है।

  • Emulare : एक सामान्य उद्देश्य हार्डवेयर एमुलेटर है। इसका उद्देश्य एम्बेडेड सॉफ्टवेयर विकास के लिए इलेक्ट्रॉनिक सिमुलेशन बनाने के लिए एक केंद्रीय इंटरफ़ेस प्रदान करना है। वर्तमान में एमुलेर माइक्रोकंट्रोलर्स की ATMega लाइन पर ध्यान केंद्रित करता है (Arduino UNO में ATMega प्रोसेसर है)।

  • SimAVR : लिनक्स के लिए एक नया AVR सिम्युलेटर है, या एवर -जीसीसी का उपयोग करने वाला कोई भी प्लेटफ़ॉर्म। सिम्युलेटर एलएलएफ फाइलों को सीधे लोड करता है, और अनुकरण कोड को सीधे-सीधे खंड का उपयोग करके निर्दिष्ट करने का एक तरीका भी है। यह कई ATMega प्रोसेसर के अनुकरण का समर्थन करता है और यह उल्लेख किया जाता है कि नए लोगों को जोड़ना आसान है।

  • एमटेल स्टूडियो : यह शब्द एमुलेशन का उल्लेख नहीं करता है, लेकिन यह एक परिष्कृत आईडीई है जो कई प्लेटफार्मों विशेष रूप से ल्यूडिनो के लिए आपके कोड को डिबग करता है। Atmel स्टूडियो 7 में Arduino विकास के माहौल में बनाई गई परियोजनाओं का एक-क्लिक आयात सहज है। आपके स्केच, संदर्भ सहित किसी भी पुस्तकालय, को C ++ प्रोजेक्ट के रूप में स्टूडियो 7 में आयात किया जाएगा। एक बार आयात होने के बाद, आप स्टूडियो 7 की पूरी क्षमताओं का लाभ उठा सकते हैं और अपने डिजाइन को ठीक कर सकते हैं। Atmel स्टूडियो 7 पूरी तरह से Arduino Zero बोर्ड पर शक्तिशाली एम्बेडेड डिबगर का समर्थन करता है। अन्य Arduino बोर्डों के लिए, डिबग कनेक्टर को उजागर करने वाले ढाल-एडाप्टर्स उपलब्ध हैं, या Atmel HW इको-सिस्टम का पूरी तरह से लाभ उठाने के लिए कई उपलब्ध Xplained-Mini / PRO बोर्डों में से एक पर स्विच करें।

आप अपने कोड का परीक्षण करने के लिए ईज़ीईडीए जैसे सिमुलेटर का उपयोग कर सकते हैं और ज्यादातर मामलों में इसे डिवाइस पर चलाने में सक्षम हो सकते हैं। लेकिन ध्यान दें कि इलेक्ट्रॉनिक घटकों की प्रकृति को देखते हुए, आपको अपेक्षित परिणाम प्राप्त करने के लिए बाहरी प्रतिरोधक, कैपेसिटर आदि प्रदान करने पड़ सकते हैं।


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

मैं @totymedli से सहमत हूं - अगर वह लिंक मृत हो जाता है तो उत्तर बेकार हो जाता है। कृपया, कम से कम, उल्लिखित एमुलेटर और वर्तमान मूल्य को संक्षेप में प्रस्तुत करें। यदि आप मदद करते हैं, तो आप बुलेट पॉइंट बनाने के लिए तारांकन के साथ लाइनें शुरू कर सकते हैं।
निक गैमन

7

वर्चुअलब्रेडबोर्ड में एक नया VBB4Arduino 'दो Arduino' संस्करण है जिसमें BOTH एक JVM Arduino एमुलेटर और AVR इंस्ट्रक्शन सेट सिम्युलेटर शामिल हैं, जो लगभग सभी Arduino उदाहरणों को कवर करते हैं और परिधीय हार्डवेयर का एक गुच्छा - LCD's, WS2812 Neo LEDS, Motors, सर्वो का है। , तर्क विश्लेषक और अधिक।

http://www.virtualbreadboard.com

अस्वीकरण: मैं वर्चुअल ब्रेडबोर्ड का लेखक हूं


6

Arduino के लिए सिम्युलेटर का प्रयास करें - यह सबसे अच्छा है लेकिन तब हम पक्षपाती हैं क्योंकि हम विकास टीम का हिस्सा हैं। हर कोई $ 19.99 का भुगतान नहीं करना चाहता है, हालांकि पिछले कुछ वर्षों में लगभग 5k Arduino उपयोगकर्ता हैं। Arduino के लिए सिमुलेटर का एक मुफ्त संस्करण है जो 45 दिनों या 100 स्केच लोड और 200 लाइनों के लिए अधिकतम चलता है। यह कोशिश करो और फिर खरीद अगर आप इसे बर्दाश्त कर सकते हैं और / या अगर यह सार्थक लगता है।

अगर कुछ सही नहीं है या जिसे बेहतर बनाया जा सकता है, तो हमें बताएं - बाकी सभी करते हैं और है, यही वजह है कि Arduino के लिए सिमुलेटर 99% उपयोगकर्ता विचारों और बग रिपोर्ट द्वारा बनाया गया है।

इसके अलावा, केवल एक और कार्यक्रम हमने कोशिश की है जो गुणवत्ता में करीब आता है, वह है प्रोटियस लेकिन यह एक पूर्ण पीसीबी डिजाइन स्टूडियो है और बहुत महंगा लगता है - यानी $ 20 से अधिक। और हम कीमत को $ 200 तक बढ़ाने के लिए हाल के उपयोगकर्ता अनुरोध को अनदेखा करने की योजना बनाते हैं।


5

आप मेरे सिम्युलेटर का उपयोग कर सकते हैं। यह पीएलसी जैसे अनुप्रयोगों के लिए विशेष रूप से उपयुक्त है, जहां मल्टीटास्किंग को परस्पर सर्किट जैसी वस्तुओं के चक्रीय मूल्यांकन द्वारा प्राप्त किया जाता है: टाइमर, मार्कर, लाचेस, ओनेशोट्स और रजिस्टर्स। आप इसे अपने नियंत्रित सिस्टम को अनुकरण करने के लिए उपयोग कर सकते हैं, साथ ही डाउनलोड में उदाहरणों से स्पष्ट हो जाता है। इसमें मामूली विज़ुअलाइज़ेशन कैपेसिटी है, टाइमिंग चार्ट बना सकते हैं, और आपको रनिंग सिमुलेशन के दौरान वास्तविक समय में सभी चर को एक्सेस करने और बदलने के लिए अनुमति देता है। इसके अलावा, आप समय फ्रीज कर सकते हैं। जब आप अपने नियंत्रण के व्यवहार से संतुष्ट होते हैं तो यह एक वास्तविक Arduino पर अपलोड होने वाला C कोड उत्पन्न करता है।

https://pypi.python.org/pypi/SimPyLC


1

एक तरह से मैं अपना कोड लिख सकता हूं और डेस्कटॉप कंप्यूटर का उपयोग करके उसका अनुकरण / परीक्षण कर सकता हूं

यदि आप डेस्कटॉप कंप्यूटर का उपयोग करके "यूनिट टेस्ट" करने में सक्षम हैं, तो मैं एक पुस्तकालय की पेशकश कर सकता हूं जिसे मैंने लिखा है arduino_ci

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

unittest(pin_history)
{
  GodmodeState* state = GODMODE();
  int myPin = 3;
  state->reset();            // pin will start LOW
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, HIGH);

  // pin history is queued in case we want to analyze it later.
  // we expect 6 values in that queue.
  assertEqual(6, state->digitalPin[1].size());
  bool expected[6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH};
  bool actual[6];

  // convert history queue into an array so we can verify it.
  // we expect to find 6 values: the 5 we set, plus the initial LOW
  // and this is where/how we assert that
  int numMoved = state->digitalPin[myPin].toArray(actual, 6);
  assertEqual(6, numMoved);

  // verify each element
  for (int i = 0; i < 6; ++i) {
    assertEqual(expected[i], actual[i]);
  }
}

व्यवहार में, आप शायद digitalWriteसीधे फ़ंक्शन को कॉल नहीं कर रहे हैं - आप अपनी लाइब्रेरी में एक फ़ंक्शन कहेंगे, फिर सत्यापित करें कि "विश्व स्थिति" ( GODMODEनिर्माण द्वारा यहां का प्रतिनिधित्व किया गया है ) मेल खाता है जो आपने अपने पुस्तकालय से अपेक्षा की थी।


0

हाँ आप कर सकते हैं, और काफी आसानी से। TinkerCAD नामक एक अद्भुत ऑनलाइन सिमुलेशन (पूरी तरह से मुक्त) है । इसमें एक उत्कृष्ट ब्रेडबोर्ड सिमुलेशन है, जिसमें ट्रांजिस्टर, एलईडी, आईसी और अरुडिनो जैसे भाग हैं। आप Arduino को प्रोग्राम कर सकते हैं और इसे सभी एक लाइव सिमुलेशन में चला सकते हैं जिसमें इंटरएक्टिव इनपुट (पुशबुटन, डीआईपी स्विच, आदि) शामिल हैं।


[संपादित करें: निम्न पाठ से तात्पर्य कार्यक्षमता से है जिसे सर्कुलेट में स्थानांतरित किया गया है । अर्थात् ईगल पीसीबी ]

वह सब कुछ नहीं हैं। इसमें आपके सर्किट के लिए एक अलग टैब स्कीमाटिक्स भी शामिल है, और आपके ब्रेडबोर्ड सर्किट के पीसीबी डिजाइन के लिए एक और टैब! या, आप सिर्फ खरोंच से अपनी योजना बना सकते हैं और वहां से अपना पीसीबी बना सकते हैं।

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

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