فهرست مطالب:
- تدارکات
- مرحله 1: ویدیو را ببینید
- مرحله 2: سخت افزار - قطعات و سیم کشی
- مرحله 3: سخت افزار - راه اندازی درایور
- مرحله 4: نرم افزار: نصب PlatformIO
- مرحله 5: نرم افزار: استفاده از PlatformIO
- مرحله 6: اشکال زدایی: پوست موز بالقوه
- مرحله 7: اشکال زدایی: پیکربندی
- مرحله 8: اشکال زدایی: شروع اشکال زدایی
- مرحله 9: اشکال زدایی: استفاده اساسی
- مرحله 10: عیب یابی
- مرحله 11: ضربه مغزی
تصویری: نحوه استفاده از اشکال زدایی در ESP32: 11 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
آیا تا به حال خواسته اید به کد خود نگاهی بیندازید تا ببینید چرا اینگونه رفتار می کند؟ به طور سنتی در پروژه های ESP32 ، شما مجبور بودید بیانیه چاپ بی پایان را اضافه کنید تا بفهمید چه اتفاقی می افتد ، اما راه بهتری وجود دارد!
اشکال زدایی راهی است برای مشاهده آنچه در بخشهای خاصی از کد شما اتفاق می افتد و مقادیر متغیر مختلف را بدون کامپایل مجدد کد خود امتحان کنید ، معمولاً این چیزی نیست که در پروژه های تعبیه شده در دسترس ما باشد ، اما در این راهنما به شما نشان خواهم داد نحوه استفاده از آن در ESP32
در این راهنما به شما نشان می دهم که چگونه سخت افزار را راه اندازی کنید ، نرم افزار را راه اندازی کنید و یک مثال ساده از استفاده از اشکال زدایی را نشان می دهم.
تدارکات
-
ESP -Prog - این برد مورد نیاز برای اشکال زدایی است
- دقیقا من خریدم*
- 5 دلار ارزان تر ، اما من آن را آزمایش نکرده ام*
-
ESP32 که پین 12 ، 13 ، 14 ، 15 را می شکند
- 32. پر آدافروت
- D1 Mini ESP32*
-
[اختیاری] Debug Shield من در Tindie می فروشم
- پر هوزاه 32
- D1 Mini ESP32
* = پیوند وابسته
مرحله 1: ویدیو را ببینید
اگر می خواهید آن را بررسی کنید ، یک ویدیو در این زمینه دارم.
در کانال من معمولاً ویدیوهای مبتنی بر 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 را در این راهنما طی می کنم.
- درایورهای FTDI برای ESP-Prog را از اینجا بارگیری و نصب کنید ، برای سهولت بارگیری نسخه "قابل اجرا" ، به راست بروید.
- ابزار Zadig را از اینجا بارگیری و نصب کنید ، این به ما امکان می دهد درایور عمومی مورد نیاز برای اشکال زدایی را نصب کنیم.
- با وصل ESP-Prog ، Zadig را باز کنید
- در برنامه Zadig ، در بخش "Options" ، روی "List All Devices" کلیک کنید
- قسمت بازشو در Zadig اکنون پر می شود ، گزینه "Dual RS232-HS (Interface 0)" را انتخاب کنید. مطمئن شوید که رابط 0 شما انتخاب شده است!
- در سمت راست پیکان سبز ، "WinUSB" باید انتخاب شود ، سپس روی "جایگزینی درایور" کلیک کنید.
پس از اتمام کار ، درایورهای شما باید برای استفاده تنظیم شوند!
توجه: اگر پورت USB مورد استفاده برای ESP-Prog را تغییر دهید ، ممکن است مجبور شوید مراحل 3-6 را دوباره تکرار کنید. اگر هنگام اشکال زدایی خطایی مانند تصویر بالا دریافت کردید ، باید مراحل را تکرار کنید.
مرحله 4: نرم افزار: نصب PlatformIO
PlatformIO یک IDE برای توسعه با چارچوبهای مختلف تعبیه شده مختلف ، از جمله سیستم اکو سیستم Arduino است. استفاده از آن مانند چیزی شبیه به Arduino IDE پیچیده تر است ، اما بسیار قدرتمند است و دارای ویژگی هایی است که Arduino IDE به شدت از دست می دهد ، مانند تکمیل خودکار.
برای استفاده از اشکال زدایی به PlatformIO نیاز است. اگر قبلاً با PlatformIO آشنایی دارید ، چند قدم جلو بروید.
- Visual Studio Code (VS Code) را از پیوند ارائه شده در وب سایت PlatformIO.org بارگیری و نصب کنید
- کد VS را باز کرده و منوی برنامه های افزودنی را باز کنید ، دکمه در تصویر بالا مشخص شده است
- "platformio" را در جستجو تایپ کنید ، آن را انتخاب کرده و روی install کلیک کنید.
مرحله 5: نرم افزار: استفاده از PlatformIO
استفاده از PlatformIO کمی متفاوت با استفاده از Arudino IDE است ، بنابراین در این مرحله ما اصول اولیه استفاده از یک مثال را بر روی برد توضیح می دهیم.
باز کردن یک مثال:
- روی دکمه Home در نوار ابزار PlatformIO کلیک کنید (همانطور که در تصویر نشان داده شده است)
- روی دکمه "نمونه پروژه" کلیک کنید
- مثال "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" است ، مراحل زیر را انجام دهید.
- در نوار ابزار PlatformIO ، روی نماد ترمینال کلیک کنید
- در نوع ترمینال: pio upgrade --dev
- کد RestartVS و PlatfromIO باید به روز شوند
مرحله 7: اشکال زدایی: پیکربندی
برای فعال کردن اشکال زدایی ، ما نیاز به ویرایش فایل "PlatofrmIO.ini" داریم ، فقط باید دو مورد را به آن اضافه کنیم.
debug_tool = esp-prog
این ابزار اشکال زدایی مورد استفاده ما را تنظیم می کند.
debug_init_break = راه اندازی tbreak
این ترفندی است که ما از ویدیوی Andress Spiess در مورد اشکال زدایی در ESP32 آموختیم. به اشکال زدایی می گوید که در راه اندازی برنامه ما متوقف شود.
مرحله 8: اشکال زدایی: شروع اشکال زدایی
قبل از پرداختن به آن ، ما تغییر جزئی را در طرح ایجاد می کنیم که نشان می دهد کارهایی که می توانید با اشکال زدایی انجام دهید آسان تر است.
- ایجاد یک متغیر جدید ، "int delayTime = 1000؛" خارج از هر روش ، این امر آن را به یک متغیر جهانی تبدیل می کند.
- شماره داخل تماسهای تاخیری در حلقه را با این متغیر جدید جایگزین کنید: 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 با آن مطابقت دارد. ممنون که خواندید!
توصیه شده:
چگونه می توان یک جهان مخفی را بدست آورد !!!!!! (حالت اشکال زدایی): 3 مرحله
چگونه می توان یک جهان مخفی را بدست آورد !!!!!! (حالت اشکال زدایی): در این دستورالعمل ، من به شما نشان می دهم که در Minecraft به حالت دنیای مخفی برسید
HackerBox 0049: اشکال زدایی: 8 مرحله
HackerBox 0049: Debug: درود بر HackerBox هکرهای سراسر جهان! برای HackerBox 0049 ، ما در حال آزمایش اشکال زدایی سیستم های میکروکنترلر دیجیتال ، پیکربندی بستر بلوتوث LOLIN32 ESP-32 WiFi در Arduino IDE و استفاده از FastLED Animation L
نحوه تنظیم اشکال زدایی هسته ویندوز بر روی شبکه: 6 مرحله
نحوه تنظیم اشکال زدایی هسته ویندوز بر روی شبکه خود: اشکال زدایی یک ابزار محبوب است که برای یافتن علت اصلی اشکال استفاده می شود. یک اشکال می تواند به طرق مختلف خود را آشکار کند. این می تواند باعث خرابی سیستم (صفحه آبی/BSOD) شود ، می تواند باعث خرابی برنامه شود ، می تواند باعث شود سیستم شما منجمد شود تا نام fe را نامگذاری کند
اشکال زدایی اولیه جاوا: 9 مرحله
اشکال زدایی اولیه جاوا: این راهنمای دستورالعمل ، گام به گام اساسی برای مدیریت خطای جاوا را پوشش می دهد. این راهنما در راه اندازی نرم افزار برنامه نویسی جاوا هیچ کمکی نمی کند و انتظار می رود که شما قبلاً این کار را زودتر انجام داده باشید. برای بهترین
ESP32 - راه حل ارزان برای اشکال زدایی در Circruit: 5 مرحله
ESP32 - راه حل ارزان برای اشکال زدایی در Circruit: سلام ، در این قسمت نحوه تنظیم آداپتور ارزان JTAG بر اساس تراشه FTDI 2232HL ، با کد بصری و افزونه آردوینو توضیح داده شده است. - ماژول FTDI 2232HL با اتصال USB از 8 دلار در ebay شروع می شود و نیازی به نرم افزار پولی نیست. این عالی است