“DISEÑO Y CONTROL DE UN BRAZO ROBÓTICO DE 4 GRADOS DE LIBERTAD” INGENIERÍA DE CONTROL II
Ingeniería Industrial | Ingeniería de Control II | Ingeniería Mecatrónica
BRAZO ROBÓTICO Un brazo robótico es un tipo de brazo de brazo mecánico, mecánico, normalmente programable, normalmente programable, con funciones parecidas a las de un brazo humano; este puede ser la suma total del mecanismo o puede ser parte de un robot un robot más complejo. Las partes de estos manipuladores o brazos son interconectadas a través de articulaciones que permiten, tanto un movimiento rotacional (tales como los de un robot articulado), articulado), como un movimiento traslacional o desplazamiento lineal. MANO ROBÓTICA: El efector final, o mano robótica, se puede diseñar para realizar cualquier tarea que se desee como puede ser soldar, sujetar, girar, etc., dependiendo de la aplicación. Por ejemplo los brazos robóticos en las las líneas de ensamblado de la industria la industria automovilística realizan una variedad de tareas tales como soldar y colocar las distintas partes durante el ensamblaje. En algunas circunstancias, lo que se busca es una simulación de la mano humana, como en los robots usados en tareas de desactivación de desactivación de explosivos.
TIPOS:
Robot cartesiano: Usado para trabajos de “pick and place” (tomar y colocar), aplicación de impermeabilizantes, operaciones de ensamblado, manipulación de máquinas herramientas y soldadura por arco. Es un robot cuyo brazo tiene tres articulaciones prismáticas, cuyos ejes son coincidentes con los ejes cartesianos. Robot cilíndrico: Usado para operaciones de ensamblaje, manipulación de máquinas herramientas, soldadura por punto, y manipulación en máquinas de fundición a presión. Es un robot cuyos ejes forman un sistema de coordenadas cilíndricas. Robot esférico / Robot polar, tal como el Unimate: Usados Unimate: Usados en la manipulación en máquinas herramientas, soldadura por punto, fundición a pr esión, máquinas de desbarbado, soldadura por gas y por arco. Es un robot cuyos ejes forman un sistema polar de coordenadas. Robot SCARA: Usado para trabajos de “pick and place” (tomar y colocar), aplicación de impermeabilizantes, operaciones de ensamblado y manipulación de máquinas herramientas. Es un robot que tiene dos articulaciones rotatorias paralelas para proporcionar elasticidad en un plano.
PÁGINA 1
Robot articulado: Usado para operaciones de ensamblaje, fundición a presión, máquinas de desbarbado, soldadura a gas, soldadura por arco, y pintado en spray. Es un robot cuyo brazo tiene como mínimo tres articulaciones rotatorias. Robot paralelo: Uno de los usos es la plataforma móvil que manipula las cabinas de los simuladores de vuelo. Es un robot cuyos brazos tienen articulaciones prismáticas o rotatorias concurrentes. Robot Antropomórfico: Similar a la mano robótica de Luke Skywalker que se le coloca al final de The Empire Strikes Back. Se le da forma para que pueda sustituir a una mano humana, con dedos independientes incluidos el pulgar.
BRAZOS ROBÓTICOS NOTABLES: En el espacio el Sistema de Manipulación Remota del Transbordador Espacial también conocido como Canadarm, y su sucesor el Canadarm2, son ejemplos de brazos robóticos de múltiples grados de libertad que ha sido usado para realizar distintas tareas tales como inspección de los transbordadores espaciales y satélites a través de cámaras colocadas en su extremo o mano, y tareas de carga y descarga de la bodega de los transbordadores espaciales. PUMA (ROBOT): PUMA (Programmable Universal Machine for Assembly, or Programmable Universal Manipulation Arm) es un brazo robot industrial desarrollado por Victor Scheinman en la empresa pionera en robótica Unimation. Inicialmente desarrollado para General Motors, el brazo robot PUMA nació de los diseños iniciales inventados por Scheinman mientras se encontraba en el MIT y en la Stanford University. Unimation produjo PUMAs durante algunos años hasta que fue absorbida por Westinghouse (ca. 1980), y posteriormente por la empresa suiza Stäubli (1988). Nokia Robotics manufacturó cerca 1500 brazos robots PUMA durante los años 1980, siendo el PUMA-560 el modelo más popular entre los clientes. Nokia vendió su división de robótica en 1990. En 2002, La organización General Motors Controls, Robotics and Welding (CRW) donó el prototipo original del brazo robot PUMA al Museo Nacional de Historia Americana, reconociéndose así su importancia en el desarrollo de la robótica.
PÁGINA 2
ARDUINO: Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, y Atmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos. Desde octubre de 2012, Arduino se utiliza también con microcontroladoras CortexM3 de ARM de 32 bits, que coexistirán con las más limitadas, pero también económicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Eso sí, las microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayoría de las placas con AVR, que generalmente usan 5V. Sin embargo, ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data. Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador. También cuenta con su propio software que se puede descargar de su página oficial que ya incluye los drivers de todas las tarjetas disponibles lo que hace más fácil la carga de códigos desde el computador.
PÁGINA 3
LABVIEW: Es una plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico. Recomendado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido, pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Gráfico. Este programa fue creado por National Instruments (1976) para funcionar sobre máquinas MAC, salió al mercado por primera vez en 1986. Ahora está disponible para las plataformas Windows, UNIX, MAC y GNU/Linux. La penúltima versión es la 2013, con la increíble demostración de poderse usar simultáneamente para el diseño del firmware de un instrumento RF de última generación, a la programación de alto nivel del mismo instrumento, todo ello con código abierto. Y posteriormente la versión 2014 disponible en versión demo para estudiantes y profesional, la versión demo se puede descargar directamente de la página National Instruments. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su origen provenía del control de instrumentos, aunque hoy en día se ha expandido ampliamente no sólo al control de todo tipo de electrónica (Instrumentación electrónica) sino también a su programación embebida, comunicaciones, matemáticas, etc. Un lema tradicional de LabVIEW es: “La potencia está en el Software", que con la aparición de los sistemas multinúcleo se ha hecho aún más potente. Entre sus objetivos están el reducir el tiempo de desarrollo de aplicaciones de todo tipo (no sólo en ámbitos de Pruebas, Control y Diseño) y el permitir la entrada a la informática a profesionales de cualquier otro campo. LabVIEW consigue combinarse con todo tipo de software y hardware, tanto del propio fabricante -tarjetas de adquisición de datos, PAC, Visión, instrumentos y otro Hardware- como de otros fabricantes.
PÁGINA 4
OBJETIVO Realizar el control de un brazo mecánico con movimiento por servomotores mediante un instrumento virtual con el software Labview de National Instruments mediante una interfaz con el microncontrolador “Arduino”. Este proyecto consta de la realización, el diseño, fabricación e implementación de un brazo manipulador a pequeña escala. El objetivo primordial de este proyecto es la realización de un brazo mecánico para poder ser analizado, probado y estudiado en pequeña escala para en un futuro y con mejoras pueda ser implementado en la industria Con la ayuda de la placa arduino mega, se facilitara la adquisición de datos. Esto permite poder deducir la función de transferencia de la planta, en este caso es el brazo robótico de dos grados de libertad. Hecho lo anterior recién se puede determinar qué tipo de controlador es conveniente para el control de la planta, ya sea PI, PD, ID o PID. Es posible accionar un brazo mecánico mediante el uso de motorreductores o bien motores DC con cajas reductoras adecuadas. El resto de la mecánica no cambia, pero hay que tener en cuenta que en los motores DC a diferencia de los motores paso a paso, no es posible controlar su giro, estos giran una vez aplicada la energía y no hay forma de saber cuánto han girado. Para solucionar esto se puede hacer uso de un sistema de retroalimentación que nos informe en qué posición se encuentra cada eje y de esta forma sabremos cuando debemos accionar o detener un motor y a su vez hacia qué lado debe girar el mismo. Este sistema es comúnmente llamado Servomecanismo, y para realizarlo basta simplemente con hacer uso de un potenciómetro lineal conectado mecánicamente con cada eje que se desee controlar. De esta forma cada vez que el eje gire, también girará el potenciómetro del cual podemos obtener una lectura analógica de la posición del eje. Sabemos que el error posiblemente a producirse podría ser el peso de la carga a levantar por el brazo y el mismo peso del brazo (motores). Es por esto que sería conveniente hacer uso de dos controladores Básicamente el propósito del proyecto es controlar la posición de los motores ya que el brazo robótico es de dos grados de libertad, tendrá un pequeño mecanismo de agarre de objetos.
PÁGINA 5
PROGRAMACIÓN EN LABVIEW PARA CONTROL DE SERVOS
PÁGINA 6
CONTROL PID Control Proporcional:
Control Integral:
Control Derivativo:
PÁGINA 7
Tiempo:
Control PID:
PÁGINA 8
MG995
High Speed
Metal Gear Dual Ball Bearing Servo
Specifications
• • • • • • • •
Weight: 55 g Dimension: 40.7 x 19.7 x 42.9 mm approx. Stall torque: 8.5 kgf·cm (4.8 V ), 10 k gf·cm (6 V) Operating speed: 0.2 s/60º (4.8 V), 0.16 s/60º (6 V) Operating voltage: 4.8 V a 7.2 V Dead band width: 5 µs Stable and shock proof double ball bearing design Temperature range: 0 ºC – 55 ºC
PÁGINA 9
PÁGINA 10
SG90
9 g Micro Servo
Specifications
• • • • • • •
Weight: 9 g Dimension: 22.2 x 11.8 x 31 mm approx. Stall torque: 1.8 kgf·cm Operating speed: 0.1 s/60 degree Operating voltage: 4.8 V (~5V) Dead band width: 10 µs Temperature range: 0 ºC – 55 ºC
PÁGINA 11
PÁGINA 12
ARDUINO MEGA 2560
Información general El
Mega
Arduino
es
una
placa
electronica
basada
en
el ATmega1280 (ficha técnica). Cuenta con 54 pines digitales de entrada / salida (de los cuales 14 se pueden utilizar como salidas PWM), 16 entradas
analógicas,
4 UARTs (hardware
puertos
serie),
un
16 MHz oscilador de cristal, una conexión USB, un conector de alimentación, una cabecera ICSP, y un botón de reinicio. Contiene todo lo necesario para apoyar el microcontrolador; simplemente conectarlo a un ordenador con un cable USB o el poder con un adaptador de CA o la batería a CC para empezar. La Mega es compatible con la mayoría de los escudos diseñados para el Arduino Duemilanove o Diecimila. 1
1 Texto
traducido del Inglés al español automaticamente PÁGINA 13
Sumario Microcontroladores
ATmega1280
Tensión de funcionamiento
5V
Voltaje de entrada (recomendado)
7-12V
Voltaje de entrada (límites)
6-20V
Digital pines I / O
54 (de las cuales 15 proporcionan salida PWM)
Pines de entrada analógica
16
Corriente DC por E / S Pin
40 mA
Corriente DC de 3.3V Pin
50 mA
Memoria flash
128 KB de los cuales 4 KB utilizado por el gestor de arranque
SRAM
8 KB
EEPROM
4 KB
Velocidad de reloj
16 MHz
Poder El Mega Arduino puede ser alimentado a través de la conexión USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente. Potencia (no USB) externo puede venir con un adaptador de CA a CC (pared-verruga) o la batería. El adaptador se puede conectar al conectar un enchufe de 2,1 mm de centro-positivo en el conector de alimentación de la placa. Leads de una batería se pueden insertar en los c abezales de pin GND y Vin del conector de alimentación.
PÁGINA 14
El tablero puede funcionar con un suministro externo de 6 a 20 voltios. Si se suministra con menos de 7V, sin embargo, el pin de 5V puede suministrar menos de cinco voltios y la junta puede ser inestable. Si se utiliza más de 12V, el regulador de voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios. Los pines de alimentación son como sigue:
VIN. La tensión de entrada a la placa Arduino cuando se utiliza una fuente de alimentación externa (por oposición a 5 voltios de la conexión USB o otra fuente de alimentación regulada). Usted puede suministrar tensión a través de este pin, o, si el suministro de tensión a través de la toma de poder, acceder a él a través de este pin. 5V. La fuente de alimentación regulada utilizada para alimentar el microcontrolador y otros componentes de la placa. Esto puede venir de VIN a través de un regulador de a bordo, o ser suministrada por USB o otra fuente de 5V regulada. 3V3. Un suministro de 3,3 voltios generada por el chip FTDI a bordo. Empate Corriente máxima es de 50 mA. GND. Pines de tierra.
Memoria El ATmega1280 tiene 128 KB de memoria flash para almacenar el código (de los cuales 4 KB se utiliza para el cargador de arranque), 8 KB de SRAM y 4 KB de EEPROM (que puede ser leído y escrito con la biblioteca EEPROM).
Entrada y salida Cada uno de los 54 pines digitales en el Mega se puede utilizar como una entrada
o
salida,
utilizando pinMode (),digitalWrite (), y digitalRead
() funciones. Operan a 5 voltios. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia de pull-up (desconectado por defecto) de 20-50 kOhms. Además, algunos pines tienen funciones especializadas: PÁGINA 15
Serial: 0 (RX) y 1 (TX); Serial 1: 19 (RX) y 18 (TX); Serial 2: 17 (RX) y 16 (TX); Serial 3: 15 (RX) y 14 (TX). Se utiliza para recibir (RX) y transmitir datos en serie (TX) TTL. Pernos 0 y 1 también están conectados a los pines correspondientes de la USB-to-TTL chips Serial FTDI. Interrupciones externas:. 2 (interrumpir 0), 3 (alarma 1), 18 (interrumpe 5), 19 (interrupción 4), 20 (interrumpir 3), y 21 (interrupción 2) Estos pines pueden configurarse para activar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. Ver el attachInterrupt () función para más detalles. PWM: 2 a 13 y 44 a 46. proporcionar una salida PWM de 8 bits con el analogWrite () función. SPI:. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Estos pines admite la comunicación SPI, que, aunque proporcionada por el hardware subyacente, no está incluido en el lenguaje de Arduino. Los pines SPI también se desglosan en la cabecera ICSP, que es físicamente compatible con el Duemilanove y Diecimila. LED: 13. Hay un LED incorporado conectado al pin digital 13. Cuando el pasador es de alto valor, el LED está encendido, cuando el pasador es bajo, es apagado. I 2 C: 20 (SDA) y 21 (SCL). Apoyo I 2 C (TWI) de comunicación con el librería Wire (documentación en el sitio web de cableado). Tenga en cuenta que estos pines no están en la misma ubicación que los I 2 pines C en el Duemilanove o Diecimila. El Mega tiene 16 entradas analógicas, cada uno de los cuales proporcionan 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto se miden desde el suelo a 5 voltios, aunque es posible cambiar el extremo superior de su rango usando el pin AREF y función analogReference (). Hay un par de patas de la placa:
AREF. Voltaje de referencia para las entradas analógicas. Se utiliza con analogReference (). Restablecer. Traiga esta línea LOW para reiniciar el microcontrolador. Normalmente se utiliza para añadir un botón de reinicio para escudos que bloquean el que está en el tablero.
PÁGINA 16
Comunicación El Arduino Mega tiene una serie de instalaciones para la comunicación con
un
ordenador,
otro
Arduino,
u
otros
microcontroladores. El ATmega1280 ofrece cuatro hardware UART para TTL (5V) de comunicación serie. Un FTDIFT232RL en los canales de mesa uno de ellos a través de USB y los drivers FTDI (incluido con el software de Arduino) proporcionan un puerto com virtual para el software en el ordenador. El software de Arduino incluye un monitor de serie que permite a los datos de texto simples para ser enviados hacia y desde la placa Arduino. Los RX y TX LED en el tablero parpadean cuando se están transmitiendo datos a través del chip y conexión USB FTDI al ordenador (pero no para la comunicación en serie en los pines 0 y 1). Una biblioteca SoftwareSerial permite la comunicación en serie en cualquiera de los pines digitales de la Mega. El ATmega1280 también es compatible I2C (TWI) y la comunicación SPI. El software de Arduino incluye una biblioteca de alambre para simplificar el uso del I2C bus; consulte la documentación en el sitio web de cableado para más detalles.Para utilizar la comunicación SPI, por favor vea el ATmega1280 hoja de datos.
Programación El Arduino Mega se puede programar con el software de Arduino (descarga). Para
obtener
más
información,
consulte
lareferencia y tutoriales. Los ATmega1280 en la Mega Arduino viene precargado con un gestor de arranque que le permite cargar nuevo código a él sin el uso de un PÁGINA 17
programador
de
hardware
externo. Se
comunica
usando
el
original STK500 protocolo (referencia,archivos de cabecera C). También puede pasar por alto el gestor de arranque y programar el microcontrolador a través del ICSP (In-Circuit Serial Programming) cabecea; consulte estas instrucciones para más detalles.
Automático (Software) Restablecer En lugar de requerir una prensa física del botón de reinicio antes de que una carga, el Arduino Mega está diseñado de una manera que permite que sea restablecido por el software que se ejecuta en un ordenador conectado. Una de las líneas de control de flujo de hardware (DTR) del FT232RL está conectado a la línea de restablecimiento de losATmega1280 través de un condensador 100 nanofaradios. Cuando esta línea se afirma (tomada bajo), la línea de reset cae lo suficiente para restablecer el chip. El software de Arduino utiliza esta capacidad para permitir que usted cargue código con sólo pulsar el botón de subida en el entorno Arduino. Esto significa que el gestor de arranque puede tener un tiempo de espera más corto, ya que el descenso de DTR pueden ser bien coordinada con el inicio de la subida. Esta configuración tiene otras implicaciones. Cuando el Mega está conectado ya sea a un ordenador con Mac OS X o Linux, se restablece cada vez que se realiza una conexión a la misma desde el software (a través de USB). Para el siguiente medio segundo o menos, el gestor de arranque se ejecuta en el Mega. Mientras que está programado para ignorar los datos con formato incorrecto (es decir nada, además de una carga del nuevo código), se interceptará los primeros bytes de datos enviados a la junta después de abrir una conexión. Si un funcionamiento PÁGINA 18
boceto en el tablero recibe la configuración de una sola vez o de otro tipo de datos cuando se inicia por primera vez, asegúrese de que el software con el que se comunica espera un segundo después de abrir la conexión y antes de enviar estos datos. El Mega contiene un rastro que se puede cortar para deshabilitar el reinicio automático. Las almohadillas a ambos lados de la traza se pueden soldar juntos para volver a habilitarlo. Ha marcado "RESET-ES". También puede ser capaz de desactivar el reinicio automático mediante la conexión de una resistencia de 110 ohmios de 5V a la línea de reposición;ver este hilo del foro para más detalles.
Protección de sobrecorriente USB El Arduino Mega tiene un polyfuse reajustable que protege a los puertos USB de su ordenador desde pantalones cortos y sobrecorriente. Aunque la mayoría de las computadoras proporcionan su propia protección interna, el fusible proporciona una capa adicional de protección. Si hay más de 500 mA se aplica al puerto USB, el fusible se rompe automáticamente la conexión hasta que el corto se elimina la sobrecarga.
Características compatibilidad
físicas
y
Escudo
de
La longitud máxima y la anchura del Mega PCB son 4 y 2,1 pulgadas, respectivamente, con el jack conector USB y el poder que se extiende más allá de la dimensión anterior. Tres orificios de los tornillos permiten la junta para fijarse a una superficie o caso. Tenga en cuenta que la distancia entre los pines digitales 7 y 8 es de 160 milésimas de pulgada (0,16 "), no un múltiplo par de la separación de 100 milésimas de pulgada de los otros pasadores. PÁGINA 19
El Mega está diseñado para ser compatible con la mayoría de los escudos diseñados para la Diecimila o Duemilanove.Pines digitales 0 a 13 (y la AREF adyacente y pines GND), entradas analógicas 0 a 5, en la cabecera de la energía, y cabecera ICSP están en lugares equivalentes. Además, la UART principal (puerto serie) se encuentra en los mismos pines (0 y 1), así como interrupciones externas 0 y 1 (pines 2 y 3, respectivamente). SPI está disponible a través de la cabecera ICSP tanto en el Mega y Duemilanove / Diecimila. Tenga en cuenta que 2 C no se encuentra en las mismas patillas de la Mega (20 y 21) como el Duemilanove / Diecimila (entradas analógicas 4 y 5).
PÁGINA 20
PÁGINA 21
AVANCE DE PLANOS PARA CONSTRUCCIÓN DE BRAZO ROBÓTICO
PÁGINA 22
PÁGINA 23
PÁGINA 24
CONCLUSIONES Es muy importante el uso de materiales livianos para la construcción de un brazo mecánico, ya que todo peso adicional redundará en una complejidad mecánica y económica, debido a que obligará a utilizar motores de mayores potencias. Un buen material es el aluminio, este es fácil de conseguir, relativamente económico y extremadamente liviano en comparación con su dureza, otro material liviano es el acrílico que podría ser usado en el proyecto, todo dependería también de la posibilidad económica que se tenga. Por otra parte, en cuanto a la programación y teniendo en cuenta que no se a impartido el debido conocimiento sobre LabView o Arduino, es notable el esfuerzo que se ha tenido para poder aprender estos software que ahora son muy usados en la nuevas tendencias de ingeniería.
PÁGINA 25