# Monitor de Matriz LED RGB



## Marcosd (Ene 9, 2009)

Buenos días!. No sabía si incluir este tema en aquí o en la sección de "Sistemas de Video". 
Este es mi primer post en este foro. Hace unos días he comenzado a investigar sobre las pantallas de led rgb matriciales (como las que usan en los programas de televisión como parte de escenografía, o en las pantallas de los conciertos).
A primera vista, son módulos (10x10 o 20x20, etc) de leds RGB que se unen para formar una matriz mucho más grande.
Mi duda no es como realizar una matriz, ni como escribir en ella, se pueden usar varias formas. El problema radica en como interpretar una señal de video (compuesto o S-Video) para enviarla a esta matriz.
He revisado en este foro temas similares que tratan sobre el trabajo de las señales de video con PIC, en casos de querer enviar una señal de imagen RGB a un televisor o similar. El problema, como lo había supuesto, es que las señales de video analógica requieren velocidades de trabajo muy elevadas para un Microprocesador de la gama a la que comercialmente (y económicamente) tenemos acceso aquí (argentina).
Quizás me puedan orientar un poco sobre este concepto, aplicado a mi matriz. No tengo prisa. Lo ideal sería enviar una señal PAL a esta matriz (repito, lo ideal   ). Quizás un solo Microprocesador no se pueda encargar de procesar todo un campo de video, quizás haya que usar 2 MP, o más; pero hasta aquí llega mi entendimiento de la señal de video.
Soy seguidor de la electrónica digital y los PIC, no tanto (pero no mucho menos) de la electrónica analógica, espero poder seguir el ritmo a los ingenieros y usuarios más expertos   . Muchas Gracias.

PD: Aquí les dejo un link de un video de youtube donde se ve graficamente mi idea: YouTube - LED RGB
y otra
YouTube - LED Screen.avi


----------



## Chico3001 (Ene 9, 2009)

El tema que mencionas no es nada facil.... yo tambien he querido hacer una pantalla de esas con electronica lo mas economica posible, pero desafortunadamente los algoritmos necesarios son en extremo complejos para que puedan ser manejados por micros de 8 bits y aun si asi fuera, necesitas pasar la información serialmente a muy alta velocidad

El metodo que se me ha venido ocurriendo es usando FPGAs, hacer que una PC convencional traduzca el video a algun formato digital simple y mandarlo via ethernet a un FPGA que puede subdividir la información a cada bloque de la pantalla, de alli lo recibe un micro estandar de 8 bits que es el encargado de mostrar la información en pantalla...


----------



## Marcosd (Ene 9, 2009)

Gracias por responder! Segun tu lógica (que comparto) dices que un PIC convencional no sería capaz de muestrear una señal de video, aplicarle los algoritmos necesarios y luego imprimir en una matriz. Por eso sugieres el uso de una pc para que tome el "Trabajo más pesado" de decodificiación. He revisado algunos compresores MPEG para el envio de imágenes, pero me pareció muy costoso, además, en lo particular me gusta diseñar todos mis cirucuitos y conocer como funcionan en todo aspecto.
Obviamente lo más complicado es analizar una señal de video. Supongamos que usamos un sistema PAL: La frecuencia de cuadro es de 25 Hz, es decir 25 imágenes por segundo.
Como el sistema es entrelazado, esta frecuencia debe duplicarse a 50 Hz para ambos campos.
He investigado por la web pero no encontre información clara sobre la señal pal, y lamentablemente por ahora no dispongo de un osciloscopio para hacer mis pruebas; la pregunta es: ¿Cuánto dura la señal por cada línea horizontal en esta norma? Seguramente es un valor muy pequeño.
Planteé en teoría que una etapa debería digitalizar y rescatar la información RGB y de luminancia, y otra etapa debería imprimir en la matriz.
Quizás este hablando de más, pero me parece que lo que un solo PIC no puede hacer, varios PICs podrían hacerlo.


----------



## Chico3001 (Ene 9, 2009)

El problema no es la division del trabajo... es la velocidad con la que se tiene que hacer... viendo en Wikipedia un sistema PAL equivale a un monitor de 768x576 pixels 

http://es.wikipedia.org/wiki/Archivo:Standard_video_res.svg

Si consideramos 30 cuadros por segundo necesitamos mantener una velocidad de 768x576x30 pixels por segundo, que sacandole la inversa quiere decir que tienes 75nS para poder procesar cada pixel, para posteriormente pasar con el procesamiento del siguiente eso quiere decir que necesitas un pic de 53MHz solo para tener un ciclo de instruccion de 75nS lo cual no es posible para procesar el pixel... a grosso modo yo diria que necesitamos como minimo unos 20 ciclos para tener ese procesamiento... lo que equivale a un PIC de 1GHz

por supuesto esto es considerando un solo pic en el procesamiento... si se lograra partir este proceso entre 100 PICs necesitariamos PICs de 10Mhz.. lo cual es mas aceptable... pero como lograr la matematica adecuada?


----------



## Marcosd (Ene 9, 2009)

Conozco que hay dispositivos prefabricados, los cuales son la base de los videowall. Para los que no saben, el videowall o tvwall es un conjunto de televisores unidos mediante un procesador que le entrega a cada uno "una porción de la imágen". En términos simple "Parte" un fotograma de video en X cantidad de partes y las envía a los terminales.
Bien. Hasta aquí se ve bien, el tema es el siguiente: ¿Cómo funciona este dispositivo?. Quizás buscando información sobre estos podamos bosquejar un sistema modular: Un núcleo central que divide la información, y pequeños módulos individuales con sus matrices respectivas que se encargan de "dibujar" la porción de información que el dispositivo anterior indica.
Para los que estén siguiendo el tema voy a comentar sobre esos multiplexores/splitters (divisores) de Video wall (carisimos   ) pero me parece que ahí podemos ver algunos indicios de solución.
En los entornos profesionales, los video wall vienen en 2 formas de aplicación: modulos independientes y módulos con central.
Este es un caso de módulos independientes:
http://www.flatsoftglobal.com/06-16-2008/f380-video-wall.html

y este es un caso con central:
http://www.cubexvideo.com/controllers.html

Repito, quizás no sea la solución, pero es una idea más.  Segun entiendo, este procesador toma un señal X (supongamos una señal pal) la divide en n partes y genera Xn imágenes. Estas imágenes Xn (supongo) son imágenes de 768x576 (Pal). Es decir que no ha disminuído la resolución conforme a las terminales (no en términos técnicos) seguramente si en términos gráficos.   No sé si me explique bien.

Bien. Entonces el problema es cómo repartir la carga de trabajo entre varios PIC para evitar tener que comprar un Celeron


----------



## Chico3001 (Ene 9, 2009)

Con PICs no creo que se pueda... para hacer calculos matematicos son malisimos.... al menos la serie 16, ademas de que en un proyecto de esta categoria necesitas tener un PWM en cada pin para poder dar las tonalidades, ningun microcontrolador de ninguna marca te puede dar PWM en cada pin... la unica solucion que veo es usar FPGAs... .esos tienen 2 ventajas, la primera es configuracion de los pines la segunda es que puedes configurar la ecuacion internamente lo que da un procesamiento muy superior por que es exclusivo para esta aplicacion...


----------



## Marcosd (Ene 9, 2009)

Muy bien. Pero necesito que me introduzcan en el tema de los FPGAs, ¿dónde encuentro información sobre estos? ¿sabes si son accesibles al público? Gracias!


----------



## Chico3001 (Ene 10, 2009)

https://www.forosdeelectronica.com/f25/curso-iniciarse-fpgas-17749/

Si son accesibles y los kits son faciles de conseguir... pero la programacion es completamente distinta a un microcontrolador por que dentro de un FPGA solo existe circuiteria sin conectar... y gracias a eso creas lo que necesites crear, incluso hasta microprocesadores completos


----------



## Guest (Ene 10, 2009)

Perdon mi ignorancia de antemano, pero... si una TV es capaz de sacar todo el muestreado analogicamente ¿porque tu no? es decir, si por un suponer separases los pixels de una tv (con una lupa por ejemplo) y pusieras 3 LDR´s con un filtro de cada color (RGB) cada uno, y estos tal cual a un led del equivalente color, ya tendrias una pantalla led.

El tema seria saltarse el tubo, por ejemplo (flipandome) poniedo un digitalizador en cada eje de cada rayo antes del flyback, la señal se "digitalizaria analogicamente" de forma que no preocupan las velocidades, y despues crear algun tipo de distribuidor a base de multiplexores o de contadores de bits para poder mandarlo a cada modulo, los cuales tambien tendrias que adaptar para que "escupieran" a los led directamente lo que leyeran. Algun condensador en cada led para conseguir permanencia del frame, sobre todo si el barrido es bilinear (pero sin pasarse que consigues efecto fantasma) y ya.

Lo bueno seria que toda la electronica que descodifica una señal pal ya esta echa en IC, tanto para TV comerciales como para adaptadores USB como en forma de IC para dipositivos moviles (ya mas caros), por tanto esa fase ya la tendias garantizada.
Lo malo es que tendrias que preparar todo para trabajar con unas velocidades infernales y eso supone que todo saldria mas caro, a parte de que es un tanto complicado el proceso.


----------



## Marcosd (Ene 10, 2009)

jajaja los de los LDR lo había pensado   , voy a revisar el tema de los FPGAs primero porque me interesa saber de que se tratan. Toda propuesta es bienvenida!.


----------



## Marcosd (Ene 10, 2009)

Muy bien! ya estoy viendo lo de FPGA, y quizás esto ya haya que pasarlo al foro correspondiente, pero, en resumidas cuentas (corrigeme si me equivoco), un FPGA es una placa (similar a la motherboard de un PC) prefabricada con todos sus chips y puertos conectados, con la diferencia que se programa para interconectar "lógicamente" el procesador central con cada módulo de esa placa (Por medio del código VHDL).
Surgen algunas dududas:
¿Qué velocidades suelen tener esos procesadores?
¿Cómo aplicarías el uso de los FPGA al proyecto actual? Pregunto esto porque de momento he comenzado a ver este mundo nuevo y quizás me lleve algún tiempo ponerme al tanto con eso y determinarme a comprar una de esas placas   ...


----------



## Chico3001 (Ene 10, 2009)

No... el FPGA es un chip como un microcontrolador estandar... pero internamente solo tiene compuertas sin conectar, al igual que un microcontrolador se programa, pero esta programacion es para definir como estara conectado internamente

Los circuitos que vez en los kits de desarrollo solo son circuitos de apoyo para hacer experimentos con el FPGA, como convertidores AD, DA, Memorias, interfaces etc... 

No es posible saber la velocidad de un FPGA por que depende mucho de como se conecte logica interna, generalmente solo te dicen el tiempo de propagacion entre compuertas y los rangos tipicos son de 4 a 10nS

La superventaja de un FPGA sobre un microcontrolador clasico es que lo programas especificamente para cada aplicacion, asi que te puedes encontrar aplicaciones donde son aun mas rapidos que los DSPs, en algunos centros de investigacion los usan como coprocesadores programandoles varios cientos de veces la misma ecuacion para que la ejecute en paralelo asi que se reduce mucho el tiempo de calculo pero solo para esa operacion

Otra aplicacion clasica es cuando necesitas muchos perifericos repetidos, normalmente un microcontrolador llega a traer 3 timers, o 2 PWMs o 2 UARTs, si llegas a necesitar mas perifericos normalmente tienes que usar mas micros o implementarlos de alguna otra manera, pero en un FPGA puedes programar tantos de estos micros como quepan dentro del CI, y hacer una interfaz simple para poder controlarlos con un micro externo o una maquina de estados que los controle internamente o programar un microprocesador dentro del mismo FPGA con los perifericos que necesites y te queda todo dentro de un solo chip...


----------



## comandojonh (Nov 29, 2009)

Que tal amigos del foro alguien me podria indicar como trabajar con una matriz de leds rgb con un PIC agradeceria mucho su ayuda


----------



## Helminto G. (Nov 29, 2009)

no se bien como esta el asunto y nisiquiera se usar micros, pero lo que quieren hacer me suena mas o menos al funcionamiento de una pantalla lcd quisa puedan aprovechar estos circuitos o almenos su funcionamiento


----------



## pablo andres (Sep 20, 2011)

y para azer algo como esto


----------



## ferkitron (Nov 21, 2011)

que tal señores no se si este foro aun esta abierto y si aun persiste el interes en lo de la pantalla gigante con matriz de led rgb, pero quisiera aportar una idea a ver si tal vez pudiera resultar, y si algun conocedor de la materia permite lograr el objetivo, bien se trata de tomar un monitor lcd o led que funcione y considerando que con este ya tenemos la circuiteria de codificacion del video, podriamos verificar las señales de salida  hacia la pantalla de plasma o hacia los led y teniendo en cosideracion las salidas y señales emitidas diseñar las matrices de led rgb que se adapten a estas señales.
Dicho de otra formar se trata de reemplazar la pantalla original del nuestro monitor lcd o rgb con una matrix de led rgb mucho mas grande pero con la misma cantidad de pixel 

a ver si esta idea les sirve y me pasan los resultados y tambien  me interesa diseñarme una  para uso personal
Avisen


----------



## Pedro1405 (Dic 8, 2011)

hola amigos estoy realizando en mi universidad una aplicacion sobre los fpgas y pues mi practica consiste en sacar por la pantalla del lcd del monitor de la PC un imagen o alguna palabra o un juego algo ya es lo último que hago en esta materia, den una manito porfavor, si alguien tiene algun codigo para lo que requiero porfavor envienmelo a mi correo es pedrojaram1405@hotmail.com de antemano gracias


----------



## Rigeliano (Dic 8, 2011)

Es bueno leer los mensajes anteriores o por lo menos el ultimo


----------



## jllvmicrostar (Dic 3, 2012)

yo tambien he pensado desarmar una tv led y se supone que en algun punto toda la electronica tiene que pasar a la pantalla led como rgb individuales multiplexados, ahi tomar las señales y mandarlas a una matriz de led externa , obviamente con sus drivers necesarios.. alguien esta en lo mismo?? podrianmos avanza el tema mejor en grupo 
saludos


----------

