Primi passi con il modulo ESP32-CAM

“Giocare significa allenare la mente alla vita. Un gioco non è mai solo un gioco.”
Stephen Littleword

Appena lessi la notizia, rimasi immediatamente affascinato da questo modulo da 10$ basato su ESP32, il fratello maggiore dei moduli ESP prodotti dalla cinese Espressif.

L’ESP32-CAM Development Board della A.I. Thinker incorpora una piccola videocamera (OV2640 o OV7670) ed un slot per una scheda di memoria miniSD fino a 4 GByte, oltre alle consuete linee di I/O programmabili (le specifiche tecniche complete sono qui: ESP32-CAM Product Specification):

  • SPI Flash 32Mbit
  • RAM 520KB SRAM +4M PSRAM
  • Bluetooth 4.2 BR/EDR and BLE standards
  • Wi-Fi 802.11 b/g/n (WPA/WPA2/WPA2-Enterprise/WPS)
  • Support interface UART,SPI,I2C,PWM
  • Support TF card up to 4G
  • 9 I/O port

Sulla scheda è incorporato anche un led (connesso al PIN4) che può essere utilizzato come flash o come illuminatore. Il frame-rate dipende sia dal formato che dalle dimensioni. Indicativamente, riesce ad avere un throughput fino a 8 JPEG in SVGA (800×600) al secondo.

Una brutta notizia, se “brutta” può essere, è che non c’è supporto di tale modulo su Arduino: la programmazione può essere fatta, al momento, solo con il framework ufficiale ESP-IDF, scaricabile liberamente da GitHub: Espressif IoT Development Framework. Official development framework for ESP32.

L’installazione di ESP-IDF non è proprio banale ma seguendo le istruzioni e con un minimo di pazienza, si ottiene in poche decine di minuti un ecosistema di sviluppo perfettamente funzionante.

L’altra brutta notizia è che il modulo ESP32-CAM non ha porta USB incorporata. E quindi deve essere montato su una breadboard per poterlo programmare, attraverso i piedini della la porta seriale GPIO1 e GPIO3.

Ho usato, allo scopo, un adattatore USB – Seriale TTL acquistabile a pochi euro anche su Amazon o su Aliexpress.

ATTENZIONE: per poter caricare il firmware, è necessario abilitare la modalità flash-mode, ponendo il pin IO0 a GND e premendo il pulsante di reset. A questo punto è possibile, attraverso la porta seriale, caricare il firmware. Ricordatevi ovviamente di invertire, sul collegamento seriale, i pin TX e RX.

Per iniziare, ho scaricato e compilato ESP-WHO, “a face detection and recognition platform that is currently based on Espressif Systems’ ESP32 chip.” da GitHub, github.com/espressif/esp-who:

~/$ git clone --recursive https://github.com/espressif/esp-who.git
~/$ make menuconfig

Configuro le sezioni relative al Serial flasher config, indicando la porta seriale dove è connesso il modulo, e la Camera Web Server, indicando le caratteristiche della rete WiFi e del modulo Camera (ESP32 by AI-Thinker).

~/$ make
~/$ make flash

A questo punto possiamo sfruttare la connessione seriale per ricevere i messaggi di debug, attraverso il Monitor seriale di Arduino o altro programma di terminale.

Oltre ad ESP-WHO sono già pronti altri interessanti software come:

  • ESP32 Camera Demogets the image from camera and prints it out as ASCII art to the serial port;
  • QR Recognition
  • ESP32 Camera Drivercompatible driver for OV2640 image sensors. Additionally it provides a few tools, which allow converting the captured frame data to the more common BMP and JPEG formats

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.