Autor Tema: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)  (Leído 34911 veces)

0 Usuarios y 6 Visitantes están viendo este tema.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Este es el tema para sus comentarios y aportes del proyecto: Librería Matríz de LEDs  Universal[Compilador CCS]

Espero sus comentarios, aportes o dudas. :mrgreen:
« Última modificación: 15 de Mayo de 2010, 13:28:27 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #2 en: 14 de Mayo de 2010, 18:16:50 »
Me prendo!!
Creo que lo primero seria ponernos de acuerdo en el hardware. Una vez q estandarizado eso, habria q trabajar en funciones primitivas, como por ej:
Código: [Seleccionar]
void setpixel(int x, int y, int z);
void clrpixel(int x, int y, int z);
unsigned char getpixel(int x, int y, int z);
unsigned char inrange(int x, int y, int z);
void negpixel(int x, int y, int z);
void alterpixel(int x, int y, int z, int state);
void setplane_z(int z);
void clrplane_z(int z);
void setplane_x(int x);
void clrplane_x(int x);
void setplane_y(int y);
void clrplane_y(int y);
void setplane(unsigned char plane, int i, int state);
void setline_z(int x, int y, int z1, int z2);
void setline_x(int z, int y, int x1, int x2);
void setline_y(int z, int x, int y1, int y2);
void clrline_z(int x, int y, int z1, int z2);
void clrline_x(int z, int y, int x1, int x2);
void clrline_y(int z, int x, int y1, int y2);
void drawline_plane(int x2, int y2, int x1, int y1,unsigned char anchor);
void fill (unsigned char pattern);
void rotcube(char axis, char direccion);
void tmp2cube(void);
void cube2tmp(void);

Estas son las funciones primitivas que use en mi cubo de leds jeje. Obvio q habria q adaptarlas.
Una vez terminado esto, tendriamos q definir funciones un poco mas interesantes, como cuadrados, lineas o inclusive circulos. Y tambien letras.
Bueno, espero a ver q dice el resto. Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #3 en: 14 de Mayo de 2010, 21:30:23 »
Universal, pero con CCS?  :D Está muy buena la idea. Yo tengo una pero no la compartiria  :P Porque sino es muy sencillo hacer un cartel, que se esfuercen  :mrgreen:

Habria que definir bien el hardware como dice Gera. Yo armé una estructura en la memoria externa para configurar cada uno de los mensajes (Largo del mensaje, Animación de entrada, movimiento, velocidad, cantidad de pasadas, tipo de mensaje (Normal o negativo), animación de salida, caracteres especiales si se quiere mostrar hora, fecha, temperatura, ect .... ), y despues hice las funciones que cargan el mensaje, visualizan el mensaje, cargan la eeprom y blablabla  :mrgreen:

Al subir los archivos, mejor sería en un rar  :roll:  :D :D Re pesado  :P


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #4 en: 14 de Mayo de 2010, 22:33:00 »
A todo esto.. hablamos de una matriz monocromatica comun y corriente no?
Por ahi pinta hacer algo tricolor con control de intensidad jeje.

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #5 en: 14 de Mayo de 2010, 22:46:00 »
A todo esto.. hablamos de una matriz monocromatica comun y corriente no?
Por ahi pinta hacer algo tricolor con control de intensidad jeje.

Heeeyyy!!! vamos despacio  :D

Me uno al hilo, muy bueno ... muy bueno.
El papel lo aguanta todo

Desconectado martincasalis

  • PIC10
  • *
  • Mensajes: 5
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #6 en: 14 de Mayo de 2010, 23:57:10 »
Universal, pero con CCS?  :D Está muy buena la idea. Yo tengo una pero no la compartiria  :P Porque sino es muy sencillo hacer un cartel, que se esfuercen  :mrgreen:

Habria que definir bien el hardware como dice Gera. Yo armé una estructura en la memoria externa para configurar cada uno de los mensajes (Largo del mensaje, Animación de entrada, movimiento, velocidad, cantidad de pasadas, tipo de mensaje (Normal o negativo), animación de salida, caracteres especiales si se quiere mostrar hora, fecha, temperatura, ect .... ), y despues hice las funciones que cargan el mensaje, visualizan el mensaje, cargan la eeprom y blablabla  :mrgreen:

Al subir los archivos, mejor sería en un rar  :roll:  :D :D Re pesado  :P


Saludos!

Me parece pesima tu actitud amigo SUKY. Por si no te enteraste, este es un foro para compartir ideas, información y todo lo que tengamos con tal de ayudar a los demas. Si no pensas compartir lo que tenes, mejor ni digas que tenes algo, porque suena SUPER EGOISTA de tu parte.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #7 en: 15 de Mayo de 2010, 10:51:42 »
Me parece pesima tu actitud amigo SUKY. Por si no te enteraste, este es un foro para compartir ideas, información y todo lo que tengamos con tal de ayudar a los demas. Si no pensas compartir lo que tenes, mejor ni digas que tenes algo, porque suena SUPER EGOISTA de tu parte.

Si, por lo menos en este caso soy egoista..  :P Pero si necesitas hacer algo, pregunta que si está a mi alcance voy a intentar ayudar, pero no voy a dar todo el código.  :mrgreen: En este caso compartí una idea de lo que se puede implementar  :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #8 en: 15 de Mayo de 2010, 13:25:25 »
Universal, pero con CCS?  :D

Bueno, opte por CCS porque la mayoría de los que programan en C, lo hacen con este compilador, y los que programan en otro compilador C, no creo que tengan mayores inconvenientes en migrarlo a su compilador, cosa que dudo en el sentido contrario.
Assembler fué descartado por la dificultad que existiría no sólo  en la explicación, sino en lograr algo estandarizado con un lenguaje de tan bajo nivel. Además, hacer cosas algo avanzadas supondría un desafío excesivo, al menos para los recursos que tengo disponible para este proyecto.

Habria que definir bien el hardware como dice Gera. Yo armé una estructura en la memoria externa para configurar cada uno de los mensajes (Largo del mensaje, Animación de entrada, movimiento, velocidad, cantidad de pasadas, tipo de mensaje (Normal o negativo), animación de salida, caracteres especiales si se quiere mostrar hora, fecha, temperatura, ect .... ), y despues hice las funciones que cargan el mensaje, visualizan el mensaje, cargan la eeprom y blablabla  :mrgreen:

Seguro se apoyará en un medio externo. Idealmente lo hará de manera transparente, sin importar si viene de un puerto USB, de una EEPROM interna o externa o de una SD. Para el tema de los comandos que irán haciendo fluir la animación, yo desarrollé un "protocolo" que veremos si tiene buena aceptación...

Al subir los archivos, mejor sería en un rar  :roll:  :D :D Re pesado  :P

No entendi bien esto, pero actualmente están en un repositorio, y creo que es la mejor manera porque seguro habrá infinidad de versiones y hasta distintas ramificaciones.


A todo esto.. hablamos de una matriz monocromatica comun y corriente no?
Por ahi pinta hacer algo tricolor con control de intensidad jeje.
Saludos!
[/quote]

Por ahora es sencilla como decís gera. Lamentablemente no creo que el alcance llegue a ser para matrices 3D, pero eso depende de ustedes. Todos los aportes y ramificaciones son bienvenidos! Cuanta más gente aporte, mejor. Yo sólo quiero dar el puntapié inicial.

Con respecto a más de un color y generación de grises, tengo que desarrollar algo de eso para un proyecto laboral. Seguramente lo comparta, aunque no se si con tanto detalle y explicación, por tema de tiempos. Estoy pensando en una matriz RGB de 64 colores(2 bits rojo, 2 verde y 2 azul). Hay que ver, porque un 18F aún con 12 MIPS se empieza a quedar corto con esos requisitos...por lo que considero que seguramente haga falta pasarse a un PIC de más alta familia, o mejor aún a un ARM Cortex.

Saludos
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #9 en: 15 de Mayo de 2010, 13:45:13 »
Suky. Acá están los links para descargar todo el código de la última versión y el branch original:

Descarga la ultima versión en zip o en tar
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #10 en: 17 de Mayo de 2010, 18:30:44 »
Como faltar a un hilo sobre carteles, aquí estaré para molestar :mrgreen:

saludos y muy buena iniciativa Bruno :-/ :-/

eeyy suky que egoísta eres!! :P :P    :D :D :D :D te pasas!! :mrgreen: :mrgreen:
.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #11 en: 01 de Junio de 2010, 21:43:46 »
Agregada tipografia de 7 pixeles. Si algun alma generosa tiene una typo de 8 pixeles de altura o 16 pixeles sera bienvenida. Agregado tambien el efecto de rotacion a la izquierda. Es la primera version que muestra un mensaje. Pronto la explicacion.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado juanpavz

  • PIC12
  • **
  • Mensajes: 77
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #12 en: 02 de Junio de 2010, 01:15:45 »
Sera el destino, justo tengo a mano unos leds verdes ultrabrillantes.
Hazlo o no lo hagas... Pero no lo intentes

Desconectado dom124

  • PIC10
  • *
  • Mensajes: 42
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #13 en: 16 de Octubre de 2010, 22:22:57 »
Buenas.. ante todo quiero felicitar por la creacion de este hilo... te cuento que estoy armando un cartel y me estoy basando en tus aportes que me parecen que son muy buenos...
Mi pregunta es la siguiente... cuando definis la precarga del timer 0 lo haces mediante esta formula.
#define     PRECARGA_TMR0        (256 - 1000000 / HERTZ / FILAS / 128 * (FOSC / 4000000))

Ahora bien... yo estoy trabajando con un PIC16F876A y a 20MHz... la pregunta es que tengo que tener en cuenta para adaptarlo a mi cartel ya que por las pruebas que hice los registros dependen mucho del tiempo de refresco entre cada frame. me puedes explicar un poco que es lo que debo tener en cuenta para calcular el valor exacto del timer?? ya que con tu definicion no logro que los refrescos se hagan de la manera correcta... es como si corriera las lineas hacia arriba (fila1 pasa a ser fila7)

espero tu comentario

saludos

carlos

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Librería Matríz de LEDs Universal[compilador CCS](Aportes y Comentarios)
« Respuesta #14 en: 17 de Octubre de 2010, 06:04:34 »
Buenas.. ante todo quiero felicitar por la creacion de este hilo... te cuento que estoy armando un cartel y me estoy basando en tus aportes que me parecen que son muy buenos...
Mi pregunta es la siguiente... cuando definis la precarga del timer 0 lo haces mediante esta formula.
#define     PRECARGA_TMR0        (256 - 1000000 / HERTZ / FILAS / 128 * (FOSC / 4000000))

Ahora bien... yo estoy trabajando con un PIC16F876A y a 20MHz... la pregunta es que tengo que tener en cuenta para adaptarlo a mi cartel ya que por las pruebas que hice los registros dependen mucho del tiempo de refresco entre cada frame. me puedes explicar un poco que es lo que debo tener en cuenta para calcular el valor exacto del timer?? ya que con tu definicion no logro que los refrescos se hagan de la manera correcta... es como si corriera las lineas hacia arriba (fila1 pasa a ser fila7)

espero tu comentario

saludos

carlos

Me tomo el atrevimiento de contestar esta pregunta en lugar de Bruno, no pretendo pasar por encima de nadie y espero que no se tome a mal esta intromisión.
Estimado Carlos casi con seguridad que tu problema no tiene nada que ver con la diferencia de tiempos de un cristal a otro.
En el archivo main.h aparece la declaración: #define     FOSC     48000000
ahi le pones el cristal que uses y la fórmula que se encuentra en el archivo config.h a la que haces referencia y que sito a continuación:
#define     PRECARGA_TMR0        (256 - 1000000 / HERTZ / FILAS / 128 * (FOSC / 4000000))
te calculará el retardo correspondiente para que el cartel se "dibuje" por así decirlo HERTZ veces por segundo aproximadamente, en el ejemplo de bruno son 60 Hz.
El problema que planteas sobre un cambio de filas, parece tener una probable causa en la implementación del hardware. Desconozco si lo estás simulando o ya lo implementaste en hardware real.
Te recomiendo que analices bien el código que bruno nos cedió tan gentilmente y trates de comprenderlo. Si no logras resolver tu problema y necesitas ayuda entonces pon tu diseño de hardware que usas, tus simulaciones si las hubiera y tu código adaptado. De esa forma será mucho más facil que te respondan y ayuden con tu proyecto.
Saludos.