فهرست مطالب:

نحوه استفاده از اشکال زدایی در ESP32: 11 مرحله (همراه با تصاویر)
نحوه استفاده از اشکال زدایی در ESP32: 11 مرحله (همراه با تصاویر)

تصویری: نحوه استفاده از اشکال زدایی در ESP32: 11 مرحله (همراه با تصاویر)

تصویری: نحوه استفاده از اشکال زدایی در ESP32: 11 مرحله (همراه با تصاویر)
تصویری: ESP32 Tutorial 4 - Data types Define Variable Int, bool, char, Serial Monitor-ESP32 IoT Learnig kit 2024, جولای
Anonim
نحوه استفاده از اشکال زدایی در ESP32
نحوه استفاده از اشکال زدایی در ESP32

آیا تا به حال خواسته اید به کد خود نگاهی بیندازید تا ببینید چرا اینگونه رفتار می کند؟ به طور سنتی در پروژه های ESP32 ، شما مجبور بودید بیانیه چاپ بی پایان را اضافه کنید تا بفهمید چه اتفاقی می افتد ، اما راه بهتری وجود دارد!

اشکال زدایی راهی است برای مشاهده آنچه در بخشهای خاصی از کد شما اتفاق می افتد و مقادیر متغیر مختلف را بدون کامپایل مجدد کد خود امتحان کنید ، معمولاً این چیزی نیست که در پروژه های تعبیه شده در دسترس ما باشد ، اما در این راهنما به شما نشان خواهم داد نحوه استفاده از آن در ESP32

در این راهنما به شما نشان می دهم که چگونه سخت افزار را راه اندازی کنید ، نرم افزار را راه اندازی کنید و یک مثال ساده از استفاده از اشکال زدایی را نشان می دهم.

تدارکات

  • ESP -Prog - این برد مورد نیاز برای اشکال زدایی است

    • دقیقا من خریدم*
    • 5 دلار ارزان تر ، اما من آن را آزمایش نکرده ام*
  • ESP32 که پین 12 ، 13 ، 14 ، 15 را می شکند

    • 32. پر آدافروت
    • D1 Mini ESP32*
  • [اختیاری] Debug Shield من در Tindie می فروشم

    • پر هوزاه 32
    • D1 Mini ESP32

* = پیوند وابسته

مرحله 1: ویدیو را ببینید

Image
Image

اگر می خواهید آن را بررسی کنید ، یک ویدیو در این زمینه دارم.

در کانال من معمولاً ویدیوهای مبتنی بر ESP8266 و ESP32 می سازم ، بنابراین اگر به آنها علاقه دارید ، لطفاً آن را بررسی کنید!

مرحله 2: سخت افزار - قطعات و سیم کشی

سخت افزار - قطعات و سیم کشی
سخت افزار - قطعات و سیم کشی
سخت افزار - قطعات و سیم کشی
سخت افزار - قطعات و سیم کشی
سخت افزار - قطعات و سیم کشی
سخت افزار - قطعات و سیم کشی

برای استفاده از اشکال زدایی فقط به ESP-Prog و تقریباً هر برد ESP32 نیاز دارید (پیوندها به این موارد در مرحله قبل)

ESP-Prog:

ESP-Prog یک برد طراحی شده توسط espressif ، سازندگان تراشه های ESP32 و ESP8266 است. به پین های JTAG ESP32 متصل می شود تا بتوانیم از اشکال زدایی استفاده کنیم. همچنین می تواند برای برنامه نویسی بردهای ESP32 استفاده شود ، اما من در اینجا به آن نمی پردازم.

تخته ESP32:

اساساً می توانید از هر برد ESP32 برای این کار استفاده کنید هنگامی که پین های JTAG (12 ، 13 ، 14 و 15) را از بین می برد. من هر دو پر Adafruit Huzzah32 و یک برد D1 Mini 32 را آزمایش کردم و هر دو خوب کار کردند.

لطفاً توجه داشته باشید که می توانید از پین های JTAG در طرح خود با اشکال زدایی استفاده کنید ، به عنوان مثال LED داخلی برد Huzzah32 روی پایه 13 قرار دارد ، بنابراین هنگام اشکال زدایی نمی توانید از آن استفاده کنید.

سیم کشی:

برای اتصال ESP-Prog به ESP32 ، کافی است از راهنمای سیم کشی مطابق تصویر بالا استفاده کنید. اگر بلافاصله پین های مناسب را مشاهده نکردید ، نمودار سیم کشی برد ESP32 خود را بررسی کنید ، زیرا گاهی اوقات آنها از نامگذاری متفاوت استفاده می کنند.

اشکال زدایی سپرها:

اینها اختیاری هستند ، اما من در Tindie سپرهایی برای Huzzah32 و D1 Mini 32 می فروشم که اتصال ESP-Prog را بسیار ساده کرده است ، پین های مناسب را به کانکتور IDC می رساند که می توانید از کابل روبان برای اتصال مستقیم بین آنها استفاده کنید. سپر و ESP-Prog

مرحله 3: سخت افزار - راه اندازی درایور

سخت افزار - راه اندازی درایور
سخت افزار - راه اندازی درایور
سخت افزار - راه اندازی درایور
سخت افزار - راه اندازی درایور
سخت افزار - راه اندازی درایور
سخت افزار - راه اندازی درایور

برای استفاده از ESP-prog برای اشکال زدایی ، باید درایورهای مناسب را برای آن نصب کنیم. PlatformIO در اینجا چند مرحله برای آن ارائه می دهد ، اما من مراحل Windows را در این راهنما طی می کنم.

  1. درایورهای FTDI برای ESP-Prog را از اینجا بارگیری و نصب کنید ، برای سهولت بارگیری نسخه "قابل اجرا" ، به راست بروید.
  2. ابزار Zadig را از اینجا بارگیری و نصب کنید ، این به ما امکان می دهد درایور عمومی مورد نیاز برای اشکال زدایی را نصب کنیم.
  3. با وصل ESP-Prog ، Zadig را باز کنید
  4. در برنامه Zadig ، در بخش "Options" ، روی "List All Devices" کلیک کنید
  5. قسمت بازشو در Zadig اکنون پر می شود ، گزینه "Dual RS232-HS (Interface 0)" را انتخاب کنید. مطمئن شوید که رابط 0 شما انتخاب شده است!
  6. در سمت راست پیکان سبز ، "WinUSB" باید انتخاب شود ، سپس روی "جایگزینی درایور" کلیک کنید.

پس از اتمام کار ، درایورهای شما باید برای استفاده تنظیم شوند!

توجه: اگر پورت USB مورد استفاده برای ESP-Prog را تغییر دهید ، ممکن است مجبور شوید مراحل 3-6 را دوباره تکرار کنید. اگر هنگام اشکال زدایی خطایی مانند تصویر بالا دریافت کردید ، باید مراحل را تکرار کنید.

مرحله 4: نرم افزار: نصب PlatformIO

نرم افزار: نصب PlatformIO
نرم افزار: نصب PlatformIO
نرم افزار: نصب PlatformIO
نرم افزار: نصب PlatformIO
نرم افزار: نصب PlatformIO
نرم افزار: نصب PlatformIO

PlatformIO یک IDE برای توسعه با چارچوبهای مختلف تعبیه شده مختلف ، از جمله سیستم اکو سیستم Arduino است. استفاده از آن مانند چیزی شبیه به Arduino IDE پیچیده تر است ، اما بسیار قدرتمند است و دارای ویژگی هایی است که Arduino IDE به شدت از دست می دهد ، مانند تکمیل خودکار.

برای استفاده از اشکال زدایی به PlatformIO نیاز است. اگر قبلاً با PlatformIO آشنایی دارید ، چند قدم جلو بروید.

  • Visual Studio Code (VS Code) را از پیوند ارائه شده در وب سایت PlatformIO.org بارگیری و نصب کنید
  • کد VS را باز کرده و منوی برنامه های افزودنی را باز کنید ، دکمه در تصویر بالا مشخص شده است
  • "platformio" را در جستجو تایپ کنید ، آن را انتخاب کرده و روی install کلیک کنید.

مرحله 5: نرم افزار: استفاده از PlatformIO

نرم افزار: استفاده از PlatformIO
نرم افزار: استفاده از PlatformIO
نرم افزار: استفاده از PlatformIO
نرم افزار: استفاده از PlatformIO
نرم افزار: استفاده از PlatformIO
نرم افزار: استفاده از PlatformIO

استفاده از PlatformIO کمی متفاوت با استفاده از Arudino IDE است ، بنابراین در این مرحله ما اصول اولیه استفاده از یک مثال را بر روی برد توضیح می دهیم.

باز کردن یک مثال:

  1. روی دکمه Home در نوار ابزار PlatformIO کلیک کنید (همانطور که در تصویر نشان داده شده است)
  2. روی دکمه "نمونه پروژه" کلیک کنید
  3. مثال "Arduino-blink" را در قسمت Espressif 32 انتخاب کنید

این یک پروژه چشمک زدن نمونه را باز می کند. طرح PlatformIO در مقایسه با پروژه آردوینو بسیار متفاوت است ، بنابراین اجازه دهید اصول اولیه را مرور کنیم.

کد کجاست؟

کد پروژه شما در پوشه "src" ذخیره می شود ، برای مثال چشمک زدن یک فایل "blink.cpp" مشاهده خواهید کرد ، این فایل همان فایل طرح (.ino) شما در یک پروژه آردوینو است.

چگونه برد خود را پیکربندی کنم؟

پیکربندی های پروژه شما در داخل یک فایل "platformio.ini" در پروژه شما نگهداری می شود. این در واقع یکی از موارد مورد علاقه من در مورد PlatformIO در مقایسه با Arduino IDE است ، هیچ وقت برای من منطقی نبود که تنظیمات برد به طرح ها وصل نشده باشد.

مثال.ini شامل تعاریفی برای چندین تخته مختلف است ، اما برای ساده تر نگه داشتن دو تعریف پایین را حذف کنید.

پورت COM خود را کجا تنظیم کنم؟

PlatformIO در واقع به طور خودکار سعی می کند پورت COM مناسب را برای استفاده پیدا کند ، بنابراین می توانید با تنظیم نکردن چیزی برای این کار ، از بین برود. اما اگر چند درگاه COM دارید ، که هنگام استفاده از اشکال زدایی از آنها استفاده می کنید ، فکر می کنم منطقی است که یک مورد خاص را تنظیم کنید. شما می توانید دستگاه های مختلف خود را با کلیک روی بخش "Devices" در برگه صفحه اصلی مشاهده کنید ، و با افزودن پیکربندی "upload_port" می توانید ESP32 خود را در "platformio.ini" تنظیم کنید.

چگونه می توانم کد خود را بارگذاری کنم؟

روی دکمه بارگذاری (نماد یک پیکان به سمت راست است) کلیک کنید و باید کد را کامپایل و بارگذاری کنید. اکنون باید یک LED چشمک زن روی برد خود داشته باشید.

مرحله 6: اشکال زدایی: پوست موز بالقوه

اشکال زدایی: پوست موز بالقوه!
اشکال زدایی: پوست موز بالقوه!
اشکال زدایی: پوست موز بالقوه!
اشکال زدایی: پوست موز بالقوه!
اشکال زدایی: پوست موز بالقوه!
اشکال زدایی: پوست موز بالقوه!

این چیزی است که من هنگام تهیه آن توجهم را جلب کرد و امیدوارم تا زمانی که آن را امتحان می کنید برطرف شود ، اما من فکر کردم مهم این است که اینجا را ترک کنم.

در زمان تهیه این راهنما ، آخرین نسخه PlatformIO 4.3.0 است و دارای اشکالی است که مربوط به قابلیت اشکال زدایی است. خوشبختانه می توانیم به راحتی آخرین نسخه توسعه را به روز کنیم که مشکل را حل می کند.

در صفحه اصلی نسخه PlatformIO core را بررسی کنید ، اگر "4.3.0" است ، مراحل زیر را انجام دهید.

  1. در نوار ابزار PlatformIO ، روی نماد ترمینال کلیک کنید
  2. در نوع ترمینال: pio upgrade --dev
  3. کد RestartVS و PlatfromIO باید به روز شوند

مرحله 7: اشکال زدایی: پیکربندی

اشکال زدایی: پیکربندی
اشکال زدایی: پیکربندی

برای فعال کردن اشکال زدایی ، ما نیاز به ویرایش فایل "PlatofrmIO.ini" داریم ، فقط باید دو مورد را به آن اضافه کنیم.

debug_tool = esp-prog

این ابزار اشکال زدایی مورد استفاده ما را تنظیم می کند.

debug_init_break = راه اندازی tbreak

این ترفندی است که ما از ویدیوی Andress Spiess در مورد اشکال زدایی در ESP32 آموختیم. به اشکال زدایی می گوید که در راه اندازی برنامه ما متوقف شود.

مرحله 8: اشکال زدایی: شروع اشکال زدایی

اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی
اشکال زدایی: شروع به اشکال زدایی

قبل از پرداختن به آن ، ما تغییر جزئی را در طرح ایجاد می کنیم که نشان می دهد کارهایی که می توانید با اشکال زدایی انجام دهید آسان تر است.

  1. ایجاد یک متغیر جدید ، "int delayTime = 1000؛" خارج از هر روش ، این امر آن را به یک متغیر جهانی تبدیل می کند.
  2. شماره داخل تماسهای تاخیری در حلقه را با این متغیر جدید جایگزین کنید: delay (delayTime)؛

بار دیگر کد را روی برد بارگذاری کنید ، سپس برای شروع اشکال زدایی ، در نوار ابزار ، روی "اجرا" و سپس "شروع اشکال زدایی" کلیک کنید.

همه چیز را در پنجره ترمینال مشاهده خواهید کرد ، اما حتی زمانی که این موفقیت اعلام کرد ، اگر بر روی "Debug Console" کلیک کنید ، می بینید که هنوز کار می کند ، چند ثانیه طول می کشد تا به پایان برسد.

اگر همه چیز مطابق انتظار پیش رفت ، می بینید که اشکال زدایی در ابتدای راه اندازی متوقف می شود.

مرحله 9: اشکال زدایی: استفاده اساسی

اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه
اشکال زدایی: استفاده اولیه

اجازه دهید برخی از اصول اولیه آنچه می توانید با اشکال زدایی انجام دهید را پوشش دهیم

ایجاد نقاط شکست:

نقطه شکست نقطه ای از کد شما است که در آن می خواهید اشکال زدایی متوقف شود. برای ایجاد نقطه شکست در سمت چپ شماره خط کلیک کنید. به عنوان نسخه ی نمایشی ، breakpoint را به اولین خط در روش حلقه اضافه کنید.

ناوبری نقطه شکست:

برای حرکت بین نقطه شکست یا انتقال به خط بعدی کد ، می توانید از ابزارهایی که در بالای صفحه ظاهر می شود استفاده کنید. دکمه "ادامه" را فشار دهید (شبیه یک دکمه پخش است) تا نقطه شکست را که به تازگی در داخل حلقه ایجاد کرده اید حرکت دهید.

ساعتهای متغیر:

ساعتهای متغیر به شما اجازه می دهند وقتی متغیرها در نقطه شکست متوقف می شوند ، بر ارزش متغیرها نظارت کنید. برای افزودن یک ساعت متغیر جدید می توانید روی نماد + کلیک کنید ، سپس فقط نام متغیر را تایپ کنید. به عنوان نمایشی ، متغیری را که در مرحله قبلی "delayTime" اضافه کرده بودیم تایپ کنید

نمایشگر متغیر:

همچنین می توانید همه متغیرها و مقادیر آنها را که در نقطه شکست فعلی شما موجود است مشاهده کنید. برای نمایشی از این مورد ، اگر به بخش "Global" نگاه می کنید ، باید متغیر "delayTime" را بیابید.

ویرایش ارزش متغیرها:

همچنین می توانید مقادیر متغیرها را ویرایش کنید و بر رفتار کدهای شما تأثیر فوری می گذارد. برای نشان دادن این موضوع ، روی متغیر delayTime در قسمت Variable Viewer کلیک کنید و مقدار را به "100" تغییر دهید. برای نمایش این کار ، با کلیک مجدد در سمت چپ شماره خط ، نقطه شکست درون حلقه را غیرفعال کنید. دکمه ادامه در نوار ناوبری نقطه شکست را فشار دهید. چراغ LED ESP32 شما باید خیلی سریعتر از قبل چشمک بزند.

مرحله 10: عیب یابی

عیب یابی
عیب یابی

من در حین آزمایش متوجه شدم که بعضی مواقع نمی توانم ESP32 را در حالی که به ESP-prog متصل است بارگذاری کنم ، و نمی توانم الگویی برای علت این امر پیدا کنم ، زیرا بیشتر اوقات می توانم بدون هر گونه مشکل من متوجه شدم که می توانم ESP32 و ESP-Prog را جدا کنم ، کد را در ESP32 بارگذاری کنم و سپس دوباره آنها را وصل کنم و به خوبی کار می کند.

مرحله 11: ضربه مغزی

من فکر می کنم این یک ابزار واقعاً جالب برای افزودن به جعبه ابزار برای کمک به درک آنچه در پروژه شما می گذرد است.

خوشحال می شوم اگر این را مفید می دانید !. لطفاً در نظرات زیر به من اطلاع دهید ، یا به من و تعدادی دیگر از سازندگان در سرور Discord من بپیوندید ، جایی که می توانیم در مورد این موضوع یا هر سازنده دیگری که در مورد آن صحبت می کنید بحث کنیم ، مردم واقعاً در آنجا مفید هستند ، بنابراین مکانی عالی برای آویزان کردن است بیرون

من همچنین می خواهم از حامیان Github خود که به حمایت از کاری که انجام می دهم کمک کنند ، تشکر کنم ، واقعاً از آن قدردانی می کنم. اگر نمی دانید ، Github برای سال اول حامی مالی می کند ، بنابراین اگر حمایت مالی کنید ، تا چند ماه آینده 100 با آن مطابقت دارد. ممنون که خواندید!

توصیه شده: