C / C ++ के बजाय Python का उपयोग करके Arduino का प्रोग्रामिंग करना


36

मैं सी लैंग्वेज के साथ बहुत कुशल नहीं हूं और मैं सोच रहा था कि क्या कोई ऐसा तरीका है जिसमें अजगर को एक Arduino प्रोग्राम करने के लिए इस्तेमाल किया जा सकता है। यह सबसे अधिक संभावना एक अलग आईडीई की आवश्यकता होगी ताकि वे स्वयं स्क्रिप्ट को डीबग करने में सक्षम हो सकें।


2
Arduino प्रोग्रामिंग के लिए युगल विकल्प हैं, उनमें से एक बिटलैश है और एक बुनियादी दुभाषिया है । जब आप इंटरनेट पर खोज करते हैं तो कुछ विकल्प होते हैं, लेकिन C / C ++ सीखने से अंत में भुगतान करना होगा।
जिप्पी

धन्यवाद, मैं वास्तव में सी में थोड़ा बेहतर हो रहा हूं, सिर्फ उतना ही अच्छा नहीं है जितना मैं पायथन के साथ हूं।
JVarhol


क्या रास्पबेरी पीआई एक विकल्प है?
पॉल

जवाबों:


26

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

आपका सबसे अच्छा दांव शायद देशी मशीन कोड (जो C / C ++ काम करता है) के लिए पायथन स्क्रिप्ट को संकलित करने का एक तरीका ढूंढ रहा है। मेरा मानना ​​है कि अन्य प्लेटफार्मों के लिए ऐसा कुछ करने के लिए आसपास की परियोजनाएं हैं, लेकिन (जहां तक ​​मुझे पता है) कोई भी ऐसा नहीं है जो इसे सफलतापूर्वक Arino अभी तक के लिए करता है।

आपको स्टैक ओवरफ्लो में इस सवाल पर कुछ और उपयोगी जानकारी मिल सकती है: क्या एक Arduino (Uno) पर पायथन कोड को "संकलन" करने का एक तरीका है


15

हाँ, यह (कुछ) संभव है कि पायथन का उपयोग करके Arduino को प्रोग्राम किया जा सके। गिथब पर इस तरह की एक परियोजना पायथन अरुडिनो प्रोटोटाइप एपीआई 2 है । यह डिजिटल I / O और एनालॉग I / O जैसी बहुत बुनियादी कार्यक्षमता प्रदान करता है।

यह बहुत ही सरल परियोजनाओं के लिए इस्तेमाल किया जा सकता है।


* यह प्रोजेक्ट सीरियल कनेक्शन का उपयोग करके "प्रोग्रामिंग" बोर्ड पर एक हैक का एक सा है। यह सीरियल कनेक्शन पर आदेशों को बोर्ड पर चलने वाले एक स्केच पर भेजता है जो तब पायथन कमांड को "निष्पादित" करता है।


तो बोर्ड को वास्तव में कोड चलाने के लिए कंप्यूटर में प्लग करना होगा?
JVarhol

@ जेरहोल अजीब तरह से, हाँ।
आशीष्र

1
खैर, वह बहुत भद्दा है। रास्पबेरी पाई का उपयोग करना आसान होगा।
JVarhol

8

एक परियोजना है जो Arduino मेगा सहित माइक्रो-नियंत्रकों के लिए एक पायथन वर्चुअल मशीन लाती है ।

यहां अर्दुनियो मेगा README का एक उद्धरण है , जो यह महसूस करता है कि यह कैसा हो सकता है (हालांकि, मैंने परीक्षण नहीं किया है!):

आईपीएम का उपयोग कर एक उदाहरण सत्र निम्नलिखित है ::

ipm> import avr, sys
ipm> avr.ddrA(0xff)
ipm> avr.portA(0)       # Pins 22-29 all at 0 V
ipm> avr.portA(0xa5)
ipm> sys.heap()
(2622, 7424)

3

मैंने आर्डिनो पर पिंस को नियंत्रित करने में बड़ी सफलता के साथ पाइसेरियल का उपयोग किया है। आपका कार्य केंद्र (लैपटॉप, आदि) एक पायथन स्क्रिप्ट चलाता है जो तब आर्डिनो में वास्तविक समय में संचार करता है।

यह बिल्कुल समान नहीं है कि स्क्रिप्ट को सीधे Arduino पर चलाया जा रहा है, लेकिन मुझे लगता है कि Arduino को संभाल सकता है (कुछ संगीत विश्लेषण, REST एपी, आदि को मारते हुए) मैं थोड़ा बहुत कर रहा था।


3

विचार करने के लिए एक और विकल्प Arduino युन है । AVR चिप के अलावा जो सबसे अधिक Arduinos के पास है, इसमें एक MIPS चिप लिनक्स भी शामिल है। चूंकि यह लिनक्स है, आप आसानी से अजगर कोड चला सकते हैं, और किसी भी शुद्ध-पायथन पैकेज को आसानी से स्थापित किया जा सकता है।

हालांकि, सभी दिलचस्प इनपुट / आउटपुट क्षमता AVR चिप पर है, MIPS चिप पर नहीं। Autobahn और LininoIO जैसी परियोजनाएं AVR चिप पर एक विशेष कार्यक्रम चलाकर इस समस्या को हल करती हैं जो MIPS चिप से निर्देश के तहत I / O संचालन करती है।


0

हम जानते हैं कि यह Arduino प्रोग्रामिंग और सामान्य रूप से एम्बेडेड दुनिया में एक खुला मुद्दा है। बाजार पर माइक्रोपीथॉन जैसे विभिन्न समाधान उपलब्ध हैं लेकिन उनमें से ज्यादातर विशिष्ट बोर्डों के लिए समर्पित हैं और सिस्टम को वास्तविक समय तक रखने की अनुमति नहीं देते हैं। हम एक समाधान पर काम कर रहे हैं! VIPER Arduino DUE और सभी ARM 32 बिट आर्किटेक्चर के लिए एक पायथन वर्चुअल मशीन है जो एक रियल-टाइम ऑपरेटिंग सिस्टम के शीर्ष पर चलता है। इसका मतलब यह है कि आप पायथन स्क्रिप्ट विकसित कर सकते हैं जो Arduino DUE, UDOO, स्पार्क (सभी बोर्ड) और नए ST न्यूक्लियो बोर्ड पर भी एक्सटेन्ड की जा सकती हैं। इसके अलावा अगर आपको उच्च प्रदर्शन की आवश्यकता है और आप C में कुशल हैं तो आप VIPER के लिए वास्तविक समय मॉड्यूल विकसित कर सकते हैं जिसे पायथन स्क्रिप्ट द्वारा कॉल और प्रबंधित किया जा सकता है।

आप यहाँ कार्रवाई में VIPER देख सकते हैं http://bit.ly/kickviper


यह एक खुला मुद्दा नहीं है। अजगर एक भयानक इंडेंटेशन भाषा है।
user2497

0

आप C (AVR) से सीख सकते हैं कि सेंसर कैसे काम करते हैं लेकिन इसके लिए अधिक समय चाहिए। Arduino के लिए Arduino IDE कोड और पायथन कोड चीजों को सरल बनाने के लिए C कोड फ़ंक्शन का उपयोग करता है। Python और Arduino IDE अगर फर्मेटा का उपयोग करते हैं तो वे धारावाहिक संचार का उपयोग करते हैं और आपको लगता है कि आप स्वयं को कोड करते हैं।


-1

हाँ। पाइथन का उपयोग एक अरुडिनो को प्रोग्राम करने के लिए किया जा सकता है, बस पाइफिरमाटा आयात करके, जो पाइरोन के साथ आर्डिनो को इंटरफेस कर सकता है।


सच। लेकिन वह नहीं है जो ओपी के लिए पूछ रहा है।
सेमपाइक्सुबा

-8

मुझे डर है कि Arduino IDE C / C ++ भाषा का उपयोग नहीं करता है। यह प्रोसेसिंग आईडीई से लिया गया है और इसमें सी / जावा-जैसे सिंटैक्स का सरलीकरण किया गया है।


9
Arduino IDE C ++ है: यह कुछ न्यूनतम प्रीप्रोसेसिंग ("#include <Arduino.h>" और आपके द्वारा निर्धारित फ़ंक्शन के लिए घोषणाएं करता है), फिर एक नियमित C ++ कंपाइलर (GNG g ++) को कॉल करता है।
एडगर बोनट

यह प्रोग्रामिंग भाषा के बजाय आईडीई ही है जो प्रसंस्करण से ली गई है।
पीटर ब्लूमफील्ड

वस्तुतः कोई भी Arduino पर IDE को लागू करने की परवाह नहीं करता है। बिंदु को पायथन लिखने में सक्षम होना है जो कि अरुडिनो पर कुशलतापूर्वक निष्पादित होता है।
wallyk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.