क्या मैं अपने Arduino को एक wifi शील्ड के माध्यम से रिप्रोग्राम कर सकता हूँ?


9

मेरे Arduino मेरे मछलीघर पर कुछ रोशनी के लिए झुका हुआ है और मैं अपने लैन पर एक वेब ब्राउज़र से उन्हें नियंत्रित कर सकता हूं। मुझे आश्चर्य है कि अगर मैं Arduino पर प्रोग्राम को USB के माध्यम से मशीन में प्लग किए बिना संशोधित कर सकता हूं जो थोड़ा असुविधाजनक होगा। कोई रास्ता होना चाहिए जिससे मैं वाईफाई कनेक्शन का लाभ ले सकूं।

मैंने प्रोग्राम को वायरलेस तरीके से भेजने के लिए पोलोलू के विक्सल शील्ड का इस्तेमाल किया है (यह सिर्फ एक सीरियल पोर्ट रेडियो के रूप में काम करता है) लेकिन यह मेरे वाईफाई शील्ड से अलग तकनीक है।

क्या कोई ऐसा तरीका जानता है जो मैं वाईफाई के माध्यम से कर सकता हूं? शायद अगर मैं वाईफाई शील्ड में फ्लैश मेमोरी में नया कोड अपलोड करता हूं, तो यह फ्लैश मेमोरी से बूट लोड कर सकता है? मुझे यकीन नहीं है कि यह कैसे करना है या यदि यह भी संभव है।

शायद एक पूरी तरह से अलग दृष्टिकोण सरल होगा?

जवाबों:


8

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

ध्यान दें कि आपको यह करना होगा चाहे आप स्केच को वाईफाई शील्ड पर रख रहे हों (जो मुझे लगता है कि मुश्किल होगा: मुझे यकीन नहीं है कि यह बिल्कुल संभव है) या स्केच को सीधे अपने Arduino पर अपलोड करना है: बूटलोडर को स्केच डेटा को पढ़ने के लिए ढाल के साथ संवाद करने की आवश्यकता होगी।


अपने Arduino को आसानी से वायरलेस तरीके से रीप्रोग्राम करने का एक तरीका है, और वह है ब्लूटूथ। आपको एक ब्लूटूथ मॉड्यूल प्राप्त करने की आवश्यकता होगी (मुझे नहीं पता है कि क्या एक ब्लूटूथ ढाल काम करेगा) और इसे हार्डवेयर सीरियल पोर्ट से कनेक्ट करें । बूटलोडर जो आपके Arduino पर है, पहले से ही धारावाहिक पर बात कर सकता है, ताकि समस्या हल हो जाए। आपको (संभावित) दो अन्य समस्याओं का समाधान करना होगा:

  • ईबे पर आपको मिलने वाले सबसे कम लागत वाले ब्लूटूथ मॉड्यूल 3.3V हैं। इसका मतलब है कि आपको उन्हें 3.3V बिजली की आपूर्ति करनी होगी, और आपके Arduino से भेजने वाली लाइन को 5V से 3.3V तक वोल्टेज-शिफ्ट करना होगा। आप 5V संचार के लिए बनाए गए ब्लूटूथ मॉड्यूल को खरीदकर पहली (बिजली) उप-समस्या को हल कर सकते हैं, या यदि आपके Arduino में 3V3 पावर का उपयोग करके ब्लूटूथ मॉड्यूल को पावर किया जा सकता है। एक 5V तैयार मॉड्यूल भी दूसरी समस्या हल करता है; वैकल्पिक रूप से, आप इस प्रश्न में वर्णित किसी भी तकनीक का उपयोग करके अपने Arduino से 5V आउटपुट को वोल्टेज-शिफ्ट कर सकते हैं ।
  • अपने Arduino को स्वचालित रूप से प्रोग्राम करने के लिए, Arduino को स्केच अपलोड होने से ठीक पहले रीसेट करने की आवश्यकता होती है: जब Arduino सामान्य रूप से चलता है तो बूटलोडर सक्रिय नहीं होता है। Arduino को रीसेट करना बूटलोडर को सक्रिय करता है, नए स्केच के अपलोड को सक्षम करता है। Arduino USB पर चतुराई से डिवाइस को रीसेट करने के लिए DTR लाइन का उपयोग करता है। हालाँकि, अधिकांश ब्लूटूथ सीरियल मॉड्यूल, केवल TS / RX प्रदान करते हैं, इसलिए आपको स्केच अपलोड करने के लिए मैन्युअल रूप से Arduino को रीसेट करना होगा, जब तक कि आप ब्लूटूथ मॉड्यूल पर कुछ सिग्नल आउटपुट नहीं पा सकते हैं जिसे आप रीसेट सर्किट से कनेक्ट करने के लिए मार्शेल कर सकते हैं ।

2

आज, मुझे एक ऐसे उत्पाद के बारे में पता चला जो इसे प्राप्त कर सकता है: ESP8266। यह आपको वाईफ़ाई कनेक्शन के माध्यम से अपने arduino को प्रोग्राम / रीप्रोग्राम करने की अनुमति देगा। विभिन्न कंपनियां विभिन्न ब्रेकआउट बोर्ड व्यवस्थाओं पर चिप के संस्करणों का उत्पादन करती हैं। विशेष रूप से, यह एक Arduino के लिए WiFi AVRISP बन सकता है।

आप Arduino SDK के साथ खुद ESP8266 को भी प्रोग्राम कर सकते हैं और इसकी बहुत शक्ति है।

ESP8266 और Arduino एसडीके के साथ कैसे जाना है, इसके अच्छे परिचय के लिए यहां देखें whatimadetoday (मेरी पोस्ट नहीं)। एक बार जब SDK ESP8266 प्रोग्राम करने के लिए सेट हो जाता है, तो आप IDE के उदाहरणों में ब्राउज़ कर सकते हैं और "Arduino_Wifi_AVRISP" पा सकते हैं।

आप लगभग $ 5- $ 15 तक की कीमतों के लिए बोर्ड पा सकते हैं।

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