Proyecto Microelectronica en Rf

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA E

Views 72 Downloads 1 File size 4MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

MICROELECTRÓNICA EN RF “DISEÑO E IMPLEMENTACIÓN DE UN BRAZO ROBÓTICO CONTROLADO POR ACCESO REMOTO”

Docente: - Ing. Humberto Salazar Alumno: - Escalante Quispe, Leonardo Rommel

2012

- Maldonado Tito, Kevin Alexis 20122382 Arequipa - 2016

DISEÑO Y CREACIÓN DE UN BRAZO ROBÓTICO PARA EL TRASLADO DE SUSTANCIAS PELIGROSAS RESUMEN Para el proyecto integrado se ha decidido construir un brazo robótico, que traslade un tubo de ensayos desde una base hacia una gradilla especial, formado por piezas de MDF, mapresa y servo motores. Para el control del brazo se realizará una interfaz con una aplicación android, la cual, se comunicará con el robot vía bluetooth, siendo los que reciban e interpreten las instrucciones: el módulo bluetooth HC-06 y el Arduino UNO respectivamente. Para desarrollar la aplicación android se utilizará la herramienta AppInventor, y para el programa que va a interpretar y a ejecutar las instrucciones emitidas por la app, se utilizará el entorno de programación que proporciona el software de arduino.

INTRODUCCIÓN Los brazos robóticos son creados con el fin de realizar tareas repetitivas, difíciles, o peligrosas; la mayoría de usos se dan a nivel industrial donde ejecutan tareas programadas para la producción en una compañía. Aunque en algunos casos se crean con fines médicos. Muchos de los procesos de producción llevan un nivel de peligro en algunas tareas, como lo son la manipulación de sustancias químicas corrosivas o el manejo de elementos peligrosos como materia prima para la elaboración de fertilizantes, plaguicidas, combustibles y productos químicos (ácido sulfúrico, soda caustica, entre otros), y de haber un error humano traería consecuencias graves, por esta razón el proyecto es diseñar y crear un prototipo de un brazo robótico, con el fin de que pueda llegar a ser utilizado como herramienta para realizar tareas peligrosas en estos procesos de producción, y así lograr minimizar los riesgos y accidentes en la ejecución de este tipo de trabajos, desde este punto

de vista el brazo robótico puede llegar a tener gran aceptación en compañías que traten con productos químicos. Ahora bien visto desde la parte empresarial la idea a un largo plazo es poder fabricar estos brazos a partir del prototipo y poderlos alquilar a estas compañías.

DESCRIPCIÓN DEL PROBLEMA Los procesos en compañías y laboratorios químicos llevan consigo cierto nivel de peligro, en algunas tareas de producción, esto se hace más notorio en laboratorios químicos donde algunas sustancias son corrosivas como (los ácidos), o inflamables como (la acetona. el metanol, el tolueno), explosivas como (la pólvora, la gasolina y el amonio dicromato), o también pueden ser comburentes que al entrar en contacto con otra sustancia generan reacciones exotérmicas como lo es (el sodio peróxido). Esto conlleva a un gran problema ya que la integridad del personal se ve afectada, aunque se tomen medidas de precaución como el uso de trajes apropiados y políticas de seguridad para reducir el peligro, el riesgo aún sigue latente ya que de haber un error humano las consecuencias serían fatales.

JUSTIFICACIÓN -

-

Será un adelanto tecnológico y un beneficio para los empleados que arriesgan su integridad al manipular estas sustancias peligrosas. Beneficios económicos en la reducción de costos por la no fabricación de trajes y elementos de seguridad. Aportará a nuestro proceso de formación y despertara el interés de otros estudiantes. Beneficio para el medio Ambiente al reducir la utilización de materias primas para la fabricación de trajes de seguridad.

OBJETIVOS GENERAL

- Diseñar y crear el prototipo de un brazo robótico, que pueda controlarse desde un dispositivo móvil que posea una interfaz de fácil manejo y de este modo reducir los riesgos al momento de manipular sustancias peligrosas en laboratorios químicos. ESPECÍFICOS

- Recolectar y analizar información sobre la industria química y sobre la fabricación de brazos robóticos, para poder aplicarla al desarrollo del proyecto.

- Plantear etapas de diseño de hardware y software paralelamente, acerca de mejoras -

físicas del prototipo, y creación de la interfaz gráfica para su control en el dispositivo móvil, permitiendo así la optimización del prototipo del brazo robótico. Crear y equipar al prototipo del brazo robótico con la pinza mecánica que permita la manipulación de las sustancias peligrosas. Aprovechar el circuito electrónico que posee el Arduino UNO para el control de los servomotores (PWM). Configurar el módulo Bluetooth para conectarlo al Arduino UNO y establecer una conexión inalámbrica con el dispositivo móvil. Implementar un software para el funcionamiento del Arduino UNO y también para la interfaz gráfica que permita el manejo del brazo robótico. Diseñar un shield para el Arduino UNO y de esta manera realizar un mejor conexionado.

INSTRUMENTOS

-

Ordenador personal. Tablet o smartphone. Módulo bluetooth JY HC-06. Arduino UNO. Software para la creación de la App. Software específico de arduino. Shield para arduino UNO.

PROCEDIMIENTOS:

- Compra de materiales (servomotores, módulo bluetooth, material estructura -

brazo…). Diseño del programa del arduino para el control de los servomotores en el entorno de arduino (programación en C). Comprobación del correcto funcionamiento del programa con los servos. Configuración del módulo bluetooth con el arduino. Diseño de la App mediante la herramienta “App inventor 2” para la comunicación con el módulo bluetooth (programación por bloques). Comprobación del correcto funcionamiento de la App con el módulo bluetooth y los motores. Diseño y construcción de la PCB para el shield del arduino UNO. Diseño y construcción del brazo robótico (MDF). Comprobación del correcto funcionamiento del brazo robótico ya terminado. Elaboración de la documentación del proyecto. Presentación del proyecto más la documentación.

COMPONENTES Y MATERIALES BRAZO ROBÓTICO -

6 Servomotores. Cables y conectores. Material para la estructura Tornillería.

UNIDAD DE CONTROL Y RECEPTORA -

Arduino UNO. Módulo bluetooth. Tira de zócalos y pines (Shield). Placa de baquelita (Shield).

UNIDAD EMISORA -

Tablet o smartphone con bluetooth. Nuestra App. App Inventor.

ANÁLISIS Y DESCRIPCIÓN DEL PROYECTO Este proyecto está formado por cuatro bloques: -

Programación de la aplicación android. Recepción de datos por el módulo Bluetooth HC-06. Programación del controlador Arduino UNO. Brazo Robótico.

ESQUEMA

APLICACIÓN ANDROID El desarrollo de la aplicación se ha realizado con Google App Inventor. Es una aplicación de Google Labs para crear aplicaciones de software para el sistema operativo Android. De forma visual y a partir de un conjunto de herramientas básicas, el usuario puede ir enlazando una serie de bloques para crear la aplicación. El diseño de la aplicación Android se ha dividido en dos partes o ventanas, la primera realiza la función de introducción y la segunda contiene los componentes necesarios para el control del brazo robótico.

DISEÑO Y PROGRAMACIÓN DE LA VENTANA SCREEN 1 Programación de la ventana Screen1:

DISEÑO Y PROGRAMACIÓN DE LA VENTANA SCREEN2: Programación de la ventana Screen2:

MÓDULO BLUETOOTH

La instalación del módulo Bluetooth sería la siguiente:

Los pines digitales 0 y 1 de la placa arduino son los que se utilizan para realizar la comunicación serie entre el microcontrolador y el módulo HC-06. El módulo bluetooth HC-06 esta acoplado a una placa JY-MCU, la cual regula la de entrada de 5v a 3,3v, que es con la que trabaja. PROGRAMACIÓN DEL ARDUINO UNO #include //Declaramos las variables de la clase servo. Servo cintura; Servo hombro; Servo codo; Servo munieca; Servo gMunieca; Servo pinza; //Declaramos variables globales. char comando; unsigned posicion; int movTiempo=15; int angulo=0; int datoUp=0; int datoDown=0; int grado1=0; int grado2=0; int grado3=0; int grado4=0; int grado5=0; int grado6=0; int a=0; //Zona de configuración al iniciar el programa. void setup(){ Serial.begin(9600); // Abrimos puerto serial y establecemos //velocidad. cintura.attach(8); //Asociamos la variable servo a un pin del arduino hombro.attach(9);// siendo los pines que pueden generar //PWM:3,5,6,9,10 y 11. codo.attach(10); munieca.attach(11); gMunieca.attach(12);

pinza.attach(13); delay(500); posreposo(); // Llamamos a una función la cual posicionará // el brazo de una forma determinada. } void loop() { Serial.flush(); //Vacía el búfer de entrada de datos en serie. if(Serial.available()>0)//Preguntamos si el puerto serie está //disponible y si contiene algún dato. { comando = Serial.read();//Captura 1 byte como caracter desde el //puerto serie. posicion = Serial .parseInt();//Devuelve el primer numero entero //del puerto serie. switch(comando) { //Movimiento Cintura case 'A': movCintura(posicion); //Llamamos a una función introduciendo break; //como argumento el ángulo del servo. //Movimiento Hombro. //La función realizará el movimiento del //servo a la case 'B': //posición introducida. movHombro(posicion); break; //Movimiento Codo. case 'C': movCodo(posicion); break; //Movimiento Muñeca. case 'D': movMunieca(posicion); break; //Movimiento Cmuñeca. case 'E': movGmunieca(posicion); break; //Movimiento Pinza. case 'F': movPinza(posicion); break; //Movimiento Conexión. case 'G': posconectar(); break; //Movimiento Reposo/Desconexión. case 'H': posreposo(); break; case 'J': programa(); break; case 'M': a=0; preestablecido();

break; } } } //Función movimiento Reposo/Desconexión. void posreposo() { movPinza(90); movGmunieca(167); movHombro(81); movCodo(87); movMunieca(112); movCintura(29); } //Función movimiento conexión void posconectar() { movCintura(90); movCodo(90); movHombro(90); movMunieca(100); movGmunieca(90); movPinza(60); } //Movimiento Servomotor cintura void movCintura(int grado) { int patron = cintura.read(); //Primero almacenamos la posición del //servo en la variable patro. if(patron>grado) //Si el valor de la variable patron //es mayor que la posición { //que le hemos mandado, entra en este //buble for. for(int i=patron;i>=grado;i--)//Este irá decrementando la variable //de control hasta llegar { //a la posición establecida. cintura.write(i); //Cada decremento de la variable de //control(i) se utiliza para establecer delay(movTiempo); // el servo a ese ángulo. } }else { //Si de lo contrario la variable //patron es menor que la posición for(int i=patron;igrado) { for(int i=patron;i>=grado;i--) { hombro.write(i); delay(movTiempo); } }else { for(int i=patron;igrado) { for(int i=patron;i>=grado;i--) { codo.write(i); delay(movTiempo); } }else { for(int i=patron;igrado) { for(int i=patron;i>=grado;i--) { munieca.write(i); delay(movTiempo); } }else { for(int i=patron;igrado) { for(int i=patron;i>=grado;i--) { gMunieca.write(i); delay(movTiempo); } }else { for(int i=patron;igrado) { for(int i=patron;i>=grado;i--) { pinza.write(i); delay(movTiempo); } }else { for(int i=patron;i