در این مقاله به طور خلاصه کار با بورد Freenove ESP32-Wrover CAM رو بهتون آموزش میدیم. این بورد شامل یک دوربین OV2640، چند تا GPIO برای اتصال دستگاههای جانبی و یک برنامهریز تعبیهشده و یه کانکتور USB است که به کمک اون میتونیم به آسونی کد رو در بورد بارگذاری کنیم. اول یه معرفی خلاصه از این بورد ارائه میدیم و بعد با ذکر مثال بهتون نشون میدیم که چهجوری میشه این بورد رو با استفاده از Arduino core برای ESP32 برنامهنویسی کرد.
معرفی بورد Freenove ESP32-Wrover CAM
بورد Freenove ESP32-Wrover CAM یه بورد توسعه ESP32 است که یه تراشۀ ESP32-Wrover-E (به همراه یه 4 MB PSRAM ) و یه دوربین OV2640 داره.
این بورد یه مبدل USB به UART داره و برای همین به سادگی میشه برنامه رو در بورد بارگذاری کرد. برای این کار فقط باید کابل USB رو به بورد وصل کنین و بعد اونو به رایانه تون وصل کنین تا برنامه رو بارگذاری کنه یا فرایند برقرسانی رو شروع کنه. در این بورد (برخلاف بورد ESP32-CAM محصول AI-Thinker) به مدار اضافی یا پروگرامر FTDI نیازی نیست.
این بورد چند تا GPIO هم داره و میتونین دستگاههای جانبی مثل سنسور و و خروجیها رو به اون وصل کنین (تعداد GPIOهای این بورد خیلی بیشتر از بورد ESP32-CAM محصول AI-Thinker است). حتی اگه قصد استفاده از دوربین رو ندارین، میتونین از اون به عنوان یه ESP32 معمولی استفاده کنین که تعداد زیادی GPIO داره. GPIOهایی که بالای عددشون اسلش داره همونهایی هستن که دوربین ازشون استفاده میکنه.
این بورد کلید RESET و BOOT هم داره و به همین خاطر به راحتی میشه بورد رو Reset کرد یا در حالت ارسال (ریختن) برنامه قرار داد.
چهار تا LED روی این بورد نصب شدن:
- ON: وقتی روشن بشه، به این معنیه که بورد به برق وصل شده.
- RX/TX: وقتی از ارتباطات سریالی استفاده کنین چشمک میزنه.
- IO2: یه LED تعبیهشده است که به GPIO 2 وصل میشه و مناسب خطایابی هست.
ویژگیهای بورد Freenove ESP32-Wrover CAM
ویژگیهای بورد Freenove ESP32-Wrover CAM عبارتند از:
-
تراشۀ ESP32-Wrover-E به همراه یه 4 MB PSRAM
-
مبدل USB به UART (درایورهای CH340C) – نیازی به برنامهنویس FTDI نیست.
-
دوربین 2 مگاپیکسلی OV2640
-
کلیدهای BOOT و RESET
-
LED (RX/TX، ON/OFF و LED تعبیهشده (GPIO2) )
-
آنتن تعبیهشده
طرح پایۀ بورد Freenove ESP32-Wrover CAM
دیاگرام زیر طرح پایۀ بورد Freenove ESP32-Wrover CAM رو نشون میده. برای مشاهدۀ عکس در سایز بزرگ روش کلیک کنین.
این برچسبها ویژگیهای هر کدوم از پینها رو نشون میدن. پینهایی که دوربین ازشون استفاده میکنه، پینهای پاور، پینهای PWM، پینهای ADC و غیره مشخص هستن.
تعریف پین بورد Freenove ESP32-Wrover CAM
در جدول زیر اتصالات دوربین با ESP32 رو نشون دادیم.
توجه داشته باشین در هنگام استفاده از دوربین نمیتونین دستگاههای جانبی رو به GPIOهایی وصل کنین که دوربین ازشون استفاده میکنه. در غیر اینصورت، دوربین به درستی کار نمیکنه. وقتی به دوربین کاری ندارین، میتونین از این بورد ESP32 به عنوان یه بورد معمولی استفاده کنین و از پینهای دوربین برای کارهای دیگه استفاده کنین.
تعریف پین بورد Freenove ESP32-Wrover CAM در طرحهای Arduino باید به شکل زیر باشه (در بعضی نمونههای Arduino، تعریف پین در زیر تعریف CAMERA_MODEL_WROVER_KIT اومده.)
#define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 21 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 19 #define Y4_GPIO_NUM 18 #define Y3_GPIO_NUM 5 #define Y2_GPIO_NUM 4 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22
این بورد از همون مدل دوربینی استفاده میکنه که بورد ESP32-CAM استفاده میکنه و به همین دلیل اگر تعریف پینها رو تغییر بدیم پروژه هایی که تا الان با بورد ESP32-Cam انجام دادیم رو میتونیم با بورد دوربین ESP32 برند Freenove اجرا کنیم.
مثالهایی که از کارت microSD استفاده میکنن باید با استفاده از کارت اکسترنال microSD سازگار باشن و تعریف پین رو با کد تطبیق بدن.
مقایسه بورد ESP32-Wrover CAM برند Freenove با ESP32-CAM محصول AI-Thinker
کدوم بورد بهتره؟ بورد ESP32-Wrover CAM برند Freenove یا ESP32-CAM محصول AI-Thinker؟ اینکه کدوم بورد بهتره بستگی به پروژه شما داره اما بیاید این دوتا بورد رو باهم مقایسه کنیم.
-
هم بورد ESP32-Wrover CAM و هم ESP32-CAM یک تراشۀ ESP32 دارن. بوردهای AI-Thinker معمولاً تراشۀ ESP32-S دارن و بوردهای Freenove تراشۀ ESP32-Wrover-E دارن. عملکرد این دو تا تراشه مثل همه.
-
هر دوی این بوردها از یه مدل دوربین یعنی دوربین OV2640 استفاده میکنن. به بیان سادهتر، بیشتر پروژههای ESP32 محصول AI-Thinker رو میشه با بورد Freenove یا بالعکس انجام داده و فقط کافیه تعریف پینها رو توی کد عوض کنیم.
-
بورد AI-Thinker یه جا برای کارت microSD داره اما بورد Freenove نداره. بورد Freenove نسبت به بورد AI-Thinker پینهای GPIO بیشتری داره، از جمله GPIOهایی که دوربین ازشون استفاده میکنه. به بیان سادهتر وقتی که قصد استفاده از دوربین رو ندارین، GPIOهای بیشتری برای استفاده دارین تقریباً به اندازۀ پینهای یه بورد ESP32 معمولی. اگر بخواین در پروژههاتون از کارت microSD استفاده کنین بهتره از بورد ESP32-CAM استفاده کنین. البته، به راحتی میتونین کارت microSD رو به بورد Freenove هم وصل کنین چون چند تا GPIO قابل استفاده داره.
-
بورد Freenove کلید RESET و BOOT داره اما بورد AI-Thinker فقط کلید RESET داره.
-
بورد Freenove یه مبدل تعبیهشدۀ USB به TTL داره و برای همین به آسونی میتونین کد رو در بورد بارگذاری کنین و از طریق سوکت USB به بورد توان رسانی کنین. بورد AI-Thinker فاقد این مبدل است که در زمان کار با کد و دیباگ کردن یه نقطه ضعف بزرگ به حساب میاد، اینجوری بارگذاری کد میتونه کار خستهکنندهای باشه.
-
بورد Freenove یه آنتن تعبیهشده داره، اما بورد AI-Thinker هم یه آنتن تعبیهشده داره هم میشه یک آنتن اکسترنال بهش وصل کرد و بُرد وای فای رو افزایش داد.
برای درک بهتر تفاوتهای بورد Freenove و بورد AI-Thinker به جدول زیر توجه کنین:
برنامهنویسی بورد ESP32-Wrover به کمک Arduino IDE
در این نوشتار با ذکر یه مثال نحوۀ برنامهنویسی این بورد به کمک Arduino IDE رو بهتون نشون میدیم. قبل از هر چیز باید Arduino IDE و افزونه ESP32 برای Arduino IDE رو نصب کنین.
وب سرور پخش ویدئوی ESP32-Wrover CAM:
در این بخش، یک نمونه بارگذاری میکنیم یه وب سرور پخش ویدئو ایجاد میکنه و شما میتونین از طریق شبکه محلیتون بهش دسترسی داشته باشین.
در Arduino IDE، به Tools > Board > ESP32 Arduino برید و بعد ESP32 Wrover Module رو انتخاب کنین.
به File > Examples > ESP32 > Camera برید و CameraWebServer نمونه رو باز کنین.
حتماً بورد درست رو در کد انتخاب کنین، مثل تصویر زیر // رو از CAMERA_MODEL_WROVER_KIT حذف کنین و مطمئن بشین بقیه بخشهای بورد // رو دارن:
// ===================
// Select camera model
// ===================
#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
حالا یک کم برید پایین و رمز و نام کاربری شبکهتون رو در متغیرهای SSID و Password وارد کنین تا بورد بتونه به شبکه وصل بشه.
const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";
پس از انتخاب بورد و وارد کردن اطلاعات کاربری شبکه، میتونین کد رو در شبکه بارگذاری کنین.
بارگذاری کد در بورد ESP32-Wrover CAM برند Freenove
بارگذاری کد در بورد ESP32-Wrover CAM خیلی آسونه. برای بارگذاری کد در این بورد نیازی به مدار اضافه یا برنامهریز FTDI نیست. فقط کافیه کابل USB رو به کانکتور USB بورد وصل کنین و اونو به کامپیوترتون وصل کنین.
بعد، در Arduino IDE به قسمت Tools > Port برید و پورت COM که بهش وصله رو انتخاب کنین.
نکته: اگر پورت COM رو ندیدین یا اینکه در دسترس نیست به این معنیه که درایورهای مورد نیاز رو نصب نکردین. این بورد از درایورهای CH340 استفاده میکنه. پس این درایورها رو روی سیستم عاملتون نصب کنین. پس از نصب این درایورها، کد رو مجدداً بارگذاری کنین.
حالا باید از منوی Tools یک مدل بورد انتخاب کنین.
تنظیمات زیر رو انتخاب کنین:
- Board: ESP32 Wrover Module
- Partition Scheme: Huge APP (3MB No OTA) (یا بسته به موارد مورد نیاز پروژهتون)
حالا فقط کافیه کلید بارگذاری رو بزنین. بعد از چند ثانیه، کد باید با موفقیت در بورد بارگذاری بشه.
نمایش کارکرد سورس کد
بعد از بارگذاری کد، سریال مانیتور Arduino IDE رو در baud rate 115200 باز کنین. کلید RST بورد رو بزنین. IP آدرس eSP32 در سریال مانیتور نشون داده میشه.
مرورگر رو در شبکه محلیتون باز کنین و IP آدرس ESP32 رو تایپ کنین. در مثال ما:
http://192.168.1.142
باید به یه پیج دسترسی پیدا کنین که بتونین ویدئو رو پخش کنین و تصاویر رو از دوربین دریافت کنین.
برای پخش ویدئو کلید Start Streaming رو بزنین یا برای عکسبرداری کلید Get Still رو بزنین.
چند تا منو هم وجود داره که میتونین به کمک اونا تنظیمات دوربین رو تغییر بدین.
در این بورد، وضوح عکسا خیلی خوبه. اما اگر نزدیک به روتر نباشید سرعت پخش ویدئویی با وضوح بیشتر در این بورد کنده. در این مثال، ما قابلیت تشخیص چهره رو فعال نکردیم، اما تشخیص چهره برای CIF یا وضح کمتر کار میکنه.
جمعبندی
در این مقاله به طور خلاصه بورد ESP32-Wrover CAM برند Freenove رو معرفی کردیم. بسته به نوع پروژهتون این بورد میتونه جایگزین خوبی برای مشهورترین بورد ESP32-CAM شرکت AI-Thinker باشه.