sábado, 21 de septiembre de 2013

Impresora 3D, Parte II: Microcontrolador

En la primera parte presentamos a estos dispositivos. Ahora nos dedicaremos ha describirlo en detalle. Es importante dado que se les puede utilizar en muchísimas aplicaciones,y que la impresión 3D es solo una más de tantas.


¿Pero qué es un microcontrolador?

Un procesador digital con periféricos integrados o como lo dice la Wikipedia:  Un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Desmenuzando el concepto encontramos palabras como procesador o unidad central de proceso, memoria y periféricos de entrada/salida.

Procesador: Es la cabeza del microcontrolador, lee instruciones de la memoria, las ejecuta y el resultado lo vuelve a guardar en memoria y/o lo envía a los periféricos. 
En comparación a los procesadores usados en computadoras son mucho más "lentos". Además se dedican a una tarea específica. Lejos de ser desventajas, implica menor consumo de energía y menor costo. 

Memoria: Ya que el propósito de un procesador es seguir instrucciones, estas se almacenan en una memoria. Estas instrucciones es lo que llamamos programa al ejecutarse en un orden pre-establecido. Para obtener dicho orden requiere de un contador de programa y una pila (fila) para este contador. La memoria que almacena estas instrucciones es de solo lectura y de allí su nombre en inglés ROM (Read Only Memory).
  
Dentro de la memoria además se encuentran registros reservados para el funcionamiento correcto del microcontrolador y variables de usuario, datos que varían durante la ejecución del programa. La memoria que almacena esto es más grande y se necesita de acceso aleatorio, de alli sun nombre en inglés RAM (Random Access Memory).

Periféricos de Entrada/Salida: Un sistema digital que no posee interacción con el mundo físico no sirve de mucho. Está es la principal ventaja de los microcontroladores, poseen en un solo chip todo lo necesario para interactuar con el mundo físico y con otros sistemas digitales. Más que los periféricos como tal, que pueden ser una pantalla, un teclado, un motor, un micrófono, un parlante, etc, el microcontrolador posee los puertos (físicamente las patitas o pines) para conectarlos y lo necesario para comunicarse mediante estándares como I2C, SPI, UART, USB incluso ETHERNET. 

Ejemplo de comunicaciones SPI, el Master es una computadora básica y utiliza un microcontrolador en una placa Arduino para controlar la Pantalla LCD

¿Como funciona un microcontrolador?

El microcontrolador esta diseñado para dedicarse a una tarea específica. Esta tarea es definida por el programa, el cual puede ser escrito en diversos lenguajes de programación: ensamblador(el cual es distinto según el fabricante del microcontrolador, pero permite usarlo completamente), en C (el más usado y cumple un estándar, por lo que pasar el programa de un microcontrolador a otro, ya sea de distinto modelo o marca, es más fácil.) o en Basic (el más sencillo pero puede no estar disponible para algunos microcontroladores). 

Una vez que esta listo el programa debe ser grabado en el microcontrolador. Esto se puede hacer mediante un grabador dedicado para el microcontrolador según el fabricante o cargando previamente un programa llamado "bootloader", mediante dicho grabador, para luego poder modificar el programa mediante conexión USB. Tal vez no hace falta mencionar que hasta este punto una computadora es imprescindible para el proceso, de aquí en adelante la necesidad de un computador dependerá del uso que le demos al microcontrolador.

Una vez con el programa cargado en el microcontrolador, debemos energizarlo y darle una señal de reloj para que el programa inicie a ejecutarse, además conectarle a los periféricos con los que se va a trabajar.
Esto podemos realizarlo ya sea en un protoboard o en una placa impresa previamente realizada.
Como es más seguro hacerlo en una placa impresa pero también podemos desear grabarle otro programa, o de plano utilizar el microcontrolador en otra tarea entonces es muy útil hacer una placa llamada Entrenadora, con conexiones para todos los puertos. 
Entrenadora para un PIC18F2550
(Queda pendiente subir el diseño de una entrenadora y un tutorial para crear tus propias placas impresas, puedes adelantarte buscando en Internet.
Esto hasta encontrar un programa libre para realizar placas y la mejor opción de microcontrolador. El PIC16F887 de Microchip es en el cual esta desarrollado actualmente la impresora.
Como se ve en las imagen anterior el PIC18F2550/4550, también de Microchip, o en la imagen siguiente una placa Arduino traen directamente conexión USB, pero Arduino no es de Microchip sino de Atmel*.
Tal como se comenta antes, pasar el programa escrito en C a cualquier microcontrolador no representa dificultad mayor, sin embargo el compilador [que es libre en ambos casos*] y el hardware necesario para grabar el microcontrolador son totalmente distintos.)



<Publicidad>Tal vez hoy en día la placa entrenador más famosa es Arduino, que la pueden comprar hecha, además trae el microcontrolador ya cargado con el bootloader y el software necesario para escribir el programa.</Publicidad>
Placa Arduino UNO

Y eso es todo.

Bueno no todo, si no sabes programar o si no tienes un poco de conocimientos en electrónica, pero para eso esta Internet. 
Actualmente es relativamente fácil aprender la programación y electrónica necesarias para un proyecto específico con un poco de esfuerzo y dedicación. 
En el resto de artículos nos dedicaremos a estos dos temas en referencia a la Impresión 3D. Además se tratará de conceptos de código G y modelado 3D, también necesarios para la impresión 3D.



*Conseguir microcontroladores de Atmel en mi ciudad "Cuenca, Ecuador" no es fácil.
**Arduino es un proyecto de hardware y software libre. Software de compilación para Microchip lo proporciona la misma empresa pero es más largo el desarrollo en comparación de realizarlo con software de pago.

No hay comentarios:

Publicar un comentario