एक वायरलेस प्रसारण के साथ एक साथ कई Arduinos प्रोग्रामिंग


9

मेरे पास कई माइक्रोकंट्रोलर-आधारित डिवाइस होंगे जो एक दूसरे से स्वतंत्र होंगे, लेकिन सभी एक ही प्रोग्राम चलाएंगे।

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

मैं किस बारे में बात कर रहा हूं, इसका बेहतर विचार प्राप्त करने के लिए, कृपया इस वीडियो को देखें । यह Atmel माइक्रोकंट्रोलर्स के साथ हासिल किया गया था, लेकिन एक कस्टम-निर्मित, गैर-अरुडिनो बूटलोडर।

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

मैं सिर्फ उन लोगों से कुछ दृष्टिकोण प्राप्त करना चाहता था जो Arduinos से परिचित हैं कि क्या वे सोचते हैं कि मेरे कूदने से पहले यह संभव है।


2
इस वेबसाइट की जाँच करें lowpowerlab.com/blog/category/moteino/wireless-programming
Mikael Patel

आप अपने स्केच को किस प्लेटफॉर्म से अपलोड कर रहे हैं?
ग्रीनऑनलाइन

जवाबों:


2

टीएल; डीआर -

आपके पास वायरलेस अपलोडिंग के लिए या तो BlueTooth या XBee (दूसरों के बीच: IR, उदाहरण के लिए?) के विकल्प हैं। हालाँकि, मेरा मानना ​​है कि एक समय में केवल एक ही बोर्ड को अपलोड किया जा सकता है, इसलिए आपको एक समय में एक बोर्ड के माध्यम से साइकिल चलाना होगा, एक साथ कई ATMegas / Arduinos प्रोग्रामिंग देखें ।

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

आप उन सभी को एक बार में प्रोग्राम नहीं कर सकते। लेकिन आप उन्हें कुछ स्वचालित तरीके से एक-एक करके प्रोग्राम कर सकते हैं।


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

वायरलेस अपलोड हार्डवेयर

यदि आप अपने स्केच को वायरलेस रूप से अपलोड करने के लिए BlueTooth का उपयोग करते हैं, तो यह समाधान उपयोग के लिए हो सकता है, USB केबल से Arduino पर वायरलेस अपलोड प्रोग्राम । ध्यान दें कि यह समाधान पिन D0 और D1 को जोड़ता है:

लेकिन सावधान रहें कि यह शायद कुछ परियोजनाओं के साथ संगत नहीं है जिन्हें हार्डवेयर UART TX, RX के रूप में D0 और D1 का उपयोग करने की आवश्यकता है। क्योंकि वायरलेस प्रोग्रामर को दो पिनों पर स्थायी रूप से कब्जा करने की आवश्यकता होती है।

इसे देखते हुए, यह एक कस्टम Arduino Wireless Programmer को नियुक्त करता है , जिससे आप अपने प्रश्न का जिक्र कर रहे होंगे। हालांकि, नाम से मूर्ख मत बनो, यह केवल एक ब्लूटूथ ढाल है। यह मूल रूप से एक BT HC-05 (या समान) डिवाइस है, जिसे Arduino पर बोल्ट किया गया है, ब्लूटूथ वायरलेस अपलोड भी देखें ।

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

हालांकि, इसके अलावा, आपको बीटी उपकरणों के स्विचिंग को स्वचालित करने की आवश्यकता होगी, उपयुक्त पोर्ट का चयन करें और प्रत्येक Arduino को अपलोड करें, क्योंकि आप स्केच को प्रसारित करने में सक्षम नहीं हैं । (अगर मैं गलत हूं, तो क्या कोई मुझे सही करेगा)।

पोर्ट का चयन करना और स्केच अपलोड करना

आप प्रत्येक अपलोड से पहले उस पोर्ट का चयन करने के लिए Arduino IDE के कमांड लाइन संस्करण के साथ बीटी डिवाइस से जुड़े पोर्ट का चयन कर सकते हैं। आप ऐसा कैसे करते हैं जिसके लिए आप जिस प्लेटफ़ॉर्म पर संकलन कर रहे हैं, उसके लिए कमांड लाइन Arduino को संकलन और डाउनलोड करना देखें। यह पर्यावरण चर का उपयोग करके किया जा सकता है ARDUINO_COMPORT(संभवतः विंडोज कमांड लाइन के निर्माण से बाहर देखें ), या आर्डिनो सीएमडी लाइन विकल्प --port <portname>( मैन पेज देखें )। स्केच तब विकल्प का उपयोग करके अपलोड किया जाएगा --upload <filename>। तुम एक झपट्टा में यह कर सकता है:

arduino --upload --port <portname> FILE.ino

ध्यान दें कि विंडोज पर आपको उपयोग करना चाहिए arduino_debug.exe

या आप इनो का उपयोग कर सकते हैं , यदि आप विंडोज पीसी का उपयोग नहीं कर रहे हैं ... लेकिन वह अगला हिस्सा बना सकता है, जो कि जरूरत से ज्यादा जटिल लूपिंग से निपटता है।

प्रत्येक Arduinos (यानी बीटी उपकरणों) का चयन

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

OS X पर आप AppleScript का उपयोग करने के लिए सबसे अच्छा हो सकता है , MacOSX पर कमांड लाइन के माध्यम से ब्लूटूथ डिवाइस (iPhone) से कनेक्ट देखें , क्योंकि बीटी को नियंत्रित करने के लिए cmd लाइन टूल थोड़ा डरावना लगता है - वहाँ BlueUtil है , देखें ब्लूटूथ वायरलेस को कैसे नियंत्रित करें कमांड लाइन से रेडियो? लेकिन यह केवल बीटी को बंद करने के लिए प्रकट होता है। हालांकि, Arduino IDE नियंत्रण स्क्रिप्ट के बाकी हिस्सों पर AppleScript को खींचना जल्दी चीजों को और अधिक जटिल बना देता है, हालांकि आप बस AppleScript के भीतर Arduino कमांड डाल सकते हैं, मुझे लगता है।


0

आप WiFi पर Arduino को प्रोग्राम करने के लिए ESP-LINK का उपयोग कर सकते हैं।

ESP8266 सरल सस्ता वाई-फाई MCU है जिसे Arduino IDE के साथ प्रोग्राम किया जा सकता है।

ईएसपी-लिंक ईएसपी 8266 के लिए फर्मवेयर है जो ईएसपी को सीरियल कनेक्शन (यूएसबी) की तरह Arduino के लिए बनाता है।

फर्मवेयर यहां ईएसपी-लिंक ईएसपी 8266 पर पाया जा सकता है ।


0

कुछ इस तरह का उपयोग कर सकते हैं । यह NRF24L01 + रेडियो मॉड्यूल के माध्यम से एक Arduino के कोड को अपडेट करने के लिए एक कस्टम बूटलोडर है। *

* यह केवल लिनक्स मशीनों के तहत काम करता है।

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