M5AtomS3Rカメラキットを使ってみた
AtomS3のLCDの代わりにカメラを付けたような構成のマイコンボードです- ESP32-S3-PICO-1-N8R8ベース
- GC0308 カメラ(300,000-pixel)
- 6 軸IMU(BMI270)と 3 軸地磁気センサ(BMM150)
- プログラム可能なキースイッチ
- 拡張可能な入出力ピンとインターフェイス
- 開発プラットフォーム:Arduino、UIFlow、micropython
カメラ GC0308
カメラユニット GC0308はI2Cで接続、I2Cアドレスは 0x21です。カメラの基本性能は▼
Active pixel array | 648 x 488 |
ADC resolution | 10 bit ADC |
Max Frame rate | 30fps@24Mhz,VGA |
G18にLOWを出力
仕様のピンマップにはコッソリ書かれていますが・・・ (。-`ω-) GC0308のPOWER_NがG18に繋がっています。 普通に考えると G18をHIGHで POWER ONな気がしますが G18をLOWで CG0308 が POWER ONになるようです。 サンプルプログラムでも pinMode(POWER_GPIO_NUM, OUTPUT);※ POWER_GPIO_NUMはG18に定義されている。 としていて、最初にG18をLOWに設定しています。 G18をLOWにしないとGC0308が動きません。 |
確認用DEMOスケッチ
公式サイト で配付している AtomS3R CAM - Web CAM (Arduino) をベースに作成。QVGA(320x240)のJPEGを連続して表示しています。
ライブアリの確認できていませんので、不明ですが
.pixel_format = PIXFORMAT_RGB565, .frame_size = FRAMESIZE_QVGA, |
※カタログスペックではVGA(640x480)は可能なはず。
Webサーバ(AtomS3R)へのリクエストは Ajuxを使用して GET モードで 送信しているので、画面の再描画が起こりません。
WiFiルータにClientとして接続するSTA MODEとAtomS3RをWiFi親機にするAP MODEが選べます。
AP MODEで使用する場合は、SSID:AtomS3Rに接続し、http://192.168.4.1にアクセスしてください。
GC0308で出来ることは、スペックシートを見れば確認できます。
スペックシートに記載されている機能と、ライブラリのヘッダー定義を比較すれば、設定方法も何となくわかります。
例えばスペックシートの▼の部分を見ると、上下反転、左右反転が出来ることが分かります。
sensor.h の記述
int (*set_hmirror) (sensor_t *sensor, int enable); int (*set_vflip) (sensor_t *sensor, int enable); |
なので ▼ の操作で、カメラ画像を180度回転出来ることが分かります。
他にも sensor.h には各種パラメタ定義がありますので、パラメタを変更すれば色々できそうです。
ただ、GC0308専用のライブラリではないようなので、GC0308では設定できない値もありそうです。
PIXFORMAT_RGB565, // 2BPP/RGB565 PIXFORMAT_JPEG, // JPEG/COMPRESSED PIXFORMAT_RGB888, // 3BPP/RGB888 PIXFORMAT_RAW, // RAW PIXFORMAT_RGB444, // 3BP2P/RGB444 PIXFORMAT_RGB555, // 3BP2P/RGB555 FRAMESIZE_QQVGA, // 160x120 FRAMESIZE_QVGA, // 320x240 FRAMESIZE_CIF, // 400x296 FRAMESIZE_HVGA, // 480x320 FRAMESIZE_VGA, // 640x480 FRAMESIZE_SVGA, // 800x600 |