同步esp-video组件驱动摄像头的配置(waveshare s3-3.5、s3-3.5b、s3-audio-board) (#1291)

* 同步esp-video组件驱动摄像头的配置

* 修改Waveshare ESP32-S3-AUDIO-Board 摄像头配置。

* Modify the XCLK parameters of the camera, and modify the config.txt to be compatible with 2640 and 5640.

* Update the esp_video component version to 1.3.0

* Downgrade the esp_video component version. There are unfixed bugs.

* Update component version
This commit is contained in:
Y1hsiaochunnn
2025-10-20 21:20:42 +08:00
committed by GitHub
parent a601a5cbc1
commit 3176a45ebe
7 changed files with 44 additions and 30 deletions

View File

@@ -4,7 +4,15 @@
{ {
"name": "esp32-s3-touch-lcd-3.5", "name": "esp32-s3-touch-lcd-3.5",
"sdkconfig_append": [ "sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=y" "CONFIG_USE_WECHAT_MESSAGE_STYLE=y",
"CONFIG_CAMERA_OV2640=y",
"CONFIG_CAMERA_OV2640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV2640_DVP_YUV422_640X480_6FPS=y",
"CONFIG_CAMERA_OV2640_DVP_IF_FORMAT_INDEX_DEFAULT=1",
"CONFIG_CAMERA_OV5640=y",
"CONFIG_CAMERA_OV5640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV5640_DVP_YUV422_800X600_10FPS=y",
"CONFIG_CAMERA_OV5640_DVP_IF_FORMAT_INDEX_DEFAULT=0"
] ]
} }
] ]

View File

@@ -193,13 +193,9 @@ private:
}; };
esp_video_init_sccb_config_t sccb_config = { esp_video_init_sccb_config_t sccb_config = {
.init_sccb = true, .init_sccb = false, // 不初始化新的 SCCB使用现有的 I2C 总线
.i2c_config = { .i2c_handle = i2c_bus_, // 使用现有的 I2C 总线句柄
.port = I2C_NUM_0, .freq = 100000, // 100kHz
.scl_pin = CAM_PIN_SIOC,
.sda_pin = CAM_PIN_SIOD,
},
.freq = 100000,
}; };
esp_video_init_dvp_config_t dvp_config = { esp_video_init_dvp_config_t dvp_config = {
@@ -207,7 +203,7 @@ private:
.reset_pin = CAM_PIN_RESET, .reset_pin = CAM_PIN_RESET,
.pwdn_pin = CAM_PIN_PWDN, .pwdn_pin = CAM_PIN_PWDN,
.dvp_pin = dvp_pin_config, .dvp_pin = dvp_pin_config,
.xclk_freq = 10000000, .xclk_freq = 12000000,
}; };
esp_video_init_config_t video_config = { esp_video_init_config_t video_config = {

View File

@@ -3,7 +3,17 @@
"builds": [ "builds": [
{ {
"name": "waveshare-s3-audio-board", "name": "waveshare-s3-audio-board",
"sdkconfig_append": [] "sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=y",
"CONFIG_CAMERA_OV2640=y",
"CONFIG_CAMERA_OV2640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV2640_DVP_YUV422_640X480_6FPS=y",
"CONFIG_CAMERA_OV2640_DVP_IF_FORMAT_INDEX_DEFAULT=1",
"CONFIG_CAMERA_OV5640=y",
"CONFIG_CAMERA_OV5640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV5640_DVP_YUV422_800X600_10FPS=y",
"CONFIG_CAMERA_OV5640_DVP_IF_FORMAT_INDEX_DEFAULT=0"
]
} }
] ]
} }

View File

@@ -20,7 +20,7 @@
#include "led/circular_strip.h" #include "led/circular_strip.h"
#include "esp_lcd_jd9853.h" #include "esp_lcd_jd9853.h"
#define TAG "waveshare_lcd_1_85c" #define TAG "waveshare_s3_audio_board"
#define LCD_OPCODE_WRITE_CMD (0x02ULL) #define LCD_OPCODE_WRITE_CMD (0x02ULL)
#define LCD_OPCODE_READ_CMD (0x0BULL) #define LCD_OPCODE_READ_CMD (0x0BULL)
@@ -175,13 +175,9 @@ private:
}; };
esp_video_init_sccb_config_t sccb_config = { esp_video_init_sccb_config_t sccb_config = {
.init_sccb = true, .init_sccb = false, // 不初始化新的 SCCB使用现有的 I2C 总线
.i2c_config = { .i2c_handle = i2c_bus_, // 使用现有的 I2C 总线句柄
.port = 0, .freq = 100000, // 100kHz
.scl_pin = CAMERA_PIN_SIOC,
.sda_pin = CAMERA_PIN_SIOD,
},
.freq = 100000,
}; };
esp_video_init_dvp_config_t dvp_config = { esp_video_init_dvp_config_t dvp_config = {
@@ -189,7 +185,7 @@ private:
.reset_pin = CAMERA_PIN_RESET, .reset_pin = CAMERA_PIN_RESET,
.pwdn_pin = CAMERA_PIN_PWDN, .pwdn_pin = CAMERA_PIN_PWDN,
.dvp_pin = dvp_pin_config, .dvp_pin = dvp_pin_config,
.xclk_freq = XCLK_FREQ_HZ, .xclk_freq = 12000000,
}; };
esp_video_init_config_t video_config = { esp_video_init_config_t video_config = {
@@ -197,7 +193,7 @@ private:
}; };
camera_ = new Esp32Camera(video_config); camera_ = new Esp32Camera(video_config);
camera_->SetVFlip(1);
} }
public: public:
CustomBoard() : CustomBoard() :

View File

@@ -4,7 +4,15 @@
{ {
"name": "waveshare-s3-touch-lcd-3.5b", "name": "waveshare-s3-touch-lcd-3.5b",
"sdkconfig_append": [ "sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=y" "CONFIG_USE_WECHAT_MESSAGE_STYLE=y",
"CONFIG_CAMERA_OV2640=y",
"CONFIG_CAMERA_OV2640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV2640_DVP_YUV422_640X480_6FPS=y",
"CONFIG_CAMERA_OV2640_DVP_IF_FORMAT_INDEX_DEFAULT=1",
"CONFIG_CAMERA_OV5640=y",
"CONFIG_CAMERA_OV5640_AUTO_DETECT_DVP_INTERFACE_SENSOR=y",
"CONFIG_CAMERA_OV5640_DVP_YUV422_800X600_10FPS=y",
"CONFIG_CAMERA_OV5640_DVP_IF_FORMAT_INDEX_DEFAULT=0"
] ]
} }
] ]

View File

@@ -196,13 +196,9 @@ private:
}; };
esp_video_init_sccb_config_t sccb_config = { esp_video_init_sccb_config_t sccb_config = {
.init_sccb = true, .init_sccb = false, // 不初始化新的 SCCB使用现有的 I2C 总线
.i2c_config = { .i2c_handle = i2c_bus_, // 使用现有的 I2C 总线句柄
.port = I2C_NUM_0, .freq = 100000, // 100kHz
.scl_pin = CAM_PIN_SIOC,
.sda_pin = CAM_PIN_SIOD,
},
.freq = 100000,
}; };
esp_video_init_dvp_config_t dvp_config = { esp_video_init_dvp_config_t dvp_config = {
@@ -210,7 +206,7 @@ private:
.reset_pin = CAM_PIN_RESET, .reset_pin = CAM_PIN_RESET,
.pwdn_pin = CAM_PIN_PWDN, .pwdn_pin = CAM_PIN_PWDN,
.dvp_pin = dvp_pin_config, .dvp_pin = dvp_pin_config,
.xclk_freq = 10000000, .xclk_freq = 12000000,
}; };
esp_video_init_config_t video_config = { esp_video_init_config_t video_config = {

View File

@@ -27,7 +27,7 @@ dependencies:
espressif/button: ~4.1.3 espressif/button: ~4.1.3
espressif/knob: ^1.0.0 espressif/knob: ^1.0.0
espressif/esp_video: espressif/esp_video:
version: '==1.2.0' # for compatibility. update version may need to modify this project code. version: '==1.3.1' # for compatibility. update version may need to modify this project code.
rules: rules:
- if: target not in [esp32] - if: target not in [esp32]
espressif/esp_lcd_touch_ft5x06: ~1.0.7 espressif/esp_lcd_touch_ft5x06: ~1.0.7