Un ciondolo indossabile aiuta le persone ipovedenti a capire cosa hanno intorno. Alla pressione di un pulsante, una ESP32-CAM scatta una foto dell’ambiente, la invia al cloud per ottenere una descrizione testuale, la converte in parlato e la riproduce da un altoparlante. Il progetto è di Anand D e supera i limiti dei tradizionali bastoni con sensori di prossimità, che rilevano solo gli ostacoli vicini.
La scheda centrale è la ESP32-CAM, che unisce fotocamera e microcontrollore in un modulo compatto. L’utente preme un limit switch per catturare l’immagine. La foto parte verso il CircuitDigest Cloud, che la analizza e restituisce una descrizione dettagliata in formato JSON. Il testo arriva poi a Sarvam AI, che lo converte in un file audio in formato Base64. Infine la ESP32-CAM scarica il file, lo decodifica e lo riproduce tramite l’amplificatore I2S MAX98357 e un altoparlante.
I componenti del ciondolo e l’alimentazione
Oltre alla ESP32-CAM, servono pochi componenti: l’amplificatore MAX98357, un altoparlante, un convertitore boost HW-105 da 5V, un limit switch, un pulsante e un interruttore. Il convertitore boost alimenta l’intero sistema da una batteria. Deve fornire in media 600mA, un valore che la ESP32-CAM assorbe soprattutto durante la trasmissione Wi-Fi e la riproduzione audio.
La frequenza di campionamento audio è inizializzata a 16000 Hz, mentre il fattore di guadagno AUDIO_GAIN_FACTOR è impostato a 2.5f per rendere il volume adeguato all’ascolto. Un pulsante aggiuntivo permette di cambiare la lingua delle risposte tra Hindi, Inglese, Tamil e Malayalam. In questo modo il dispositivo si adatta all’utente, non il contrario.
Il firmware: librerie e limiti delle API
Il codice sorgente usa diverse librerie per gestire la fotocamera, la connessione e l’audio. Tra queste ci sono esp_camera.h, WiFi.h, HTTPClient.h, driver/i2s.h e mbedtls/base64.h. Per il parsing della risposta JSON si usa ArduinoJson. Il flusso è lineare: scatto, upload, descrizione, sintesi vocale, riproduzione.
Ci sono però dei limiti da rispettare. Sarvam AI, con il modello Bulbul v3, accetta un massimo di 2500 caratteri per richiesta. Questo vincolo è più alto di quello di Wit.ai, che si ferma a 280 caratteri, e di Google TTS, che arriva a 5000. In pratica la descrizione generata dal cloud rientra quasi sempre nel limite, ma il codice deve gestire eventuali risposte troppo lunghe.
Per chi vuole approfondire il codice, gli sketch e i dettagli del montaggio, il repository di Anand D è il punto di partenza giusto. Il progetto dimostra come un microcontrollore economico possa diventare un dispositivo di assistenza reale, usando la visione artificiale per descrivere l’ambiente e la sintesi vocale per comunicarlo.
- ESP32-CAM con fotocamera integrata
- Amplificatore I2S MAX98357
- Altoparlante da 8 ohm
- Convertitore boost HW-105 5V
- Limit switch per lo scatto
- Pulsante per il cambio lingua
- Interruttore toggle per l’accensione
Per programmare la scheda serve un convertitore USB-TTL, che permette di collegare la ESP32-CAM al PC. In alternativa, chi vuole una scheda più moderna può valutare il kit di sviluppo ESP32-C6-Zero, che offre Wi-Fi 6 e un formato compatto, anche se richiede una fotocamera esterna.
Fonte: https://circuitdigest.com/microcontroller-projects/esp32cam-ai-vision-assistant-pendant
