Vous êtes sur la page 1sur 30

UNIVERSIDAD NACIONAL AUTONMA DE MXICOFACULTAD DE

INGENIERADEPARTAMENTO DE CONTROL Y
ROBTICAINSTRUMENTACIN VIRTUALPROYECTO FINAL:

BRAZO MCANICO CON LABVIEW Y EL


MICROCONTROLADOR ARDUINO
Nombre: RAMIREZ CHAVARRA ROBERTO GIOVANNIProf.: ING. CSAR
CASTRO RENDNSEMESTRE 2012-1

Objetivo:Realizar el control de un brazo mecnico con movimiento por


servomotores mediante uninstrumento 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 brazomanipulador a pequea escala. El objetivo
primordial de este proyecto es la realizacin de unbrazo mecnico para
poder ser analizado, probado y estudiado en pequea escala para en
unfuturo y con mejoras pueda ser implementado en la
industria.IntroduccinUn robot industrial es un manipulador multifuncional
reprogramable, capaz de mover materias,piezas, herramientas, o
dispositivos especiales, segn trayectorias variables, programadas
pararealizar tareas diversas.Esta definicin, ligeramente modificada, ha
sido adoptada por la Organizacin Internacional deEstndares (ISO) que
define al robot industrial como: Manipulador multifuncional

reprogramablecon varios grados de libertad, capaz de manipular materias,


piezas, herramientas o dispositivosespeciales segn trayectorias variables
programadas para realizar tareas diversas.Los manipuladores, conocidos
tambin como brazos mecnicos son sistemas mecnicosmultifuncionales,
con un sencillo sistema de control de los cuales existen 3 tipos:a) Manual:
cuando un operario controla directamente al manipuladorb) Secuencia fija:
cuando se repite de forma invariable el proceso de trabajo
preparadopreviamentec) Secuencia variable: se pueden modificar
caractersticas del ciclo de trabajo Una particularidadde estos robots es
que mientras las funciones de trabajo sean sencillas y repetitivas
sonampliamente usados.Robots de repeticin o aprendizajeEstos
manipuladores se limitan a repetir una secuencia de movimientos,
previamente ejecutadapor un operador, haciendo uso de un controlador
manual o un dispositivo auxiliar. En la fase deenseanza 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 losmas conocidos hoy en da en los ambientes industriales y su
tipo de programacin que incorporanse conoce como gestual.
Planteamiento del Problema:
En un inicio cuando surgi la idea del brazo mecnico para poder asimilarlo a
un robotmanipulador, se contaba con la informacin sobre la DAQ 6063 de
National Instruments parapoder utilizar sus contadores de frecuencia para
obtener salidas PWM las cuales seran tiles parala realizacin de proyecto,
sin embargo investigando ms sobre la versatilidad de Labview
pudeencontrar informacin sobre cmo integrar al microcontrolador
Arduino con Labview y as poderloutilizar 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 Arduinousando 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 atravs de una conexin serial. Esto le ayuda a mover informacin
rpidamente desde pines Arduino a LabVIEW sinajustar la comunicacin, la
sincronizacin o incluso una sola lnea de cdigo C. Al usar Open, Read/Write, Close
enLabVIEW, usted puede tener acceso a las seales digitales, analgicas, moduladas
por ancho de pulso, I2C y SPI delmicrocontrolador Arduino. Para aprender cmo opera
la funcionalidad para que pueda modificar o extenderla, busqueen 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 almicrocontrolador Arduino a su ambiente de
trabajo, lo cul nos pueda ayudar en muchosaspectos, claro est sin llegar a
las grandes capacidades de las DAQ propias de NationalInstruments, 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 IDEde Arduino, generalmente este Firmware se encuentra
ubicado en la siguiente ruta:

C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\LabVIEW


Interface forArduino\Firmware
6)
Posteriormente para que exista la conexin entre Labview y Arduino
debemos de tener losdrivers NI-VISA en nuestra computadora, en caso de
no tenerlos debemos descargarlos dela siguiente
direccin http://www.ni.com/visa/
7)
Hecho esto debemos de verificar mediante el MAX de National
Instruments en la seccinDevices & Interfaces que tengamos al
microcontrolador Arduino en algn puerto decomunicaciones 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 interfazArduino.
** NOTA IMPORTANTE:

En algunas tarjetas de Arduino como en Arduino Duemilanove al ejecutar el


vi nos manda un error5003 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 dedispositivos 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

comoconstante asignada al tiempo de espera, por default viene un valor de

1000

, ste debe sersustituido 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 dosgrados de libertad, un grado por cada
articulacin.El material para la construccin debe ser ligero, por lo que
decid utilizar hojas de PVC echasespecialmente para su utilizacin en
robtica, ya que es fcilmente manipulable para ser cortado yde 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 propioeje. 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

realizarla secuencia para accionar la lgica del motor a pasos unipolar ( 6


hilos) ya que no puedo teneruna 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 demedio paso. Pero surgi otro problema en el laboratorio no
se contaba con una fuente decorriente variable, indispensable para el
funcionamiento ya que el motor al momento de tenercarga demanda ms
corriente y sta no poda ser suministrada por el arreglo de
transistoresDarlington del circuito integrado ULN2003 y por tanto
necesitaba de aumentar la corriente en lafuente, 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 apasos, pero
no contaba con los recursos para poder adquirirlo, y despus de unos das
logrecomprarlo y as todo problema se solucion.Finalmente el brazo tiene
tres servomotores para su movimiento uno por cada articulacin (2) yuno

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 serllevado a posiciones angulares especficas al
enviar una seal codificada. Con tal de que una sealcodificada 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, seusan servos para posicionar superficies de
control como el movimiento de palancas, pequeosascensores 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 muchaenerga. 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
delcircuito. Este potencimetro permite a la circuitera de control,
supervisar el ngulo actual delservo motor. Si el eje est en el ngulo
correcto, entonces el motor est apagado. Si el circuitochequea que el
ngulo no es el correcto, el motor girar en la direccin adecuada hasta
llegar alngulo correcto. El eje del servo es capaz de llegar alrededor de los
180 grados. Normalmente, enalgunos llega a los 210 grados, pero vara segn
el fabricante. Un servo normal se usa paracontrolar un movimiento angular
de entre 0 y 180 grados. Un servo normal no es mecnicamentecapaz de
retornar a su lugar, si hay un mayor peso que el sugerido por las
especificaciones delfabricante.El cable de control se usa para comunicar el
ngulo. El ngulo est determinado por la duracin deun pulso que se aplica
al alambre de control. A esto se le llama PCM Modulacin codificada
dePulsos. 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 laposicin de 90 grados (llamado la posicin neutra). Si el
pulso es menor de 1.5 ms., entonces elmotor se acercar a los 0 grados. Si el
pulso es mayor de 1.5ms, el eje se acercar a los 180grados.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 elhombro 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 elcontrol de los servomotores, en sta
imagen solo se muestran dos servomotores pero lo lgica deconexin del
tercero es idntica.

Para la alimentacin de los servos (5V) podemos utilizar la propia del


microcontrolador, por lotanto el voltaje va al pin de 5V, la tierra el pin GND,
y los cables de control de los servos a los pineselegidos 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
brazosobre su propio eje valores entre 0 y 180 grados y la velocidad de giro
(valores entre 1 y 10) enorden creciente stos valores son directamente
proporcionales a la velocidad. Esto es 1 para lomas lento posible y 10 para lo
ms rpido.

ste control permitir al brazo girar desde el origen a los grados y


velocidad seleccionados por elusuario 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
losgrados que desee que gire en los controles numricos, mediante teclado o
moviendo el KNOBrespectivo, as cada servomotor se mover de acuerdo a
lo indicado por el usuario mediante stoscontroles, 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 Arduinoes el bloque Init, con el cul estaremos iniciando la
comunicacin entre ambos, cabe mencionarque debemos agregar una
constante o control para indicar el puerto de comunicaciones utilizadopor
Arduino, el cual se verifico previamente mediante MAX.Bloque InitEl toolkit
de Arduino para Labview nos da la posibilidad de trabajar directamente
conservomotores, 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 sontres, por lo que basta con agregar una constante para
indicarlo.Ahora debemos de incializar los servomotores, ponerles un nombre
y decir en que pines deArduino estn conectados, para ello agregamos
constantes en las terminales

ServoNumber

Pin

respectivamente.Todo esto lo hacemos fuera del ciclo while que nos


permitir ejecutar de manera constante elprograma, como se muestra en la
siguiente imagen.
Dentro del ciclo while el siguiente paso es agregar los bloques de escritura
al servo y lectura alservo, estos nos permitirn agregar los controles
numricos para indicar los grados de giro alservomotor y posteriormente
para que el Arduino haga la lectura de dicho valor y se veo
reflejadodirectamente 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 solucinpara poder realizar su movimiento de forma
automtica, para ello fue necesario realizar lamultiplicacin del valor de
control numrico de velocidad de giro por el nmero

que contienela iteraciones del ciclo while y dividir ste resultado entre el
valor de los grados que el usuariodesee 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 estuviramosutilizando 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 encontraralgn 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 queLabview 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 loque es completamente posible que los tres servos
lo hagan de manera simultanea, y as tener uncomportamiento automtico
del brazo.Para ello basta con extrapolar la informacin proporcionada
anteriormente sobre la operacinrealizada 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 tuvieronciertos problemas como lo del motor a pasos, la
configuracin del microcontrolador con Labviewal 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 mepareci un excelente complemento para la clase de Instrumentacin
Virtual de la cul obtuvetodos los conocimientos slidos de Labview para
programar instrumentos virtuales, y noquedarme solo con la DAQ utilizada
en el laboratorio si no extender mis conocimientos asituaciones de la vida
profesional diaria como lo es en nuestro campo el uso demicrocontroladores.
Adems fue una excelente opcin para poder trabajar desde mi hogar en
elproyecto al no tener la necesidad de la DAQ y solo poder trabajar en el
laboratorio sujeto a ciertoshorarios.

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
combinarconocimientos de Instrumentacin Virtual, Automatizacin,
Microcontroladores, Electrnica yRobtica de
manipuladores.REFERENCIAShttp://sine.ni.com/nips/cds/view/p/lang/es/n
id/209835 http://www.youtube.com/watch?v=k6pC1dq40W4 http://www.to
dorobot.com.ar/documentos/servomotor.pdf http://www.superrobotica.co

m/motores.htm http://www.electronicaestudio.com/ Robots Manipuladores


Industriales, Iigo Madrigal Rafael, Ed. Alfaomega, Universidad
Politnicade Catalunya

Vous aimerez peut-être aussi