Adding start of camera support.

This commit is contained in:
Brad Nelson
2021-01-18 00:41:37 -08:00
parent 89eea55761
commit 6ffb152d1b
3 changed files with 45 additions and 2 deletions

View File

@ -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 >$@

View File

@ -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; \

View 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