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 \
|
ARDUINO_BOOT = common/boot.fs arduino/arduino.fs \
|
||||||
posix/posix_highlevel.fs common/filetools.fs \
|
posix/posix_highlevel.fs common/filetools.fs \
|
||||||
common/tasks.fs common/streams.fs arduino/arduino_server.fs \
|
common/tasks.fs common/streams.fs arduino/arduino_server.fs \
|
||||||
|
arduino/esp_camera.fs \
|
||||||
arduino/autoboot.fs
|
arduino/autoboot.fs
|
||||||
$(GEN)/arduino_boot.h: common/source_to_string.js $(ARDUINO_BOOT) | $(GEN)
|
$(GEN)/arduino_boot.h: common/source_to_string.js $(ARDUINO_BOOT) | $(GEN)
|
||||||
echo "ok" | cat $(ARDUINO_BOOT) - | $< boot >$@
|
echo "ok" | cat $(ARDUINO_BOOT) - | $< boot >$@
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{{opcodes}}
|
{{opcodes}}
|
||||||
|
|
||||||
|
#include "esp_camera.h"
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include <WiFiClient.h>
|
#include <WiFiClient.h>
|
||||||
@ -151,15 +152,26 @@
|
|||||||
X("Wire.endTransmission", WIRE_END_TRANSMISSION, tos = (cell_t) Wire.endTransmission(tos)) \
|
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.requestFrom", WIRE_REQUEST_FROM, tos = (cell_t) Wire.requestFrom(sp[-1], *sp, tos); sp -= 2) \
|
||||||
X("Wire.writeTransmission", WIRE_WRITE_TRANSMISSION, \
|
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, \
|
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.write", WIRE_WRITE, tos = Wire.write((uint8_t *) *sp, tos); --sp) \
|
||||||
X("Wire.available", WIRE_AVAILABLE, DUP; tos = Wire.available()) \
|
X("Wire.available", WIRE_AVAILABLE, DUP; tos = Wire.available()) \
|
||||||
X("Wire.read", WIRE_READ, DUP; tos = Wire.read()) \
|
X("Wire.read", WIRE_READ, DUP; tos = Wire.read()) \
|
||||||
X("Wire.peek", WIRE_PEEK, DUP; tos = Wire.peek()) \
|
X("Wire.peek", WIRE_PEEK, DUP; tos = Wire.peek()) \
|
||||||
X("Wire.busy", WIRE_BUSY, DUP; tos = Wire.busy()) \
|
X("Wire.busy", WIRE_BUSY, DUP; tos = Wire.busy()) \
|
||||||
X("Wire.flush", WIRE_FLUSH, Wire.flush()) \
|
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?
|
// TODO: Why doesn't ftruncate exist?
|
||||||
// X("RESIZE-FILE", RESIZE_FILE, cell_t fd = tos; DROP; \
|
// 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