Descargar

Brazo robótico con banda transportadora (Presentación PowerPoint)

Enviado por Pablo Turmero


    edu.red INTRODUCCION Implementar el siguiente proyecto utilizamos Lego Mindstorms NXT. Con Matlab desarrollamos la programación del Brazo Robótico. El manejo de sensores, servomotores y microcontroladores complementamos el proyecto.

    edu.red DESCRIPCION DEL PROYECTO El proyecto consiste en la construcción de una banda transportadora con brazo robótico. En la banda circularán recipientes llenados a diferentes niveles de producto. Estos niveles serán medidos con el sensor de ultrasonido. Se utilizan dos sensores infrarrojos en la banda.

    edu.red DESCRIPCION DEL PROYECTO El brazo robótico clasificará los recipientes según el nivel medido. El brazo tendrá 2 grados de libertad, utilizando 2 servomotores para mover la base de brazo y un motor que controlará el gipper o garra.

    edu.red DESCRIPCION DEL PROYECTO Contará con un sensor de luz para detectar la presencia de los recipientes. La banda será controlada por un microcontrolador, el que tendrá como dispositivo de entrada dos sensores de luz infrarrojo y como dispositivo de salida un servomotor.

    edu.red APLICACIONES: Mejorar la calidad de una línea de producción en una industria envasadora de bebidas. Recipientes que no cumplen con el nivel son retornados para que cumplan los requerimientos.

    edu.red Fundamento Teórico Para el desarrollo del Proyecto se usaron varias herramientas de Hardware y Software. El Kit de Lego Mindstorms NXT tiene su software de programación, que funciona en base a LabView. En nuestro caso usaremos herramientas de programación alternativas, de esta forma trabajaremos un en entorno de diseño e ingeniería.

    edu.red Herramientas de Hardware utilizadas. En esta sección se detallan los equipos utilizados para la construcción del brazo robótico y la banda transportadora . Para el primero se uso Lego Mindstorms . Para la segunda parte se usó materiales y componentes apropiados para la implementación de prototipos electrónicos.

    edu.red Lego Mindstroms Lego Mindstroms es un juego de robótica fabricado por la empresa Lego, el cual posee elementos básicos de las teorías robóticas. Lego Mindstorms puede ser usado para construir un modelo de sistema integrado con partes electromecánicas controladas por computador.

    edu.red Lego Mindstroms NXT El bloque NXT es una versión mejorada a partir de Lego Mindstorms RCX . Debido a la comercialización de los bloques programables, Lego vendió la generación NXT en dos versiones: Versión Educativa y Comercial.

    edu.red Lego Mindstroms Microcontrolador El microcontrolador que posee es un ARM7 de 32 bits, que incluye 256 Kb de memoria Flash y 64 Kb de RAM externa. Posee mayores capacidades de ejecución de programas, evitando que los procesos inherentes de varios paquetes de datos colisionen y produzcan errores en la ejecución del software.

    edu.red Lego Mindstroms Entradas y Salidas En el bloque de NXT existen cuatro entradas para los sensores, y tres entradas para los servo motores. Las salidas de energía aún son tres localizadas en la parte posterior del bloque, haciendo que la conexión para los motores y partes móviles sean de más fácil acceso.

    edu.red Lego Mindstroms Comunicaciones El bloque de NXT puede comunicarse con el computador mediante la interfaz de USB que posee. Conectividad con Bluetooth no tan sólo permite conectarse con otros bloques, sino también con computadores, palms, teléfonos móviles, y otros aparatos con esta interfaz de comunicación.

    edu.red Lego Mindstroms Sensor de Luz de Lego Mindstorms El sensor de luz es sin duda uno de los más útiles e interesantes de todo el kit del Lego Mindstorms NXT. Este sensor le permite a nuestro robot distinguir entre luz y oscuridad.

    edu.red Lego Mindstroms Sensor de Ultrasonido Los ultrasonidos son antes que nada sonido, exactamente igual que los que oímos normalmente, salvo que tienen una frecuencia mayor que la máxima audible por el oído humano.

    edu.red Lego Mindstroms Sensor de Tacto El sensor de contacto permite detectar si el bloque que lo posee ha colisionado o no con algún objeto que se encuentre en su trayectoria inmediata.

    edu.red Lego Mindstroms Sensor de Sonido El sensor solo detecta la “cantidad” de sonido. Este sensor lee el sonido ambiental y nos regresa una medida de 0 a 100%. Estos valores corresponden mas o menos a: 4-5% Una casa silenciosa. 5-10% Alguien hablando lejos. 10-30% Es una conversación cerca del sensor o música en un volumen normal. 30-100% Gente gritando o música a volumen alto.

    edu.red Lego Mindstroms Servomotor de Lego Mindstorms NXT Los motores de la serie Lego Robotics han sido de tres tipos, los cuales son independientes al bloque. Entrega movilidad al sistema dinámico según las necesidades de construcción. Los servos además de incluir un motor eléctrico convencional también incluyen un sensor de posición. Fig. 2.1.7 Diseño interno del servomotor de lego NXT

    edu.red Equipos adicionales utilizados Pic16F628A Es un microcontrolador CMOS FLASH de 8 bits Capaz de operar con frecuencias de reloj hasta de 20 MHz . Posee internamente un oscilador de 4 MHz.

    edu.red Equipos adicionales utilizados Servomotor Hitec HS311 Los servos son un tipo especial de motor de D.C. que se caracterizan por su capacidad para posicionarse de forma inmediata en cualquier posición dentro de su intervalo de operación. El servomotor espera un tren de pulsos que se corresponde con el movimiento a realizar.

    edu.red Equipos adicionales utilizados Sensor de luz Infrarrojo Están diseñados especialmente para la detección, clasificación y posicionado de objetos; la detección de formas, colores diferencias de superficie, incluso bajo condiciones ambientales extremas. En su interior contiene dos elementos, uno es un diodo emisor de luz infrarroja y el otro un fototransistor, este último mide la cantidad de luz infrarroja en algún objeto, esta medición depende de la claridad del objeto a sensar.

    edu.red Herramientas de Software Programación de Lego Mindstorms NXT La programación del Lego Mindstorms se realiza mediante el software que se adjunta en el empaque original, el cual trae el firmware del robot y un programa que emula un árbol de decisiones. Una de las principales características de este software de programación, es su entorno visual, el cual emula la construcción por bloques, dando la posibilidad a cualquier usuario aprendiz acostumbrarse rápidamente a la programación de bloque.

    edu.red Herramientas de Software Matlab y Simulink Es un ambiente de cómputo, de alta ejecución numérica y de visualización. MATLAB integra el análisis numérico, calculo de matrices, procesamiento de señales, diseño de sistemas de potencia, Mapeo y tratamiento de imágenes, instrumentación y adquisición de datos. Simulink es una herramienta para el modelaje, análisis y simulación de una amplia variedad de sistemas físicos y matemáticos.

    edu.red Herramientas de Software Cygwin Nos servirá para ejecutar instrucciones en un entorno similar LINUX, es básicamente un simulador de UNIX que ejecuta los programas GNU ARM y Nexttool. GNU ARM Es un compilador que convierte los archivos creados desde matlab (archivos *.m) o cualquier otro programador que use lenguaje C o C++. NXTOSEK Es una plataforma de código abierto para LEGO MINDSTORMS NXT.

    edu.red Herramientas de Software RWTHMindstormNXT y Embedded Coder Robot NXT Es un toolbox que ha sido desarrollado para el control de LEGO MINDSTORMS robots NXT con MATLAB a través de una conexión inalámbrica Bluetooth o vía USB. Embedded Coder Robot NXT es la librería que proporciona los bloques de Mindstorm NXT para desarrollar un modelo en Simulink.

    edu.red Herramientas de Software MikroBasic Es una herramienta de desarrollo que se permite realizar proyectos para microcontroladores PIC. Proporciona una solución fácil para aplicaciones, sin comprometer el rendimiento o el control, desarrolla rápidamente y desplegar aplicaciones complejas.

    edu.red Herramientas de Software Proteus Es un paquete de software para el diseño de circuitos electrónicos que incluye captura de los esquemas, simulación analógica y digital combinadas y diseño de circuitos impresos. El paquete está compuesto por dos programas: ISIS, para la captura y simulación de circuitos; y ARES, para el diseño de PCB’s.

    edu.red Herramientas de Software Programador de Microcontroladores PIC Kit 2 El PICkit 2 es un programador fabricado por Microchip para programar toda su línea de microcontroladores. El programador fue diseñado para programar los microcontroladores en circuito (ICSP) lo que significa que puede programar los microcontro-ladores montados directamente en tu aplicación y/o protoboard.

    edu.red Implementación del proyecto El desarrollo del proyecto consistió en 2 etapas, una de ellas el la construcción de un prototipo utilizando las herramientas de Lego Mindstorms, La segunda etapa consiste en la mejora del prototipo, pero esta vez utilizando las herramientas de software de Matlab y Simulink, con el fin de obtener mediciones en tiempo real de los sensores, visualizar estos valores en una escala de tiempo y tomar decisiones desde el entorno de Matlab.

    edu.red Prototipo Inicial Utilizando el principio del llenado de botellas de cola, diseñamos un robot capaz de seleccionar botellas completamente llenas de otras que no contengan el nivel exacto de líquido, esto puede ser utilizado en el control de calidad para un proceso de llenado de botellas.

    edu.red Prototipo Inicial Construcción La primera versión de la banda consistía en un brazo selector de envases con diferentes niveles de líquido, estos niveles eran representados franjas de colores en unos recipientes transparentes, es decir el sensor de luz se lo utilizó para medir estos dos colores (banco y negro). Fig. 3.1.1 Pruebas de lectura utilizando sensor infrarrojo

    edu.red Prototipo Inicial El brazo robótico solo tiene 2 motores, uno controla el gripper y el otro mueve el eje del brazo, mientras que la banda transportadora es controlada por un tercer motor Fig. 3.1.2 Garra controlada por servomotor

    edu.red Prototipo Inicial Programación: Fig. 3.1.3 Programación en Lego Mindstorms de la banda Transportadora

    edu.red Prototipo Inicial Creamos un bloque llamado SENSOR_LUZ, aquí verificamos el nivel de líquido en la botella, si el nivel es el requerido, simplemente la banda continua girando, en caso de detectar un nivel inferior, activamos en brazo robótico Fig. 3.1.4 Programación en Lego Mindstorms del Brazo Robótico

    edu.red Prototipo Inicial

    edu.red Proyecto Final Luego de la construcción y programación del prototipo, notamos ciertos errores en el diseño del mismo, ya que el sensor de ultrasonido lo utilizábamos para medir presencia de objetos y no para su función básica que es medir distancias, entonces se decidió hacer un cambie en a ubicación de los sensores. Fig. 3.2.1: Esquema, ubicación de los sensores y motores.

    edu.red Diseño electrónico del controlador de la Banda. Circuito del Sensor de luz Para obtener señales analógicas en el microcontrolador, proveniente de los sensores de luz, utilizaremos un amplificador operacional, para nuestro caso elegimos el LM324, el cual contiene 4 Opams (Amplificadores Operacionales) en su interior. Fig. 3.4.1: Circuito acondicionador de un sensor infrarrojo.

    edu.red Diseño electrónico del controlador de la Banda. Circuito del Microcontrolador Para controlar la banda utilizamos el PIC16F628A, al tener muy pocas entradas y salidas que manejar se eligió este microcontrolador, también por su facilidad al momento de armar el circuito ya que este PIC posee un oscilador interno. Fig. 3.4.2: Circuito controlador de la Banda transportadora

    edu.red Código de programa del microcontrolador program servomotor dim in as byte dim Vel as byte dim cont1 as word Main: INTCON = 0 TRISA = 1 TRISB = 0 TRISB.0 = 1 TRISB.1 = 1 PORTA = 0 PORTB = 0 PORTA = 0 PORTB.4 = 1 Delay_ms(500) PORTB.4 = 0 Delay_ms(500) PORTB.4 = 1 Delay_ms(500) PORTB.4 = 0 Delay_ms(500) PORTB.4 = 1 Delay_ms(500) PORTB.4 = 0 Delay_ms(500) While true if (PORTB.0 = 0 ) then PORTB.4 = 1 PORTB.2 = 1 Delay_us(900) PORTB.2 = 0 Delay_us(1100) if (PORTB.1 = 1 ) then PORTB.5 = 1 PORTB.2 = 0 Delay_ms(2000) for cont1 = 0 to 700 PORTB.2 = 1 Delay_us(900) PORTB.2 = 0 Delay_us(1100) next cont1 else PORTB.5 = 0 end if else PORTB.4 = 0 Delay_ms(4000) PORTB.5 = 0 end if wend PORTB.2 = 0 PORTB.4 = 1 Delay_ms(2000) PORTB.4 = 0 End.

    edu.red  PROGRAMACION EN MATLAB DIAGRAMA DE FLUJO

    edu.red ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA