debugsql Matriz de LEDs – Mexcoder

Matriz de LEDs

matriz-de-led-8x8

Hay un momento en la vida de cada tecnologo de informatica (probablemente también algunos otros tecnologos e ingenieros) en que se debe de hacer esta tediosa practica llamada la «pantalla» o matriz de leds, si bien el circuito no es muy grande, tedioso o difícil de armar, el problema reside a la hora de hacer el código hexadecimal equivalente al diseño de cada uno de los frames que conforman lo que mostraremos en nuestra pantalla ya sea texto, imágenes o animaciones (siempre a 8 bits). esto es por que para activar cada columna de la matriz se necesita un byte (8 bits) al ser 8 filas se requieren 8 bytes (64 bits) y para que el resultado se muestra mas nítidamente se ocupa almacenar mas de una vez cada imagen (frame) que se mostrara en la matriz, con 6 repeticiones de cada imagen se obtiene una muy buena calidad de la imagen sin muchos parpadeos, usando esta configuración y usando una memoria 28c64 ocuparemos aproximadamente 170 cuadros, esto es por que la memoria tiene 8192 localidades entre 8 columnas 1024, entre 6 repeticiones por cuadro nos da aproximadamente 170 cuadros, si bien calcular todos los 8192 bits puede ser un poco tedioso después del salto daré algunos consejos para hacerlo de una manera mas rápida y menos tediosa

Si bien la manera «tradicional» de hacer el diseño es imprimir un template de la matriz, rellenarla y calcular los valores a mano para después capturarlos, esto me pareció muy tedioso y lento, empece a buscar alternativas para hacerlo mas rápidamente, si bien había visto programas que permiten calcular automáticamente, no evita el tedio de hacer el diseño a mano y posteriormente capturarlo en la computadora y copiar el código de cada pantalla uno por uno. Para evitar esto desarrolle una pequeña herramienta que te permite hacer el diseño y calcular el código al mismo tiempo esta herramienta junto con algunas herramientas extras y unas cuantas expresiones regulares te permitirán generar tu archivo hex listo para cargarlo a tu memoria en unos cuantos minutos empezando desde cero.

¿Que es necesario?

Primero empezaremos con la plantilla de Excel al abrirla tendremos que habilitarlos macros (Descuiden yo los escribí y les aseguro que son 100% seguros), al abrir el archivo se mostrara una barra de advertencia que nos permitirá habilitar o deshabilitar los macros:

Advertencia de macro en office 2010
Advertencia de macro en office 2010
La misma advertencia en office 2007
La misma advertencia en office 2007

 

Una vez habilitados, tendremos una plantilla con una serie de cuadros que representan la matriz de leds:

vacio
Al hacer doble click en cualquier celda esta se coloreara y el valor hexadecimal de la columna (mostrada abajo de cada cuadro) se actualizara automáticamente  como en este ejemplo:
demo
Si te has equivocado puedes hacer doble click de nuevo en la celda para que regrese a estar en blanco y se actualice el valor de la columna, ahora solo es cuestión de terminar nuestro diseño en el documento de excel (este documento esta diseñado con 170 cuadros como indique al inicio de este post, aunque fácilmente se puede aumentar copiando y pegando cuadros extras).
Cuando terminemos el diseño hay que copiar los valores de las columnas(solamente los valores, no la representacion de la matriz) y pegarla en Notepad++ para que quede como este ejemplo en el cual utilizare solo dos lineas pero lo mas efectivo es copiar todas las lineas a la vez:
note1
Ahora eliminaremos los espacios de mas para que los bytes de cada pantalla queden juntos, para esto utilizaremos la función de remplazo con expresiones regulares incluida en notepad++, para utilizarla basta con presionar CTRL + F , seleccionar la pestaña y seleccionar la opción Expresión regular en las opciones de búsqueda.
En el campo de «Buscar» pondremos la siguiente expresión regular:
([dA-Z][dA-Z])s

Y en el campo de remplazo ponemos:

1

Debe quedar como en esta imagen:

regex1Ahora solo presionamos remplazar todo y  así quedaremos con cada una de las pantallas separadas por un espacio o un salto de linea algo asi:

note2

 

Ahora ya que los bytes de cada pantalla están juntos podemos hacer que se repitan las 6 veces y despues de eso eliminar los espacios sobrantes y para esto que mejor que una expresión regular:

En el campo de «Buscar» pondremos la siguiente expresión regular:
([dA-Z]*)s?n?

Y en el campo de remplazo ponemos:

1111111

Después de presionar el boton remplazar todo nuestro archivo quedara  mas o menos así:

note3

 

Por ultimo eliminamos los saltos de linea (podemos usar nuevamente la herramienta de remplazo de Notepad++ usando el modo extendido, en busqueda ponemos n, r o rn y dejamos en blanco remplazo) seleccionamos todo con CTRL + A y lo copiamos; Abrimos Hexplorer y damos click derecho para abrir el menu contextual seleccionamos «paste external text as hex number» como se muestra en la imagen:

hexplorer

Y por ultimo para guardar nuestro archivo hex listo para programar nuestra memoria del menú archivo seleccionamos exportar como «Hex intel» tal y como se muestra en la imagen:

hexplorer2Solo queda seleccionar la ruta y el nombre del archivo para guardarlo y posteriormente grabar nuestra memoria.

el resultado final una vez montado en la memoria seria algo asi:

 

Descarga:

Licencia Creative CommonsLa plantilla de excel está bajo una Licencia Creative Commons Atribución-NoComercial 2.5 México.

Como recordatorio para los que no saben que es la licencia creative commons ni estan deseosos de leerlo, basicamente dice que como es mencionado en la figurita de aqui a lado, deben de mantener todas los textos que dan credito al autor, y no pueden utilizar esta obra para fines comerciales.

Algunos maestros y alumnos me han sugerido que cobre por la plantilla, pero mi intención fue ponerla a disposición de aquel que la necesitara bajo la simple condición de respetar la licencia bajo la que esta publicada, aun así  el dinero extra puede ayudarme a mantener el servidor, es por eso que si el archivo te ayudo te animo a apoyar con el botón que esta abajo, se que no todos pueden o quieren aportar monetaria mente, pero también pueden apoyar con comentarios ya sea agradecimientos o incluso criticas constructivas.

Selecciona un metodo de pago, podras seleccionar el precio en la pagina siguiente:

Pay With Bitcoin
Matriz Base
Matriz Base
matriz_basev1.0.1.xlsm
Version: 1.0.1
106.7 KiB
1437 Downloads
Detalles...

También puedes enviar tu apoyo directamente a mi cuenta de paypal:

iam@mexcoder.com

o a mi monedero bitcoin:

17EFZX2UGjskWvPqJKupRt5K6bwkpAd9yn

Deja una respuesta