"Control de Matriz 8x8 con Visual Basic .NET y Arduino" "Controla una matriz 8x8 con Arduino"
Buenas de nuevos a tod@s,
Buenas de nuevos a tod@s,
En esta nueva entrada os traigo una pequeña aplicación para poder controlar una "matriz de 8x8 con Visual Basic .NET" a través de un Arduino. En concreto he elegido este microcontrolador porque seguramente os suene a muchos: es el ATMEGA328P montado sobre una tarjeta y plataforma denominada Arduino UNO. Cada vez esta más extendida y nos permite comenzar a trabajar y hacer proyectos electrónicos de forma rápida y sencilla.
Os cuento, como he realizado este proyecto:
- Primeramente obtuve el circuito electrónico de la matriz de leds de 8x8, la cual a veces, la venden junto con un integrado que la controla del fabricante de circuitos Maxim. Exactamente el "MAX7219". Ambos componentes los podéis comprar en cualquier página de internet de componentes electrónicos. En mi caso, yo lo obtuve de la siguiente web:
Una vez montada nuestra matriz de leds se pararía a cablear hacia nuestra placa de Arduino. Se puede hacer de la siguiente manera:
Bien, en este punto ya tenemos todo nuestro hardware listo.
- Por otra parte nos faltaría la parte del software.
Para la parte bajo nivel, he usado el entorno propio de desarrollo de Arduino:
Para ello he desarrollado el alfabeto en mayúsculas y ocho símbolos más añadidos para ser mostrados en la matriz de leds. Son las lineas que aparecen como variables del tipo 'byte'. Se hace uso del puerto serie que se encarga de recibir por el puerto USB/Serie los datos que recibe desde el PC y que son enviados por la aplicación de alto nivel.
El protocolo de comunicación entre la aplicación de alto nivel realizada en Visual Basic .NET y la de bajo nivel para el Arduino, es sencillo. Se envía siempre una trama de 65 bits, de los cuales los 64 primeros (del bit 0 al 63) son cada uno de los leds de la matriz y por último se envía el bit de comando, donde este indica si el modo de control es modo 'texto' o modo 'matriz'.
Modo 'matriz'
Modo 'Texto'
La trama es recibida vía serie por el Arduino y este se encarga de interpretarla y/o convertir algunos de los caracteres que este recibe en una especie de LUT (look up table) para identificar que letra tiene que dibujar o bien que símbolo. Se pueden definir tantos símbolos como posibles combinaciones queramos hacer de encendido y apagado de los leds. Como os he comentado antes, yo solo he definido el alfabeto en mayúsculas y ocho símbolos más (una sonrisa, un corazón, una cruz ...)
Os muestro una imagen del aspecto del interface gráfico de la aplicación de Visual Basic .NET:
Como os había adelantado una líneas más arriba, la aplicación de alto nivel tiene varios modos de funcionamiento. Presenta el modo 'Texto' que lo que hace es traducir el texto que se haya escrito en las letras y símbolos de que se hayan definido anteriormente. Y el modo 'Matriz' lo que hace es enviar directamente el símbolo o letra dibujada de forma gráfica directamente a la matriz.
Existe otra opción también muy útil, que lo que hace es ir guardando las letras o símbolos que se van dibujando de forma gráfica en memoria, de tal forma que se va generando una especie de mensaje gráfico que luego puede ser enviado completamente a la matriz.
Para ello hay que hacer uso de los botones 'Save LEDs state' y 'Run Simulation', que son para guardar el estado actual de la matriz de leds a memoria y el otro botón comienza a mostrar tantas letras o símbolos se hayan salvado. Estos se indican en una pequeña caja de texto que aparece debajo del botón, así como también es posible ir verificando los símbolos guardados con las flechas azules de izquierda y derecha. También se puede modificar la velocidad de envío hacia la matriz, para acelerar o ralentizar el mensaje enviado.
Por último se pueden guardar todos los símbolos que hayamos definido en un fichero de texto, para luego o en cualquier otro momento tengamos nuestros mensajes, lista de símbolos, etc almacenados en nuestro disco y puedan ser mostrados de forma inmediata sin tener que volver a definir nuevamente cada uno de los símbolos o letras que hayamos creado.
¡Importante! aquel símbolo que se cree de forma gráfica hay que trasladarlo también a la parte de bajo nivel para que Arduino también sepa interpretarlo.
Para el que quiera animarse a montar y probar todo el proyecto (así se entretendrá un ratito jugando con los caracteres y símbolos que se pueden mostrar) .... os dejo la aplicación y el código fuente del programa para Arduino.
La aplicación realizada con Visual Basic .NET:
Aplicación del Control de Matriz de 8x8.
Y el código fuente que habría que volcar en el Arduino:
Código fuente para la tarjeta de Arduino.
Os dejo también un par de vídeos con las pruebas tanto hardware como software de todo el proyecto, las cuales han ido perfectamente como podréis comprobar:
Pues ya sabéis, a jugar un ratito ....!
Un saludo.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Por favor, si te ha gustado el blog, te ha ayudado o has visto algún proyecto interesante del que te has podido descargar alguna documentación por favor deja algún comentario. Gracias.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Can you please send me VB.Net source of this project to my email webuyserver @ gmail dot com Thanks a lot!
ResponderEliminarHello,
ResponderEliminarSorry for the delay in responding, but I have not done it before. I'm afraid that now I have my broken computer, I'm afraid I've lost everything I had on my hard drive. I need to fix it and try to get all my data and information I had and see that I can recover. I have a physical failure of the hard disk and possibly can not recover anything, do not know yet.
About what you ask me the code of the matrix, I would have no problem hanging on the blog, as long as I can recover some or all of the data on my hard drive, but you could not tell it when I can do this, because I had a lot of information and codes on my hard drive.
If you want you can comment me what you need to do with the matrix and see if I can help.
A greeting.
puedes pasarme el codigo fuente del V.B a mi correo jesus_2903@hotmail.com
ResponderEliminarpuedes pasarme el codigo fuente del V.B a mi correo luis_sag_14@hotmail.com
ResponderEliminarpuedes pasarme el codigo fuente del V.B a mi correo juan99_leon@hotmail.com, por favor
ResponderEliminar??
ResponderEliminaramigo si podrias pasarme el codigo?? porfavor
ResponderEliminarcan u send me the V.B to my email Hertnandez275@gmail.com ?
ResponderEliminarseria tan amable de compartirme el código le agradezco mucho. diego2483@hotmail.es
ResponderEliminargenial
ResponderEliminar