Adding start of camera support.
This commit is contained in:
@ -106,6 +106,7 @@ $(GEN)/windows_boot.h: common/source_to_string.js $(WINDOWS_BOOT) | $(GEN)
|
||||
ARDUINO_BOOT = common/boot.fs arduino/arduino.fs \
|
||||
posix/posix_highlevel.fs common/filetools.fs \
|
||||
common/tasks.fs common/streams.fs arduino/arduino_server.fs \
|
||||
arduino/esp_camera.fs \
|
||||
arduino/autoboot.fs
|
||||
$(GEN)/arduino_boot.h: common/source_to_string.js $(ARDUINO_BOOT) | $(GEN)
|
||||
echo "ok" | cat $(ARDUINO_BOOT) - | $< boot >$@
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{{opcodes}}
|
||||
|
||||
#include "esp_camera.h"
|
||||
#include <Wire.h>
|
||||
#include <WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
@ -151,15 +152,26 @@
|
||||
X("Wire.endTransmission", WIRE_END_TRANSMISSION, tos = (cell_t) Wire.endTransmission(tos)) \
|
||||
X("Wire.requestFrom", WIRE_REQUEST_FROM, tos = (cell_t) Wire.requestFrom(sp[-1], *sp, tos); sp -= 2) \
|
||||
X("Wire.writeTransmission", WIRE_WRITE_TRANSMISSION, \
|
||||
tos = (cell_t) Wire.writeTransmission(sp[-2], (uint8_t *) sp[-1], *sp, tos); sp -=3) \
|
||||
tos = (cell_t) Wire.writeTransmission(sp[-2], (uint8_t *) sp[-1], *sp, tos); sp -=3) \
|
||||
X("Wire.readTransmission", WIRE_READ_TRANSMISSION, \
|
||||
tos = (cell_t) Wire.readTransmission(sp[-3], (uint8_t *) sp[-2], sp[-1], *sp, (uint32_t *) tos); sp -=4) \
|
||||
tos = (cell_t) Wire.readTransmission(sp[-3], (uint8_t *) sp[-2], sp[-1], *sp, (uint32_t *) tos); sp -=4) \
|
||||
X("Wire.write", WIRE_WRITE, tos = Wire.write((uint8_t *) *sp, tos); --sp) \
|
||||
X("Wire.available", WIRE_AVAILABLE, DUP; tos = Wire.available()) \
|
||||
X("Wire.read", WIRE_READ, DUP; tos = Wire.read()) \
|
||||
X("Wire.peek", WIRE_PEEK, DUP; tos = Wire.peek()) \
|
||||
X("Wire.busy", WIRE_BUSY, DUP; tos = Wire.busy()) \
|
||||
X("Wire.flush", WIRE_FLUSH, Wire.flush()) \
|
||||
/* Camera */ \
|
||||
X("esp_camera_init", ESP_CAMERA_INIT, \
|
||||
tos = esp_camera_init((const camera_config_t *) tos)) \
|
||||
X("esp_camera_deinit", ESP_CAMERA_DEINIT, \
|
||||
DUP; tos = esp_camera_deinit()) \
|
||||
X("esp_camera_fb_get", ESP_CAMERA_FB_GET, \
|
||||
DUP; tos = (cell_t) esp_camera_fb_get()) \
|
||||
X("esp_camera_db_return", ESP_CAMERA_FB_RETURN, \
|
||||
esp_camera_fb_return((camera_fb_t *) tos); DROP) \
|
||||
X("esp_camera_sensor_get", ESP_CAMERA_SENSOR_GET, \
|
||||
DUP; tos = (cell_t) esp_camera_sensor_get()) \
|
||||
|
||||
// TODO: Why doesn't ftruncate exist?
|
||||
// X("RESIZE-FILE", RESIZE_FILE, cell_t fd = tos; DROP; \
|
||||
|
||||
30
ueforth/arduino/esp_camera.fs
Normal file
30
ueforth/arduino/esp_camera.fs
Normal file
@ -0,0 +1,30 @@
|
||||
( Handling for ESP32-CAM )
|
||||
|
||||
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
|
||||
|
||||
5 constant FRAMESIZE_QVGA
|
||||
8 constant FRAMESIZE_VGA
|
||||
|
||||
( 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_RGB565 , ( pixel_format )
|
||||
FRAMESIZE_VGA , ( frame_size ) 12 , ( jpeg_quality 0-63 low good )
|
||||
here
|
||||
1 , ( fb_count )
|
||||
constant camera-fb-count
|
||||
constant camera-format
|
||||
Reference in New Issue
Block a user