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 989 volte, oggi 11 visite)

Rispondi

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