विषयसूची:

ESP32 पर डीबगर का उपयोग कैसे करें: 11 कदम (चित्रों के साथ)
ESP32 पर डीबगर का उपयोग कैसे करें: 11 कदम (चित्रों के साथ)

वीडियो: ESP32 पर डीबगर का उपयोग कैसे करें: 11 कदम (चित्रों के साथ)

वीडियो: ESP32 पर डीबगर का उपयोग कैसे करें: 11 कदम (चित्रों के साथ)
वीडियो: How to use Visual Studio Code for Arduino? | in Hindi 2024, जुलाई
Anonim
ESP32 पर डीबगर का उपयोग कैसे करें
ESP32 पर डीबगर का उपयोग कैसे करें

क्या आपने कभी यह देखने के लिए अपने कोड के अंदर झांकना चाहा है कि यह ऐसा व्यवहार क्यों कर रहा है? परंपरागत रूप से ईएसपी 32 परियोजनाओं में, आपको यह पता लगाने के लिए अंतहीन प्रिंट स्टेटमेंट जोड़ना होगा कि क्या हो रहा था, लेकिन एक बेहतर तरीका है!

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

इस गाइड में मैं आपको हार्डवेयर सेटअप करने, सॉफ़्टवेयर सेटअप करने और डीबगर का उपयोग करने का एक सरल उदाहरण दिखाने के लिए दिखाऊंगा।

आपूर्ति

  • ESP-Prog - यह डिबगिंग के लिए आवश्यक बोर्ड है

    • ठीक वही जो मैंने खरीदा*
    • $5 सस्ता वाला, लेकिन मैंने इसका परीक्षण नहीं किया है*
  • एक ESP32 जो पिन 12, 13, 14, 15. को तोड़ता है

    • Adafruit पंख Huzzah32
    • D1 मिनी ESP32*
  • [वैकल्पिक] डिबग शील्ड मैं टिंडी पर बेचता हूं

    • पंख Huzzah32
    • D1 मिनी ESP32

* = संबद्ध लिंक

चरण 1: वीडियो देखें

Image
Image

मेरे पास इस विषय पर एक वीडियो है यदि आप इसे देखना चाहते हैं।

अपने चैनल पर मैं आमतौर पर ESP8266 और ESP32 आधारित वीडियो बनाता हूं, इसलिए यदि आप उनमें रुचि रखते हैं, तो कृपया इसे देखें!

चरण 2: हार्डवेयर - पुर्जे और वायरिंग

हार्डवेयर - पुर्जे और वायरिंग
हार्डवेयर - पुर्जे और वायरिंग
हार्डवेयर - पुर्जे और वायरिंग
हार्डवेयर - पुर्जे और वायरिंग
हार्डवेयर - पुर्जे और वायरिंग
हार्डवेयर - पुर्जे और वायरिंग

डिबगर का उपयोग करने के लिए आपको केवल एक ESP-Prog और लगभग किसी भी ESP32 बोर्ड की आवश्यकता होती है (पहले के चरण में इनके लिए लिंक)

ईएसपी-प्रोग:

ESP-Prog एक बोर्ड है जिसे ESP32 और ESP8266 चिप्स के निर्माता एस्प्रेसिफ द्वारा डिज़ाइन किया गया है। यह हमें डिबगर का उपयोग करने की अनुमति देने के लिए ESP32 के JTAG पिन से जुड़ता है। इसका उपयोग ESP32 बोर्डों की प्रोग्रामिंग के लिए भी किया जा सकता है, लेकिन मैं इसे यहां कवर नहीं करूंगा।

ईएसपी 32 बोर्ड:

JTAG पिन को तोड़ने के बाद आप इसके लिए मूल रूप से किसी भी ESP32 बोर्ड का उपयोग कर सकते हैं, जो कि 12, 13, 14 और 15 हैं। मैंने Adafruit पंख Huzzah32 और D1 मिनी 32 बोर्ड दोनों का परीक्षण किया है और वे दोनों ठीक काम करते हैं।

कृपया ध्यान दें कि आप डिबगर के साथ अपने स्केच में JTAG पिन का उपयोग कर सकते हैं, उदाहरण के लिए Huzzah32 बोर्ड की अंतर्निहित LED पिन 13 पर है, इसलिए आप डिबगिंग के दौरान इसका उपयोग नहीं कर सकते।

तारों:

ESP-Prog को ESP32 से जोड़ने के लिए, ऊपर दिए गए चित्र में दिए गए अनुसार वायरिंग गाइड का उपयोग करें। अपने ESP32 बोर्ड के वायरिंग आरेख के साथ जांचें कि क्या आप तुरंत उपयुक्त पिन नहीं देखते हैं क्योंकि कभी-कभी वे एक अलग नामकरण योजना का उपयोग करते हैं।

डिबग शील्ड्स:

ये वैकल्पिक हैं, लेकिन मैं Huzzah32 और D1 मिनी 32 के लिए टिंडी पर कुछ ढालें बेचता हूं जो ESP-Prog को जोड़ने को वास्तव में सरल बनाते हैं, यह एक IDC कनेक्टर के लिए उपयुक्त पिन को तोड़ता है जिसे आप सीधे कनेक्ट करने के लिए एक रिबन केबल का उपयोग कर सकते हैं। ढाल और ESP-Prog

चरण 3: हार्डवेयर - ड्राइवर सेटअप

हार्डवेयर - ड्राइवर सेटअप
हार्डवेयर - ड्राइवर सेटअप
हार्डवेयर - ड्राइवर सेटअप
हार्डवेयर - ड्राइवर सेटअप
हार्डवेयर - ड्राइवर सेटअप
हार्डवेयर - ड्राइवर सेटअप

डिबगिंग के लिए ईएसपी-प्रोग का उपयोग करने के लिए, हमें इसके लिए उपयुक्त ड्राइवर स्थापित करने की आवश्यकता है। PlatformIO इसके लिए यहां कुछ कदम प्रदान करता है, लेकिन मैं इस गाइड में विंडोज के चरणों के माध्यम से जाऊंगा।

  1. यहां से ESP-Prog के लिए FTDI ड्राइवर डाउनलोड और इंस्टॉल करें, इसे आसान बनाने के लिए "सेटअप निष्पादन योग्य" संस्करण को डाउनलोड करने के लिए दाईं ओर स्क्रॉल करें।
  2. Zadig टूल को यहां से डाउनलोड और इंस्टॉल करें, यह हमें डिबगिंग के लिए आवश्यक जेनेरिक ड्राइवर स्थापित करने की अनुमति देता है।
  3. ESP-Prog प्लग इन के साथ, Zadig. खोलें
  4. Zadig एप्लिकेशन में, "विकल्प" के अंतर्गत, "सभी उपकरणों की सूची बनाएं" पर क्लिक करें
  5. Zadig में ड्रॉप डाउन अब पॉप्युलेट हो जाएगा, "डुअल RS232-HS (इंटरफ़ेस 0)" विकल्प चुनें। सुनिश्चित करें कि यह इंटरफ़ेस 0 है जिसे आपने चुना है!
  6. हरे तीर के दाईं ओर, "WinUSB" का चयन किया जाना चाहिए, फिर "ड्राइवर बदलें" पर क्लिक करें

जब वह समाप्त हो जाए तो आपके ड्राइवरों को उपयोग के लिए सेटअप किया जाना चाहिए!

नोट: यदि आप ईएसपी-प्रोग के लिए उपयोग किए जा रहे यूएसबी पोर्ट को बदलते हैं, तो आपको चरण 3-6 फिर से दोहराना पड़ सकता है। यदि आपको डिबगिंग करते समय ऊपर चित्र में दिखाए गए अनुसार कोई त्रुटि मिलती है, तो आपको चरणों को दोहराने की आवश्यकता है।

चरण 4: सॉफ्टवेयर: PlatformIO स्थापित करना

सॉफ्टवेयर: PlatformIO स्थापित करना
सॉफ्टवेयर: PlatformIO स्थापित करना
सॉफ्टवेयर: PlatformIO स्थापित करना
सॉफ्टवेयर: PlatformIO स्थापित करना
सॉफ्टवेयर: PlatformIO स्थापित करना
सॉफ्टवेयर: PlatformIO स्थापित करना

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

डिबगर का उपयोग करने के लिए PlatformIO के लिए यह आवश्यक है। यदि आप PlatformIO से पहले से ही परिचित हैं, तो बेझिझक कुछ कदम आगे बढ़ें।

  • PlatformIO.org वेबसाइट पर दिए गए लिंक से विजुअल स्टूडियो कोड (वीएस कोड) डाउनलोड और इंस्टॉल करें
  • वीएस कोड खोलें, और एक्सटेंशन मेनू खोलें, बटन ऊपर की तस्वीर में हाइलाइट किया गया है
  • खोज में "प्लेटफ़ॉर्मियो" टाइप करें, इसे चुनें और इंस्टॉल पर क्लिक करें।

चरण 5: सॉफ्टवेयर: PlatformIO का उपयोग करना

सॉफ्टवेयर: PlatformIO का उपयोग करना
सॉफ्टवेयर: PlatformIO का उपयोग करना
सॉफ्टवेयर: PlatformIO का उपयोग करना
सॉफ्टवेयर: PlatformIO का उपयोग करना
सॉफ्टवेयर: PlatformIO का उपयोग करना
सॉफ्टवेयर: PlatformIO का उपयोग करना

PlatformIO का उपयोग करना Arudino IDE का उपयोग करने से थोड़ा अलग है, इसलिए इस चरण में हम एक बोर्ड पर चलने वाले उदाहरण को प्राप्त करने की मूल बातें कवर करेंगे।

एक उदाहरण खोलना:

  1. PlatformIO टूलबार पर होम बटन पर क्लिक करें (जैसा कि चित्र में दिखाया गया है)
  2. "प्रोजेक्ट उदाहरण" बटन पर क्लिक करें
  3. एस्प्रेसिफ 32 सेक्शन के तहत "Arduino-blink" उदाहरण का चयन करें

यह एक नमूना ब्लिंक प्रोजेक्ट खोलेगा। एक Arduino प्रोजेक्ट की तुलना में PlatformIO का लेआउट बहुत अलग है, तो आइए मूल बातें देखें।

कोड कहां है?

आपके प्रोजेक्ट के लिए कोड "src" फ़ोल्डर में संग्रहीत किया जाएगा, ब्लिंक उदाहरण के लिए आपको "blink.cpp" फ़ाइल दिखाई देगी, यह फ़ाइल Arduino प्रोजेक्ट में आपकी स्केच फ़ाइल (.ino) के समान है।

मैं अपने बोर्ड को कैसे कॉन्फ़िगर करूं?

आपके प्रोजेक्ट के कॉन्फ़िगरेशन को आपके प्रोजेक्ट में "platformio.ini" फ़ाइल के अंदर रखा गया है। यह वास्तव में Arduino IDE की तुलना में PlatformIO के बारे में मेरी पसंदीदा चीजों में से एक है, यह मेरे लिए कभी समझ में नहीं आया कि बोर्ड सेटिंग्स स्केच से बंधी नहीं थीं।

उदाहरण.ini में कई अलग-अलग बोर्डों के लिए परिभाषाएं हैं, लेकिन चीजों को सरल रखने के लिए आइए नीचे की दो परिभाषाओं को हटा दें।

मैं अपना COM पोर्ट कहां सेट करूं?

PlatformIO वास्तव में स्वचालित रूप से उपयोग करने के लिए सही COM पोर्ट खोजने का प्रयास करेगा, ताकि आप वास्तव में इसके लिए कुछ भी सेट न करने से दूर हो सकें। लेकिन अगर आपके पास कई COM पोर्ट हैं, जो आप डीबगर का उपयोग करते समय करेंगे, तो मुझे लगता है कि आपको जिस विशिष्ट की आवश्यकता है उसे सेट करना समझ में आता है। आप होम टैब में "डिवाइस" अनुभाग पर क्लिक करके अपने पास मौजूद विभिन्न डिवाइस देख सकते हैं, और आप "upload_port" कॉन्फ़िगरेशन जोड़कर यह सेट कर सकते हैं कि आपका ESP32 "platformio.ini" में कौन सा है।

मैं अपना कोड कैसे अपलोड करूं?

अपलोड बटन पर क्लिक करें (आइकन एक तीर है जो दाईं ओर इशारा करता है) और इसे कोड संकलित और अपलोड करना चाहिए। अब आपके बोर्ड पर एक चमकती एलईडी होनी चाहिए।

चरण 6: डिबगिंग: संभावित केले की त्वचा

डिबगिंग: संभावित केले की त्वचा!
डिबगिंग: संभावित केले की त्वचा!
डिबगिंग: संभावित केले की त्वचा!
डिबगिंग: संभावित केले की त्वचा!
डिबगिंग: संभावित केले की त्वचा!
डिबगिंग: संभावित केले की त्वचा!

यह कुछ ऐसा है जिसने मुझे इसे तैयार करते समय पकड़ा और उम्मीद है कि जब तक आप इसे आजमाएंगे, तब तक ठीक हो जाएगा, लेकिन मैंने सोचा कि यहां छोड़ना महत्वपूर्ण था।

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

होम पेज पर PlatformIO कोर के संस्करण की जाँच करें, यदि यह "4.3.0" है, तो निम्न चरणों का पालन करें।

  1. PlatformIO टूलबार पर, टर्मिनल आइकन पर क्लिक करें
  2. टर्मिनल प्रकार में: pio अपग्रेड --dev
  3. रीस्टार्टवीएस कोड और प्लैटफ्रोमियो को अपडेट किया जाना चाहिए

चरण 7: डिबगिंग: कॉन्फ़िगरेशन

डिबगिंग: कॉन्फ़िगरेशन
डिबगिंग: कॉन्फ़िगरेशन

डिबगिंग को सक्षम करने के लिए हमें "PlatofrmIO.ini" फ़ाइल को संपादित करने की आवश्यकता है, हमें इसमें केवल दो चीजें जोड़ने की आवश्यकता है।

डिबग_टूल = esp-prog

यह हमारे द्वारा उपयोग किए जा रहे डिबग टूल को सेट करता है।

डिबग_इनिट_ब्रेक = ब्रेक सेटअप

यह एक तरकीब है जिसे हमने ESP32 पर डिबगिंग पर एंड्रेस स्पाइस के वीडियो से सीखा है। यह डिबगर को हमारे एप्लिकेशन के सेटअप में रुकने के लिए कहता है।

चरण 8: डिबगिंग: डिबगिंग शुरू करना

डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना
डिबगिंग: डिबगिंग शुरू करना

इससे पहले कि हम इसमें शामिल हों, हम स्केच में एक छोटा सा बदलाव करेंगे जिससे यह प्रदर्शित करना आसान हो जाएगा कि आप डिबगिंग के साथ क्या कर सकते हैं।

  1. एक नया वैरिएबल बनाएं, "इंट डिलेटाइम = 1000;" किसी भी तरीके से बाहर, यह इसे एक वैश्विक चर बना देगा।
  2. इस नए चर के साथ लूप में देरी कॉल के अंदर की संख्या को बदलें: देरी (देरी समय);

कोड को एक बार फिर बोर्ड पर अपलोड करें, फिर डिबगिंग शुरू करने के लिए, टूलबार में, "रन" पर क्लिक करें और फिर "डिबगिंग शुरू करें" पर क्लिक करें।

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

यदि सब कुछ अपेक्षित रूप से चला तो आप सेटअप की शुरुआत में डिबगर को रोकते हुए देखेंगे।

चरण 9: डिबगिंग: मूल उपयोग

डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग
डिबगिंग: मूल उपयोग

आइए डिबगर के साथ आप क्या कर सकते हैं, इसकी कुछ बुनियादी बातों को शामिल करें

ब्रेकप्वाइंट बनाना:

ब्रेकपॉइंट आपके कोड का एक बिंदु है जहां आप डीबगर को रोकना चाहते हैं। ब्रेकपॉइंट बनाने के लिए लाइन नंबर के बाईं ओर क्लिक करें। डेमो के रूप में, लूप विधि में पहली पंक्ति में ब्रेकपॉइंट जोड़ें।

ब्रेकप्वाइंट नेविगेशन:

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

परिवर्तनीय घड़ियाँ:

जब डिबगर को ब्रेकपॉइंट पर रोका जाता है, तो वेरिएबल घड़ियाँ आपको वेरिएबल के मान की निगरानी करने देती हैं। एक नई वेरिएबल घड़ी जोड़ने के लिए आप + आइकन पर क्लिक कर सकते हैं, फिर बस वेरिएबल के नाम में टाइप कर सकते हैं। एक डेमो के रूप में, वेरिएबल में टाइप करें जिसे हमने पिछले चरण "देरी समय" में जोड़ा था

परिवर्तनीय दर्शक:

आप उन सभी चरों और उनके मूल्यों को भी देख सकते हैं जो आपके वर्तमान ब्रेकपॉइंट पर उपलब्ध हैं। इसे प्रदर्शित करने के लिए, यदि आप "वैश्विक" खंड में देखते हैं तो आपको "देरी समय" चर खोजना चाहिए।

चर के मूल्य का संपादन:

आप चर के मूल्यों को भी संपादित कर सकते हैं और यह आपके कोड व्यवहार पर तत्काल प्रभाव डालेगा। इसे प्रदर्शित करने के लिए, वेरिएबल व्यूअर अनुभाग में देरी समय चर पर क्लिक करें, और मान को "100" में बदलें। यह काम करने के लिए, लूप के अंदर ब्रेकपॉइंट को फिर से लाइन नंबर के बाईं ओर क्लिक करके अक्षम करें। ब्रेकपॉइंट नेविगेशन बार पर जारी रखें बटन दबाएं। आपके ESP32 पर एलईडी अब पहले की तुलना में बहुत तेजी से झपकनी चाहिए।

चरण 10: समस्या निवारण

समस्या निवारण
समस्या निवारण

मैंने अपने परीक्षण के दौरान पाया कि कुछ समय मैं ईएसपी 32 पर अपलोड नहीं कर सका, जबकि यह ईएसपी-प्रोग से जुड़ा था, और मुझे यह पता नहीं चल पाया कि ऐसा क्यों हुआ, क्योंकि ज्यादातर समय मैं बिना अपलोड कर सकता था काई समस्या। मैंने पाया कि मैं सिर्फ ESP32 और ESP-Prog को डिस्कनेक्ट कर सकता हूं, कोड को ESP32 पर अपलोड कर सकता हूं और फिर उन्हें फिर से कनेक्ट कर सकता हूं और यह ठीक काम करेगा।

चरण 11: निष्कर्ष

मुझे लगता है कि आपके प्रोजेक्ट के अंदर क्या हो रहा है यह जानने में सहायता के लिए टूलबॉक्स में जोड़ने के लिए यह वास्तव में एक अच्छा टूल है।

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

मैं अपने जीथब प्रायोजकों को भी बहुत-बहुत धन्यवाद देना चाहता हूं जो मैं जो करता हूं उसका समर्थन करने में मदद करता हूं, मैं वास्तव में इसकी सराहना करता हूं। यदि आप नहीं जानते हैं, तो जीथब पहले वर्ष के लिए प्रायोजन का मिलान कर रहा है, इसलिए यदि आप प्रायोजन बनाते हैं तो वे अगले कुछ महीनों के लिए इसका 100% मिलान करेंगे। पढ़ने के लिए धन्यवाद!

सिफारिश की: