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 da 2MPixel (OV2640 o OV7670 – Qui il datasheet) 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 ad alta luminosità (connesso al PIN GPIO4) 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.

Lo schema completo del modulo, molto utile per comprenderne il funzionamento e i collegamenti, è disponibile qui: ESP32-CAM Schematic

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.

*** Aggiornamento 17.04.2019 *** E’ possibile usare anche l’SDK di Arduino per programmare la scheda e usare la videocamera e gli altri dispositivi. Maggiori informazioni su Ai-Thinker ESP32-CAM in the Arduino IDE.

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

(Visitato in totale 2.305 volte, oggi 4 visite)

Rispondi

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