ESPIno32CAM : การถ่ายภาพ

ESPIno32CAM : การถ่ายภาพ

          ตัวอย่างการใช้งาน ESPIno32CAM ถ่ายภาพ และ ส่งภาพที่ถ่ายผ่าน Serial Port ไปแสดงผลบนโปรแกรม JPG Serial Streaming

เริ่มต้นการทดลอง

          – ติดตั้ง Arduino IDE ,ESP32Packet,Libraly ESPIno32CAM  (สำหรับผู้เริ่มต้นใช้งานครั้งแรก)-->(Link)

          – เปิดโปรแกรม ArduinoIDE

          – เปิดตัวอย่าง File > Example > ESPino32CAM > Ex_Capture   

          – ตั้งค่า Arduino IDE ให้ใช้งานกับ ESPIno32CAM -->(Link)

          – Upload Program ลงไปยัง ESPIno32CAM

                – เปิด Program JPG Serial Streaming 

                                1 เลือก Comport ให้ตรงกับ Comport ของบอร์ด ESPIno32

                                2  เลือก Baudrate ให้ตรงกับ Baudrate ใน Code Arduino (Default =2000000 )

                                3  กด Button Connect

!!! ก่อนกด Button Connect จะต้องปิด Program อื่นๆที่ใช้งาน Comport อยู่เช่น หน้าต่าง Serial Monitor ของ ArduinoIDE

                -โปรแกรม  JPG Serial Streaming จะแสดงรูปภาพที่ถ่ายจากบอร์ด ESPIno32CAM บน PictureBox และ แสดง ความเร็วในการถ่ายภาพ ที่ส่วนแสดงข้อความ

ตัวอย่างโปรเเกรมที่ใช้

#include "ESPino32CAM.h"
ESPino32CAM cam;
void setup() {
  Serial.begin(2000000);
  Serial.println("\r\nESPino32CAM");
  if (cam.init() != ESP_OK)
  {
    cam.printDebug(F("Init Fail"));
    while (1);
  }
  sensor_t *s = cam.sensor();
  s->set_framesize(s, FRAMESIZE_QVGA);
}

void loop()
{
  unsigned long pv_time  = millis();
  camera_fb_t *fb = cam.capture();
  if (!fb)
  {
    cam.printDebug("Camera capture failed");
    return;
  }
  Serial.write(fb->buf, fb->len);
  cam.printfDebug("Frame %d Per Second",1000/(millis()-pv_time));
  cam.clearMemory(fb);
}

คำอธิบาย Code Program

 – บรรทัดที่  1 : ประกาศให้นำ Libraly ESPIno32CAM  เข้ามาใช้งาน

– บรรทัดที่  2 : ประกาศ Object cam

– บรรทัดที่  4 :  เริ่มต้นใช้งาน Serial และ กำหนด baud rate = 2Mbps

– บรรทัดที่  6 :  ตั้งค่าเริ่มต้นการทำงานของกล้อง และ ถ้าหากตั้งค่าสำเร็จจะ return ค่าเป็น True เพิ่มเติม

– บรรทัดที่11 :  ประกาศตัวแปร sensor_t *s เพื่อรับค่า pointer จาก Function sensor เพิ่มเติม

– บรรทัดที่12 :  กำหนดขนาดภาพถ่าย = QVGA (320×240 pixel)

– บรรทัดที่17 :  เก็บค่าเวลาที่ ESP32 เริ่มทำงานจนถึงปัจจุบัน

– บรรทัดที่18 :  ถ่ายรูป และ เก็บรูปภาพอยู่ใน fb  เพิ่มเติม

– บรรทัดที่19 :  ตรวจสอบว่ามีข้อมูลใน fb หรือไม่

– บรรทัดที่24 :  ส่ง ภาพที่ถ่ายได้ ออกไปทาง Serial

– บรรทัดที่25 :  นำเวลาตั้งแต่เริ่มทำงานจนถึงปัจจุบัน ลบกับ เวลาที่เริ่มถ่ายรูป = เวลาที่ใช้ในการถ่ายรูป และ ส่งข้อมูลออกส่งออกไปทาง Serial

– บรรทัดที่26 :  คืนค่า Memory  fb  เพิ่มเติม