今回はカメラインターフェイスの無い普通のESP32-S3ボードに、OV2640を外付けしてSketch_06.1_CameraWebServerを試してみました。使用したのは以下です。
1.FPC/FFC 24ピン フラットケーブル ⇒ ピンヘッダ 変換基盤(Amazonで3枚組を購入)
2.ESP32-S3-DevKit-C(Arduino IDE 2.3.2 では "ESP32S3 Dev Module")
3.USB DC-DC昇圧コンバータ(Amazonで2個組を購入)
OV2640フラットケーブルのピンアサインをネットで探しました。
camera_pins define | ESP32-S3 | フラットケーブル(変換基盤) NO.と役割 |
---|---|---|
1 NC | ||
GND | 2 AGND | |
SIOD | 4 | 3 SDA |
3.3V | 4 AVDD(2.8V/3.3V) | |
SIOC | 5 | 5 SCL |
6 RESET | ||
VSYNC | 6 | 7 VS |
8 PWDN | ||
HREF | 7 | 9 HS |
外部電源から1.2V | 10 DVDD(1.2V~1.8V?) | |
3.3V | 11 DOVDD(2.8V/3.3V) | |
Y9 | 16 | 12 D9 |
XCLK | 15 | 13 MCLK |
Y8 | 17 | 14 D8 |
GND | 15 DGND | |
Y7 | 18 | 16 D7 |
PCLK | 13 | 17 PCLK |
Y6 | 12 | 18 D6 |
Y2 | 11 | 19 D2 |
Y5 | 10 | 20 D5 |
Y3 | 9 | 21 D3 |
Y4 | 8 | 22 D4 |
23 NC | ||
24 NC |
1.2Vや2.8Vが必要ということですが、2.8Vはボードからの3.3Vを使用し、1.2Vは昇圧コンバータを使用しました(電圧印加は自己責任でお願いします)。
PSRAMは使えないようなので、ArduinoIDE2.3.2のToolsの設定は次のようにしました。他はデフォルトです。
Tools |
---|
8MB(64Mb) |
Huge APP |
OPI PSRAM |
調子が良ければ解像度は「800x600」も出来るようです。Arduino のスケッチ全体は冒頭のサイトのものをそのまま使っていますのでここには載せません。"camera_pins.h"の使った部分のみ次に示します。
camera_pins.h
//#include "camera_pins.h"
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 15
#define SIOD_GPIO_NUM 4
#define SIOC_GPIO_NUM 5
#define Y2_GPIO_NUM 11
#define Y3_GPIO_NUM 9
#define Y4_GPIO_NUM 8
#define Y5_GPIO_NUM 10
#define Y6_GPIO_NUM 12
#define Y7_GPIO_NUM 18
#define Y8_GPIO_NUM 17
#define Y9_GPIO_NUM 16
#define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13
【追加情報」
使用しているESP32S3ボードの刻印が "MON16" だったので再度"esptool"で確認しました。
Flash size: 16MB
Flash type : quad
とありましたので、コンパイルオプションや
Tools |
---|
QIO 120MHz |
16MB(128Mb) |
Huge APP |
QSPI PSRAM |
カメラのパラメーターを
config.xclk_freq_hz = 40000000;
config.frame_size = FRAMESIZE_SVGA;//800x600
config.jpeg_quality = 12;
と変更してみました。心なしか動作も速く安定しているように思えます。
最後まで見ていただきありがとうございました。