TinyML on the esp32-cam
Introduction
The esp32-cam is a very cheap esp32 board with 4MB PSRAM and an integrated
OV2640
2 MPixel camera. Because of these features, it is particularly interesting for TinyML work. There is a C driver for this camera as well as its MicroPython language binding.
The disadvantage of this module is the limited number of GPIO pins that can be accessed for general use.
https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout
has a complete description of all GPIO lines available and how they are used.
The module has 16 external pins, of which already 6 are used for power and ground. There are 2 pins, of which either one can be used to power the esp32-cam marked, 5V and 3V3. The pin labelled Vcc should not be used to power the board, it is in fact an output pin.
GPIO 1 and 3 are the serial Tx and Rx respectively. If you have a board with a USB connector, then these pins stay unused. In the other case, you must connect the board to your PC through these pins for serial communication and for flashing, using an USB to serial converter. When connecting GPIO-0 to ground and resetting the esp32-cam it enters into flash mode. For normal operation, this connection must be removed.
The esp32-cam features a SD-card interface using GPIO 14,15,2,4,12,13. GPIO 4 is also used for the flashlight. These pins are available as regular inputs/outputs if the SD card is not used.
For more details, you may consult the circuit diagram:
https://afnog.iotworkshop.africa/pub/IoT_Course_English/TinyMLOnTheEsp32s3-wroom/ESP32_CAM_V1.6.pdf
Connecting the MPU6050 accelerometer and gyroscope
The MPU6050 accelerometer and gyroscope is used in the magic wand example.
Here is the connection table:
Microphone connection
I2S microphones are used in the Wake Word Detection example. Two different microphone breakout boards are available and can easily be connected to the esp32-cam (see
WakeWordDetection)
For the esp32-cam the connections are given below:
INMP441 |
SPH0645 |
ESP32-CAMG |
GND |
GND |
GND |
VDD |
3V |
3.3V |
SD |
DOUT |
GPIO 14 |
SCK |
BCLK |
GPIO 15 |
WS |
SEL |
GPIO 2 |
L/R |
LRCL |
GND |
--
Uli Raich - 2022-09-23
Comments