You are on page 1of 27

INTRODUCCIN: La evolucin de las mquinas-herramientas de propsito general y la implementacin del control en ellas, han permitido que surjan mquinas

cada vez mas especializadas en aplicaciones particulares, donde las herramientas convencionales no satisfacen las exigencias de precisin y comodidad para quien las utiliza. Existen factores que determinan en qu casos es factible la implantacin del control en este tipo de mquinas, principalmente: la exigencia de precisin en procesos de maquinado repetitivos (como la perforacin de circuitos impresos, ya que se requieren grandes cantidades de perforaciones sobre la placa para el montaje de los componentes electrnicos); los diseos cada vez ms complejos en las piezas a maquinar; la diversidad de diseos de piezas (lo que ocasiona la necesidad de estructuras de produccin flexibles); la posibilidad de reducir errores en la produccin de lotes de piezas y principalmente obtener la calidad en los productos o piezas, que satisfaga al usuario final. El control en las mquinas-herramientas ofrece mltiples ventajas en comparacin con los sistemas manuales, algunas de ellas son: mejora en la precisin del maquinado, ya que sta no depende directamente de la habilidad del usuario sino de la resolucin de de la mquina; uniformidad en la produccin, debido a la repetibilidad de posicionamiento de la herramienta en el sistema; posibilidad de maquinar piezas de distintos niveles de complejidad con una sola mquina; aumento de seguridad para el usuario, ya que pasa de ser directamente el operador a ser solo un supervisor del trabajo de la mquina y con ello se elimina, adems, la fatiga que podra sufrir el operador en un sistema manual; entre otras ventajas. A lo largo de esta seccin se muestran los distintos sistemas que componen una mquina controlada numricamente, los cuales son: sistemas de transmisin, sistemas de control de posicin y desplazamientos, tipo de control de posicin en la mquina, ejes de movimiento (capacidad de posicionamiento del efector final o herramienta en el espacio de trabajo), efector final, sistema de sujecin de piezas, sistema elctrico y sistema de seguridad.

X. EJES DE MOVIMIENTO: Una mquina herramienta controlada automticamente debe disponer de diferentes rganos de movimiento lineal (llamados ejes) que permitan posicional la herramienta o el efector final dentro del espacio de trabajo, y para poder programar el movimiento en dichos ejes se les asigna una letra a cada uno. Esta asignacin de letras est normalizada y no puede ser cambiada en ningn caso. Los tres ejes principales de movimiento son: Eje Z: a lo largo de este eje se realiza el herramienta hacia el suelo. movimiento perpendicular de la

Eje Y: a lo largo de l se realiza el movimiento transversal de la herramienta.

Eje X: es el eje sobre el cual se realiza el movimiento longitudinal de la herramienta. Cada mquina cuenta con los ejes estrictamente necesarios para poder realizar el proceso de maquinado sobre las piezas; as por ejemplo un torno slo necesita del eje Z y el eje X para posicionar la herramienta longitudinal y transversalmente, mientras que una fresadora necesita de los tres ejes X, Y y Z para poder colocar la herramienta dentro de su espacio de trabajo (ver imagen X. 1 a)). Al movimiento simultneo de dos o ms ejes de forma controlada que realiza trayectorias perfectamente definidas, tanto lineales como curvas, se le conoce como interpolacin. Mientras ms complejas sean las formas de las piezas a maquinar, se requiere de una mayor cantidad de ejes en el diseo de la mquina para poder cubrir las necesidades de cada caso. Por ello existen los denominados ejes complementarios , que son ejes de rotacin asociados a los tres ejes lineales de movimiento X, Y y Z designados por las letras A, B y C. Algunas mquinas disponen de mesas giratorias y/o cabezales orientables mediante ejes complementarios que permiten atacar la pieza a trabajar desde diferentes planos y ngulos de aproximacin (ver imagen X.1 b)).

Imagen X.1. a) Ejes principales de movimiento, b) ejes complementarios

X. TIPOS DE CONTROL DE POSICIN. Existen fundamentalmente tres tipos de control de posicin de la herramienta, contemplados desde la perspectiva de la funcin que realizan. stos son: I. Control punto a punto. Como lo indica su nombre, solo controla puntos definidos por la programacin, es decir, no tiene control del recorrido de la herramienta de un punto a otro ni de la trayectoria, hasta alcanzar la posicin deseada y tampoco tiene control de la velocidad de desplazamiento entre ambos puntos (ver imagen X.1 a)). Este tipo de control es el ms sencillo de todos los existentes, lo que le convierte en el ms barato. A pesar de ello tiene una funcin clara dentro de las mquinas herramienta, usndose en mquinas taladradoras, semipunteadoras, etctera. II. Control paraxial o de recorridos. Con respecto a la velocidad de desplazamiento, el recorrido lo hace de manera controlada pero slo paralela u ortogonal a los ejes. Esto se debe a que no tiene capacidad de interpolacin, es decir, el control solo puede mover un motor a la vez (ver imagen X.1 b)). Es ideal para mquinas que tengan como nica funcin escuadrar caras o en sierras de control numrico, entre otros. III. Control continuo o de trayectoria. Tiene la capacidad de movimiento en varios ejes simultneamente, puede realizar cualquier recorrido en un plano, tanto en lneas curvas como en lneas rectas con cualquier tipo de inclinacin; es decir, puede interpolar ejes (ver imagen X.1 c)). El control interpolar es el ms completo de todos, pues tiende a realizar las funciones de los tipos de control de los puntos anteriores, y adems sus funciones propias, por lo que es el tipo de control ms usado a pesar de su elevado costo de implementacin.

Imagen X.1. Tipos de control de posicin: a) Punto a punto, b) Paraxial y c) De trayectoria.

X. ELEMENTOS DE CONTROL. Son componentes electrnicos e informticos de un sistema, encargados de administrar el funcionamiento de diversos dispositivos actuadores, ya sean elctricos, neumticos, oleohidrulicos o electrnicos. Mediante los elementos de control se recibe informacin del medio y del propio sistema, se procesa y analiza, y con base en ella se toman decisiones para permiten o no la activacin de motores, cilindros, indicadores luminosos, etc. Dentro de los elementos de control electrnicos se encuentran los circuitos basados en microcontroladores (sistemas embebidos), PLC (controladores lgicos programables, por sus siglas en ingls), PLD (Dispositivos Lgicos Programables, por sus siglas en ingls), entre otros. Con respecto a los sistemas informticos, se tienen principalmente las GUI (interfaces grficas de usuario, por sus siglas en ingls) que fungen como el medio de comunicacin entre un ordenador convencional y un ser humano. Esta seccin se enfoca en el estudio de los sistemas electrnicos con base en microcontroladores y las interfaces grficas de usuario. X.1. EL MICROCONTROLADOR. La mayora de los sistemas electrnicos modernos tiene al menos un bloque o mdulo que trabaja con electrnica digital. Este bloque puede estar implementado con circuitos integrados discretos o por elementos ms avanzados como PLDs (Dispositivo Lgico Programable), microprocesador o por un microcontrolador. Un microcontrolador tiene, en un solo circuito integrado, un microprocesador, la memoria de datos, la memoria de programa y las unidades de entrada/salida, lo cual lo hace muy pequeo, barato y fcil de manejar; por lo que es ideal para muchas aplicaciones de propsito especfico1. Fsicamente, no es ms que un circuito integrado con patillas de conexin; y los hay en diferentes tipos de encapsulados segn sus caractersticas de hardware (nmero de puertos de comunicacin, lneas de control por puerto, convertidores anlogo-digital, etctera).

Para ilustrar de mejor manera la descripcin anterior, en la imagen X.1.1 se muestran varios microcontroladores del fabricante ATMEL en los diferentes encapsulados existentes.
Imagen X.1.1 .Microcontroladores ATMEL.

Los microcontroladores tienen gran aceptacin y adems son utilizados en diversas reas como son: sistemas de alumbrado pblico, tarjetas de desarrollo, alarmas residenciales, sistemas de riego automatizado, control automtico, mquinas elctricas, etctera. El xito de estos dispositivos se debe a las siguientes caractersticas: a) Bajo costo. La implementacin de un sistema de control bsico puede tener un costo muy reducido. b) Hardware simple. Un microcontrolador no requiere muchos elementos externos para poder funcionar correctamente, a diferencia de lo que sucede con otras opciones. c) Facilidad de aprendizaje. No se requiere de mucho tiempo antes de empezar a desarrollar aplicaciones sencillas pero completas, lo que motiva a muchas personas a continuar usando microcontroladores como parte central de sus diseos. d) Proliferacin de herramientas de desarrollo. Adems de que muchas empresas venden herramientas de desarrollo completas, tambin existen en internet multitud de compiladores, ensambladores, simuladores y diagramas para programadores (llamados a veces circuitos quemadores o grabadores) que pueden obtenerse de manera gratuita. e) Gran cantidad de marcas y arquitecturas disponibles en el mercado. Varias empresas ofrecen sus microcontroladores con sus propias caractersticas: bajo consumo de energa, alta velocidad de operacin, cantidad de perifricos disponibles, interfaces digitales estndar para comunicacin con otros sistemas, reprogramacin dinmica en el sistema, etctera. Esto da a los diseadores, profesionales y aficionados, un amplio abanico de posibilidades de seleccin. Como ya se mencion en uno de los puntos anteriores, en el mercado de los microcontroladores varias empresas se pelean el liderazgo ofreciendo diversas arquitecturas para sus dispositivos, por lo que para alguien con experiencia en este campo resulta bastante atractivo, el problema es seleccionar cul microcontrolador usar, lo cual debe hacerse considerando algunos factores como: cantidad de lneas de control necesarias para la aplicacin, hardware disponible (convertidores analgicodigital, puertos de comunicacin, mdulos de comunicacin con otros dispositivos, velocidad de funcionamiento, etctera). Los principales fabricantes de microcontroladores son: ATMEL, Dallas Semiconductor, Microchip, Motorola, National Semiconductor, Intel y Texas Instruments.

X.2. SISTEMAS EMBEBIDOS. Un sistema de microcomputadora embebido es un conjunto de componentes fsicos que incluye una microcomputadora (tambin denominada microcontrolador) conectada a dispositivos mecnicos, elctricos y electrnicos, programada para un propsito dedicado y empacada como un sistema completo. Cualquier sistema elctrico, mecnico, electrnico (o sus combinaciones), que incluya entradas, decisiones, clculos, anlisis y salidas es candidato para implementarse como un sistema embebido. Los sensores elctricos, mecnicos, etc. renen la informacin del sistema. Las interfaces electrnicas convierten las seales de un sensor a una forma que acepta la microcomputadora. La microcomputadora procesa la informacin recabada por los sensores y toma decisiones, segn su programacin y da rdenes a los actuadores del sistema para realizar determinado trabajo. Normalmente el software de los sistemas embebidos resuelve slo una gama limitada de problemas. La microcomputadora se incorpora u oculta dentro del dispositivo. La memoria de solo lectura (ROM por sus siglas en ingls), es un tipo de memoria incorporada en la estructura interna de la microcomputadora y es en ella donde la informacin se programa o se graba dentro del dispositivo y los datos se conservan guardados, incluso si se interrumpe la energa elctrica y se vuelve a aplicar. Las microcomputadoras embebidas afectan prcticamente todos los aspectos de la vida diaria, por ejemplo en: Los aparatos electrnicos. Los sistemas de comunicacin. Los sistemas automotores. El equipo militar. Las aplicaciones empresariales. Los dispositivos mdicos. Mquinas especializadas para procesos de manufactura. Etctera. En contraste con los sistemas embebidos basados en microcomputadoras, un sistema de cmputo de propsito general tiene un teclado, un disco duro, una pantalla y otros perifricos y que se programan para una gran variedad de propsitos. 2 X.2.1. COMPONENTES BSICOS DE UN SISTEMA EMBEBIDO. El concepto embebido hace referencia a algo oculto en el interior para que nadie pueda verlo. En un sistema embebido, usamos la memoria de solo lectura (ROM) para almacenar el software y los datos fijos y constantes, y la memoria de acceso aleatorio (RAM por sus siglas en ingls) para guardar la informacin temporal.. Un puerto es una

conexin fsica entre la computadora y el mundo exterior; permite que entre y salga informacin del sistema. La informacin llega mediante los puertos de entrada y se va mediante los de salida (los puertos en ocasiones se conocen como interfaces o dispositivos E/S). Algunos ejemplos de estos puertos son: los puertos paralelos, puertos seriales, temporizadores, convertidores analgico a digital (ADC por sus siglas en ingls). El software, junto con los puertos de entrada/salida y los circuitos de interfaz asociados, le dan a un sistema de microcontrolador embebido sus caractersticas definitivas. Normalmente se reserva el trmino embebido a los sistemas que no se ven ni se comportan como una computadora comn. Casi todos estos sistemas carecen de un teclado, una pantalla o un almacenamiento secundario (disco). Los dispositivos externos conectados al microcontrolador permiten que el sistema interacte con su ambiente. Una Interfaz se define como el hardware y el software que se combinan para permitir a la computadora comunicarse con el hardware externo. A grandes rasgos, un sistema embebido es ideal en circunstancias en las que se necesita que una tarea especializada (o un conjunto de ellas) se realice de manera repetitiva y peridica, lo que se consigue mediante el software grabado internamente en el microcontrolador y que es posible modificar en el futuro, si es necesario.

Los elementos componentes de un sistema embebido se muestran en la siguiente ilustracin (ver imagen X.2.1.1).3

Imagen X.2.1.1. Componentes de un sistema embebido.

X.3. TARJETAS DE DESARROLLO. Pueden considerarse como sistemas embebidos, y son tarjetas de circuito impreso diseadas, generalmente, con base en microcontroladores e involucran algunos componentes adicionales que permitan al micro (de aqu en adelante la palabra micro hace referencia al microcontrolador) funcionar adecuadamente. Son circuitos con diseos flexibles, es decir, pueden adaptarse a casi cualquier proyecto ya que cuentan con borneras para comunicar una gran variedad de perifricos, sensores o actuadores, a las lneas de entrada/salida de los puertos del micro; reguladores de tensin para poder alimentarlas con fuentes externas de mayor voltaje que el requerido por el sistema; osciladores externos (circuitos de reloj) y en la gran mayora de ellas se

incluye el circuito programador, lo que permite grabar el cdigo de control en el microcontrolador sin tener que desmontarlo de la tarjeta y sin tener que comprar un circuito con ese propsito exclusivamente. El implementar una tarjeta de este tipo en proyectos y prototipos, permite reducir el tiempo de diseo del circuito de control y en la mayora de las ocasiones son tarjetas de dimensiones mucho ms pequeas (y de mayor densidad) que una de diseo propio, adems de tener un entorno de programacin integrado propio mucho ms amigable que el proporcionado por el fabricante de microcontroladores. Existen multitud de tarjetas de desarrollo con base en microcontroladores en el mercado, algunas diseadas por desarrolladores independientes; es decir, plataformas de cdigo abierto que permiten ser compradas, construidas o modificadas por cualquier usuario (segn sus propias necesidades), debido a que los diseos de referencia del hardware de este tipo de plataformas estn disponibles gratuitamente. A continuacin se muestran dos tarjetas de desarrollo disponibles en el mercado (imgenes X.3.1 y X.3.2). 4

Imagen X.3.1. Tarjeta de desarrollo ARDUINO UNO.

Imagen X.3..2. Tarjeta de desarrollo PIC18 Explorer board.

X.3.1. TARJETAS DE DESARROLLO ARDUINO. ARDUINO es una plataforma de desarrollo electrnica de cdigo abierto, basada en hardware y software flexibles y fciles de usar. Est dirigida a diseadores, aficionados y cualquier persona interesada en la creacin de proyectos, prototipos y entornos interactivos.5 El diseo de esta plataforma est basado en microcontroladores AVR (de la compaa ATMEL) y cuenta con una gran variedad de tarjetas para satisfacer las necesidades de multitud de proyectos y prototipos. Actualmente es muy popular debido a que, en una sola tarjeta de dimensiones reducidas, integra todo el hardware necesario para comunicarse con el entorno y grabar el cdigo de programacin en el microcontrolador.

Cuenta con su propio entorno de desarrollo integrado gratuito y cualquier persona (con experiencia en electrnica y programacin, o sin ella) puede comenzar a realizar aplicaciones muy potentes en poco tiempo. De todas las tarjetas disponibles en la plataforma ARDUINO, la ms adecuada para el presente proyecto es la denominada ARDUINO UNO (ver imagen X.3.1.1), cuyas caractersticas ms importantes son las siguientes6: Utiliza un microcontrolador ATmega328. Opera con un voltaje de 5 V. Cuenta con catorce lneas de control bidireccionales (pines configurables como entradas/salidas). Cuenta con seis lneas anlogas de entrada (convertidores anlogo-digital), que pueden ser configuradas tambin como entradas o salidas digitales. Velocidad de trabajo de 16 MHz. Comunicacin mediante puerto USB. Corriente mxima de 40 mA por lnea (pin de entrada/salida). Memoria de programa de 32 KB.

Imagen X.3.1.1. Tarjeta ARDUINO UNO y su diagrama de conexiones

X.3.2. IDE DE ARDUINO. Para poder escribir el cdigo de programa que controla el funcionamiento de la tarjeta, ARDUINO pone a disposicin de cualquier usuario su propio Entorno de Desarrollo Integrado (IDE por sus siglas en Ingls), de manera gratuita en su pgina de internet: http://arduino.cc/en/Main/Software; el cual permite escribir y editar cdigos de programacin, y posteriormente convertirlos en una serie de instrucciones que el microcontrolador en la tarjeta pueda entender (proceso conocido como compilar el cdigo). Adems, mediante el IDE se transfieren esas instrucciones a la tarjeta (proceso conocido como cargar el cdigo o uploading en Ingls). La imagen X.3.2.1 muestra una captura de pantalla del IDE. Dentro del entorno grfico (a lo largo de la parte

superior, debajo de la barra de mens) encontramos una serie de botones con las funciones ms utilizadas (compilar/verificar, cargar en la tarjeta, nuevo sketch, abrir un sketch, guardar sketch y monitor serial) (ver imagen X.3.2.2.) que facilitan el desarrollo de cdigos, desde su escritura hasta el proceso para cargarlos en la tarjeta.

Imagen X.3.2.2. Botones de las funciones principales del IDE.

Imagen X.3.2.1. IDE de ARDUINO

X.3.3. LENGUAJE DE PROGRAMACIN DE ARDUINO. El lenguaje principal usado por el entorno de desarrollo de ARDUINO es el lenguaje de programacin C, desarrollado por primera vez en los laboratorios Bell en la dcada de 1970 para su uso con el sistema operativo Unix. Este lenguaje utiliza una sintaxis de escritura que permite usar palabras muy similares al lenguaje humano para escribir una serie de instrucciones a ejecutar por una mquina, pero que necesita ser procesado por un compilador para traducir, del cdigo legible por humanos, a un listado de instrucciones en lenguaje mquina.7 Debido a que hay aspectos del lenguaje C difciles de entender por principiantes, y a la complejidad propia de su estructura, la plataforma de ARDUINO ha desarrollado una serie de libreras con funciones especficas muy comunes, que hacen que la programacin de la tarjeta sea muy sencilla (aunque en realidad estas libreras estn escritas en lenguaje C++, un subconjunto del lenguaje C original). A pesar de ello, la mayor parte del cdigo que puede escribirse para esta plataforma, incluyendo la sintaxis, la estructura, los operadores, sentencias de control y funciones, siguen siendo fundamentalmente lenguaje C. El cdigo fuente o de programacin, escrito en esta plataforma recibe el nombre de sketch, y consiste en un listado de instrucciones propias de ARDUINO, escrito de tal

manera que respete la estructura establecida por el lenguaje de programacin. Un proceso posterior que toma el cdigo fuente y lo convierte en uno que pueda funcionar en la tarjeta se conoce como compilacin. El IDE permite crear, abrir y modificar sketches, los cuales definen las acciones a realizar por la tarjeta, para ello se utiliza el rea dentro del IDE conocida como editor de sketch. Despus de escribir un sketch, es necesario compilarlo para verificar que no existan errores de sintaxis y el cdigo se traduzca a lenguaje mquina; en la imagen X.3.3.1 se muestra el IDE de ARDUINO con un sketch cargado en el editor8. Todas estas funciones podemos realizarlas mediante la barra de mens o mediante los botones indicados en la seccin X.3.2. de este trabajo.

Imagen 2.2.3.1. Ejemplo de un sketch en el IDE de ARDUINO

X.3.4. ESCRIBIR UN CDIGO Y CARGARLO A LA TARJETA Antes de escribir un cdigo en el IDE de ARDUINO, lo ms recomendable es tener previamente definidas las tareas que queremos que la tarjeta realice y una herramienta muy til para ello es el diagrama de flujo, mediante el cual podemos representar de manera grfica el comportamiento de un sistema. En este caso, se pretende controlar el funcionamiento de los actuadores involucrados en un sistema electromecnico a partir de la recepcin y anlisis de datos provenientes de una PC. Una vez definida la serie de tareas a realizar es necesario realizar el siguiente procedimiento:

I.

I.

II.

ABRIR UN NUEVO SKETCH. Antes de comenzar a escribir el cdigo, necesitamos que el rea de edicin en el IDE est libre. Para ello presionamos el botn Nuevo e inmediatamente aparece una nueva ventana limpia de cdigo donde podremos comenzar a escribir. ESCRIBIR EL CDIGO: como ya se mencion en secciones anteriores, un cdigo escrito en este IDE es conocido como sketch y consiste en la serie de instrucciones que describen las tareas a realizar por la tarjeta. El sketch debe estar escrito respetando la estructura del lenguaje C (y algunas reglas que no corresponden completamente a programacin en C pero que fueron implementadas por los desarrolladores de esta plataforma para facilitar la programacin a los principiantes), y para hacer ms sencilla e intuitiva esta parte del proceso, ARDUINO cuenta con una serie de libreras para realizar acciones especficas y muy comunes, que de otra manera seran difciles de escribir para muchas personas. Con ellas podemos controlar hardware como: pantallas LCD, motores de corriente directa, servomotores, motores a pasos, lectura y escritura de memorias EEPROM y memorias SD, entre otros; adems de que existen libreras que permiten la comunicacin de la tarjeta con otros dispositivos, ya sea mediante comunicacin serial, software serial, WIFI, bus SPI (Serial Peripherial Interface) u otras9. Las instrucciones estn escritas con palabras muy similares al lenguaje humano y la mayora hace referencia a la accin que realiza para poder recordarla con mayor facilidad y hacer ms amigable el proceso de escritura de cdigos. Es recomendable tambin colocar comentarios a lo largo del cdigo, con el fin de describir las funciones que se van ejecutando y poder realizar correcciones o mejoras futuras del programa; para hacerlo, basta con colocar dos diagonales inversas (\\) antes del comentario, con ello las palabras siguientes a estos caracteres no son tomadas en cuenta en el proceso de compilacin. VERIFICAR EL SKETCH. Una vez escrito el cdigo, es necesario revisar que la sintaxis est correcta y que no existan errores en la escritura de las instrucciones. Este procedimiento se conoce como compilacin y es recomendable verificar el cdigo peridicamente, no solo al terminar de escribirlo. Si lo hacemos de esta manera, tenemos la posibilidad de identificar errores oportunamente y corregirlos, en vez de dejarlos todos para el final. Esta funcin podemos realizarla presionando el botn Verificar (ver imagen X.3.2.2). Mediante la compilacin se realiza tambin la traduccin de las instrucciones escritas por el usuario a un formato binario, que pueda ser interpretado por el microcontrolador de la tarjeta. Si la compilacin se realiza exitosamente,

III.

IV.

obtenemos el mensaje compilacin terminada acompaado del tamao binario del sketch. GUARDAR EL SKETCH. Ya que verificamos que el cdigo escrito est libre de errores y listo para cargarlo en la tarjeta, es necesario guardarlo. Esto podernos hacerlo presionando el botn Guardar dentro del IDE y es recomendable hacerlo peridicamente para respaldar el cdigo y evitar la prdida de informacin en caso de algn accidente. CARGAR EL SKETCH EN LA TARJETA. Con el cdigo previamente compilado y respaldado, lo siguiente es cargarlo en la tarjeta para corroborar su funcionamiento. Para ello debemos conectar la tarjeta a un puerto USB de la PC, mediante el cable de datos, y una vez hecho esto se presiona el botn cargar en la seccin de botones. Si la carga se realiz con xito, en la ventana del IDE aparecer un mensaje confirmando que la carga se ha completado y el sketch comenzar a funcionar momentneamente mientras la tarjeta est conectada y recibiendo alimentacin del puerto de la PC.

Con el cdigo cargado en el microcontrolador de la tarjeta, lo siguiente es probar que funcione correctamente en el sistema a controlar y para ello debemos conectarla a los actuadores involucrados (que pueden ser motores a pasos, servomotores, pantallas LCD, sensores e incluso la propia PC). Si es necesario modificar el cdigo, lo nico que tiene que hacerse es abrir el sketch correspondiente y corregirlo, verificarlo y cargarlo de nuevo en la tarjeta cuantas veces sea necesario. El microcontrolador de la tarjeta (ATMega328) est diseado para soportar el borrado y escritura de programas por aproximadamente 10 000 ciclos.10

BIBLIOGRAFA: 1) W. Valvano, Jonathan. Introduccin a los sistemas de Microcomputadores embebidos. Ed. Thomson. Ao 2003, 480 pginas. 2) Asdrbal Lpez Chau. Microcontroladores AVR, configuracin total de perifricos. Universidad Autnoma de Estado de Mxico. 1 Edicin, Mxico 2006. 113 pginas. 3) Brian Evans. Beginning Arduino Programming. Ed. Apress. Ao 2011. 272 pginas. 4) Dale Wheat. Arduino Internals. Ed. Apress. Ao 2011. 392 paginas. 5) Margolis, Michael. Arduino Cookbook. O Reilly Media, Inc. Ao 2011, 662 pginas. 6) Cruz Teruel, Francisco. Control numrico y programacin II. Curso prctico. Ed. Alfaomega, 2 edicin. Ao 2011, 424 pginas. NOTAS: 1 Extracto de bibliografa nmero 2. Para mayor informacin sobre microcontroladores, consultar bibliografa. 2 Extracto de bibliografa nmero 1. Para mayor informacin sobre sistemas embebidos consultar bibliografa. 3 Imagen extrada del libro introduccin a los sistemas de Microcomputadores embebidos de Jonathan W. Valvano, pgina 6. 4 Imgenes extradas de las pginas de ARDUINO y MICROCHIP, respectivamente: http://www.arduino.cc/ y http://www.microchip.com/. 5 Extraido de la pgina oficial de ARDUINO: http://www.arduino.cc/ 6 Para conocer en su totalidad las caractersticas tcnicas de esta tarjeta, consultar la pgina: http://arduino.cc/en/Main/ArduinoBoardUno 7 Para una mejor referencia sobre lenguaje C y su estructura, consulte el libro: Lenguaje C. Gua prctica para usuarios, del autor Javier Moldes Teo, editorial Anaya multimedia-Anaya interactiva, ao 2005. 8 El sketch fue tomado de los ejemplos que ARDUINO pone a disposicin del usuario y lleva por ttulo AnalogReadSerial. Para abrirlo se selecciona la pestaa Archivo de la barra de mens y posteriormente ejemplos; ah se encuentran una gran cantidad de cdigos que podemos modificar y utilizar como base para cualquier proyecto. 9 Para mayor informacin sobre las libreras existentes y el listado de instrucciones que contiene cada una, consultar la siguiente liga a la pgina oficial de ARDUINO en su seccin Libraries: http://arduino.cc/en/Reference/Libraries.

10

Ver hoja de datos del microcontrolador ATMega328 proporcionada por el fabricante en la siguiente liga: http://www.atmel.com/Images/doc8161.pdf 11 Imagen extrada de la pgina: http://content.heidenhain.de/presentation/elearning/ES/index.html

Interfaz Grfica de Usuario La Interfaz Grfica de Usuario (GUI por sus siglas en ingls), es la representacin en pantalla de un sistema informtico que se ofrece al usuario para que este pueda interactuar con l. Theo Mandel define interfaz grfica de usuario como: la representacin grfica de programas, datos y objetos en la pantalla del ordenador y la interaccin con ellos. Una GUI actual se compone de los siguientes elementos: - Objetos: entre ellos; pantallas, botones de comando, cajas de texto, mens desplegables, botones de opciones, casillas de verificacin, barras de desplazamiento, etiquetas, etc. - Texto: donde habra que considerar aspectos como la fuente, el color, el tamao, el estilo, el fondo. - Estructura de la visualizacin: tener en cuenta alineacin, interlineado, formatos. - Informacin instructiva: como ayuda, mensajes de ayuda, ayuda contextual o ayuda en lnea. Java Java es un lenguaje de programacin de propsitos generales. Es posible usar Java para desarrollar el mismo tipo de aplicaciones que se realizan con otros lenguajes como C o C++1. Java no es un cdigo ejecutable, sino un cdigo de bytes. El cdigo de bytes es un conjunto altamente optimizado de instrucciones diseado para que sea ejecutado por el sistema de Java en tiempo de ejecucin. A dicho sistema se le denomina mquina virtual de Java (Java Virtual Machine, JMV), es decir, la mquina virtual de Java es un intrprete de cdigo de bytes. La traduccin de un programa de Java en cdigo byte facilita la ejecucin de un programa en una gran variedad de entornos. La razn es sencilla: slo se necesita implementar la mquina virtual de Java en cada plataforma . Una vez que existe el paquete en tiempo de ejecucin para un sistema dado, cualquier programa Java puede ejecutarse en l. En resumen se puede escribir software en una plataforma y ejecutarla virtualmente en otra. Java es un lenguaje de programacin de propsito general, concurrente, basado en clases, y orientado a objetos, que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible.

Simple Seguro Portable Orientado a objetos Robusto Subprocesos mltiples Arquitectura neutra Interpretado Alto desempeo Distribuido Dinmico

Java tiene un conjunto conciso y cohesivo de funciones que facilitan su aprendizaje y uso. Java proporciona un medio seguro de crear aplicaciones de Internet. Los programas de Java pueden ejecutarse en cualquier entorno para el cual haya un sistema de Java en tiempo de ejecucin. Java encarna la filosofa moderna de programacin orientada a objetos. Java alienta una programacin libre de errores, pues requiere una escritura estricta y realiza comprobaciones en tiempo de ejecucin. Java proporciona un soporte integrado para la programacin de subprocesos mltiples. Java no est unido a una maquina o una arquitectura especifica de sistema operativo Java soporta un cdigo de plataforma cruzada mediante el uso de un cdigo de bytes de Java El cdigo byte de Java est altamente optimizado para que se ejecute rpidamente Java fue diseado tomando en consideracin el entorno distribuido de Internet Los programas de Java incluyen importantes cantidades de informacin que son del tipo de tiempo de ejecucin. Esta informacin se usa para verificar y resolver el acceso a objetos
Tabla. Terminologa de Java

Programacin orientada a objetos En el corazn de Java se encuentra la programacin orientada a objetos OOP (Object Oriented Programming). La programacin orientada a objetos retom las mejores ideas de la programacin estructurada2 y las combin con varios conceptos nuevos. El resultado fue una nueva manera de organizar un programa. En el sentido ms general, un programa puede organizarse mediante una de las siguientes dos maneras: Alrededor de su cdigo (lo que est sucediendo) Alrededor de sus datos (lo que se est efectuando)

Los programas orientados a objetos funcionan y estn organizados alrededor de los datos y el principio clave es que los datos controlan el acceso al cdigo. En un lenguaje orientado a objetos, el programador define los datos y las rutinas, las cuales permiten actuar sobre los datos. Para comprender la programacin orientada a objetos se deben de conocer los siguientes trminos:

Objeto Los objetos son la clave para entender la tecnologa orientada a objetos. Los objetos software consisten de estado y comportamiento. Un objeto almacena su estado en campos (variables en algunos lenguajes de programacin) y muestra su comportamiento a travs de mtodos (funciones en algunos lenguajes de programacin). Los mtodos operan sobre el estado interno del objeto y sirven como el mecanismo principal para la comunicacin entre objetos. La ocultacin del estado interno y requerir que toda interaccin se realice a travs de los mtodos de un objeto se conoce como encapsulacin de datos un principio fundamental de la programacin orientada a objetos. Al agrupar cdigo en objetos software individuales se obtienen ciertos beneficios: Modularidad: El cdigo fuente de un objeto se puede escribir y mantener independientemente del cdigo fuente de otros objetos. Una vez creado, un objeto se puede pasar fcilmente de un lado al otro del sistema. Ocultacin de informacin: Al interactuar solamente con los mtodos de un objeto, los detalles de su implementacin interna permanecen ocultos al mundo exterior. Reutilizacin de cdigo: Si un objeto ya existe (quizs escrito por otro desarrollador de software), puede utilizarse ese objeto en otro programa. Esto permite que un especialista implemente/compruebe/depure objetos especficos para una tarea, los que luego podr implementar en su propio cdigo. Conectividad y facilidad de depuracin: Si un objeto en concreto resulta ser problemtico, simplemente se podr eliminar de la aplicacin y conectarse un objeto distinto para reemplazarlo. Clase Las clases definen la estructura de sus objetos. Es decir que todos los objetos de una misma clase podrn almacenar el mismo tipo de informacin y tendrn la misma capacidad para manipularla. Herencia En el lenguaje de programacin Java se permite que cada clase tenga una superclase directa y que cada superclase tenga el potencial para una cantidad ilimitada de subclases. La programacin orientada a objetos permite que las clases hereden estados (variables) y comportamientos (mtodos) de uso comn de otras clases.

Interfaz Los objetos definen su interaccin con el mundo exterior a travs de los mtodos que exponen. Los mtodos forman la interfaz del objeto con el mundo exterior. En su forma ms comn, una interfaz es un grupo de mtodos relacionados con cuerpos vacos. Implementar una interfaz, permite a una clase ser ms formal acerca del comportamiento que promete proporcionar. Las interfaces forman un contrato entre la clase y el mundo exterior, y este contrato se hace cumplir en el momento de la compilacin. Si su clase afirma implementar una interfaz, todos los mtodos definidos por esa interfaz deben aparecer en su cdigo fuente para que se compile con xito. Paquete Un paquete es un espacio de nombre que organiza un conjunto de clases e interfaces relacionadas. La plataforma Java proporciona una enorme biblioteca de clases (un conjunto de paquetes) adecuado para usar en sus propias aplicaciones. A esta biblioteca se la conoce como la Interfaz de Programacin de Aplicaciones (Application Programming Interface en ingls) o por su abreviatura API. Sus paquetes representan las tareas ms comunes asociadas a la programacin en general. Polimorfismo Los objetos nunca dejan de reconocerse como miembros de una determinada clase. Por tal motivo, independientemente del tipo de datos de la variable que los est conteniendo, estos ante la invocacin de cualquiera de sus mtodos siempre reaccionaran como su propia clase lo defina. Variables Un objeto almacena su estado en campos (variables) y el lenguaje de programacin Java define los siguientes tipos de variables: Variables de instancia (Campos no estticos): Tcnicamente, los objetos almacenan sus estados individuales en campos no estticos, es decir, campos declarados sin la palabra clave static. Los campos no estticos tambin son conocidos como variables de instancia porque sus valores son nicos para cada instancia de una. Variables de clase (campos estticos): Una variable de clase es cualquier campo declarado con el modificador static; esto le indica al compilador que existe solamente una copia de esta variable, independientemente de cuntas veces se haya instanciado esa clase. Adems, se podra aadir la palabra clave final para indicar que la cantidad de la variable nunca cambiar.

Variables locales: De un modo similar a como un objeto almacena su estado en campos, un mtodo a menudo almacenar su estado en variables locales.

Tipo de dato byte short int long

Representacin Numrico Entero con signo Numrico Entero con signo Numrico Entero con signo Numrico Entero con signo Numrico en Coma flotante de precisin simple Norma IEEE 754 Numrico en Coma flotante de precisin doble Norma IEEE 754 Carcter Unicode Dato lgico -

Tamao (Bytes) 1 2 4 8

Rango de Valores -128 a 127 -32.768 a 32.767 -2147483648 a 2147483647 -9223372036854775808 a 9223372036854775807 3.4x10
-38

Valor por defecto 0 0 0 0

Clase Asociada Byte Short Integer Long

float

a 3.4x10

38

0.0

Float

double char boolean void

8 2 -

1.8x10

-308

a 1.8x10

308

0.0 \u0000 false -

Double Character Boolean Void

\u0000 a \uFFFF true false -

Tabla. Tipos de datos primitivos

Swing Dentro de las libreras de Java se encuentra un paquete llamado Swing que pertenece a la JFC (Java Foundation Classes). Swing es una librera grfica de Java contenida en el paquete javax.swing que incluye widgets para interfaz grfica de usuario, tales como cajas de texto, botones, desplegables y tablas; que fue creada a partir de java.awt la cual era tambin una librera grfica La ventaja de Swing sobre AWT es que permite una interfaz adaptada a cada sistema operativo sin cambio de cdigo, al igual que un fcil manejo. Con la excepcin de los contenedores de alto nivel, todos los componentes Swing cuyos nombres comienzan con "J" descienden de la clase JComponent. Componentes de texto Los componentes de texto de Swing muestran texto y, opcionalmente, permiten al usuario editar el texto. Swing proporciona seis componentes de texto, junto con clases de apoyo e interfaces que cumplen aun los requisitos de texto ms complejos. A pesar de sus diferentes usos y capacidades, todos los componentes de texto de Swing heredan de la misma superclase, JTextComponent, que proporciona una base altamente configurable y de gran alcance para la manipulacin de texto.

Figura. Herencia de JTextComponent

reas de texto plano (Plain Text Areas) JTextArea pueden mostrar varias lneas de texto editable. Aunque un rea de texto puede mostrar texto en cualquier fuente, todo el texto est en la misma fuente. Las reas de texto son utilizadas para permitir que el usuario introduzca texto sin formato de cualquier longitud o para mostrar informacin de ayuda sin formato. Swing Class JTextArea reas de texto con estilo Un componente de texto con estilo puede mostrar texto editable usando ms de una fuente. Algunos componentes de texto con estilo permiten incrustar imgenes u otros componentes. Los componentes de texto con estilo son componentes de gran alcance y de mltiples facetas, adecuados para necesidades de gama alta, y ofrecen ms posibilidades de personalizacin que los componentes de texto plano. Swing Class JTextPane Botones Existen 7 botones disponibles en las libreras de Swing, los cuales son creados y etiquetados con una variable tipo String. El manejo de eventos depende del tipo de botn que se est usando. En general, se implementa un ActionListener, el cual notifica cada vez que el usuario hace click en el botn. Para Check Boxes normalmente se usa un ItemListener, el cual notifica si el Check Box esta seleccionado o no. Una caracterstica de Swing es la capacidad de asociar imgenes con botones. Swing introdujo una clase de utilidad llamada ImageIcon, que permite especificar fcilmente un archivo de imagen (JPEG, PNG o GIF). Muchos controles permiten la inclusin de iconos. Cuando un botn esta desactivado, automticamente se genera una apariencia que representa dicha accin. Sin embargo puede ser que una imagen sustituya a la imagen inicial.

Botn comn Este es un botn comn el cual usa un ActionListener para el manejo de sus eventos. Pueden ser utilizados para realizar cualquier operacin. Swing Class JButton Radio Button Son grupos de botones en los que, por convencin, solo un botn a la vez puede ser seleccionado. Pueden ser utilizados para la seleccin de una opcin de entre varias. Swing Class JRadioButton y ButtonGroup Combo Box Un Combo Box permite al usuario elegir una de varias opciones, puede tener dos formas muy diferentes. La forma predeterminada es el Combo Box que no se puede editar, ya que cuenta con un botn y una lista desplegable de valores. La segunda forma, llamada Combo Box editable, cuenta con un campo de texto con un pequeo botn colindante con ella. El usuario puede escribir un valor en el campo de texto o hacer click en el botn para mostrar una lista desplegable.

Figura. Combo Box

Swing Class JComoBox Paneles Un panel tiene el propsito general de servir como contenedor para componentes ligeros, ya sean reas de Texto, Botones, etc. De forma predeterminada, los paneles no agregan colores excepto su propio fondo, sin embargo, el usuario puede agregar fcilmente diferentes tipos de bordes y personalizar el fondo. Swing Class JPanel Selector de Archivos Los Selectores de archivos proporcionan una interfaz grfica de usuario para navegar por el sistema de archivos, y luego elegir un archivo o directorio desde una lista, o bien, introducir su nombre. Para mostrar un selector de archivos, por lo general utiliza la API JFileChooser para mostrar un cuadro de dilogo modal que contiene el selector de

archivos. Otra manera de presentar un selector de archivos es agregar una instancia de JFileChooser a un contenedor. Swing Class JFileChooser Listas Una lista presenta al usuario un grupo de artculos. Est representada en una o ms columnas y filas para elegir. Las listas pueden tener muchos elementos, por lo que a menudo son puestas en ScroollPanes (barras desplazadoras). Este tipo de componentes implementan modelos para su organizacin, de los cuales son tres: DefaultListModel: Todo es ms o menos administrado para el usuario. AbstractListModel: El usuario maneja la informacin e invoca los mtodos heredados por la interfaz de ListModel. ListModel: El usuario se hace cargo de todo.

El uso de un modelo facilita el modo de seleccin de los elementos que se encuentren en la lista, al igual que el borrado de los mismos. Swing Class JList Comunicacin Serial en Java Para poder conectar la GUI de Java con la tarjeta de adquisicin de datos, es necesario que dentro del programa se encuentre la librera RXTX, la cual es una biblioteca semejante a la Java Communication API extensin. Esta biblioteca posee los Jar3 (Java ARchives) necesarios para poder establecer comunicacin va serial con la tarjeta. La instalacin depender del sistema operativo que el usuario utilice, en la pgina http://rxtx.qbang.org/wiki/index.php/Main_Page se muestra la forma de instalacin para cada uno de los diferentes sistemas operativos. Eclipse Para la programacin de los widgets (componentes de una GUI) y el cdigo de control de la interfaz grfica, existe un Entorno de Desarrollo Integrado (IDE por sus siglas en ingls) llamado Eclipse, el cual es un programa informtico compuesto por un conjunto de herramientas de programacin de cdigo abierto multiplataforma para desarrollar modelos de Software. Incluye las herramientas de desarrollo de Java , ofreciendo un IDE con un compilador de Java interno y un modelo completo de los archivos fuente de Java. Esto permite tcnicas avanzadas de refactorizacin y anlisis de cdigo. Mediante diversos plugins, Eclipse provee al programador con frameworks muy ricos para el desarrollo de aplicaciones grficas, definicin y manipulacin de modelos de software, aplicaciones web, etc.

Mediante los diversos plugins con los que cuenta Eclipse se encuentra uno llamado WindowBuilder, el cual es una herramienta para el diseo de una GUI en Java bidireccional, poderosa y fcil de usar; la cual hace ms fcil crear aplicaciones grficas sin gastar mucho tiempo en la escritura de cdigo para mostrar formas simples. Con WindowBuilder se puede crear complicadas interfaces grficas en minutos. Utilizando el diseador se puede agregar controles mediante la accin de arrastrar y soltar, agregar eventos a los controles, cambiar varias propiedades de los controles utilizando un editor de propiedades, internacionalizar su aplicacin y el cdigo Java se generar automticamente, esto permite ser ms productivos en el desarrollo de la interfaz de la aplicacin y ayuda a concentrarse en la lgica del problema. Formatos para el procesamiento de PCBs Existen dos formatos de archivos importantes que se requieren para el procesamiento de placas de circuito impreso: Excellon4 (Archivo NC Drill) Gerber5

Varios programas de Diseo Asistido por Computadora (CAD por sus siglas en ingls) son capaces de producir estos tipos de archivos. Estos paquetes de CAD tienen bibliotecas predefinidas que son fciles de expandir y tienen las opciones Gerber y NC Drill como parte de las opciones estndar. Excellon Excellon es un fabricante de sistemas de Control Numrico por Computadora (CNC por sus siglas en ingls) para los taladros y fresadoras. Esta compaa ha estado en el negocio de control de CNC desde hace muchos aos. La empresa Excellon puede ser descrita como uno de los pioneros en el taladrado y fresado de placas de circuito impreso. El formato Excellon se rige por la norma ANSI/IPC-NC-349. A grandes rasgos se trata de un archivo con un listado de coordenadas (en un plano X, Y) e instrucciones simples que permiten interpretar el circuito impreso a fabricar independientemente del sistema de diseo utilizado. Los ficheros NC Drill contienen tres secciones: Cabecera Lista de herramientas utilizadas Datos de coordenadas

EJEMPLO
1. M48 2. T01 0.028in 3. T02 0.035in 4. T03 0.042in 5. T04 0.052in 6. T05 0.125in 7. G90 8. M72 9. % 10. T01 11. X344Y171 12. X884Y851 13. X939Y916 14. X1704Y1296 15. X1914Y1526 16. . 17. . 18. . 19. M30

Inicio Cabecera Herramienta 1 con dimetro

Modo Coordenadas absolutas Modo pulgadas Inicio datos Poner herramienta 1 coordenadas x e y

Fin de programa.

Los sistemas de coordenadas pueden presentarse en sistema imperial o mtrico, absoluto o incremental, y se fijan con omisin de ceros a la izquierda o derecha. Coordenadas en pulgadas con 0.0001-in de resolucin se expresan con 6 dgitos (00.0000). Coordenadas en milmetros con de 10 micras de resolucin se expresan con 5 dgitos (000.00). La especificacin completa la podemos encontrar en: http://www.excellon.com/manuals/program.htm

NOTAS: 1 Para mayor informacin acerca de los lenguajes de programacin C y C++ consultar el siguiente libro: Deitel, Harvey M. (2004). Cmo programar en C/C++ y Java. Cuarta edicin. Mxico. Pearson Educacin. 2 Para mayor informacin acerca de programacin estructurada consultar el siguiente libro: Francisco A. Martnez Gil. (2003). Introduccin a la programacin estructurada en C. Universidad de Valencia. Maite Simon. 3 Los ficheros Jar (Java ARchives) permiten recopilar en un slo fichero varios ficheros diferentes, almacenndolos en un formato comprimido para que ocupen menos espacio. 4 Para mayor informacin acerca de la compaa Excellon y su formato consultar el siguiente link: http://www.excellon.com/. 5 Para mayor informacin acerca del formato Gerber consultar la norma RS274X. BIBLIOGRAFA: Libros Theo Mandel. (1997). The Elements of User Interface Design. United States of America. John Wiley & Sons, Inc. Ian Sommerville. (2005). Ingeniera del Software. Sptima edicin. United Kingdom. Pearson. Ing. Pablo Augusto Sznajdleder. (2013). Java a fondo: estudio del lenguaje y desarrollo de aplicaciones (2 edicin). Buenos Aires: Alfaomega Grupo Editor. Elliotte Rusty Harold. (1999). Java I/O (fist edition). OReilly Fco. Javier Ceballos Sierra. (2006). Java 2: Interfaces grficas y aplicaciones para Internet (2 edicin). Mxico: Alfaomega Grupo Editor. James Gosling, Matthew Robinson and Pavel Vorobiev. (2005). Java Swing (2 edicin).New York. EUA: Manning Publications Co. Internet Tutorial de Java. Consultada el 10 de Julio del 2013, de: http://docs.oracle.com/javase/tutorial/ Google Developers. Java Developer Tools WindowsBuilder. Consultada el 11 de Mayo del 2013, de: https://developers.google.com/java-devtools/wbpro/userinterface/ Eclipse. Downloads Consultada el 11 de Mayo del 2013, de: http://www.eclipse.org/ Java. Consultada el 11 de Mayo del 2013, de: http://www.java.com/es/

Librera RXTX. Consultada el 11 de http://rxtx.qbang.org/wiki/index.php/Main_Page

Mayo

del

2013

de:

You might also like