دليل ESP32 42/55 - التقاط صورة بالكاميرا وحفظها على بطاقة micro SD CAM-1 | مجموعة ESP32 من SunFounder

دليل ESP32 42/55 - التقاط صورة بالكاميرا وحفظها على بطاقة micro SD CAM-1 | مجموعة ESP32 من SunFounder

في هذا الدليل، سنستخدم المتحكم الدقيق ESP32 مع لوحة التوسيع الخاصة به من SunFounder لالتقاط الصور باستخدام كاميرا وحفظها مباشرة على بطاقة micro SD. يستهلك هذا المشروع القدرات المدمجة في ESP32، بما في ذلك Wi-Fi وBluetooth، لإنشاء جهاز صغير لالتقاط الصور. بنهاية هذا الدليل، سيكون لديك إعداد يعمل يمكنه التقاط الصور وتخزينها، والتي يمكن الوصول إليها لاحقًا على جهاز الكمبيوتر.

extension_bopard_camera

بالنسبة لأولئك الجدد في نظام ESP32، توفر هذه المجموعة منصة متعددة الاستخدامات لمشاريع متنوعة، بما في ذلك هذا المشروع. الكاميرا المستخدمة في هذا المشروع هي OV2640، التي تقدم دقة قدرها 1600x1200 بكسل. على الرغم من أنها قد لا تتطابق مع جودة الهواتف الذكية الحديثة، إلا أنها كافية للمهام الأساسية لالتقاط الصور. لتوضيح أي خطوات، تأكد من مراجعة الفيديو المصاحب لهذا الدرس (في الفيديو عند :00).

20240103_163227858_iOS

شرح الأجهزة

تشمل المكونات الرئيسية في هذا المشروع متحكم ESP32 الدقيق، ووحدة الكاميرا (OV2640)، و بطاقة micro SD للتخزين. يعد ESP32 متحكمًا دقيقًا قويًا مع إمكانيات Wi-Fi وBluetooth مدمجة، مما يجعله مثاليًا لتطبيقات إنترنت الأشياء. تقوم وحدة الكاميرا بالتقاط الصور، التي تتم معالجتها بعد ذلك بواسطة ESP32.

esp32-41-الإعداد-3

تعمل بطاقة micro SD كوسيلة تخزين للصور الملتقطة. في هذا الإعداد، يتواصل ESP32 مع وحدة الكاميرا باستخدام دبابيس GPIO محددة، وتُحفظ الصور بتنسيق JPEG على بطاقة SD. مما يتيح استرجاع الصور ومشاهدتها بسهولة لاحقًا.

  • تأكد من توجيه الكاميرا بشكل صحيح عند إدخالها في لوحة ESP32.
  • استخدم بطاقة micro SD بسعة 32 جيجابايت أو أقل لتجنب مشاكل التوافق.
  • قم بتوصيل GPIO 0 بالأرضي (GND) لوضع البرمجة.
  • انتبه لمصدر الطاقة لتجنب مشاكل انخفاض الفولتية.
  • احتفظ بالكاميرا ثابتة أثناء التقاط الصور لتجنب الصور الضبابية.

تعليمات التوصيل

لتوصيل وحدة كاميرا ESP32، تأكد أولاً من إيقاف تشغيل ESP32. قم بتوصيل وحدة بطاقة micro SD بـ ESP32 باستخدام الدبابيس التالية: قم بتوصيل الـCSدبوس بطاقة SD إلى ESP32GPIO 5,MOSIإلىGPIO 23,MISOإلىGPIO 19, وSCKإلىGPIO 18ثم قم بتوصيل دبابيس وحدة الكاميرا كما يلي:PWDNإلىGPIO 32,XCLKإلىGPIO 0,SIODإلىGPIO 26, وSIOCإلىGPIO 27. دبابيس بيانات البكسلY2إلىY9يجب أن يكون متصلاً بـGPIO 5من خلالGPIO 39كما هو محدد في كودك.

تأكد من توصيل دبابيس الأرض والجهد بشكل صحيح. يمكن تشغيل ESP32 بواسطة البطارية المضمنة في المجموعة. بعد التوصيل، تأكد من أن الاتصالات آمنة قبل تشغيل الجهاز. إذا اتبعت التعليمات بدقة، يجب أن ترى الكاميرا يتم تشغيلها بشكل صحيح عند تحميل الكود.

أمثلة الشيفرة والتعليمات خطوة بخطوة

esp32-41-إعداد-2
esp32-41-eعداد-1

في الكود، نبدأ بضم المكتبات الضرورية وتعريف تكوينات دبابيس الكاميرا. المتغيرpictureNumberيتم تهيئته لتتبع عدد الصور المأخوذة.

int pictureNumber = 0;

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);  // Disable brownout detector
  Serial.begin(115200);
  camera_config_t config;
  // Configuration settings for the camera
  config.ledc_channel = LEDC_CHANNEL_0;
  // Additional camera settings...
}

تعمل دالة الإعداد على تهيئة الاتصال التسلسلي وتكوين إعدادات الكاميرا. تتضمن التهيئة معلمات مثلledc_channel,pin_d0, وxclk_freq_hzلأداء مثالي.

بعد ذلك، نتعامل مع عملية التقاط الصور من خلال استخدام حلقة لأخذ صور متعددة. تُحفظ بيانات الصورة على بطاقة SD مع اسم ملف يعتمد علىpictureNumber.

for (int shoot = 0; shoot < 5; shoot++) {
    camera_fb_t *fb = esp_camera_fb_get(); // Take Picture
    String path = "/picture" + String(pictureNumber) + ".jpg"; // File path
    File file = fs.open(path.c_str(), FILE_WRITE); // Open file to write
    // Write image data to file
    file.write(fb->buf, fb->len);
    // Update picture number in EEPROM
    EEPROM.write(0, pictureNumber);
}

تلتقط هذه الحلقة ما يصل إلى خمس صور، حيث يتم حفظ كل صورة باسم ملف فريد. يسمح استخدام EEPROM للبرنامج بتذكر رقم الصورة الأخيرة، مما يضمن أن تكون لكل صورة جديدة معرّف فريد.

عرض / ماذا تتوقع

عند تشغيل الكود، سيقوم ESP32 بتهيئة الكاميرا و بطاقة SD. بعد الضغط على زر إعادة التعيين على ESP32، سيأخذ مجموعة من الصور، والتي سيتم ترقيمها بشكل تسلسلي من 0 إلى 255 بناءً على قيمة EEPROM. بعد التقاط الصور، يمكنك إزالة بطاقة micro SD وعرض الصور على الكمبيوتر الخاص بك.

تشمل الأخطاء الشائعة التأكد من أن بطاقة الذاكرة الدقيقة (micro SD) تم تنسيقها وإدخالها بشكل صحيح، بالإضافة إلى الحفاظ على وضع الكاميرا ثابتًا لتجنب الصور الضبابية. إذا واجهت مشاكل في عدم التقاط الكاميرا للصور، تحقق مرة أخرى من الأسلاك والتكوينات المحددة في الكود (في الفيديو عند 06:45).

طوابع زمنية للفيديو

  • 00:00 ابدأ
  • 1:39 مقدمة
  • 5:19 شرح كود كاميرا ESP32
  • :10 اختيار لوحة ESP32 ومنفذ COM في Arduino IDE
  • ١٢:٥٢ اختبار تصوير الصور في الأماكن المغلقة والهواء الطلق

الصور

esp32-41-setting-3
esp32-41-setting-3
extension_bopard_camera
extension_bopard_camera
20240103_163227858_iOS
20240103_163227858_iOS
esp32-41-setting-1
esp32-41-setting-1
esp32-41-setting-2
esp32-41-setting-2
843-ESP32 Tutorial 42/55- Arduino code for taking photo and saving it
اللغة: C++
تم النسخ!

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.