Duyuru

Çöküş
Henüz duyuru yok

Yalnızca 2 adet resim çekebiliyorum

Çöküş
X
 
  • Filtrele
  • Zaman
  • Göster
Hepsini Sil
yeni mesajlar

  • Yalnızca 2 adet resim çekebiliyorum

    Merhaba,
    Aşağıdaki kod ile sadece 2 kare fotoğraf çekebiliyorum.
    3 üncü çekimde "Failed to get the frame on time!" hatası almaktayım.
    sorun ne olabilir.

    Meraklısına Not: Çekilen resmi base64 formatına çevirip seri monitöre yazıyorum.
    seri monitörden kopyala yapıştır yapıp "https://codebeautify.org/base64-to-image-converter" sitesinden resmi görüntüleyebilirsiniz.



    Kod:
    #include "esp_camera.h"
    #include <Arduino.h>
    #include "deneyap.h"
    #include <base64.h>
    
    // ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
    // "Araclar->Partition Scheme->Huge APP" secilmeli //
    // "Tools->Partition Scheme->Huge APP" secilmeli //
    
    
    void setup() {
        Serial.begin(115200);
        cameraInit();
    }
    
    void loop() {
    
        delay(5000);
        camera_fb_t * fb = NULL;
        fb = esp_camera_fb_get();
        if (!fb) {
            Serial.println("Camera capture failed");
        } else {
            String buffer = base64::encode((uint8_t *) fb->buf, fb->len);
            Serial.println("base64 :");
            Serial.println(buffer);
        }
    
    }

    Sorun çözüldü. örneğin son hali aşağıdaki gibi. esp_camera_fb_return(fb); komutu sorunu çözdü

    Kod:
    #include "esp_camera.h"
    #include <Arduino.h>
    #include "deneyap.h"
    #include <base64.h>
    
    // ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
    // "Araclar->Partition Scheme->Huge APP" secilmeli //
    // "Tools->Partition Scheme->Huge APP" secilmeli //
    
    camera_fb_t * fb = NULL;
    
    void setup() {
        Serial.begin(115200);
        cameraInit();
    }
    
    void loop() {
    
        delay(5000);
    
        fb = esp_camera_fb_get();
        if (!fb) {
            Serial.println("Camera capture failed");
        } else {
            String buffer = base64::encode((uint8_t *) fb->buf, fb->len);
            Serial.println("base64 :");
            Serial.println(buffer);
            esp_camera_fb_return(fb);
        }
    }


  • #2
    Base64 formatı benim için çok anlaşılır değil. Pixel pixel resim öğelerini inceleyeceğim bir formatta resim elde etmek mümkün mü? Hatta bundan da öncesi: istediğim çözünürlükte ve örneğin gri formatta resmi kodlarımla çektirmek mümkün mü? Bu konuda örnek/ kaynak önerebilir misiniz?

    Yorum Yap


    • #3
      Aslı fatihaslamaci tarafından gönderilmiş Mesajı göster
      Merhaba,
      Aşağıdaki kod ile sadece 2 kare fotoğraf çekebiliyorum.
      3 üncü çekimde "Failed to get the frame on time!" hatası almaktayım.
      sorun ne olabilir.

      Meraklısına Not: Çekilen resmi base64 formatına çevirip seri monitöre yazıyorum.
      seri monitörden kopyala yapıştır yapıp "https://codebeautify.org/base64-to-image-converter" sitesinden resmi görüntüleyebilirsiniz.



      Kod:
      #include "esp_camera.h"
      #include <Arduino.h>
      #include "deneyap.h"
      #include <base64.h>
      
      // ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
      // "Araclar->Partition Scheme->Huge APP" secilmeli //
      // "Tools->Partition Scheme->Huge APP" secilmeli //
      
      
      void setup() {
      Serial.begin(115200);
      cameraInit();
      }
      
      void loop() {
      
      delay(5000);
      camera_fb_t * fb = NULL;
      fb = esp_camera_fb_get();
      if (!fb) {
      Serial.println("Camera capture failed");
      } else {
      String buffer = base64::encode((uint8_t *) fb->buf, fb->len);
      Serial.println("base64 :");
      Serial.println(buffer);
      }
      
      }
      Merhaba. Sorununuza bir cevap bulabildiniz mi?

      Sırf çektiği görüntünün pixel değerlerini elde edebilmek için ESP-CAM modül satın aldım ama işlenen veriler arttıkça (foto boyutu arttıkça) onda da hatalar oluştu. (Watch Dog taşması)

      bu konudaki çözüm, benim de aradığım bir sonuç. Bu yüzden eğer bir çözüm bulduysanız, paylaşırsanız sevinirim. İyi çalışmalar

      Yorum Yap


      • #4
        Sorunu çözdüm,
        resim çektikten sonra iş bitince esp_camera_fb_return(fb); komutunu vermek gerekiyormuş



        örneğin son hali aşağıdaki gibi

        Kod:
        #include "esp_camera.h"
        #include <Arduino.h>
        #include "deneyap.h"
        #include <base64.h>
        
        // ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
        // "Araclar->Partition Scheme->Huge APP" secilmeli //
        // "Tools->Partition Scheme->Huge APP" secilmeli //
        
        camera_fb_t * fb = NULL;
        
        void setup() {
            Serial.begin(115200);
            cameraInit();
        }
        
        void loop() {
        
            delay(5000);
        
            fb = esp_camera_fb_get();
            if (!fb) {
                Serial.println("Camera capture failed");
            } else {
                String buffer = base64::encode((uint8_t *) fb->buf, fb->len);
                Serial.println("base64 :");
                Serial.println(buffer);
                esp_camera_fb_return(fb);
            }
        }

        Yorum Yap


        • asergin
          asergin yorumladı
          Yorumu Düzenleme
          Sanırım benim sorunum farklı.

          for (i = 0; i < fb->len; i++)
          {

          pixel = *(fb->buf)++;
          .
          .
          VGA çözünürlüğünde görüntü karelerinin pixellerini yukarıdaki gibi bir döngü içinde işlemek istediğimde, yaklaşık 18-20 kare sonunda seri monitörde aşağıdaki gibi bir mesajla sistem resetleniyor:

          rst:0x8 (TG1WDT_SYS_RESET),boot:0x16 (SPI_FAST_FLASH_BOOT)
          configsip: 0, SPIWP:0xee
          clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd _drv:0x00,wp_drv:0x00
          mode: DIO, clock div:1
          load:0x3fff0030,len:1252
          load:0x40078000,len:12716
          load:0x40080400,len:3100
          entry 0x400805ec

          aynı süre sonunda hep aynı mesajla reset tekrarlanıyor. Bu sorunla karşılaşan ya da bu konuyla ilgili çözüm önerisi olan var mı acaba?
      Hazırlanıyor...
      X