Letrero Monocromático con interfaz Android

Este es un letrero que utiliza la técnica de multiplexacion para mostrar caracteres alfanuméricas, esta basado en un microcontrolador de 8bits de Microchip (pic18f4550), ademas de eso el mensaje se lo puede cambia utilizando al aplicación  android.



esta conformado por 16 pixeles de altura y de 96 pixeles de largo las dimensiones en son 32cm por 120cm. el acabo es en aluminio y mica con una protección IP 67.

El funcionamiento lo puedes ver en que esta dirección:

Comunicación Bidireccional con nRFL24L01

Para desarrollar una comunicación inalambrica entre dos microcontroladores se puede hacer de varias formas utilizando modules como: Xbee , Bluethoot 4.0, nRFL24l01 y todo tipo de modulos RF que trabajen en frecuencias que este permitido en tu pais, generalmente las bandas libres son las de 2.4GHz y los 5GHz donde también operan los sistemas wifi. 

El module RF que veremos es el nRFL24L01, por que muestran buenas características lo que me llamo mas la atención es la alcance de distancia que tienen ademas en modo  stanbay el consumo de energía es mínimo y la comunicación con estos módulos RF es mediante el bus SPI.

hice las pruebas a 500 metros al aire libre y llegan los datos sin ningún problema, sin embargo con obstáculos como puertas metálicas y paredes llegue hasta 320m, pero me falto probar poniendo el transmisor en una lugar mas alto, de seguro aumenta la distancia.

la comunicación se realizo con microcontroladores avr (atmega328p) mediante el bus SPI que estos incorporan, la velocidad máxima de roloj SPI es 10MHz pero los modulos RF no lo soportan, segun su hoja de datos de los módulos RF solo soportan como un máximo de 8MHz, esto no es problema por que podemos poner un prescaler y bajamos la velocidad de reloj spi del micro avr.

En la programación se utilizo su librería, esta distribuido con licencia GPL, en realidad hay varias en ingles, pero el mas completo lo vi en esta dirección: http://gizmosnack.blogspot.se/2013/04/tutorial-nrf24l01-and-avr.html

esta bien explicado como inicializarlo basándose en su hoja de datos del nRF.


Mini fuente Ornamental Musical

Esta mini fuente ornamental consiste en ocho mini electrobombas que irán  impulsando agua conforme a las frecuencias presentes en el audio, las ocho mini electrobombas tienen su respectivo banda de frecuencia que van desde los 20hz hasta los 4Khz, es decir en los sonidos graves o bajos (20Hz a 100Hz) entra en funcionamiento el primer mini electrobomba y el siguiente desde los 150Hz hasta los 250Hz así sucesivamente hasta llegar a las frecuencias altas.



El control de las ocho mini electrobombas se realiza por medio de un MCU ATmega328P y unos circuitos integrados de 3 canales pwm y para separar las frecuencias se utiliza el algoritmo de la FFT dentro del programa principal realizado en Atmel studio.


Continuando con una parte del programa:


y para finalizar una demostración en la siguiente dirección: https://www.youtube.com/watch?v=vNNTVcC7XNQ

Contador Binario de 32 bits Con ARM Cortex M3

Vamos a utilizar los famosos microcontroladores de la empresa STMelectronics en especial el STM32F103C8 de arquitectura ARM Cortex M3-32bits. Para visualizar el conteo en 32bits utilizaremos leds y unos registros 74HC595. 


Lo que vamos a realizar es cargar   los registros(74HC595), con el valor de un registro interno del microcontrolador de 32bits, para llevar acabo utilizaremos esta tarjeta que tiene al MCU de 32bits, ademas para programarlo necesitamos de un ST Link. Su forma de uso ya lo mencione en  la pestaña de STM de este mismo blog.

El IDE  es Keil uVision, muy bueno para microcontroladores ARM.

la configuración de los registros 74HC595 es en modo serie. antes de empezar una aclaración importante es que esta tarjeta trabaja a 3.3v y los registros a 5V necesitaremos de un fuente externa de 5v, y los 3.3v  los podemos suministrar con el grabador ST Link.

El programa es lo siguiente: Empieza por incluir la librerías y definiciones del puerto a utilizar con sus respectivos pines para la comunicación con los registros 74HC595. ademas se declaran unas cuantas funciones para enviar datos a los registros externos (74HC595).


En la siguiente parte del programa: main() esta todo comentado como inicial-izar  los puertos.


y finalmente las respectivas tareas de las funciones declaradas:

Una pequeña guía de la conexión del circuito.  no detallo los pines por que en el programa esta escrito.



Y para terminar los resultados: bueno en esta ocasión solo una foto: 




Matriz modulo 16x32 Rojo

Estos son los famosos módulos fabricados en la república de China, y otros países las podemos encontrar en todas formas y colores y sobre todo económicos, estos módulos led te ahorran bastante tiempo a la hora de implementar un letrero matricial, lo complicado es desarrollar el programa.


Aparte de ser económicos, estos pueden venir con diferentes tipos de protección, IP64, IP67, IP68 es decir si tienen la opción de trabajar bajo la lluvia, polvo y humedad. Para poder controlarlos con microcontrolador, lo primero que deberíamos saber es el tipo de configuración que tienen y que circuitos lo componen, básicamente están hechos a base de un muy conocido integrado 74hc595, estos son fáciles de controlar pero primero debemos encontrar sus pines de conexión es otra tarea, por que al comprar este no te venden con su diagrama circuital, bueno solo nos queda desgranarlo y una ves que tengamos el diagrama circuital podemos empezar  escribiendo el código para cualquier microcontrolador que mas utilices. he incluso podemos hacer una libreria para estos módulos.


En esta entrada mostrare una forma de controlarlos, lo que hace interesante a estos módulos es que puedes controlarlos varias de ellas, conectándolos en serie todos los módulos que se te ocurra y hasta donde la velocidad de tu microcontrolador te alcance. En la nube encontré estas imágenes aun que no ayuden mucho pero al menos es una referencia.


Este  es de un modulo RGB, es similar al de un solo color, pero como podemos observar tiene un pin de reloj y de latch como también un pin datos, pero desconozco los pines A,B,C y D.
Sin mas comentarios, entrare a explicar como funcionan. 

Estos módulos también manejan barridos para mostrar un carácter es decir es casi igual a un letrero matricial que hay bastante información de estos en la nube. pero con una pequeña y ligera diferencia, es que el barrido solo pasa por cuatro filas, al principio me preguntaba por que, llegue a la conclusión de que con este tipo de configuración se logra mayor brillo.



haré una pequeña demostración con un microcontrolador atmega328p y el video lo subiré en esta url: https://youtu.be/9m0-SdXUGGQ para que podes entender mejor el barrido.

A continuación el código en atmel studio v6.2



he aquí algunos resultados que he obtenido es espectacular, subiré el código completo en cuando tenga mas afinado el código

.


Reloj con DS1307 con AM y PM

Este lcd es el mas bueno para empezar, tiene una variedad de caracteres incluidos en el lcd, no es necesario hacer todos lo caracteres, sin embargo iniciarlo el lcd es problema. también los podemos utilizar en modo 4 bits y 8, de esta forma ahorramos mas es bus de un microcontrolador, pero podemos hacer para un bus de 3 hilos, incorporando un circuito integrado latch 74hc595 u otros similares a este C.I. para un mayor ahorro de pines del microcontrolador a usar.

En esta entrada hablare sobre el microcontrolador de microchip(PIC16f877A) y dispositivo ds1307 mas conocido como RTC(reloj en tiempo real), este tiene internamente registros bien organizados para guardar un calendario para 100 años, el bus para comunicarse con este dispositivo es el i2c, ademas es necesario un batería de 3.2v para que este pueda almacenar continuamente el tiempo.


el esquemático: no es muy complejo



El problema esta en el código, vamos utilizar ccs v5.015 para desarrollar el programa, para no complicarnos la vida, el ccs nos facilita librerías, por ejemplo la librería del lcd esta incluido en el programa, sin embargo la del ds1307 no existe, buscando en la nube o internet encontré unas librerías para controlarlo de la manera mas fasil posible el ds1307, pero aun así tenia problemas, en casi todas las librerías no incluyen el AM y PM, sabemos que esto es muy importante a la hora de escoger el modo de 12horas, es que el ds1307 tiene estas dos formas el modo 12hr y el 24hr. 

A mi personalmente me gusta trabajar en modo 12Hrs. sin embargo para lograr configurar en modo 12Hrs el ds1307 es necesario comprender la hoja de datos del ds1307. lo que realmente hice es modificar una librería que lo descargue.

este es el MAIN del programa general:


En esta dirección descargar la simulación y el programa completo: https://mega.nz/#!KtZ0ED5D. también esta incluido la librería que modifique para el ds1307, antes de utilizar verifique la versión de su CCS pueda que no sean compatible la librería del LCD, sin embargo puedes pedírmelo. la versión del programa con lo que trabajees  CCS c compiler v5.015.

y finalmente una imagen de los resultados finales.



Display TFT full color mas DS1307

Este integrado ds1307 puede ser configurado para mantener la hora y la fecha durante 100 años, ademas de utilizar solo un par de hilos para su comunicación con cual quier microcontrolador que tenga el bus i2c. lo que veremos a continuación es como mostrar la hora en un display TFT con microcontrolador avr de 8 bits.