Sunday, November 16, 2008

La magia de los microcontroladores


En algún artículo pasado (ver aquí), hablé de los microcontroladores, lo cual no son otra cosa que computadoras en miniatura. A diferencia de los microprocesadores, que requieren de todo un complejo sistema de electrónicas para funcionar, el microcontrolador contiene todo lo que una moderna computadora requiere: puertos de entrada y salida, memoria interna, convertidores analógico-digitales, etc.

¿Para qué puede servir entonces un microcontrolador? La verdad es que tiene N posibles funciones. Los microcontroladores son parte de hornos de microondas, lavadoras, refrigeradores, players de mp3, etc. Son en alguna medida computadoras en miniatura para usos muy específicos.

A sabiendas de las posibilidades que dichos componentes otorgan, y de la riqueza de posibilidades que se abren al usar computadoras y microcontroladores, decidí con un buen amigo, Raúl Ortega, que debíamos tomar algún curso al respecto. Así, platicamos con Eric López, un ingeniero en electrónica del Politécnico, que lleva años dando cursos y trabajando sobre este tema. Nos pusimos de acuerdo en el costo del cjurso y este sábado pasado (ayer), tomamos nuestra primer clase.

Eric nos dio una tarjeta en donde podríamos hacer nuestras prácticas. Igualmente, nos hizo adquirir el programador de PICs, que es una cajita negra que se conecta al puerto USB y permite mandar el código de nuestro programa a la memoria interna del microcontrolador.

El proceso para desarrollar un sistema a través de PIC va más o menos así:

  1. Dado un proyecto a realizar (por ejemplo, contar a través de LEDs del 0 al 10), utilizar el editor de microcódigo (un programa que es simplemente un editor para esta labor).
  2. Una vez que el programa ya está escrito, usar el compilador PIC BASIC PRO para generar el código hexadecimal que será leído por el PIC cuando ya esté funcionando el programa.
  3. Pasar a través del programador de PICs el archivo hexadecimal al microcontrolador.
  4. Poner el PIC en la tarjeta de entrenamiento y poner los cables de entradas y salidas en las patas necesarias para que las conexiones de las patas del microcontrolador nos revelen su uso -en este caso- a través de los LEDs.
Asi entonces, para programar PICs se necesitan varios elementos de hardware y de software, a saber:

Un programador de PICs con su tarjeta en donde se pondrá el chip para poder escribir en él (véase siguiente figura).

Programador de PICs (PicKit2) y la tarjeta en donde se coloca el microcontrolador PIC para escribir el programa en su memoria interna.

Una tarjeta entrenadora, la cual contiene todos los elementos, botones, entradas para display digitales, de siete segmentos, LEDs, etc. (ver siguiente figura)


Tarjeta entrenadora (aquí se prueban los proyectos hechos con el PIC)

Una vez teniendo esto, requerimos de software. Necesitamos el pic basic pro, que es el compilador que en este caso usaremos. Hay versiones para C y Pascal. Por el momento y para cuestiones de aprendizaje, usaremos el que usa como lenguaje BASIC. Cabe señalar que este BASIC es muy elemental y que está diseñado para compilar programas que funcionen en familias de microcontroladores PIC. No sirve pues para ser usado como herramienta de programación, digamos para Windows, por ejemplo.

El compilador puede ser ejecutado en una ventana de MsDOS (modo consola), pero lo mejor es usar el Microcode, un editor de programas para PICs, de manera que permite compilar directamente desde el medio ambiente, además de mostrarnos los errores, colorizar las palabras reservadas, etc. (véase siguiente imagen).

El editor llamado Microcode (con el código fuente de mi primer programa)

El PicKit2 (el programador de PICs) contiene un disco con un programa que nos permite pasar archivos que contengan código hexadecimal a la memoria interna del microcontrolador. El software ejecutándose (mostrado en la siguiente imagen), nos dicer que ya cargó el programa 'prueba01.hex' a la memoria del microcontrolador.

El software que usa el PicKit2

Usando todos los elementos, es decir, creación del programa, compilado del mismo, uso del 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



Como puede verse, el uso de los microcontroladores para ciertas aplicaciones puede ser, sin duda, una estupenda opción, la cual enriquece notablemente las posibilidades de hacer nuevas y mejores herramientas, ya sean de hardware o software.

Estoy contento... Como le decía a Eric, esta primera clase fue muy ilustrativa.

5 comments:

Erik Martinez said...

¿Hay forma de integrarse al curso?

Morsa said...

Hola, Erik,

Yo creo que por el momento no, pero deja le pregunto a tu tocayo.
saludos
Manuel

martin said...

hola, se puede copiar informacion de un pic.
Gracias

martin said...

se puede copiar informacion de un pic

Morsa said...

Sí, se puede copiar la información del programa que contiene el pic si el programador lo permite. es decir, es posible decirle al pic, a través de directivas del compilador, que el código queda libre para que se copie. Sin embargo, hay una directiva que no permite copiar lo que contiene el pic. Así, depende del programador (la persona que codifica, pues), el darte acceso al código ejecutable. En general, en el caso de dispositivos comerciales que usen pics, probablemente no puedas copiar la información que contengan.

saludos
Manuel