128 lines
3.7 KiB
Forth
128 lines
3.7 KiB
Forth
\ Copyright 2021 Bradley D. Nelson
|
|
\
|
|
\ Licensed under the Apache License, Version 2.0 (the "License");
|
|
\ you may not use this file except in compliance with the License.
|
|
\ You may obtain a copy of the License at
|
|
\
|
|
\ http://www.apache.org/licenses/LICENSE-2.0
|
|
\
|
|
\ Unless required by applicable law or agreed to in writing, software
|
|
\ distributed under the License is distributed on an "AS IS" BASIS,
|
|
\ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
\ See the License for the specific language governing permissions and
|
|
\ limitations under the License.
|
|
|
|
internals definitions
|
|
transfer camera-builtins
|
|
forth definitions
|
|
|
|
( Lazy loaded camera handling for ESP32-CAM )
|
|
: camera r|
|
|
|
|
vocabulary camera camera definitions
|
|
also internals
|
|
transfer camera-builtins
|
|
|
|
0 constant PIXFORMAT_RGB565
|
|
1 constant PIXFORMAT_YUV422
|
|
2 constant PIXFORMAT_GRAYSCALE
|
|
3 constant PIXFORMAT_JPEG
|
|
4 constant PIXFORMAT_RGB888
|
|
5 constant PIXFORMAT_RAW
|
|
6 constant PIXFORMAT_RGB444
|
|
7 constant PIXFORMAT_RGB555
|
|
|
|
0 constant FRAMESIZE_96x96 ( 96x96)
|
|
1 constant FRAMESIZE_QQVGA ( 160x120 )
|
|
2 constant FRAMESIZE_QCIF ( 176x144 )
|
|
3 constant FRAMESIZE_HQVGA ( 240x176 )
|
|
4 constant FRAMESIZE_240x240 ( 176x144 )
|
|
5 constant FRAMESIZE_QVGA ( 320x240 )
|
|
6 constant FRAMESIZE_CIF ( 400x296 )
|
|
7 constant FRAMESIZE_HVGA ( 480x320 )
|
|
8 constant FRAMESIZE_VGA ( 640x480 )
|
|
9 constant FRAMESIZE_SVGA ( 800x600 )
|
|
10 constant FRAMESIZE_XGA ( 1024x768 )
|
|
11 constant FRAMESIZE_HD ( 1280x720 )
|
|
12 constant FRAMESIZE_SXGA ( 1280x1024 )
|
|
13 constant FRAMESIZE_UXGA ( 1600x1200 )
|
|
|
|
( See https://github.com/espressif/esp32-camera/blob/master/driver/include/esp_camera.h )
|
|
( Settings for AI_THINKER )
|
|
create camera-config
|
|
32 , ( pin_pwdn ) -1 , ( pin_reset ) 0 , ( pin_xclk )
|
|
26 , ( pin_sscb_sda ) 27 , ( pin_sscb_scl )
|
|
35 , 34 , 39 , 36 , 21 , 19 , 18 , 5 , ( pin_d7 - pin_d0 )
|
|
25 , ( pin_vsync ) 23 , ( pin_href ) 22 , ( pin_pclk )
|
|
20000000 , ( xclk_freq_hz )
|
|
0 , ( ledc_timer ) 0 , ( ledc_channel )
|
|
here
|
|
PIXFORMAT_JPEG , ( pixel_format )
|
|
here
|
|
FRAMESIZE_VGA , ( frame_size )
|
|
here
|
|
12 , ( jpeg_quality 0-63 low good )
|
|
here
|
|
1 , ( fb_count )
|
|
constant camera-fb-count
|
|
constant camera-jpeg-quality
|
|
constant camera-frame-size
|
|
constant camera-format
|
|
|
|
: field@ ( n -- n ) dup create , cell+ does> @ + @ ;
|
|
|
|
0
|
|
field@ fb->buf
|
|
field@ fb->len
|
|
field@ fb->width
|
|
field@ fb->height
|
|
field@ fb->format
|
|
field@ fb->sec
|
|
field@ fb->usec
|
|
drop
|
|
|
|
5 cells
|
|
field@ s->xclk_freq_hz ( a )
|
|
field@ s->init_status ( s )
|
|
field@ s->reset ( s )
|
|
field@ s->set_pixformat ( s pixformat )
|
|
field@ s->set_framesize ( s framesize )
|
|
field@ s->set_contrast ( s level )
|
|
field@ s->set_brightness ( s level )
|
|
field@ s->set_saturation ( s level )
|
|
field@ s->set_sharpness ( s level )
|
|
field@ s->set_denoise ( s level )
|
|
field@ s->set_gainceiling ( s gainceil )
|
|
field@ s->set_quality ( s quality )
|
|
field@ s->set_colorbar ( s enable )
|
|
field@ s->set_whitebal ( s enable )
|
|
field@ s->set_gain_ctrl ( s enable )
|
|
field@ s->set_exposure_ctrl ( s enable )
|
|
field@ s->set_hmirror ( s enable )
|
|
field@ s->set_vflip ( s enable )
|
|
|
|
field@ s->set_aec2 ( s enable )
|
|
field@ s->set_awb_gain ( s enable )
|
|
field@ s->set_agc_gain ( s gain )
|
|
field@ s->set_aec_value ( s gain )
|
|
|
|
field@ s->set_special_effect ( s effect )
|
|
field@ s->set_wb_mode ( s mode )
|
|
field@ s->set_ae_level ( s level )
|
|
|
|
field@ s->set_raw_gma ( s enable )
|
|
field@ s->set_lenc ( s enable )
|
|
|
|
field@ s->get_reg ( s reg mask )
|
|
field@ s->set_reg ( s reg mask value )
|
|
field@ s->set_res_raw ( s startX startY endX endY offsetX offsetY totalX totalY outputX outputY scale binning )
|
|
field@ s->set_pll ( s bypass mul sys root pre seld5 pclken pclk )
|
|
field@ s->set_xclk ( s time xclk )
|
|
drop
|
|
|
|
forth definitions
|
|
camera
|
|
| evaluate ;
|
|
|
|
[THEN]
|