Esplora le capacità dell'espressif ESP32 con un progetto Dali Clock
Esplora le capacità dell'Espressif ESP32 con un progetto Dali Clock.
L'ESP32, il seguito dell'Espressif System al famosissimo e potente modulo WiFi ESP8266, è ancora più versatile del suo predecessore. I punti salienti includono un'unità di elaborazione dual-core a 32 bit che funziona fino a 240 MHz e comunicazione wireless tramite WiFi e Bluetooth.
Include anche il rilevamento tattile capacitivo, il trasferimento dati I2S, funzionalità audio phase-locked loop (PLL) e due uscite convertitore digitale-analogico (DAC). Nota che queste caratteristiche variano tra le diverse varianti di ESP32.
Adafruit Huzzah23 (in alto) con DFRobot Firebeetle (in basso)
Utilizzo di ESP32 con un clock video composito
Per un esempio concreto su come utilizzare l'ESP32 (facile da implementare e impressionante), considera l'orologio Dali costruito da Marcio L. Teixeira. Questo setup utilizza un vecchio televisore con ingresso composito e una scheda di sviluppo ESP per visualizzare un orologio morphing sullo schermo. Come qualsiasi progetto che spinge i confini, questo si basa sulle metaforiche spalle di giganti, combinando il concetto dell'orologio Dali (creato per il Xerox Alto nel 1979) con una scena al tramonto scorrevole ispirata alla pop art degli anni '80. A livello tecnico, si attribuisce il merito a molteplici hack/hacker hardware. E naturalmente, non sarebbe possibile senza l'ESP32. Infine, non possiamo dimenticare di includere Salvador Dali stesso per la sua originale ispirazione artistica. Per quanto impressionanti siano le sue credenziali, per configurare questo orologio avrai bisogno solo di quanto segue:
- Scheda di sviluppo ESP32
- Spina RCA
- (2) fili di collegamento
- Fonte di alimentazione USB
- TV o monitor compatibile con video composito
Display video
Configurazione: Carica il codice e connetti
Per configurare il tutto, scarica il codice da GitHub e trasferiscilo su ESP32 utilizzando l'Arduino IDE. Istruzioni più dettagliate per questo processo si trovano qui.
Dovrai aggiungere la capacità di lavorare con le schede ESP32 sull'Arduino IDE accedendo a Preferenze e inserendo “https://dl.espressif.com/dl/package_esp32_index.json” nella sezione URL aggiuntivi per il manager delle schede.
Fatto ciò, seleziona la tua scheda di sviluppo (Adafruit ESP32 Feather o FireBeetle-ESP32 in questo caso), insieme alla porta seriale corretta, e carica il codice sul tuo ESP.
Display video
Collega il pin GND della scheda Adafruit Huzzah32 al cilindro esterno del connettore RCA. Successivamente, collega un altro filo dal pin A1 DAC1 al polo centrale del connettore per essere inserito nell'ingresso video composito del televisore. È possibile utilizzare clip a coccodrillo per collegarsi a un connettore maschio-maschio standard oppure utilizzare connettori a vite disponibili che rendono questa connessione molto più sicura. Presumibilmente, si potrebbe anche modificare un cavo RCA per esporre i fili. Inserisci il connettore RCA nel televisore/monitor, collega l'alimentazione alla scheda di sviluppo e seleziona la sorgente di ingresso corretta sul televisore. Voilà, hai un orologio Dali con cifre in fusione sullo schermo, che a questo punto quasi certamente mostra l’ora errata. Per correggere questa situazione, accedi al network WiFi “ESP32 Dali Clock” generato dall’ESP32 tramite un telefono o un computer per configurare le impostazioni tramite un'interfaccia browser. Una volta configurato correttamente, può essere accessibile tramite la rete domestica. L'ora può essere impostata automaticamente tramite NTP/fuso orario oppure può essere inserita manualmente se lo si preferisce.
Collegamento del dispositivo
L'orologio può anche passare a visualizzare la data invece dell'ora. Collega i cavi ai pin A5 4 e A4 36 sulla scheda Huzzah e toccali entrambi con il dito per attivare questa funzione (non ho provato questo sulla FireBeetle, ma dovrebbe essere possibile). Può anche essere impostato per cambiare colore nel corso della giornata, il che sembra molto divertente.
Caratteristiche dell'ESP32 utilizzato
Oltre a una velocità di elaborazione rapida (impressionante per desktop non molto tempo fa), questa configurazione mette in evidenza alcune caratteristiche dell'ESP32:
- Connettività WiFi – utilizzata per l'interfaccia web e la regolazione dell'ora
- Spina RCA
- I2C/DAC/PLL – facilita l'output del livello di tensione e la temporizzazione precisa necessaria per il video composito a colori
- Sensore Touch Capacitivo – rileva i tocchi dei fili per passare momentaneamente alla visualizzazione della data
- Processore Dual Core – l'elaborazione grafica e l'output del segnale video sono gestiti da un core, mentre l'interfaccia web/WiFi, che può interferire con la temporizzazione, funziona sul secondo core
Superare i confini
According to this separate video, which goes over how a setup similar to this build, the ESP32 doesn’t actually list composite video capabilities in its specs. However, the fact that it can do digital-to-analog conversion (DAC) and utilize the I2S protocol makes it very powerful and generalized for retro-futuristic video hacking.
More info on how Marcio was able to upgrade this to color output, taking advantage of the ESP32’s PLL capabilities, is found on this GitHub page.
In my extremely limited sample of one board each, on a single TV, display with the Adafruit Huzzah32 worked quite well. The FireBeetle, with the equivalent output pins sorted, also worked, but has some intermittent sync issues.
Diving into the two boards a bit more: the Huzzah32 uses an ESP32-WROOM-32E WiFi module, while the DFRobot board uses an ESP32-WROOM-32D. While largely equivalent, the -32E has a few improvements under the hood, including how it interacts with the crystal oscillator to dictate CPU timing.
It’s possible that some minor difference in design means that the -32D and -32E display differently on my TV. That said, for the vast majority of cases that aren’t pushing the ESPs' limits in a creative manner, either module should do a given job quite well. However, if you have a production application that needs the full power of the ESP-32, it’s a good reminder to consider just what ESP-32 you’re going to use.
Tag articolo