Jeff Epler 5db6db0128
add esp32-camera
This uses the esp32-camera code instead of our own homebrewed camera code.
In theory it supports esp32, esp32-s2 and esp32-s3, as long as they have
PSRAM.

This is very basic and doesn't support changing any camera parameters,
including switching resolution or pixelformat.

This is tested on the Kaluga (ESP32-S2) and ESP32-S3-Eye boards.

First, reserve some PSRAM by putting this line in `CIRCUITPY/_env`:
```
CIRCUITPY_RESERVED_PSRAM=524288
```
and hard-reset the board for it to take effect.

Now, the following script will take a very low-resolution jpeg file and print
it in the REPL in escape coded form:

```python
import board
import esp32_camera

c = esp32_camera.Camera(
    data_pins=board.CAMERA_DATA,
    external_clock_pin=board.CAMERA_XCLK,
    pixel_clock_pin=board.CAMERA_PCLK,
    vsync_pin=board.CAMERA_VSYNC,
    href_pin=board.CAMERA_HREF,
    pixel_format=esp32_camera.PixelFormat.JPEG,
    i2c=board.I2C(),
    external_clock_frequency=20_000_000)

m = c.take()
if m is not None:
    print(bytes(m))
```

Then on desktop open a python repl and run something like
```python
>>> with open("my.jpg", "wb") as f: f.write(<BIG PASTE FROM REPL>)
```
and open my.jpg in a viewer.
2022-08-04 15:11:50 -05:00
..
2022-05-27 12:59:54 -07:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-08-04 15:11:50 -05:00
2022-05-27 15:48:01 -07:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2021-11-22 14:54:44 -08:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-05-12 13:20:44 -07:00
2020-07-06 19:16:25 +01:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2022-04-08 16:43:15 -04:00
2022-02-15 12:36:26 -06:00
2021-10-15 08:20:54 -05:00
2021-10-15 15:11:21 -05:00
2022-05-27 15:48:01 -07:00
2021-04-19 22:22:44 -07:00
2021-04-19 22:22:44 -07:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2021-08-29 11:36:29 -05:00
2021-10-15 08:20:54 -05:00
2020-07-06 19:16:25 +01:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2021-05-08 20:17:16 -05:00
2021-05-08 20:17:16 -05:00
2021-04-19 22:22:44 -07:00
2021-06-18 10:54:19 -05:00
2020-07-06 19:16:25 +01:00
2021-06-18 10:54:19 -05:00
2021-04-19 22:22:44 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-08-04 12:10:57 +05:30
2022-05-27 12:59:54 -07:00
2021-04-19 22:22:44 -07:00
2022-05-27 12:59:54 -07:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2020-07-06 19:16:25 +01:00
2021-04-19 22:22:44 -07:00
2022-05-27 12:59:54 -07:00
2022-02-15 12:36:26 -06:00
2022-02-15 12:36:26 -06:00
2022-05-27 12:59:54 -07:00
2021-08-04 12:10:57 +05:30
2022-06-03 15:06:58 -07:00
2021-10-15 08:20:54 -05:00
2022-05-27 12:59:54 -07:00
2022-02-15 12:36:26 -06:00
2020-07-06 19:16:25 +01:00
2020-07-06 19:16:25 +01:00
2022-05-27 12:59:54 -07:00
2022-05-27 12:59:54 -07:00
2021-11-10 20:23:33 +05:30
2022-05-27 12:59:54 -07:00
2022-02-15 12:36:26 -06:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2021-06-18 10:54:19 -05:00
2022-05-27 12:59:54 -07:00
2021-05-05 11:00:35 -05:00
2020-07-06 19:16:25 +01:00
2022-05-27 12:59:54 -07:00