Imagen

ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Responder
zxpope
Mensajes: 324
Registrado: 02 Ene 2018 02:25

ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por zxpope »

ZXPOPE ESCRIBIÓ:

AMPLIO LA PREGUNTA
MI TV NO TIENE ENTRADA VGA PERO SI ENTRADA DE VIDEO COMPUESTO Y/O ENTRADA HDMI.
¿ALGUNA SUGERENCIA DE COMPRA?

ACKERMAN » 31 MAY 2022 19:06

EXISTEN CONVERSORES EXTERNOS DE VGA A CVBS, ASÍ COMO DE VGA A HDMI, EN CONCRETO YO TENGO ALGUNO. LOS TENGO DE ANTES DE LOS TIEMPOS ACTUALES, ASÍ QUE NO SE SI AHORA ESTAN CARÍSIMOS, O SI LOS ACTUALES FUNCIONAN TAN BIEN COMO LOS VIEJOS.
OTRA OPCIÓN SERÍA USAR LOS EMULADORES PREPARADOS PARA CVBS (TV), COMO EL DE ROSSUM:
HTTPS://GITHUB.COM/ROSSUMUR/ESP_8_BIT


hola ACKMAN

gracias por tu respuesta, las cosas que no existen no suelen estar documentadas y
despistan mucho a un novicio como yo

entonces entiendo que la salida PAL se genera por SW y por tanto, solo algunos emuladores
lo implementan. !que pena! La tele en mi comedor no tiene entrada VGA, y me da miedo ir colgando cosas por detras (hay niños cerca).

==
he visitado el enlace que has puesto.
es super-interesante, pues explica un detalle que desconocia del ESP32:
un generador de señal programable de hasta 20MHz, parecido al que tiene la RPI

The ESP32 has a ultra-low-noise fractional-N PLL. It can be tuned to produce DAC sample rates up to ~20Mhz with very accurate frequency control

===
los nuevos ESP32-C3 con nucleo RISC-V, ¿suponen una ruptura con todo lo que has desarrollado?

saludos
zxpope
Mensajes: 324
Registrado: 02 Ene 2018 02:25

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por zxpope »

para los mas interesados en la técnica de generación de la señal PAL, que en los juegos....

https://bitluni.net/esp32-color-pal

INFORMACION DE LUMINANCIA


INFORMACION DE CROMINANCIA
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por ackerman »

Los conversores que comentaba, son el vga2av, en concreto alguno como este, que yo lo tengo de hace varios años, y funciona:
vga2av.jpg
vga2av.jpg (25.55 KiB) Visto 2941 veces
Convierte la salida VGA a video compuesto.
Normalmente, se necesita alimentar al chip por usb y no ocupa mucho, pero es un aparato más. El precio, ahora no es muy caro, pero cuando yo lo pillé hace años, era realmente baratísimo.
También tengo otros aparatos, como el easy view, de hace décadas, que va muy bien.
easyview.jpg
easyview.jpg (34.24 KiB) Visto 2941 veces
Pero es lo de siempre, puede que exista algún modo de video raruno de fabgl o bitluni que no soporte el aparato, o que no acepta la entrada de la TV.

Respecto a la generación de PAL TV con PLL con un único pin de salida, en escala de grises, se obtienen buenos resultados, pero en color por un único cable, es imposible que un PLL lo haga bien, no obstante, se consiguen resultados pasables en algunas TV's. La única forma de lograrlo, es con un encoder, para el cambio de fase, como puede ser el AD725 o el mítico MC1377. La opción más simple y eficiente de color, es el uso de un DAC, así como la separación de componentes, es decir, modulación AM RGB, así como señales de sincronismo por separado, como puede ser el euroconector, o al estilo de la VGA (vsync, hsync).

Respecto al ESP32-C3, en principio cuando salió la noticia por parte de Espressif, que hasta se hizo eco en https://hackaday.com, era para sustituir, o más bien matar, la línea del ESP8266, y no como continuación de la línea ESP32 normal. Juegan en ligas diferentes. Estaba pensado para un sólo core y los 160 Mhz, en lugar de la línea del doble core y los 240 Mhz. La cosa quedó ahi en el aire y el ESP8266 sigue aguantando el tipo. Es cierto, que la gente esperaba V-RISC en la lína de gama media, alta, pero no ha sido así, por ahora.
Avatar de Usuario
future
Mensajes: 26
Registrado: 12 Jul 2022 19:42

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por future »

El TTGo, VGA como se diga ¿tiene alguna forma de conectar algún pin a RCA sin usar adaptadores?

Imagen
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por ackerman »

future escribió:El TTGo, VGA como se diga ¿tiene alguna forma de conectar algún pin a RCA sin usar adaptadores?
Respuesta corta no, respuesta larga si, peeeero.

Si se usan emuladores con software salida VGA 60 o 70 Hz, se requiere VGA obligatorio, así como un conversor.
Si se usan emuladores con software salida RCA TV PAL o NTSC, se requiere usar el pinout que requiera dicho emulador. A dia de hoy, los emuladores con salida RCA, usan el GPIO 25, que en la TTGO VGA es el pin de salida de audio. Como va conectado al chip amplificador NS4150 de 3W, que le aplica filtro pasa bajos, así como amplificación para salida de altavoces, no se puede apañar para usar el jack de audio directo, sino que se tiene que robar la entrada previo al amplificador, porque la TV está preparada para señales de video de 1 voltio y sin filtro. Esto es muy práctico en una protoboard, mientras que en la placa TTGO es bastante molesto, pero no imposible, usando un soldador.

Dentro del rca de video compuesto, hay que distinguir:
- 1 sólo cable (video blanco y negro norma RS-170)
- 1 sólo cable (video color)
- Por componentes scart o euroconector.

Lo tratado a partir de ahora es un tema ya muy viejo, está ya muy tratado, y muchos ya antes lo han intentado con más o menos los mismos resultados. Es un campo de hacerse daño, y los que se acuerden del pong en un 16f84, ya saben de lo que estoy hablando.

El GPIO 25 no es por capricho, sino por necesidad, dado que es donde puede aplicar el modulo PLL, y por tanto, se genera la señal pseudoanalógica. Para el caso de la norma RS-170 por usar modulación AM, no suele haber grandes problemas de compatibilidad con los TV, al usar blanco y negro.

Para el caso de video color, como comenté previamente, es imposible generar color standar con una MCU o un SOC, sin ayuda de un modulador de fase. No es por purismo, sino por leyes de radiofrecuencia y electrónicas. Un simil sería el generar sonido en un ordenador zx81 en el modulo de radiofrecuencia, que se hacía por ruido con chasquidos. Al final podía sonar una melodía, pero no tenía mucho que ver con una salida realizado por un altavoz real y un pin.

Fabrizio Di Vittorio estaba realizando pruebas de salida de video rca color sin chips adicionales, y añadió dicha funcionalidad en el repositorio de fabgl. Usa el GPIO25, y tiene los problemas antes citados, y que muchos años antes, ya había tenido bitluni, pese a que se escriban unas fórmulas muy bonitas de generación de video, que nada tienen que ver con la realidad.
Y si seguimos retrocediendo (2010), el mismo problema tenía linusakesson:

https://www.linusakesson.net/scene/phasor/

También dejó una fórmulas muy bonitas, que poco tenían que ver con la realidad.

Como decía mi profesor de la universidad: "El mejor compilador, el WORD, que traga con todo, le pones lo que quieras, le das a guardar, y listo".
Por tanto, cualquier cosa que no sea RCA en norma RS-170 en blanco y negro, o separación de componentes (scart), van a ser problemas.
Avatar de Usuario
future
Mensajes: 26
Registrado: 12 Jul 2022 19:42

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por future »

Esta bien, probaré con el otro, el que no tiene salida VGA ni ps2
Busco si hay algo en el foto y si no abro hilo
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por ackerman »

La libreria de bitluni para generar cvbs en blanco y negro con el ESP32, permite un pequeño truco para poder ser usada en la placa TTGO VGA32 v1.x, sin falta de soldar:

https://github.com/bitluni/ESP32CompositeVideo

La libreria utiliza el DAC interno, de manera que sale al mismo tiempo por el pin 25 y el 26 la señal de video compuesto.
Dado que no se puede usar el jack de audio del pin 25, por lo comentado anteriormente (amplificador y filtros), si se puede usar el pin 26 del conector del ratón PS/2.
Bitluni tiene en cuenta que el DAC genera voltaje entre 0 y 3.3v, por lo que con una simple regla de 3, si sólo se usa hasta 77 niveles, se obtiene el tope de 1 voltio, y se pueden generar 54 escalas de grises.
Para el caso de la placa TTGO VGA32 el pin 26 tiene una salida de 5v en lugar de 3.3v para adaptarse a los teclados y ratones PS/2. Lo mejor comprobarlo a mano, con un simple programa que cambia cada segundo el nivel del pin 26, con el multímetro.

Código: Seleccionar todo

const int pin=26;

void setup() {  
 Serial.begin(115200);
 pinMode(pin, OUTPUT);
 digitalWrite(pin, LOW);
}

unsigned char flipflop=0;

void loop() {  
 flipflop = (~flipflop & 0x01);
 if (flipflop == 1)
  digitalWrite(pin, HIGH);
 else 
  digitalWrite(pin, LOW);
 delay(1000);
 Serial.printf("%d\n",flipflop);
}

Con esto se verá que anda en torno a los 4.23 voltios en modo digital. Así que mejor reducirlo con una resistencia de 10K, lo ideal con un pontenciómetro lineal, calibrando hasta quedar 3v como máximo a nivel alto. La mayoría de las TV no necesitarán esta reducción, pero mejor ir sobrados y respetar el estandar de 1 voltio al reducir en modo DAC.
Con esto ya tendriamos la salida por video compuesto. No es una opción muy cómoda, pero es pasiva.

En el conector PS/2 femenino se debe usar el pin 5 (CLK - pin 26 ESP32) y el 3(GND o tierra).
ps2.gif
ps2.gif (13.22 KiB) Visto 2457 veces
Con los cables es muy fácil adaptarlo al conector PS/2.
cables.jpg
cables.jpg (57.75 KiB) Visto 2457 veces
Con esta modificación tan simple y sin tocar ni una sola línea de código, nos funcionaría la libreria, junto con todos los emuladores que la esten usando en la placa TTGO VGA32 v1.x.
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por ackerman »

Había comentado como permitir usar video cvbs en la TTGO VGA32 v1.x sin falta de modificar código, todo con hardware. Eso sólo era para el video. ¿Pero que pasa si también queremos audio, en concreto, seguir usando el jack de audio del pin 25?

Las próximas subidas que vaya realizando de varios emulatas ya tendran dicha modificación, incluso vendrá una versión reducida del cvbs, pero mientras, para el que quiera entretenerse:
Como comenté, por el pin 25 y 26 sale al mismo tiempo en norma RS-170 el video en blanco y negro. Da igual, que pinchemos al 25 que al 26, que sale al mismo tiempo. En la TTGO VGA32, aunque sale al mismo tiempo en 25 y 26, el 25 no sale el video bien, porque existen filtros y amplificador. Las placa como devkit v1, WEMOS D1 R32 y similares la salida es a 3.3v.
mouse.gif
mouse.gif (6.33 KiB) Visto 2332 veces
Para TTGO VGA32 como la salida es 5v, o hacemos reducción de voltaje o podemos reducir la escala del DAC. En 3.3v de salida, con máximo el valor de 77, ya nos daría 0.99v, que sería 1v. Si tenemos 5v de salida, con 50, ya tenemos 0.97v, que sería 1v. De esta forma, ya no necesitamos resistencias reductoras, es el cable directo. Mientras no nos pasemos de 77 en 3.3v o 50 en 5v, no tendremos problema, sobre todo si sólo necesitamos 2 colores (blanco y negro).
Podemos hacer pruebas:

Código: Seleccionar todo

//WEMOS D1 R32  Pin 26
//DAC - Voltaje
//  0 - 0.06
// 38 - 0.52
// 77 - 1
//255 - 3.17

#include <Arduino.h>
#include <driver/dac.h>

const int arrayValue[4]={0,38,77,255};
unsigned char cont=0;

void setup() { 
 Serial.begin(115200);
 dac_output_enable(DAC_CHANNEL_2);
}

void loop() { 
 dac_output_voltage(DAC_CHANNEL_2, arrayValue[cont]);
 Serial.printf("%d\n",arrayValue[cont]);
 delay(4000);
 cont++;
 cont &= 0x03;
}
bitluni.gif
bitluni.gif (11.05 KiB) Visto 2338 veces
Como bitluni y similares usan el cvbs pensando en el video en pin 25 y audio en pin 26, mientras que yo hago lo contrario, es decir, video en pin 26 y audio en pin 25 para reutilizar la TTGO VGA32, hay que modificar el CompositeOutput.h, en concreto en el init añadir:

Código: Seleccionar todo

i2s_set_dac_mode(I2S_DAC_CHANNEL_LEFT_EN); //Sobra GPIO26
REG_CLR_BIT(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_XPD_DAC);
REG_SET_BIT(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_DAC_XPD_FORCE);
De esta forma anulamos el DAC en el GPIO25, ya sólo saldría video por el pin 26.

Luego, hay que hacer un pequeño truco en el pin 25 si hacemos una salida de pulsos digitales. Antes de hacer un digitalWrite añadir:

Código: Seleccionar todo

#define SPEAKER_PIN 25
pinMode(SPEAKER_PIN, OUTPUT);
Y con esto, ya tenemos en la TTGO VGA32 video cvbs por pin 26 (pin CLK PS/2 del ratón) y audio pin 25, que sale con preamplificador y demás. Y todo, sin falta de añadir resistencias ni nada. Es decir, tenemos una TTGO VGA32 con salida video compuesto (CLK PS/2 ratón) y audio de pulsos digitales por conector normal del jack de audio.
Avatar de Usuario
ackerman
Mensajes: 525
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Contactar:

Re: ESP32, SALIDA VIDEO COMPUESTO POR SOFTWARE EN JUEGOS

Mensaje por ackerman »

Ya se puede usar la salida cvbs PAL y NTSC, por ahora con el emulador CHIP8, en la placa TTGO VGA32 v1.x.
Más info en el hilo:
http://retrowiki.es/viewtopic.php?f=117&t=200038617#p200160367
Responder

Volver a “ESP32 TTGO VGA32”