Showing posts with label microcontroladores Pic. Show all posts
Showing posts with label microcontroladores Pic. Show all posts

Thursday, November 24, 2011

Proyecto con un microcontrolador Pic: un reloj de ajedrez


Los microcontroladores no son otra cosa que computadoras en miniatura. A diferencia de los microprocesadores, que requieren de todo un complejo sistema de electrónica para funcionar, el microcontrolador contiene todo lo que una moderna computadora necesita: puertos de entrada y salida, memoria interna, convertidores analógico-digitales, etc. Estos microcircuitos son parte de hornos de microondas, lavadoras, refrigeradores, reproductores de mp3, algunas cafeteras, etc. Son en cierta medida computadoras en miniatura para usos muy específicos. Ya he hablado de ello antes. Si buscan "microcontrolador" en este blog, podrán ver algunos artículos míos pasados al respecto).

Como los microcontroladores son computadoras en miniatura, éstas deben poderse programar. Para ello, se necesitan algunos elementos:

  • Una tarjeta (un circuito impreso que contenga al microcontrolador, botones, leds, pantalla de cristal líquido LCD, en la cual podemos ver  el funcionamiento del programa que estamos escribiendo.
  • Un editor de código con su correspondiente compilador (hay C, basic, e incluso Forth).
  • Una interfaz (que es una caja negra), que vía el USB conecta la tarjeta de desarrollo con la PC y los programas compilados se pueden pasar a la memoria del microcontrolador. Eso es lo que se llama un "programador de microcontroladores".

En mi caso, trabajé con una tarjeta con un microcontrolador Pic y usamos el Pic Basic Pro (PBP) como lenguaje de desarrollo. Cabe decir que algunos compiladores tienen costo. No todos son gratuitos, aunque existen interesantes alternativas en ese sentido.

Usando todos los elementos, es decir, creación del programa, compilado del mismo, uso del programador PicKit2 para copiar el código a la memoria del PIC, traslado del chip a la tarjeta de prácticas, cableado de las patas correspondientes del microcontrolador a los leds y al botón que usaremos para controlar el despliegue (encendido y apagado de LEDs), tenemos un programa que hace exactamente lo que le pedimos, como puede verse en este video, lo cual es un programa que a través de los leds de la tarjeta de prácticas, cuenta en binario encendiendo los foquitos leds al oprimir el botón.

Las capacidades de los microcontroladores lo hacen el candidato justo para una serie de proyectos de electrónica, en donde precisamente la parte del hardware puede obviarse. Por ejemplo, se me ocurrió que sería interesante hacer un reloj de ajedrez electrónico. Los relojes de ajedrez son dos cronómetros que llevan el control de tiempo para pensar las jugadas por cada jugador. Actualmente estos relojes electrónicos ya existen pero quizás su costo es elevado (unos 1000 pesos más o menos). Así, me di a la tarea de diseñar mi propio prototipo.

Le pedí a un ingeniero en electrónica que me hiciese el circuito impreso con los elementos que necesitaba: una serie de botones y una pantalla de cristal líquido. En el caso del prototipo, el “display” es de cuatro líneas. Si el proyecto tiene éxito y se sigue a una fase de comercialización, se tendría que poner en una pantalla más adecuada para la naturaleza del ajedrez (números más grandes, por ejemplo). Pero por el momento un prototipo no necesita de más cosas.

He escrito parte del software ya, pero hay muchos detalles que pulir. Lo importante aquí es que el proyecto se puede desarrollar de manera fácil y simple, porque finalmente es como programar una computadora -pero de uso específico- con limitaciones en capacidad de memoria, despliegue, etc. Se parece en ese sentido a programar un teléfono con iOS o Android, por ejemplo. Seguiremos informando de los avances de este proyecto.

Tuesday, May 31, 2011

Microcomputadoras en un chip


Hace ya tiempo hablé de los microcontroladores Pic, cuyo fabricante es la empresa Microchip. Estos circuitos electrónicos son computadoras completas en un chip. Tienen  puertos de entrada/salida, unidad lógica aritmética, convertidores analógico digitales, etc. Tiene memoria para programar y aparte de tener una arquitectura RISC (Reduced Instructions Set Computing), hay compiladores de Pascal, C y Basic, para no tener que lidiar con el lenguaje de máquina o con el ensamblador de estas simpáticas microcomputadoras.

Los Pics vienen en diversas presentaciones y dependiendo del tipo de aplicación que se quiera, hay una familia de microcontroladores que pueden hacer la tarea encomendada. La versatilidad de estos circuitos es tal que muchos dispositivos que hay en las casas podrían estar controlados port estos chips, con programas específicos que hacen las tareas encomendadas. Es lo que se ha dado en llamar también embedded computing

Pues bien, con el tiempo he seguido aprendiendo del tema y hoy en día se me han ocurrido dos proyectos en donde un microcontrolador pic, con una serie de botones y pantallas de LCD para desplegar resultados, pueden convertirse en dispositivos útiles. Ya hablaré en otra ocasión de estos proyectos. Lo que aquí quiero hacer es mostrarles la última tarjeta de desarrollo que adquirí, la cual es francamente una maravilla.

Se trata del MPLAB Starter Kit for Pic18 MCUs, hecha por Microchip, que se consigue por menos de 1000 pesos y que contiene botones capacitivos (es decir, de uso táctil, con sólo tocar la placa del circuito se simula el presionar un botón), acelerómetro, lo cual permite saber si hay movimiento en los tres ejes, X, Y y Z. Un displasy OLED de color, de 1/4 de una tarjeta VGA. Un chip Pic de 44 pines (Pic18F46J50) con 64Kbytes de memoria Flash, con tecnología para ser usado con muy poca corriente. Tiene también una microtarjeta SD de 2 gigabytes para guardar datos y programas. El paquete viene con una versión reducida (lite) del compilador de C y el medio ambiente de desarrollo MPLAB IDE. Contiene tutoriales, código de demostración, debugger (depurador) integrado y cable USB. Por lo que trae me parece una ganga.

He aquí un video que explica lo que puede hacerse con este kit de desarrollo:



En algún otro mensaje hablaré de los desarrollos que tengo pensados con este kit. Por lo pronto, es un sistema que sin duda podrá ser muy útil en términos de aprendizaje. Seguiremos informando.