jueves, 9 de diciembre de 2010

PROYECTO BRAZO MECÁNICO


INTRODUCCIÓN:
En este proyecto implementaremos el diseño y programación de un brazo mecánico así como las etapas e interfaces de uso para controlarlo, en este caso he decidido hacer uso de material de desecho para fabricarlo, el diseño de dicho robot puede variar ya que puede haber muchos diseños y otros funcionamientos de los mecanismos, en la etapa de control usaremos la computadora; posteriormente explicaremos cómo será la etapa de control. Mientras que en la etapa de potencia usamos circuitos que nos permiten el funcionamiento, control y manejo de potencia de nuestro dispositivo que en este caso son cuatro motores de corriente continua, además se usa un servomotor el cual tendrá otro forma de controlarse, en este caso solo abarcaremos poco de ese tema que se piensa implementarlo con el uso de una gal 22v10.
Algunos materiales usados en la construcción de este brazo son:
*-2 motorreductores de corriente continua de alto torque.
*-1 motorreductor de corriente continua de bajo torque.
*-1 motorreductor para la base (este puede variar en su diseño)
*-1 servomotor
*-1 freno de bicicleta en desuso
*-Espárragos de ¼ “ (cuerdas sin fin)
*-2 Piezas de transmisión(hay que fabricarlas)
*-2 coples (hay que fabricarlos)
*-Tornillos de ¼ “ por 2”
*-Solera de aluminio
*-Cables
*-1 Placa de metal
*-1 resorte(opcional)
Nota: estos materiales como son de desecho no se le especifica las características ya que el diseño depende de los materiales que se quieran usar.

El diseño del brazo mecánico es el siguiente:

Este es un diseño realizado con una herramienta computacional de dibujo llamada google sketch-up pero a continuación mostrare una foto real del brazo mecánico:

En esta foto podemos apreciar el diseño real del brazo mecánico con el servo agregado, teniendo en cuenta estos planos podemos llevar a cabo este diseño siempre cuidando de la metrología que se le dé a este así como la distribución de sus componentes y dispositivos de trabajo que se van a utilizar en este caso nuestros cuatro motores de corriente continua y un servomotor.


En esta foto podemos ver que los motores que están encerrados en rojo corresponden a los motores de corriente continua mientras que el que está encerrado en amarillo corresponde al servomotor.

El mecanismo consta:

· *- Primeramente del motor de la base el cual es un reductor que nos permitirá girar la base con una libertad de 360°.

· *- Luego los motores que están al costado del brazo son motores con caja reductora de alto torque, donde su flecha esta acoplada a una cuerda sin fin, este cople fue previamente fabricado en el torno y se hizo a medida esta parte nos ofrece una libertad de movimiento de aproximadamente 60°.

· *-Tenemos el servomotor que en este caso nos servirá como muñeca del brazo su libertad de giro es de 180°.

*-Y con el mismo mecanismo de cuerda sin fin y cople tenemos otro motor de corriente continua con reductora, el cual nos permite cerrar la pinza de sujeción del robot, cabe mencionar que dicha pinza de sujeción fue hecha con un freno de bicicleta en desuso.

Pero también se preguntaran ¿Cómo es que se transmite el movimiento?

Bueno la respuesta está en la siguiente imagen:




En esta imagen tenemos la unión de las piezas mecánicas que estamos usando en este caso la que está señalada con la flecha azul mostramos la cuerda que está acoplada al motor de corriente continua y en el círculo rojo mostramos la pieza que une la estructura del robot con la cuerda, esta pieza tiene internamente un roscado que previamente se le hizo cuando se fabricó con un machuelo.

En base a esto tenemos que cuando estos motores giran pueden apretar o aflojar la cuerda causando que las partes del brazo se muevan hacia arriba, hacia abajo o en el caso de la pinza que la apriete o la afloje.

Nota: los materiales que se usaron son de desecho, los motores utilizados en la estructura del brazo pueden trabajar a un voltaje máximo de 24 volts, el motor de la pinza y el de la base a un voltaje máximo de 7 volts y el servomotor 5 volts.

ETAPA DE POTENCIA.

"La etapa de potencia consta de la fabricacion de 2 puentes h para dos motores publicados anteriormente en este mismo blog..."

ETAPA DE CONTROL

Ahora teniendo ya definida nuestra etapa de potencia vamos a controlar los motores usando nuestros circuitos, en este caso para mover el puente h necesitaremos de pulsos digitales, los cuales los vamos a obtener con el puerto paralelo de la computadora, para ello vamos a hacer uso de nuevos materiales, además de contar con una interfaz de programación la cual asignara una salida hacia el puerto paralelo de la computadora.

Por lo cual definiremos el puerto paralelo:

Un puerto paralelo es una interfaz entre una computadora y un periférico, cuya principal característica es que los bits de datos viajan juntos, enviando un paquete de byte a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. Mediante el puerto paralelo podemos controlar también periféricos como focos, motores entre otros dispositivos, adecuados para automatización.

El cable paralelo es el conector físico entre el puerto paralelo y el dispositivo periférico. En un puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por caminos distintos.

En contraposición al puerto paralelo está el puerto serie, que envía los datos bit a bit por el mismo hilo.

Todo sistema para el procesamiento de datos se encuentra comunicado con los dispositivos externos a través de los puertos. La arquitectura del procesador 8086 determina una cantidad de hasta 65,536 puertos, sin embargo solo se usan 1024. Las instrucciones que utiliza el CPU para comunicarse con los puertos son IN y OUT. La primera permite transferir un valor desde un puerto específico hasta el registro

AX o AL y la segunda en viceversa. Siempre se usa el registro AX (acumulador) en las operaciones con los puertos (ya sea que la operación sea de lectura o escritura).

También el BIOS permite usar todos los puertos paralelos, LPT1, LPT2, y LPT3. Para usar el servicio de estos puertos, se coloca el número de función dentro del registro AH y el código correspondiente al puerto paralelo dentro del registro DX. El valor 0 corresponde al LPT1, 1 al LPT2, y 2 al LPT3.

El puerto paralelo consta de 8 líneas de salida, que no pueden ser seteados como entradas, además de 5 entradas de control estando uno de estos invertido, y 4 salidas estando tres invertidas las cuales son de colector abierto por lo cual pueden manejar mayor corriente que las demás terminales (estas 4 salidas pueden ser utilizadas también como entradas por lo que usted puede tener hasta 9 terminales de entrada si las combina con las entradas de control).

La especificación de los pines se muestra a continuación.

Pines del puerto paralelo.

· Registro de datos (8 pines de salida para los bits de datos (D0 – D7 Direcciones: 378))

· Registro de estado (5 pines de entrada (uno invertido) para acceder al estado del puerto.(S3 – S7 Direcciones-:379))

· Registro de control (4 pines de salida o entrada (tres invertidos) para acceder al control del puerto. (C0 – C3 Direcciones: 37A))


En este caso usaremos los 8 bits de salida de nuestro puerto paralelo ya que vamos a controlar 4 motores de corriente continua y cada uno necesita de 2 bits para rotar y poder invertir su rotación.

A continuación se mostraran algunos materiales usados para realizar esta etapa:

· *.Conector macho db-25

· *- Cable plano

· *- 8 Leds



Este material fue usado de la siguiente manera:

El cable plano es ponchado al conector db-25 macho asegurándose que las patas de salida hagan contacto, los leds los conectamos hacia las patas de salida y la terminal negativa hacia cualquiera de las patas de tierra de nuestro puerto de esta forma cuando nuestro programa haga que las salidas se activen los leds se encenderán



Esto lo hacemos para asegurarnos que los bits de salida realmente se estén mandando del puerto hacia nuestro circuito de control, basta ahora recordar que el puente h se maneja por medio de pulsos digitales, estos pulsos son los que se van a mandar desde el puerto paralelo y la manera de enviarlos se hará mediante un programa que nos permita enviarlos, en este caso usaremos una interfaz sencilla llamada Visual Basic 6.0.

PROGRAMACIÓN DE LAS SALIDAS DEL PUERTO.

Haciendo la programación de nuestras salidas podemos controlar nuestro dispositivo final que en este caso es el robot controlando los motores haciendo el uso de pulsos digitales enviados desde la PC usando una interfaz de programación por lo cual definiremos la programación que se utilizara que en este caso es la programación orientada a eventos.

Programación.

La programación orientada a eventos me permite generar programas los cuales responden a una acción que el usuario ejecuta sobre un objeto en la pantalla, esto lo podemos apreciar mejor con el siguiente diagrama.

Aquí tenemos que un evento se va a ejecutar sobre un objeto y este objeto nos responderá con un método.

Antes de programar algo nos debemos de hacer dos preguntas:

1.- ¿Qué quiero que pase?

2.- ¿Cuándo quiero que pase?

En este caso la respuesta de la primer pregunta será la salida de nuestro puerto y la respuesta de la segunda será cuando ejecute una acción sobre un objeto en este caso serán los botones de nuestra interfaz así es como funciona la programación orientada a eventos.


nota: antes de definir nuestra interfaz de programación que en este caso es la herramienta Visual Basic 6.0 necesitamos un archivo que debe ser alojado en la carpeta: C:\Windows\system y ademas en el codio hay que declarar en General Declarations el archivo txt io-readme, este archivo lo podran descargar desde aqui:



Interfaz de usuario.




En esta forma se crearon los botones con las diferentes acciones que se van a ejecutar sobre ellos lo que nos permitirá controlar nuestro robot con los pulsos digitales mandados desde el puerto paralelo que a su vez serán mandados ejecutando una acción sobre estos botones en este caso basta con dar un simple click a estos.

El código para mandar estos bits hacia el puerto es el siguiente:



Con la instrucción portOut (&H378), (No de bit) asignada a cada botón con la dirección H378 hacemos referencia a la dirección del puerto paralelo mientras que el número que está a continuación corresponde al número de bit que se le va a asignar.

Nótese que las salidas las insertamos en el programa de manera decimal pero la salida hacia el puerto lo hará en forma binaria además que podemos sumar dichos números para obtener otro bit que nos permitirá obtener 2 tareas a la vez pero a la vez existen combinaciones no válidas.

Aquí en esta tabla podemos ver el número de bit así como valor decimal, los unos nos indican un bit encendido que a su vez tendrá asignado una entrada hacia el puente h para así poder mover un motor, en este caso hay combinaciones no validas que son el resultado de la suma de dos bits un ejemplo de una combinación no valida es aquella que tiene como fin mandar 2 bits que se dirijan al puente h pero que estos 2 bits me indiquen girar un motor a ambos lados al mismo tiempo esto sucedería por ejemplo si mandamos un 3, este tipo de situaciones las habíamos indicado antes en el anexo del circuito puente h.

Nota: El 255 solo hay que usarlo antes de conectar el puente h, solo sirve para probar que todos los bits de salida funcionen correctamente.

Nota2: en el servomotor ahora no se considerara su control pero posteriormente se implementara una forma de control. sigan este blog y posteriormente se hara dicha implementacion
por lo pronto es todo gracias...!

FUNCIONAMIENTO DEL ROBOT:


ESTE DOCUMENTO LO PODRAS VISUALIZAR DESDE AQUI MISMO:




REFERENCIAS:

http://mecatronica.li2.uchile.cl/Manual.pdf

http://mimosa.pntic.mec.es/~flarrosa/puerto.pdf

http://www.forosdeelectronica.com/f26/usar-puerto-paralelo-c-visual-basic-lab-view-2259/

http://antiguo.itson.mx/die/eromero/biblioelec/blabsd2/p6_sd2_p02.pdf

http://www.robotsdebasura.com.mx/content/section/5/26/