Full text
POSICIONADOR AUTOMÁTICO DE VIALES Por GEORGI KIRILOV TSIROV Grado en INGENIERÍA DE COMPUTADORES Facultad de INFORMÁTICA Dirigido por JUAN CARLOS FABERO JIMÉNEZ FULL AUTOMATIC VIALS UNSCRAMBLER Madrid, 2021–2022
Posicionador Automático de Viales Memoria que se presenta para el Trabajo de Fin de Grado GEORGI KIRILOV TSIROV Dirigido por JUAN CARLOS FABERO JIMÉNEZ Departamento de Arquitectura de Computadores y Automática Facultad de Informática Universidad Complutense de Madrid Madrid, 2022
Índice general 1. Resumen I 2. Abstract 1 3. Introducción 2 3.1. Idea del Posicionador Automático de Viales . . . . . . . . . . . . . . . . 2 3.2. Objetivodelproyecto............................. 3 3.3. Especificaciones del prototipo . . . . . . . . . . . . . . . . . . . . . . . . 4 3.4. Plandetrabajo................................ 5 3.5. Documentación................................ 8 4. Estructura General y Piezas Impresión 3d 11 4.1. EstructuraGeneral.............................. 11 4.2. Modificaciones y Mejoras . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5. Hardware 15 6. Software 20 6.1. Estructura del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2. Funciones principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 7. Sistema de Agarre 25 7.1. Sistema de Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 7.2. Modificaciones y Mejoras . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.3. DiseñoPropio................................. 27 8. Pruebas, Mejoras y Conclusiones 31 9. Programas y Librerías usados 34 9. Bibliografía y enlaces de referencia 37 ii
Capítulo 1 Resumen El objetivo es construir un posicionador automático de viales. Para ello se necesita un sistema capaz de agarrar y mover los viales en los tres ejes de coordenadas (X, Y, Z). En este proyecto se creará un sistema de agarre que pueda ejecutar movimientos tridimensionales para desplazar los viales. El sistema debe tener unas características concretas para poder integrarlo en un magnetómetro y, de esa forma, automatizar el proceso de medida. Debe ser fiable, de gran precisión y sensibilidad a la hora de coger los objetos. A su vez, la estructura debería quedarse lo más alejada posible de la parte central, ser independiente y contar con un control sencillo de movimientos. El sistema contará con autonomía de auto-calibración y métodos de seguridad en caso de fallo. Además tendrá un fácil acoplamiento tanto en la estructura física del aparato existente como en su programa de control. Palabras Clave Arduino, A4988, servomotor, sg90, paso a paso, nema17, OpenScad, impresión-3d, impresora-3d, PLA i
Capítulo 2 Abstract The objective is to build an fully automatic vials unscrambler. For this, a system capable of grasping and moving the vials in the three coordinate axes (X, Y, Z) is needed. In this project, a gripping system will be created that can execute three-dimensional movements to move the vials. The system must have specific characteristics to be able to integrate it into a magnetometer and, in this way, automate the measurement process. It must be reliable, highly accurate and sensitive when picking up objects. The structure should stay as far away from the central part as possible, be independent and have easy movement control. The system will have auto-calibration autonomy and safety methods in case of failure. It will also have an easy coupling both in the physical structure of the existing device and in its control program. Keywords Arduino, A4988, servomotor, sg90, stepper (step by step), nema17, OpenScad, 3d printing, 3d print, PLA 1
Capítulo 3 Introducción 3.1. Idea del Posicionador Automático de Viales La creación de un prototipo el cual sea autónomo para desplazar viales de vidrio de 3mm de diámetro, surge de la necesidad de automatizar una tarea monótona y repetitiva en la cual se necesita a una persona que introducir y extraer el vial. De esa manera el usuario se puede dedicar a realizar otras tareas mientras se ejecuta el proceso de medida. Esta se contempla con más posibilidad y ganas de realizar después de pasarnos varias horas y durante varios días probando y desarrollando los equipos en la empresa. Cada vez que nos tocaba probar, hacer el rodaje de los equipos y comprobar su funcionamiento, esta idea se fue haciendo cada vez más una necesidad. La idea cada vez se hacía más probable y posible de realizar e implementar gracias a las herramientas y dispositivos que tenemos a nuestra disposición en los últimos años, debido a la publicación de información, proyectos y software libre en los diferentes sitios de internet. Para realizar el proyecto cuento con experiencia en el desarrollo de prototipos con microcontroladores, uso de motores, sensores, actuadores y placas de desarrollo (Arduino, Raspberry Pi, PICs, etc...). También tengo experiencia en el diseño, impresión y desarrollo de piezas y prototipos con la impresión 3d (por el método de deposición fundida o SLA), tanto en el ámbito académico como por el autodidacta. El proyecto se ha desarrollado tanto en el ámbito personal como en la empresa “NanoTech Solutions” ubicada en Villacastín (Segovia). Dicha empresa se dedica a la fabricación de instrumentos de medida orientados al magnetismo y a su vez cuenta en la actualidad con un catalogo de productos desarrollados y en evolución desde hace 3 años. Agradezco la ayuda que se me proporcionó de todo el equipo de la empresa, tanto en ideas 2
FULL AUTOMATIC VIALS UNSCRAMBLER UCM y sugerencias para la mejora del equipo, como en los recursos con los que contaban. 3.2. Objetivo del proyecto El objetivo de este proyecto es crear un sistema con un nivel de autonomía que pueda moverse en los tres ejes de coordenadas (X, Y, Z) y pueda posicionar de manera automática los viales (Figura 3.1). Para cumplir con el nivel de autonomía propuesto una vez ha intervenido el ser humano para iniciarlo, este sea capaz de hacer acciones por sí mismo según las órdenes que le lleguen, pudiendo estar supervisado, pero sin interferir en el funcionamiento a no ser que sea estrictamente necesario por un fallo o error. Figura 3.1: Sistema de 3 ejes El sistema debe tener unas características concretas para poder acoplarse al instrumento de medida y de esta forma automatizar el proceso. Debe ser fiable, preciso y sensible a la hora del manejo de los objetos. La estructura debe quedarse lo más alejada posible de la parte central, que sea independiente y tener un control sencillo de movimientos. Para que el sistema sea fiable y seguro debe tener la autonomía de auto-calibración y métodos de seguridad en caso de fallo. En caso de deterioro o fallo en alguna de las piezas o componentes, nos interesa que sean fáciles de encontrar y reemplazar, con esto también conseguiremos disminuir costes en los recambios. Con la impresión 3d en plástico y la popularidad que tiene en los últimos años podemos conseguir unos materiales más económicos y piezas fácilmente reproducibles. Se ha pensado que una vez se pruebe y se vea que el funcionamiento con un solo vial es correcto, se realizará un soporte en el cual dejar varios viales y, de esta forma, el sistema gane más autonomía y pueda cambiar de vial teniendo varias opciones para escoger. 3
FULL AUTOMATIC VIALS UNSCRAMBLER UCM Figura 3.2: Explicación posiciones sistema real Podemos ver los diferentes puntos en los que el sistema debe moverse y posicionarse principalmente que son (Figura 3.2): Posición de inicio: es el punto desde donde parte al poner en marcha el prototipo, cogiendo las coordenadas [0,0,0] Posición de reposo: es el punto donde se depositará el vial para cogerlo antes de medirlo y para dejarlo una vez terminadas las medidas. Posición de medida: es el punto donde se introducirá el vial para hacer la operación de medida. 3.3. Especificaciones del prototipo Lo principal que tenía que cumplir el prototipo era que los componentes y las piezas deberían ser de fácil acceso y con un coste lo más bajo posible. El hardware y el software debe ser libre para facilitar el uso de estos en cualquier entorno, ya sea particular o profesional. El sistema debe tener una precisión de unas décimas de milímetro en los movimientos lineales de los ejes (+-0,1 mm), ya que el agujero donde se introduce el vial es de 3.7mm de diámetro y el vial es de 3mm. La precisión del agarre o herramienta que se utilizará tanto para coger y soltar, como para subir y bajar el vial, debe ser lo más preciso posible. Tiene que tener una gran sensibilidad en el cierre y apertura de forma que no rompa los viales porque al ser de vidrio son muy frágiles (grosor de pared de 0,27mm). 4
Capítulo 4 Estructura General y Piezas Impresión 3d Figura 4.1: Estructura básica Aquí podemos ver una imagen (Figura 4.1) de la estructura ya montada y ensamblada y con algunos de los elementos extra que nos han echo falta. 4.1. Estructura General Para el montaje de la estructura básica que tendría el prototipo, lo principal era obtener los materiales y las piezas impresas con la impresora 3d. La mayoría de los materiales había que comprarlos en una tienda o ferretería, como se ha comentado anteriormente y no son muy difíciles de obtener. Por otro lado, teniendo la lista de materiales del enlace o página web del creador del diseño de referencia, se nos simplifica la tarea. Lo único que tenemos que saber, es la longitud de las varillas lisas de M8, las varillas de husillo y 11
FULL AUTOMATIC VIALS UNSCRAMBLER UCM la tabla (contrachapado de 5mm), que usaríamos de base para dar más estabilidad a la estructura. El siguiente paso importante para el montaje de esta estructura son las piezas de plástico impresas con la impresora 3d. Tenemos que tener cuidado y tener en cuenta que en la página web del diseño hay varias versiones de las piezas para diferente diámetro de varilla o rodamientos. Con la información que tenía y según mi criterio empecé a imprimir las piezas en ABS, empezando por las más pequeñas y viendo como sería el proceso y el resultado final de las piezas. Parecía que las piezas salían con buena calidad y sin deformarse, pero en cuanto se empezó con las piezas más grandes el proceso de impresión y el acabado de estas fue a peor. Este fallo en la impresión podría venir dado por la complejidad y temperatura que necesita este material o por un fallo en uno de los dispositivos de la impresora (base caliente). Por tanto se cambió al PLA y de esta manera evitamos los problemas en el proceso de impresión, ya que el acabado correcto de las piezas influye en el funcionamiento y desplazamiento de las piezas móviles. En este proceso se tardó aproximadamente 2 meses hasta que se obtuvieron todas las piezas con el acabado correcto. Se tardó más de lo normal porque tuve algunos problemas con los materiales y luego algún fallo de la impresora por el deterioro ,uso y desgaste de algunas piezas de la impresora. Una vez se solucionaron los problemas, en 2 o 3 semanas las teníamos todas. Figura 4.2: Pieza eje Z Figura 4.3: Pieza eje X Figura 4.4: Pieza eje Y motor Figura 4.5: Pieza eje Y rodamiento 12
FULL AUTOMATIC VIALS UNSCRAMBLER UCM Estas son algunas de las piezas más relevantes y más grandes en dimensión del diseño original sin modificación (Ver desde Figura 4.2 hasta Figura 4.5). Para el montaje de la estructura en la página de descarga de los archivos podemos encontrar vídeos de como montar las piezas de plástico, con las demás piezas y tornillos de sujeción. A la hora del ensamblaje en algunas de las piezas tocó limar y lijar un poco para que encajasen y quedaran bien todos los elementos. Mi consejo es ir con paciencia y sin prisa, porque si encajan bien las piezas luego el desplazamiento de los rodamientos y varillas es mucho mejor. 4.2. Modificaciones y Mejoras Se tuvieron que hacer varias modificaciones y mejoras. Algunas para poder terminar de montar y ajustar bien la estructura y otras para las necesidades que tuvimos después de hacer varias pruebas. Figura 4.6: Tope varilla eje Z Figura 4.7: Final de carrera modificado Figura 4.8: Eje Z modificaciones En algunas de las piezas, como por ejemplo en la pieza que se ve del ejeZ (Figura 4.2), durante la impresión se descuadraron los agujeros en los que van las varillas lisas. Con lo cual el tornillo para sujetarlas ya no hacía bien presión y estas se movían. Por lo tanto tuvimos que diseñar otra pieza para poner como tope y de esta manera arreglar el defecto (Figura 4.6). Otras de las piezas se tuvieron que modificar o crear nuevas con unas medidas diferentes 13
FULL AUTOMATIC VIALS UNSCRAMBLER UCM para adaptarlas según las funciones y las necesidades del proyecto. Una de las que se tuvieron que modificar fue el carro del ejeZ (Figura 4.9), que es la pieza que se desplaza por las varillas y donde se sujeta la herramienta de agarre. El recorrido que tenga esta pieza nos define los límites de movimiento en altura (recorrido ejeZ). Según las dimensiones de la pieza, tenía una altura de 48mm y con esto teníamos un margen de movimiento en altura de 40mm. El nuevo diseño se hizo con una altura de 28.5mm para que entrase el rodamiento y de esta manera aumentamos el movimiento en altura hasta los 60mm. También diseñamos una pieza para sujetar el final de carrera en una posición concreta (Figura 4.7) para ganar unos milímetros más. Figura 4.9: Carros eje Z Podemos observar el aspecto final del eje Z montado y con las modificaciones aplicadas (Figura 4.8), sin la herramienta de agarre. 14
Capítulo 5 Hardware Para las pruebas con los componentes de hardware con los que teníamos pensado realizar el prototipo, la primera opción era la de usar un microcontrolador PIC16 y un driver de potencia. Como no sabíamos que motores usar (de qué corriente se necesita por bobinado), la idea principal que había era usar unos que tuvieran fuerza/par de forma que pudieran mover los elementos del prototipo. Unos que encajaban con estas características son los nema17 (Figura 5.1) de 1,7A por bobinado, 45 kg/m de fuerza y 200 pasos por vuelta, es decir 1.8º por paso. Estos motores nos permiten una mejor precisión si se usa una reductora o haciendo un mejor control activando y desactivando en un orden cada extremo de los bobinados. Se puede utilizar una reductora desde 1/2 hasta 1/16 o incluso algunos permiten hasta 1/32. Según la reductora que usemos esto nos cambia el número de pasos por vuelta o un menor grado por paso (num Pasos = pasos por vuelta original / Reductora). Como no tenía muchos conocimientos sobre la fuerza o par que tenían que tener los motores, pensé que era mejor unos que tengan más fuerza y tener un consumo algo más elevado, para no encontrarnos con el problema de que los motores no tuvieran suficiente fuerza para mover las estructuras. Figura 5.1: Motor nema 17 Una vez teniendo los motores elegidos y sabiendo su consumo en amperios, ya podemos elegir un driver que soporte esa corriente para poder alimentar al motor, ya que el microcontrolador proporciona una corriente baja en sus pines (alrededor de 0,025A o 25mA). Debido a lo anterior, necesitamos un elemento de potencia entre el microcontrolador y el 15
FULL AUTOMATIC VIALS UNSCRAMBLER UCM motor para que proporcione la corriente necesaria. Un driver que había usado y aguantaba bien esa potencia era el L298N, pero el inconveniente es que ocupa una gran superficie y además tenemos que poner más elementos adicionales para su correcto funcionamiento, su seguridad y para no dañar los motores (Figura 5.2). Realicé un prototipo de placa PCB (6x5,5 cm) con este driver, diodos, condensadores y conectores para facilitar las pruebas. Figura 5.2: Driver L298N Para probar esta combinación de control, potencia y motor, se realizó un programa sencillo con un bucle en #C. Lo que hacía era dar 200 pasos y hacer que el motor diera una vuelta completa. Esto funcionaba sin problemas, pero viendo el diseño y sabiendo que tenemos al menos 4 motores paso a paso, vimos que la placa de control y potencia quedaría con un tamaño grande y a tener en cuenta. Se usó un PIC16F886 montado en una placa de pruebas (protoboart) y luego realizando las conexiones entre placas y fuentes de alimentación. Desde el PIC necesitamos 4 salidas para controlar cada uno de los extremos de los 2 bobinados. Viendo que este driver es más complejo de manejar se comparó con el driver comentado en la introducción. Muchos de los sistemas de control numérico, o que usan motores paso a paso, usan el driver A4988 (Figura 5.3) o DRV8825 (Figura 5.4). Pero además como necesitábamos una corriente de 1,7A por bobina, deberíamos usar el DRV8825, que aguanta hasta 2A con un sistema de refrigeración. Lo importante que tenemos que tener en cuenta de estos drivers es que tienen un sistema de ajuste, el cual debemos ajustar a la corriente que necesita el motor por bobina para no dañarlas. Esta información la obtuve de páginas web y blogs que encontré, uno de los principales que usé para poner en marcha este elemento fue la siguiente blog. Para el ajuste de los drivers podemos decir que lo más difícil es sacar todos los datos y parámetros para la conversión de la corriente a la tensión de referencia que tenemos que ajustar en el driver. Hay veces 16
FULL AUTOMATIC VIALS UNSCRAMBLER UCM que según el fabricante o según el driver algunos parámetros y elementos pueden variar, como las resistencias de sensibilidad que tienen. El valor de esta resistencia fue uno de los parámetros que me costó encontrar. Esta información que hemos sacado del blog y cualquier otra información relacionada con las características del driver, viene detallada en el datasheet del componente. Figura 5.3: Driver A4988 Figura 5.4: Driver DRV8825 Figura 5.5: Placa con PIC y driver DRV8825 Una vez probado y visto el funcionamiento de los drivers a4988 y drv8825, me di cuenta que aunque estábamos probando con el PIC (Figura 5.5), sería mucho más sencillo y más fácil de remplazo y un ahorro de trabajo por mi parte al utilizar cosas más comerciales y especificas para esta parte. Podría utilizar la placa de potencia/escudo o shield RAMPS1.4 (Figura 5.6) u otras versiones más actuales y para la parte de control utilizar el Arduino Mega 2560 (Figura 5.6). De esta forma sabemos que ya todo el conjunto de control, potencia y motores está testado, probado y funciona. Las conexiones y ensamblaje entre 17
FULL AUTOMATIC VIALS UNSCRAMBLER UCM los diferentes componentes del hardware encajan al milímetro (Figura 5.7) sin tener la necesidad de hacer cambios o adaptaciones. Figura 5.6: Arduino Mega 2560 y Ramps 1.5 Figura 5.7: Arduino Mega 2560 y Ramps 1.5 montados Para los elementos de control, seguridad y autocalibración al poner en marcha el prototipo se usan unos simples pulsadores, al igual que los drivers, ramps y arduino vienen preparados con su placa y su conector para conectarlos directamente a la RAMPS. Estos los podemos encontrar buscando “módulo final de carrera” (Figura 5.8) o añadiendo además impresora 3d o CNC en los buscadores de internet. Estos interruptores nos indican cuando el sistema ha llegado a la posición de inicio, que es la misma que las coordenadas [0,0,0], tanto cuando se pone en marcha el prototipo, como cuando se hace la autocalibración. Por otro lado los interruptores sirven como mecanismos de seguridad que detienen los motores en caso de llegar a cualquiera de los extremos si no se han parado. Figura 5.8: Final de carrera Por último una vez teníamos todo montado se realizaron pruebas con la estructura. Al ver que todo se movía correctamente y funcionaba sin problemas juntando la estructura y los elementos de control, nos dimos cuenta que los motores no tenían que ser de esa potencia y consumo (1,7A por bobina), por lo tanto se quiso probar con un motor que disminuía mucho en consumo (a 0,33A), al igual que los que tiene la impresora 3d utilizada para imprimir las piezas. Por lo tanto se cambiaron los motores, y probando no se notó ninguna diferencia significativa. Entonces decidimos quedarnos con los motores de 18
FULL AUTOMATIC VIALS UNSCRAMBLER UCM 0,33A , 2,3kg/cm y 200 pasos por vuelta. De esta forma el consumo es menor y los driver usados finalmente son los A4988, con un menor precio respecto al DRV8825. La fuente de alimentación que necesitamos tiene que ser mínimo de 4*0,33A + 0,5A del servo para la pinza y un consumo mínimo de los demás elementos. Por lo tanto necesitamos una fuente de alimentación de 12V DC y 2A mínimo, pero siempre es recomendable dejar algo de margen (unos 0,5A o similar) porque los picos y los motores consumen más cuando proporcionan más fuerza. 19
Capítulo 6 Software La idea principal es que el programa o software que desarrollemos reciba unos comandos o instrucciones a través del puerto serie, y realice las acciones necesarias y una vez terminada esta, devuelva un comando por el puerto serie indicando si se ha realizado correctamente o si ha habido algún error. Como se comentó en la introducción, se usaron diferentes entornos de desarrollo y programación según la tecnología que se fue probando. Para el programa del microcontrolador PIC se utilizó el compilador CCS Compiles y su entorno, además se utilizó para alguna prueba sencilla el compilador de #C. Para la programación y depuración del componente físico se utilizó el programador Pickit 4 y el entorno de MplabX Ide (versión de 5.50). Si queremos hacer algún tipo de comunicación serie entre el PIC y el ordenador por el puerto serie, necesitamos un adaptador o interfaz de UART a USB. En mi caso use una placa de evolución que realizaba exactamente esta conversión y nos facilitaba la tarea de comunicaciones. Para el desarrollo y programación del software de la placa de Arduino se utilizó su propio entorno de desarrollo “Arduino IDE”. La programación de la placa se realiza por puerto serie (USB), ya que la propia placa lo facilita de este modo y no tenemos que tener ningún programador adicional como en el caso de los microcontroladores PIC. Este programa en un inicio era muy sencillo para realizar alguna prueba con un motor de paso a paso, para controlar un servo motor, o para realizar una comunicación por el puerto COM. El programa para el control de los motores, servomotor y los interruptores de final de carrera no es muy complejo. Se puede complicar y añadir todas aquellas funciones que necesitemos y nos hagan falta para cumplir nuestros objetivos. Una de las cosas en la que más dificultad encontrar fue la relación entre los pines de la placa de Arduino Mega 2560 y la RAMPS1.4, además de cuales son los pines que se corresponden con el control y manejo de los drivers. Parte de esta información la encontré 20
FULL AUTOMATIC VIALS UNSCRAMBLER UCM que la forma de la pinza no nos valía porque no podía coger objetos tan pequeños como el vial de 3mm de diámetro. 7.2. Modificaciones y Mejoras Como el diseño anterior que teníamos de referencia no nos servía y además no podíamos modificar las piezas, por el tipo de los ficheros, sino que como mucho se podían escalar. Pero escalando las piezas algunas no nos valdrían, como la base donde va sujetado el servomotor y las otras no sabíamos si encajarían para poner los tornillos de sujeción. Entonces lo único que nos quedaba era intentar hacer nuestro propio diseño, partiendo como referencia de este, fijándonos en las medidas y forma de las piezas. Por otro lado como ya vimos que el diseño del agarre que tenía no nos valdría para objetos pequeños, teníamos que hacer un diseño de esa parte completamente nuevo y partiendo de cero. 7.3. Diseño Propio Para el diseño nuevo lo que hemos hecho es tomar como referencia el diseño principal que encontramos. Lo que se ha hecho es ir tomando las medidas con calibre de las piezas que teníamos impresas e ir diseñando nosotros con el programa de diseño 3d las mismas piezas, pero aplicando un factor de escala en las que se podía y las otras se han echo según tamaño del servomotor o lo que correspondía. Como el programa de diseño nos permite hacer estos diseños por módulos y las medidas introducirlas mediante variables, nos facilita mucho la tarea, en el sentido que una vez tengamos un diseño inicial propio (Figuras desde 7.9 hasta 7.14). Una vez tengamos el diseño propio en el programa de diseño, lo que podemos hacer es cambiando el valor de estas variables nos escala o modifica el diseño según las dimensiones que necesitemos. La parte más compleja de este diseño era el de diseñar las partes dentadas o las partes que se unen mediante engranajes para hacer el funcionamiento principal de la pinza (Figura 7.9). Para esta parte nos hemos apoyado en una librería que existe para hacer este tipo de diseños y que se puede utilizar para el programa de diseño que usábamos. Figura 7.9: Engranajes Figura 7.10: Dedo pinza 1 Figura 7.11: Dedo pinza 2 27
FULL AUTOMATIC VIALS UNSCRAMBLER UCM Figura 7.12: Base servomotor Figura 7.13: Conjunto vista A Figura 7.14: Conjunto vista B Aquí podemos ver uno de los primeros diseños que sacamos y con el que empezamos a hacer pruebas ya más reales del sistema de agarre (Figuras desde 7.15 hasta 7.20). El primer prototipo se pensó para manejar objetos más grandes que los viales de unos 8 o 9mm de diámetro (por ejemplo como un lapicero). Figura 7.15: Diseño A Figura 7.16: Diseño B Figura 7.17: Diseño A Figura 7.18: Diseño B Figura 7.19: Diseño A Figura 7.20: Diseño B 28
FULL AUTOMATIC VIALS UNSCRAMBLER UCM Después de diseñar, imprimir y montar varios diseños de pinzas fuimos mejorando y modificando las partes necesarias para intentar obtener un diseño funcional que sea con las características y las dimensiones para manejar un tornillo, clavo o vial de 3mm de diámetro. Algunas de las mejoras son más visuales: largo de la parte final del agarre de la pinza, altura y grosor de la parte trasera con la cual se sujetara el sistemas de la pinza al resto de la estructura, el grosor de esta parte de sujeción. Otras que no son tan visibles, como el ángulo que tiene la parte final de la pinza, tanto donde se sujeta con el tornillo, como la parte donde se empieza a abrir en el extremo. El diámetro de la parte de engranajes para poder evitar que el tornillo llegue a tocar en el micro-servo y de esta manera el cierre de la pinza es más estable. Se ha modificado el grosor de la pieza de engranajes secundaria la que no se engancha al servomotor, de manera que encajaran mejor los sistemas de engranajes. La forma redonda donde cierra la pinza se ha modificado el diámetro en el diseño final con un diámetro de 3mm o 3,2mm dando un margen, para corregir los posibles fallos en el proceso de impresión. Figura 7.21: Diseño para 3mm Se podría decir que este es el sistema final que tenemos en este momentos (Figura 7.21), que ya tiene unas dimensiones y partes con las que hemos realizado pruebas más reales y según los objetivos principales. Como la pinza es de plástico y para mejorar la fricción con el objeto de pruebas (tornillos) o con el propio vial de cristal hemos añadido una esponja para ello, y además de esto la esponja nos ayuda a mejorar la sensibilidad. Esta misma esponja lo que nos ayuda es a mantener el objeto en una linea más vertical, ya que el grosor de la parte del agarre no es mucho (Figura 7.22). Finalmente el sistema de agarre nos vale tanto para agarrar el vial mediante presión y levantarlo, también nos valdría para ponerle una funda o tapón en la parte alta y levantarlo sin presionar. Aunque podríamos decir que es una mezcla de las dos o tres 29
FULL AUTOMATIC VIALS UNSCRAMBLER UCM ideas que teníamos, aunque de momento pueden surgir otras ideas o cambiar detalles de la que tenemos actualmente. Figura 7.22: Diseño final montado y agarrando vial de vidrio 30
Capítulo 8 Pruebas, Mejoras y Conclusiones En el periodo de pruebas una vez montado todas las partes del prototipo (Figura 8.1) y teniendo un programa para el control de los diferentes sistemas y pudiendo mandarle órdenes para realizar acciones el funcionamiento se aproxima a los objetivos y funciones principales. Las funciones principales del sistema serán: que el usuario lo ponga en la pinza o que la propia pinza coja un vial del punto de reposo e introducirlo en el sistema de medición (punto de medida), y realizar varios movimientos repetitivos de sacar y depositar el vial en el punto de medida. Una vez terminado el proceso deberá volver a depositar este en el punto de reposo o esperar que el usuario lo retire. Hasta que no se pruebe el sistema ya integrado con el sistema de medición no tendremos bien definidos los procesos que deberá hacer el posicionador. Los principales comandos serán: ir a posición inicial, cerrar o abrir la pinza, introducir o sacar la muestra en el punto de medida, coger o dejar muestra en la posición de reposo y se podrán formar secuencias más complejas combinando varias de estas acciones consecutivamente. Vimos que para realizar una simulación más realista todavía habría que simular el sistema o el punto donde introduciría los viales para medirlos (Figuras 8.2 y 8.3). Ya que en el sistema real esta parte es muy sensible, delicada y no se podían hacer las primeras pruebas con el sistema real de medición. Además realizamos un soporte para varios viales para complicarlo un poco más y de esta forma, comprobar y confirmar que el sistema es fiable al realizar varios movimientos entre unos puntos y otros seguidamente sin coger el origen. Para la introducción del vial en el punto de medida o en uno de los puntos de reserva había veces que se desviaba según la posición vertical en la que se había quedado el vial al cogerlo. No parece ser un problema grave, aunque habrá que solucionarlo e intentar 31
FULL AUTOMATIC VIALS UNSCRAMBLER UCM que el sistema sea lo más fiable posible en todos los aspectos. Según las pruebas realizadas hasta el momento el prototipo podría servirnos para empezar a adaptarlo y combinarlo con el aparato de medición para el que se ha pensado. Aunque en paralelo a este proceso de juntar ambos equipos se puede seguir probando y mejorando algunos aspectos del prototipo. Algunas de las mejoras ya se han comentado y se puede ir trabajando en ellas. Pero seguro que mientras se este probando y posteriormente usando el prototipo ya sea individualmente o en conjunto con el aparato de medición irán surgiendo y viéndose mejoras que podamos hacer. Algunas de las mejoras serán que el sistema pueda trabajar con varios viales y para ello debemos añadir un sitio de reposo para varios viales. Tener un sistema de comprobación o de confirmación de que el vial esta bien posicionado y asegurar que la posición de la pinza respecto al puntos de medir o al punto de reposo es correcto. Otro cambio que se ha visto una vez montado el prototipo podría ser disminuir su tamaño u optimizar los movimientos, esto se podría conseguir reduciendo el tamaño de las piezas del prototipo, intentar colocar los puntos en los que debe hacer alguna acción o reducir los movimientos que debe hacer y de esta forma eliminar alguno de los ejes. Al reducir el tamaño general o suprimir alguno de los ejes, las parte quedaran más cerca del punto de medida, por lo tanto se debería comprobar que la proximidad de los diferentes elementos no afecte al proceso de medida del aparato. Figura 8.1: Posicionador automático de viales 32
FULL AUTOMATIC VIALS UNSCRAMBLER UCM Figura 8.2: Magnetómetro Figura 8.3: Magnetómetro y posicionador integrados 33
Capítulo 9 Programas y Librerías usados En términos generales todos los programas y librerías que se han usado son programas libres o gratuitos. Al igual que todos los proyectos de referencia son libres y gratuitos (tienen licencia libre). Para la estructura general y el sistema de agarre (pinza) se han usado proyectos que tienen una licencia de Creative Commons Non-Comercial license. Para el diseño de las nuevas piezas y la creación de otras teniendo como referencia las ya existentes se ha usado el programa OpenSCAD que es gratuito y libre. En conjunto con el programa de diseño se han usado varias librerías como la “PolyGear”, para el diseño de las piezas de engranajes del sistema de agarre y otras librerías y funciones del propio programa. El programa cuenta con muchos manuales, ejemplos y documentación lo que nos facilita la utilización del mismo. Es un programa que la mayoría de diseño se hace por código, aunque también tiene otras funciones. Para el desarrollo y la prueba del software se han usado programas que son gratuitos o que son libres, estos están descritos y comentados en el punto 4 Software según el programa y para que parte del proceso. La mayoría de los programas para placas de desarrollo o microcontroladores nos las proporcionan los propios fabricantes, lo cual facilita mucho las cosas. Para el manejo del servo se ha usado la librería “Servo.h” como ya se comento en puntos anteriores (Capitulo 6: Software). Las piezas se han impreso con una impresora 3d del tipo ”por deposición de material fundido”, modelo: Prusa i3 con un material del tipo PLA, no es más que biopolímeros derivados del ácido láctico (la mayor parte proviene de plantas vegetales), por lo que es un material biodegradable en sitios de compostaje industrial (es algo más respetuoso que otros plásticos provenientes de combustibles fósiles). El diseño y software ”Marlin”de la impresora tiene licencia GPL. 34
Índice de figuras 3.1. Sistemade3ejes ............................... 3 3.2. Explicación posiciones sistema real . . . . . . . . . . . . . . . . . . . . . 4 4.1. Estructurabásica............................... 11 4.2. PiezaejeZ .................................. 12 4.3. PiezaejeX .................................. 12 4.4. PiezaejeYmotor............................... 12 4.5. Pieza eje Y rodamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.6. TopevarillaejeZ............................... 13 4.7. Final de carrera modificado . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.8. EjeZmodificaciones ............................. 13 4.9. CarrosejeZ.................................. 14 5.1. Motornema17 ................................ 15 5.2. DriverL298N................................. 16 5.3. DriverA4988 ................................. 17 5.4. DriverDRV8825 ............................... 17 5.5. Placa con PIC y driver DRV8825 . . . . . . . . . . . . . . . . . . . . . . 17 5.6. Arduino Mega 2560 y Ramps 1.5 . . . . . . . . . . . . . . . . . . . . . . 18 5.7. Arduino Mega 2560 y Ramps 1.5 montados . . . . . . . . . . . . . . . . . 18 5.8. Finaldecarrera................................ 18 6.1. Diagrama del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 7.1. EngranajeA.................................. 26 7.2. EngranajeB.................................. 26 7.3. Basepinza................................... 26 7.4. Barrasujeción................................. 26 7.5. DedoApinza................................. 26 7.6. DedoBpinza................................. 26 7.7. PinzareferenciaA .............................. 26 7.8. PinzareferenciaB .............................. 26 35
FULL AUTOMATIC VIALS UNSCRAMBLER UCM 7.9. Engranajes .................................. 27 7.10.Dedopinza1 ................................. 27 7.11.Dedopinza2 ................................. 27 7.12.Baseservomotor ............................... 28 7.13.ConjuntovistaA............................... 28 7.14.ConjuntovistaB............................... 28 7.15.DiseñoA ................................... 28 7.16.DiseñoB.................................... 28 7.17.DiseñoA ................................... 28 7.18.DiseñoB.................................... 28 7.19.DiseñoA ................................... 28 7.20.DiseñoB.................................... 28 7.21.Diseñopara3mm............................... 29 7.22. Diseño final montado y agarrando vial de vidrio . . . . . . . . . . . . . . 30 8.1. Posicionador automático de viales . . . . . . . . . . . . . . . . . . . . . . 32 8.2. Magnetómetro................................. 33 8.3. Magnetómetro y posicionador integrados . . . . . . . . . . . . . . . . . . 33 36