Anda di halaman 1dari 17

UNIVERSIDAD NACIONAL AUTONMA DE MXICO FACULTAD DE INGENIERA DEPARTAMENTO DE CONTROL Y ROBTICA INSTRUMENTACIN VIRTUAL PROYECTO FINAL: BRAZO MCANICO

CON LABVIEW Y EL MICROCONTROLADOR ARDUINO Nombre: RAMIREZ CHAVARRA ROBERTO GIOVANNI Prof.: ING. CSAR CASTRO RENDN SEMESTRE 2012-1

Objetivo: Realizar el control de un brazo mecnico 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 l a realizacin, el diseo, fabricacin e implementacin de un brazo manipulador a pequea e scala. El objetivo primordial de este proyecto es la realizacin de un brazo mecnic o para poder ser analizado, probado y estudiado en pequea escala para en un futur o y con mejoras pueda ser implementado en la industria. Introduccin Un robot industrial es un manipulador multifuncional reprogramable, c apaz de mover materias, piezas, herramientas, o dispositivos especiales, segn tra yectorias variables, programadas para realizar tareas diversas. Esta definicin, l igeramente modificada, ha sido adoptada por la Organizacin Internacional de Estnda res (ISO) que define al robot industrial como: Manipulador multifuncional reprog ramable con varios grados de libertad, capaz de manipular materias, piezas, herr amientas o dispositivos especiales segn trayectorias variables programadas para r ealizar tareas diversas. Los manipuladores, conocidos tambin como brazos mecnicos son sistemas mecnicos multifuncionales, con un sencillo sistema de control de los cuales existen 3 tipos: a) Manual: cuando un operario controla directamente al manipulador b) Secuencia fija: cuando se repite de forma invariable el proceso d e trabajo preparado previamente c) Secuencia variable: se pueden modificar carac tersticas del ciclo de trabajo Una particularidad de estos robots es que mientras las funciones de trabajo sean sencillas y repetitivas son ampliamente usados. R obots de repeticin o aprendizaje Estos manipuladores se limitan a repetir una sec uencia de movimientos, previamente ejecutada por un operador, haciendo uso de un controlador manual o un dispositivo auxiliar. En la fase de enseanza el operador usa una pistola de programacin con diversos pulsadores, teclas, joysticks, o bie n utiliza un maniqu o desplaza directamente la mano del robot. Esta clase de robo ts son los mas conocidos hoy en da en los ambientes industriales y su tipo de pro gramacin que incorporan se conoce como gestual.

Planteamiento del Problema: En un inicio cuando surgi la idea del brazo mecnico pa ra poder asimilarlo a un robot manipulador, se contaba con la informacin sobre la DAQ 6063 de National Instruments para poder utilizar sus contadores de frecuenc ia para obtener salidas PWM las cuales seran tiles para la realizacin de proyecto, sin embargo investigando ms sobre la versatilidad de Labview pude encontrar infor macin sobre cmo integrar al microcontrolador Arduino con Labview y as poderlo utili zar como una DAQ. La configuracin del microcontrolador se menciona en el siguient e punto. LABVIEW + ARDUINO: LA INTELIGENCIA DE ARDUINO RADICA EN SU LENGUAJE DE PROGRAMACIN El NI LabVIEW Interface for Arduino Toolkit le ayuda a establecer interfaz fcilme nte con el microcontrolador Arduino usando LabVIEW. Con este juego de herramient as y LabVIEW, usted puede controlar y adquirir datos desde el microcontrolador A rduino. Una vez que la informacin est en LabVIEW, analcela usando los cientos de bi bliotecas integradas de LabVIEW, desarrolle algoritmos para controlar el hardwar e Arduino y presente sus conclusiones en un UI pulido. Un boceto para el microco ntrolador Arduino acta como un motor de E/S que se conecta con los VIs de LabVIEW a travs de una conexin serial. Esto le ayuda a mover informacin rpidamente desde pi nes Arduino a LabVIEW sin ajustar la comunicacin, la sincronizacin o incluso una s ola lnea de cdigo C. Al usar Open, Read/Write, Close en LabVIEW, usted puede tener acceso a las seales digitales, analgicas, moduladas por ancho de pulso, I2C y SPI del microcontrolador Arduino. Para aprender cmo opera la funcionalidad para que pueda modificar o extenderla, busque en los subVIs o abra el boceto Arduino. Not a: El microcontrolador Arduino debe estar conectado a la PC con LabVIEW a travs d e un enlace USB, serial, Bluetooth o XBee. Este juego de herramientas no hace po sible una operacin autnoma. A partir de la versin 2009 de Labview, National Instruments ofrece la posibilidad de integrar al microcontrolador Arduino a su ambiente de trabajo, lo cul nos pue da ayudar en muchos aspectos, claro est sin llegar a las grandes capacidades de l as DAQ propias de National Instruments, pero cmo realizar esta integracin?. A conti nuacin se presenta una breve gua. 1) Descargar y/ o tener instalado el software La bview 2009 o posteriores. 2) Contar con el IDE y el microcontrolador Arduino ( w ww.arduino.cc) 3) Descargar de la pagina de National Instruments el ToolKit para Arduino (http://sine.ni.com/nips/cds/view/p/lang/es/nid/209835) 4) Instalar el Toolkit para Arduino en nuestra computadora. 5) Programar Arduino con el firmwar e desarrollado por National Instruments mediante el IDE de Arduino, generalmente este Firmware se encuentra ubicado en la siguiente ruta:

C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\LabVIEW Interface for Arduino\Firmware 6) Posteriormente para que exista la conexin entre Labview y Arduino debemos de t ener los drivers NI-VISA en nuestra computadora, en caso de no tenerlos debemos descargarlos de la siguiente direccin http://www.ni.com/visa/ 7) Hecho esto debem os de verificar mediante el MAX de National Instruments en la seccin Devices & In terfaces que tengamos al microcontrolador Arduino en algn puerto de comunicacione s COM de la computadora, debiendo estar de la siguiente manera.

8) Ahora solo nos resta verificar que dentro de LabView tengas habilitados los V I de Arduino, listos para ser programados y realizar nuestros instrumentos virtu ales con la interfaz Arduino. ** NOTA IMPORTANTE: En algunas tarjetas de Arduino como en Arduino Duemilanove a l ejecutar el vi nos manda un error 5003 que indica que no se localiza Arduino, esto se resuelve de la siguiente manera: 1) Configurar el mismo BAUDRATE en el F irmware de Arduino, en el administrador de dispositivos de Windows y en Labview. 2) Cambiar la configuracin del vi Init de Arduino, como se muestra a continuacin

En el Case USB/Serial Debajo de la leyenda Wired, wait for Arduino to exit boot loa der como constante asignada al tiempo de espera, por default viene un valor de 100 0, ste debe ser sustituido por 2000 como en la figura anterior. En Resumen LABVIEW + ARDUINO: Fcil acceso para DIO Arduino, AI, PWM, I2C y SPI desde Labview Boceto del motor d e E/S para cargar en Arduino Ejemplos para tareas bsicas y sensores Inalmbricos co n Bluetooth o XBee Velocidades: USB enlazada (200 Hz) e inalmbrico (25 Hz) El boc eto abierto Arduino y los VIs del juego de herramientas le ayudan a personalizar la funcionalidad

Diseo del Brazo Mecnico: Para el diseo del brazo mecnico tom como base el siguiente dibujo: Cmo podemos observar, el brazo tendr 2 articulaciones, una en el hombro y otra en el codo, as como la capacidad de girar 180 sobre su propio eje, esto nos indica qu e nuestro brazo tendr dos grados de libertad, un grado por cada articulacin. El ma terial para la construccin debe ser ligero, por lo que decid utilizar hojas de PVC echas especialmente para su utilizacin en robtica, ya que es fcilmente manipulable para ser cortado y de costo accesible. Dimensiones: -Base 25 cm de dimetro -Prim er eslabn (vertical) 25 cm de largo por 8 de ancho -Segundo eslabn (del hombro al codo) 12.5 de largo por 8 de ancho. -Tercer eslabn (terminal) 10 cm de largo por 8 de ancho. ELECTRNICA DEL BRAZO: Como hemos mencionado el brazo contar con dos articulaciones , y una rotacin sobre su propio eje. En un principio se decidi utilizar un servomo tor para cada articulacin ( total 2 servomotores) y para el giro del brazo un mot or a pasos. En primera instancia tuve problemas para poder realizar la secuencia para accionar la lgica del motor a pasos unipolar ( 6 hilos) ya que no puedo ten er una bloque de Arduino en Labview que me permita hacer algo parecido a un corr imiento de bits,

despus de das de pruebas logr el funcionamiento del motor a pasos con una secuencia de medio paso. Pero surgi otro problema en el laboratorio no se contaba con una fuente de corriente variable, indispensable para el funcionamiento ya que el mot or al momento de tener carga demanda ms corriente y sta no poda ser suministrada po r el arreglo de transistores Darlington del circuito integrado ULN2003 y por tan to necesitaba de aumentar la corriente en la fuente, cosa que fue imposible de r ealizar al no tenerla en el laboratorio. Entre comillas este problema era fcil de solucionar, poner otro servomotor en lugar del motor a pasos, pero no contaba c on los recursos para poder adquirirlo, y despus de unos das logre comprarlo y as to do problema se solucion. Finalmente el brazo tiene tres servomotores para su movi miento uno por cada articulacin (2) y uno para el giro sobre su propio eje (1). A continuacin se muestra una imagen del brazo y sus articulaciones. Cmo funcionan los servomotores? Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede ser llevado a posiciones angulares especfic as al enviar una seal codificada. Con tal de que una seal codificada exista en la lnea de entrada, el servo mantendr la posicin angular del engranaje. Cuando la seal codificada cambia, la posicin angular de los piones cambia. En la prctica, se usan servos para posicionar superficies de control como el movimiento de palancas, pe queos ascensores y timones. Ellos tambin se usan en radio control, tteres, y por su puesto, en robots. Los Servos son sumamente tiles en robtica. Un servo, por consig uiente, no consume mucha energa. El servomotor tiene 3 cables de conexin externa. Uno es para alimentacin Vcc (+5volts), conexin a tierra GND y el alambre de contro l. El motor del servo tiene algunos circuitos de control y un potencimetro (una r esistencia variable) esta es conectada al eje central del servo motor. En la fig ura se puede observar al lado derecho del circuito. Este potencimetro permite a l a circuitera de control, supervisar el ngulo actual del servo motor. Si el eje est en el ngulo correcto, entonces el motor est apagado. Si el circuito chequea que el ngulo no es el correcto, el motor girar en la direccin adecuada hasta llegar al ngu lo correcto. El eje del servo es capaz de llegar alrededor de los 180 grados. No rmalmente, en algunos llega a los 210 grados, pero vara segn el fabricante. Un ser vo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. U n servo normal no es mecnicamente capaz de retornar a su lugar, si hay un mayor p eso que el sugerido por las especificaciones del fabricante. El cable de control se usa para comunicar el ngulo. El ngulo est determinado por la duracin de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulacin codificada de Pulsos. El servo espera ver un pulso cada 20 milisegundos (.02 segundos). La longitud del pulso

determinar los giros de motor. Un pulso de 1.5 ms., por ejemplo, har que el motor se torne a la posicin de 90 grados (llamado la posicin neutra). Si el pulso es men or de 1.5 ms., entonces el motor se acercar a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se acercar a los 180 grados. Servomotores utilizados en el brazo: 1 Servo marca Vigor de 1.5Kg de Torque para la articulacin que contiene al eslabn terminal. 1 Servo marca Vigor de 3Kg de Tor que para la articulacin que contiene al eslabn entre el hombro y el codo. 1 Servo marca Vigor de 3Kg de Torque para el giro completo del brazo sobre su propio eje . Conexin de los Servomotores a la tarjeta Arduino. En la siguiente imagen se mue stran las conexiones realizadas al microcontrolador Arduino para el control de l os servomotores, en sta imagen solo se muestran dos servomotores pero lo lgica de conexin del tercero es idntica.

Para la alimentacin de los servos (5V) podemos utilizar la propia del microcontro lador, por lo tanto el voltaje va al pin de 5V, la tierra el pin GND, y los cabl es de control de los servos a los pines elegidos por el usuario, en mi caso util ice el 2, 3 y 4. PANEL FRONTAL DE LABVIEW

Control de giro del brazo sobre su propio eje. El primer control que el usuario debe de personalizar el que indicar los grados de giro del brazo sobre su propio eje valores entre 0 y 180 grados y la velocidad de giro (valores entre 1 y 10) e n orden creciente stos valores son directamente proporcionales a la velocidad. Es to es 1 para lo mas lento posible y 10 para lo ms rpido.

ste control permitir al brazo girar desde el origen a los grados y velocidad selec cionados por el usuario y regresar al origen al llegar a los grados indicados. C ontroles de las articulaciones. Estos controles actan idnticamente para las articu laciones, el usuario ingresa el valor de los grados que desee que gire en los co ntroles numricos, mediante teclado o moviendo el KNOB respectivo, as cada servomot or se mover de acuerdo a lo indicado por el usuario mediante stos controles, entre 0 y 180 grados. El panel frontal cuenta con un botn de paro para detener la ejec ucin del programa. DIAGRAMA DE BLOQUES El primer paso para indicar a Labview que utilizaremos la in terfaz con el microcontrolador Arduino es el bloque Init, con el cul estaremos in iciando la comunicacin entre ambos, cabe mencionar que debemos agregar una consta nte o control para indicar el puerto de comunicaciones utilizado por Arduino, el cual se verifico previamente mediante MAX. Bloque Init El toolkit de Arduino para Labview nos da la posibilidad de trabajar directamente con servomotores, mediante bloques que son sencillos de trabajar. El siguiente bloque que se debe agregar para indicar el nmero de servos a utiliza r, en mi caso son tres, por lo que basta con agregar una constante para indicarl o. Ahora debemos de incializar los servomotores, ponerles un nombre y decir en q ue pines de Arduino estn conectados, para ello agregamos constantes en las termin ales ServoNumber y Pin respectivamente. Todo esto lo hacemos fuera del ciclo while q ue nos permitir ejecutar de manera constante el programa, como se muestra en la s iguiente imagen.

Dentro del ciclo while el siguiente paso es agregar los bloques de escritura al servo y lectura al servo, estos nos permitirn agregar los controles numricos para indicar los grados de giro al servomotor y posteriormente para que el Arduino ha ga la lectura de dicho valor y se veo reflejado directamente en el servo. Escritura en el servo: Lectura del servo: En el caso del servo que permite el giro del brazo sobre su propio eje no fue ta n directa la solucin para poder realizar su movimiento de forma automtica, para el lo fue necesario realizar la multiplicacin del valor de control numrico de velocid ad de giro por el nmero i que contiene la iteraciones del ciclo while y dividir ste resultado entre el valor de los grados que el usuario desee que el brazo gire. C on ste resultado final podemos indicar el bloque escribir en el servo, la velocidad y posicin del servo. Todo esto se muestra en la siguiente imagen y cabe menciona r que como si estuviramos utilizando una DAQ de National Instruments el clster de trabajo debe ser unido entre los bloques

del programa as como el clster de error, que nos indicar el posible error en caso d e encontrar algn fallo en la ejecucin del programa. Finalmente debemos indicar que el trabajo de Arduino ha terminado mediante el bl oque Close . El cul debe colocarse fuera el ciclo while y agregar el bloque de er ror simple para que Labview sea capaz de indicarnos de manera explcita el estado del clster de error.

OPERACIN AUTOMTICA DEL BRAZO En ste instrumento virtual vimos que solo uno de los s ervos opera de manera automtica, por lo que es completamente posible que los tres servos lo hagan de manera simultanea, y as tener un comportamiento automtico del brazo. Para ello basta con extrapolar la informacin proporcionada anteriormente s obre la operacin realizada para indicar al primer servo la velocidad y posicin de l , a los dems servos. Teniendo un diagrama de bloques similar al siguiente: CONCLUSIONES. Al terminar el proyecto los objetivos se cumplieron plenamente, du rante la realizacin se tuvieron ciertos problemas como lo del motor a pasos, la c onfiguracin del microcontrolador con Labview al tener el error 5003, pero despus d e investigar y a ensayo y error se pudieron solcuionar. Decid llevar a cabo el co ntrol del brazo con el microcontrolador Arduino y Labview ya que me pareci un exc elente complemento para la clase de Instrumentacin Virtual de la cul obtuve todos los conocimientos slidos de Labview para programar instrumentos virtuales, y no q uedarme solo con la DAQ utilizada en el laboratorio si no extender mis conocimie ntos a situaciones de la vida profesional diaria como lo es en nuestro campo el uso de microcontroladores. Adems fue una excelente opcin para poder trabajar desde mi hogar en el proyecto al no tener la necesidad de la DAQ y solo poder trabaja r en el laboratorio sujeto a ciertos horarios.

La versatilidad de Arduino me permiti poder resolver los problemas de manera senc illa y eficaz, adems de su tamao y costo. Finalmente puedo concluir que es un proy ecto muy completo ya que se lograron combinar conocimientos de Instrumentacin Vir tual, Automatizacin, Microcontroladores, Electrnica y Robtica de manipuladores. REFERENCIAS http://sine.ni.com/nips/cds/view/p/lang/es/nid/209835 http://www.you tube.com/watch?v=k6pC1dq40W4 http://www.todorobot.com.ar/documentos/servomotor.p df http://www.superrobotica.com/motores.htm http://www.electronicaestudio.com/ R obots Manipuladores Industriales, Iigo Madrigal Rafael, Ed. Alfaomega, Universida d Politnica de Catalunya