Di Jeremy Cook
Scopri le funzionalità di Espressif ESP32 con un progetto Dali Clock (orologio di Dalì)
L'ESP32, il successore del famoso e potente modulo WiFi ESP8266 di Espressif System è ancora migliore. Le caratteristiche principali includono un'unità di elaborazione dual core a 32 bit che funziona fino a 240 MHz e una comunicazione wireless tramite WiFi e Bluetooth.
Vanta inoltre sensori touch capacitivi, trasferimento dati I2S, funzionalità PLL (phase-locked loop, anello agganciato in fase) per l'audio e due uscite del convertitore da digitale ad analogico (DAC). Queste caratteristiche variano leggermente tra le diverse versioni di ESP32.
Adafruit Huzzah23 (in alto) con DFRobot Firebeetle (in basso)
Utilizzo di ESP32 con un orologio su video composito
Per un esempio concreto di utilizzo dell'ESP32 (facile da implementare e di grande effetto), prendi in considerazione il progetto Dalì Clock di Marcio L. Teixeira. Per questa idea è stato utilizzato un vecchio televisore con un ingresso composito e una scheda di sviluppo ESP per visualizzare un orologio con trasformazione di immagini su uno schermo.
Come ogni progetto che si spinge oltre i limiti, anche questo si basa su idee metaforiche di persone importanti, combinando il concetto di orologio di Dalì (creato per lo Xerox Alto nel 1979) con una scena di tramonto che scorre, ispirata alla pop art degli anni ottanta. Il lavoro tecnico è stato eseguito da diversi hacker dell'hardware. E, naturalmente, non sarebbe stato possibile senza l'ESP32. Infine, non possiamo trascurare di includere Salvador Dalì stesso per la sua originale ispirazione artistica.
Per quanto le sue credenziali siano impressionanti, per configurare questo orologio devi disporre di:
Il progetto originale utilizza una scheda Adafruit Huzzah32 ESP32 Feather. In teoria, puoi utilizzarla con altri dispositivi basati su ESP32 e ho anche provato a realizzare il progetto con un modulo DFRobot FireBeetle ESP32. Entrambi hanno caratteristiche simili e, in linea di massima, funzionano per visualizzare i video. Tuttavia, i due progetti presentano una piccola differenza che viene spiegata più avanti.
Visualizzazione del video
Configurazione: caricamento del codice e collegamento
Per eseguire la configurazione, scarica il codice da GitHub e trasferiscilo nell'ESP32 utilizzando l'IDE di Arduino. Istruzioni più dettagliate su questo processo sono disponibili qui
Dovrai aggiungere la funzionalità di utilizzo con le schede ESP32 nell'IDE di Arduino eseguendo l'accesso ai Preferiti e inserendo "https://dl.espressif.com/dl/package_esp32_index.json" nella sezione degli URL per la gestione di schede aggiuntive.
Una volta eseguita questa operazione, seleziona la scheda di sviluppo (Adafruit ESP32 Feather o FireBeetle-ESP32 in questo caso), insieme alla porta seriale appropriata e carica il codice nel tuo ESP.
Visualizzazione del video
Collega il pin GND della scheda Adafruit Huzzah32 al cilindro esterno della spina RCA.
Successivamente, collega un altro filo dal pin A1 DAC1 al polo centrale della spina da inserire nell'ingresso video composito del televisore. Puoi utilizzare le pinze a coccodrillo per collegarti a una spina standard maschio-maschio oppure sono disponibili spine con terminale a vite che rendono il collegamento molto più sicuro. Presumibilmente, potresti anche aprire un cavo RCA per esporre il cablaggio.
Inserisci la presa RCA nel televisore/monitor, collega l'alimentazione alla scheda di sviluppo e imposta il televisore sulla sorgente di ingresso corretta.
Otterrai un orologio di Dalì che si scioglie sullo schermo e che, a questo punto, quasi certamente mostra l'ora sbagliata. Per ovviare a questa situazione, collegati alla rete WiFi "ESP32 Dali Clock" generata dall'ESP32 tramite un telefono o un computer per configurare le impostazioni tramite un'interfaccia browser. Una volta configurato correttamente, puoi accedervi tramite la rete domestica. L'ora può essere impostata automaticamente tramite NTP/fuso orario o, se preferisci, manualmente.
Collegamento del dispositivo
L'orologio può anche visualizzare la data al posto dell'ora. Collega i fili ad A5 4 e A4 36 alla scheda Huzzah e toccali entrambi con il dito per attivare questa funzione (non l'ho provata sul FireBeetle, ma dovrebbe essere possibile). Può anche essere impostato per cambiare colore durante il giorno assicurando un effetto molto divertente.
Caratteristiche dell'ESP32 utilizzato
Oltre alla velocità di elaborazione (impressionante per un desktop abbastanza recente), questo progetto mette in evidenza alcune caratteristiche dell'ESP32:
Oltre i limiti
Secondo questo video separato, che illustra una configurazione simile a questa, l'ESP32 in realtà non elenca le funzionalità video composite nelle sue specifiche. Tuttavia, il fatto che sia in grado di effettuare la conversione da digitale ad analogico (DAC) e di utilizzare il protocollo I2S la rende molto potente e adatta per il video hacking retro-futuristico.
Altre informazioni sul modo in cui Marcio è riuscito a migliorare l'output a colori sfruttando le funzionalità PLL dell'ESP32 sono disponibili su questa pagina GitHub.
Nel mio campione estremamente limitato di una scheda per ciascun televisore, la visualizzazione con Adafruit Huzzah32 ha funzionato abbastanza bene. Anche il FireBeetle, con i pin di uscita equivalenti ordinati, funziona, ma presenta alcuni problemi di sincronizzazione intermittenti.
Per quanto riguarda le due schede, Huzzah32 utilizza un modulo WiFi ESP32-WROOM-32E, mentre la scheda DFRobot utilizza un ESP32-WROOM-32D. Pur essendo sostanzialmente equivalente, il 32E presenta alcuni miglioramenti sotto il cofano, tra cui il modo in cui interagisce con l'oscillatore in cristallo per dettare i tempi della CPU.
È possibile che qualche piccola differenza nel design faccia sì che il 32D e il 32E vengano visualizzati in modo diverso sul televisore. Detto questo, entrambi i moduli dovrebbero svolgere un determinato lavoro in modo egregio nella maggioranza dei casi in cui l'ESP non viene spinto oltre i limiti in modo creativo. Tuttavia, se disponi di un'applicazione di produzione che necessita di tutta la corrente dell'ESP-32, occorre ricordarsi quale ESP-32 desideri utilizzare.