73987431 Brazo Robotico Labview Arduino

  • Upload
    it8nb

  • View
    63

  • Download
    0

Embed Size (px)

Citation preview

  • 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 la realizacin, el diseo, fabricacin e implementacin de un brazo

    manipulador a pequea escala. El objetivo primordial de este proyecto es la realizacin de un

    brazo mecnico para poder ser analizado, probado y estudiado en pequea escala para en un

    futuro y con mejoras pueda ser implementado en la industria.

    Introduccin

    Un robot industrial es un manipulador multifuncional reprogramable, capaz de mover materias,

    piezas, herramientas, o dispositivos especiales, segn trayectorias variables, programadas para

    realizar tareas diversas.

    Esta definicin, ligeramente modificada, ha sido adoptada por la Organizacin Internacional de

    Estndares (ISO) que define al robot industrial como: Manipulador multifuncional reprogramable

    con varios grados de libertad, capaz de manipular materias, piezas, herramientas o dispositivos

    especiales segn trayectorias variables programadas para realizar 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 de trabajo preparado

    previamente

    c) Secuencia variable: se pueden modificar caractersticas del ciclo de trabajo Una particularidad

    de estos robots es que mientras las funciones de trabajo sean sencillas y repetitivas son

    ampliamente usados.

    Robots de repeticin o aprendizaje

    Estos manipuladores se limitan a repetir una secuencia 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 bien utiliza un maniqu o desplaza directamente la mano del robot. Esta clase de robots son los

    mas conocidos hoy en da en los ambientes industriales y su tipo de programacin que incorporan

    se conoce como gestual.

  • Planteamiento del Problema:

    En un inicio cuando surgi la idea del brazo mecnico para poder asimilarlo a un robot

    manipulador, se contaba con la informacin sobre la DAQ 6063 de National Instruments para

    poder utilizar sus contadores de frecuencia para obtener salidas PWM las cuales seran tiles para

    la realizacin de proyecto, sin embargo investigando ms sobre la versatilidad de Labview pude

    encontrar informacin sobre cmo integrar al microcontrolador Arduino con Labview y as poderlo

    utilizar como una DAQ. La configuracin del microcontrolador se menciona en el siguiente 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 fcilmente con el microcontrolador Arduino

    usando LabVIEW.

    Con este juego de herramientas y LabVIEW, usted puede controlar y adquirir datos desde el microcontrolador Arduino.

    Una vez que la informacin est en LabVIEW, analcela usando los cientos de bibliotecas integradas de LabVIEW,

    desarrolle algoritmos para controlar el hardware Arduino y presente sus conclusiones en un UI pulido.

    Un boceto para el microcontrolador 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 pines Arduino a LabVIEW sin

    ajustar la comunicacin, la sincronizacin o incluso una sola 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.

    Nota: El microcontrolador Arduino debe estar conectado a la PC con LabVIEW a travs de un enlace USB, serial,

    Bluetooth o XBee. Este juego de herramientas no hace posible 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 pueda ayudar en muchos

    aspectos, claro est sin llegar a las grandes capacidades de las DAQ propias de National

    Instruments, pero cmo realizar esta integracin?. A continuacin se presenta una breve gua.

    1) Descargar y/ o tener instalado el software Labview 2009 o posteriores.

    2) Contar con el IDE y el microcontrolador Arduino ( www.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 firmware 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 tener 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 debemos de verificar mediante el MAX de National Instruments en la seccin

    Devices & Interfaces que tengamos al microcontrolador Arduino en algn puerto de

    comunicaciones COM de la computadora, debiendo estar de la siguiente manera.

  • 8) Ahora solo nos resta verificar que dentro de LabView tengas habilitados los VI de Arduino,

    listos para ser programados y realizar nuestros instrumentos virtuales con la interfaz

    Arduino.

    ** NOTA IMPORTANTE:

    En algunas tarjetas de Arduino como en Arduino Duemilanove al 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 Firmware 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 loader como

    constante asignada al tiempo de espera, por default viene un valor de 1000, 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 de E/S para cargar en Arduino

    Ejemplos para tareas bsicas y sensores

    Inalmbricos con Bluetooth o XBee

    Velocidades: USB enlazada (200 Hz) e inalmbrico (25 Hz)

    El boceto 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 que nuestro brazo tendr dos

    grados de libertad, un grado por cada articulacin.

    El material 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

    -Primer 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 servomotor para cada articulacin ( total 2 servomotores)

    y para el giro del brazo un motor 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 tener

    una bloque de Arduino en Labview que me permita hacer algo parecido a un corrimiento 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 motor al momento de tener

    carga demanda ms corriente y sta no poda ser suministrada por el arreglo de transistores

    Darlington del circuito integrado ULN2003 y por tanto necesitaba de aumentar la corriente en la

    fuente, cosa que fue imposible de realizar 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 con los recursos para poder adquirirlo, y despus de unos das logre

    comprarlo y as todo problema se solucion.

    Finalmente el brazo tiene tres servomotores para su movimiento 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 especficas 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, pequeos

    ascensores y timones. Ellos tambin se usan en radio control, tteres, y por supuesto, en robots.

    Los Servos son sumamente tiles en robtica. Un servo, por consiguiente, 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 control.

    El motor del servo tiene algunos circuitos de control y un potencimetro (una resistencia variable)

    esta es conectada al eje central del servo motor. En la figura se puede observar al lado derecho del

    circuito. Este potencimetro permite a la 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

    ngulo correcto. El eje del servo es capaz de llegar alrededor de los 180 grados. Normalmente, en

    algunos llega a los 210 grados, pero vara segn el fabricante. Un servo normal se usa para

    controlar un movimiento angular de entre 0 y 180 grados. Un servo normal no es mecnicamente

    capaz de retornar a su lugar, si hay un mayor peso 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 menor 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 Torque 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 muestran las conexiones realizadas al microcontrolador Arduino para el

    control de los 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 microcontrolador, por lo

    tanto el voltaje va al pin de 5V, la tierra el pin GND, y los cables de control de los servos a los pines

    elegidos por el usuario, en mi caso utilice 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) en

    orden creciente stos valores son directamente proporcionales a la velocidad. Esto 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 seleccionados por el

    usuario y regresar al origen al llegar a los grados indicados.

    Controles de las articulaciones.

    Estos controles actan idnticamente para las articulaciones, el usuario ingresa el valor de los

    grados que desee que gire en los controles numricos, mediante teclado o moviendo el KNOB

    respectivo, as cada servomotor 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 ejecucin del programa.

    DIAGRAMA DE BLOQUES

    El primer paso para indicar a Labview que utilizaremos la interfaz con el microcontrolador Arduino

    es el bloque Init, con el cul estaremos iniciando la comunicacin entre ambos, cabe mencionar

    que debemos agregar una constante 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 utilizar, en mi caso son

    tres, por lo que basta con agregar una constante para indicarlo.

    Ahora debemos de incializar los servomotores, ponerles un nombre y decir en que pines de

    Arduino estn conectados, para ello agregamos constantes en las terminales ServoNumber y

    Pin respectivamente.

    Todo esto lo hacemos fuera del ciclo while que nos permitir ejecutar de manera constante el

    programa, como se muestra en la siguiente 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 haga 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 tan directa la solucin

    para poder realizar su movimiento de forma automtica, para ello fue necesario realizar la

    multiplicacin del valor de control numrico de velocidad 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. Con 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 mencionar 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 de encontrar

    algn fallo en la ejecucin del programa.

    Finalmente debemos indicar que el trabajo de Arduino ha terminado mediante el bloque Close

    . El cul debe colocarse fuera el ciclo while y agregar el bloque de error 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 servos 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 sobre 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, durante la realizacin se tuvieron

    ciertos problemas como lo del motor a pasos, la configuracin del microcontrolador con Labview

    al tener el error 5003, pero despus de investigar y a ensayo y error se pudieron solcuionar.

    Decid llevar a cabo el control del brazo con el microcontrolador Arduino y Labview ya que me

    pareci un excelente complemento para la clase de Instrumentacin Virtual de la cul obtuve

    todos los conocimientos slidos de Labview para programar instrumentos virtuales, y no

    quedarme solo con la DAQ utilizada en el laboratorio si no extender mis conocimientos 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 trabajar en el laboratorio sujeto a ciertos

    horarios.

  • La versatilidad de Arduino me permiti poder resolver los problemas de manera sencilla y eficaz,

    adems de su tamao y costo.

    Finalmente puedo concluir que es un proyecto muy completo ya que se lograron combinar

    conocimientos de Instrumentacin Virtual, Automatizacin, Microcontroladores, Electrnica y

    Robtica de manipuladores.

    REFERENCIAS

    http://sine.ni.com/nips/cds/view/p/lang/es/nid/209835

    http://www.youtube.com/watch?v=k6pC1dq40W4

    http://www.todorobot.com.ar/documentos/servomotor.pdf

    http://www.superrobotica.com/motores.htm

    http://www.electronicaestudio.com/

    Robots Manipuladores Industriales, Iigo Madrigal Rafael, Ed. Alfaomega, Universidad Politnica

    de Catalunya