ROBOT MANIPULADOR SERVOCONTROLADO VERSION 1.0 ANUBIS ORESTE ARANDA MARRUGO ARIEL MAURICIO CAICEDO LINARES Universitaria de Santander (UDES) Lagos del Cacique [email protected] [email protected] Bucaramanga Abstract: Este proyecto es realizado con el fin de iniciar la investigación formal en el área de la robótica aplicada a la automatización de procesos; para tal cometido se creará un robot manipulador servocontrolado, el cual le dará las posibilidades a la comunidad de estudiantes del UDES de realizar prácticas de laboratorio con el fin de establecer conceptos básicos y avanzados en los temas de cinemática inversa y cinemática directa, conocimientos técnicos sobre servomotores y además la familiarización de la programación de microcontroladores (PIC), entre otros temas anexos. Keywords: Automatización, Control, Microprocesadores, Diseño de los automatismos de sistemas mecatrónicos, Mantenimiento electrónico e instrumentación industrial. 1. INTRODUCCIÓN A medida que se ha ido mejorando la tecnología, se han desarrollado máquinas especializadas para tareas como poner tapones a las botellas o verter caucho líquido en moldes para neumáticos. Sin embargo, ninguna de estas máquinas tenía la versatilidad del brazo humano, y no podía alcanzar objetos alejados y colocarlos en la posición deseada. La mayoría de los robots existentes en nuestros días son aquellos utilizados en la industria, llamados robots industriales, los cuales están constituidos generalmente por uno o dos brazos. La palabra robot se define como una máquina controlada por un ordenador y programada para moverse, manipular objetos y realizar trabajos a la vez que interacciona con su entorno. Los robots son capaces de realizar tareas repetitivas de forma más rápida, barata y precisa que los seres humanos. El término procede de la palabra checa robota, que significa 'trabajo obligatorio'. Desde entonces se ha empleado la palabra robot para referirse a una máquina que realiza trabajos para ayudar a las personas a efectuar tareas difíciles o de riesgo para los humanos. Mientras tanto la robótica se define como la rama de la inteligencia artificial que estudia los sistemas automáticos capaces de establecer una interacción directa con el mundo físico. El presente proyecto consistirá en crear un robot manipulador servocontrolado, con la capacidad de ubicar la pinza en cualquier punto de un eje de coordenadas preestablecido, basado en el estudio y desarrollo de la Cinemática Directa y la Cinemática Inversa, además este podrá seleccionar objetos cilíndricos de dos colores (blanco y negro) y depositarlos en un contenedor previamente especificado, sumándole a esto la posibilidad de que el usuario por medio de una interfaz grafica (GUI), podrá saber en todo momento la posición del efector final (Pinza), en el sistema de coordenadas previamente definido, cuya finalidad es contribuir como herramienta de laboratorio y material de apoyo al estudio de la Robótica 2. JUSTIFICACION DEL PROYECTO El proyecto de diseño, construcción y control de un brazo robot manipulador servocontrolado, en el cual se contempla el fortalecimiento de las áreas de mayor cobertura y desarrollo tecnológico, donde están incluidas las estructuras curriculares: Diseño de los automatismos de sistemas mecatrónicos, Mantenimiento electrónico e instrumentación industrial, soldadura y máquinas herramientas, dado que se hace necesario adelantar una transformación en los ambientes educativos que faciliten la formación y certificación por competencias laborales. Además con este proyecto se busca impulsar nuevos proyectos de investigación sobre esta área y semilleros de investigación. Fig. 1 Señal de PWM Existen muchas maneras para generar una señal de PWM, pero en este proyecto se genero mediante un microcontrolador utilizando dos temporizadores y un comparador, los cuales trabajan en conjunto; para el envió y recepción de datos, se usaron las interrupciones a cargo de esta tarea, y dedicando el microcontrolador únicamente a esta operación. Para la generación de la señal de PWM, se diseño un esquema que consiste en insertar el ciclo activo de todos los servomotores seguido uno tras otro; de tal forma que los ciclos activos quedarán dentro del periodo de la señal de PWM; dicho periodo fue para este caso de 20 ms y cuya frecuencia es correspondiente a 50Hz frecuencia en la cual se deben trabajar los servomotores (Ver figura 2). Fig. 2 Señal de Control de los Servomotores Descrita la forma en que se deben generar las señales de PWM, se procedió a diseñar el software del microcontrolador, para esta tarea se utilizaron 2 timer y el CCP1 o modulo de comparación del microcontrolador. 3. CONTROL El control del robot se realiza mediante un microcontrolador PIC 16F877, el cual estará programado para generar la señal de PWM (Pulse Width Modulation) que es lo mismo "Modulación por Anchura de Pulso", dicha señal es necesaria para el control de los servomotores (Ver figura 1). Este sistema consiste en generar una onda cuadrada, donde se varia el tiempo que el pulso esta a nivel alto, manteniendo el mismo periodo, con el objetivo de modificar la posición del servo según se desee. Antes se debe dar una breve descripción tanto de los timers como del modulo comparador; primero se escogió el timer2, el cual es un contador de 8 bits que puede operar tanto como contador como temporizador para esta aplicación se opto por el segundo modo descrito anteriormente, este será el encargado de llevar la temporización del periodo del PWM que es de 20 ms; ahora para llevar la cuentas del ciclo activo se usa un modulo comparador CCP1, el cual consiste en programarle unos valores deseados a unos registros especiales de dicho modulo, una vez realizada esta tarea, se inicializa el timer1, es cual es otro contadortemporizador, pero de una resolución de 16 bits, esto lo hizo ideal para el control de los servomotores puesto que influye en gran escala en la precisión de los mismos, este timer1 tiene ligado su funcionamiento al comparador CCP1, porque cuando el valor de la temporizacion se haga igual al valor almacenado previamente en los registros del comparador CCP1, este generara una señalización o una interrupción si es necesario, valiéndose de esta propiedad se obtiene un control preciso sobre el ciclo activo del PWM. Cuando son recibidos los datos procedentes del computador, estos son pasados a la memoria RAM del microcontrolador, estos datos que no son mas que valores hexadecimales y contienen los valores que deben ser asignados al modulo comparador CCP1, para llevar las cuentas del ciclo activo de cada uno de los servomotores. Se inicia la generación del PWM, con el ciclo activo del servomotor de la base, una vez este termina se inicia el ciclo activo del hombro luego el del codo y así sucesivamente hasta terminar con el de la pinza; cuando todos han terminado su ciclo activo se espera a que se genere la interrupción del timer2, una vez generada la interrupción un periodo ha terminado y comienza de nuevo el proceso, cabe aclarar que la rutinas de generación de PWM, aparte de lo explicado anteriormente poseen unas subrutinas de regulación de velocidad del movimiento de cada servomotor, cuya misión es incrementar o decrementar el ciclo activo de cada uno de los servomotores, valiéndose de un estado anterior y desplazandolo a una nueva posición (nuevo estado) (Ver Anexo Diagrama de Control del Microcontrolador). 4. ALCANCE Este proyecto denominado Manipulador servocontrolado fue creado inicialmente con fines didácticos para el aprendizaje de la robótica, rama de gran importancia hoy en día en el área de la automatización, además este se podría trabajar en la parte de instrumentación, sistemas virtuales de control por computador y para la parte clínica quirúrgica, ya que este robot manipulador cuenta con una alta resolución y torqué en cada movimiento y su sistema de control puede ser llevado a cabo mediante vía inalámbrica cable directo o vía ethernet o cualquier medio de comunicación eléctrica existente. En el área de la informática la elaboración del software para la formación virtual se fundamentará en software de última generación. El desarrollo y simulación de sistemas se soporta en matlab con simulink, proteus, pic c compiler, labview y visual Basic entre otros. Además con este proyecto se dará un enfoque concreto en las herramientas matemáticas para el estudio de la robótica, herramientas tales como Cinemática Inversa y Cinemática Directa. Como aportes subsecuentes se tienen el diseño y creación del circuito impreso en un software especializado en diseño asistido por computador (CAD), también habrá un enfoque en lenguajes de alto nivel (Visual Basic), y lenguajes de programación a bajo nivel (Assembler). El trabajo debe contener los siguientes elementos: Introducción. Para explicar el trabajo, las aplicaciones, naturaleza y propósito del artículo. Cuerpo. Contiene el mensaje primario, la validación de las técnicas descritas. Conclusiones. Reconocimientos (opcional). Referencias. Se ordenan alfabéticamente por el primer autor. Apéndices (opcional). X. CONCLUSIONES Este proyecto se diseño con el fin de implementar semilleros de investigación en esta área, además de impulsar a los estudiantes al estudio de la robótica ya que este es un área poco trabajada por lo que no se cuentan con prototipos en el cual practicar. Una de las cosas mas interesantes del proyecto fue poder generar las señales de PWM por software y así facilitar el control y abaratar el costo del proyecto, así como almacenar los datos en la memoria EEPROM y no ocupar una memoria externa, también facilito el control y abarato costos. REFERENCIAS BARRIENTOS, Antonio. PEÑIN, Luis Felipe. BALAGUER, Carlos. Edit. Mc Graw Hill Interamericana Editores S.A de C.V. 1997. http://www.datasheetarchive.com http://www.microchip.com http://www. Linxmotion.com ANEXOS Diagrama de bloques del Sistema INICIO Posición neutra Generar PWM No Datos a Recibir Recepción de valores Cinemáticas Iniciar Cinemáticas Demo Recepción de valores Iniciar Cinemáticas Sensor Transmite Color Iniciar Cinemáticas Setear Valores Generar PWM Regulado Retorna Leer Color Iniciar Demo Blanco o Negro Setear Valores pinza arriba abierta Generar PWM Regulado Setear Valores contenedor derecho Setear Valores contenedor izquierdo Setear Valores pinza arriba Cerrada Terminó Setear Valores pinza abajo abierta Generar PWM Regulado Generar PWM Regulado Terminó Setear Valores pinza abajo cerrada Generar PWM Regulado Terminó Setear Valores pinza abajo Cerrada Generar PWM Regulado Terminó Setear Valores pinza abajo abierta Generar PWM Regulado Terminó Terminó Setear Valores pinza arriba abierta Setear Valores pinza arriba cerrada Generar PWM Regulado Terminó Retornar