“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 Demo – gets the image from camera and prints it out as ASCII art to the serial port;
- QR Recognition
- ESP32 Camera Driver – compatible 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
8 comments
Michele ciao, io purtroppo dopo un iniziale upload del camera web server che sembrava andato a buon fine, ho poi ricevuto un errore all’apertura del serial monitor (detected camera not supported + camera probe failed with error 0x20004); adesso poi non mi consente neppure di testare lo sketch perché dopo pochi secondi mi scrive La scheda esp32 (piattaforma esp32, pacchetto esp32) è sconosciuta
Errore durante la compilazione per la scheda ESP32 Dev Module
stesso errore se scelgo la scheda ESP32 Wrover.
Ti sono grato per qls consiglio, aberto
Verifica che l’ecosistema Arduino sia correttamente impostato, seguendo le istruzioni che trovi qui: https://github.com/espressif/arduino-esp32
Fatto questo, ovvero avendo il framework ESP32 installato e funzionante, verifica di compilare il codice usando le impostazioni indicate, ovvero Huge Apps (3MB no OTA), altrimenti potresti avere problemi.
anche a me dava l’ errore 20004. Ho superato il problema alimentando lo ESP a 5Vdc sul relativo pin.
Magari ti puo’ servire !
Ambro
Ciao,
per me non c’e’ verso di farla funzionare.
Ho commentato tutto, lasciando solo la connessione al WiFi, ma da quanto sono riuscito a caprire il programma non esegue questa riga:
WiFi.begin(ssid, password);
Ho configurato il tutto come indicato.
Giuseppe
Salve Giuseppe, il monitor seriale riporta qualche errore? Ti consiglierei di verificare provando con un codice più semplice, ad esempio questo: https://github.com/michelep/ESP32-CAM_CameraWebServer
Ciao Michele,
risolto il tutto alimentando la scheda esternamente e non da USB.
Giuseppe
Ok, forse la porta USB che usavi non aveva abbastanza potenza per alimentare il modulo?
Ciao Michele,
restandoo a casa ho il tempo di sperimentare e ho installato esp-ide e scaricato da git who il framwork.
Dopo vari tentativi sono riuscito a compilarlo e a scaricarlo sulla board.
Ho scelto ai-thinker pin dal menuconfig.
Ma dopo aver scaricato il sw sulla scheda questa e’ in continuo restart.
Ho poi invece utilizzato l’esempio camera in arduino IDE e va tutto bene.
Mi serve programmare con ESP-IDF ide perche’ devo cambiare i paramtri Http server e questo lo posso solo fare attraverso il menuconfig che configura il file sdkconfig
Quale potrebbe essere il problema?