Anexos. Diseño y construcción de un puente grúa automatizado de precisión

Similar documents
OCTOBEAM. LED Lighting Effect USER MANUAL / MANUAL DE USUARIO

RAZOR STREAM. Projector, scanner and laser effect simulator Powered by 2R 132W Lamp

DM6. User Guide English ( 3 10 ) Guía del usuario Español ( ) Appendix English ( 13 ) DRUM MODULE

Propedéutico de Programación

b) Use one of your methods to calculate the area of figure c.

dit UPM Tema 3: Concurrencia /clásicos /java Análisis y diseño de software José A. Mañas

Default Route de la configuración en el EIGRP

Propedéutico de Programación

Resumen. Una sola cámara Robot móvil Visión computacional Resultados experimentales

PROGRAMACIÓN ORIENTADA A OBJETOS

X8 Maryland Avenue Line

Diseño de la capa de datos para el POS

Unsupervised Classifier for DynamicSystems Based on ISODATA

Important Change to the Year End W2 Process

Sesión 2: PL 1b: Gestión de sistemas en tiempo real para prototipado rápido de controladores (MathWorks).

EMTECH_3P_A_1_v4. Descripción de la placa.

Tutorial 3 Q&A. En la pregunta 7 de la sección 2.2 el cual dice: 7. Prove the domination laws in Table 1 by showing that: a)a U = U b)a =

Documentación GT_Complemento_Exportaciones xsd Factura Electrónica en Línea

Como Hacer Jailbreak A Ipad 2 Ios Ipod Touch 3g

Benning Road-H Street Limited Line

#include <Keypad.h> int datasens; #define pinsens 11. const byte ROWS = 4; //four rows const byte COLS = 3; //three columns

Identify Three-Dimensional Shapes from Different Views. This is how we will be identifying a three-dimensional shape using different views.

Forma't a l'escola del Gremi d'instal ladors de Barcelona

Tutorial Como Hacer Jailbreak Iphone 3g 4.2 1

Get started. All you need to know to get going. LX370

4- PHP introduc.on. Course: Developing web- based applica.ons. Cris*na Puente, Rafael Palacios

Código de programación:

Operating Instructions

Envolventes Enclosures

Lavabo acrílico MIRAGE MIRAGE acrylic washbasin. OPERA set-80 MIRAGE. Blanco Mate Matt White

Garantía y Seguridad en Sistemas y Redes

Create Extensions App inventor 2 Build Extensions App Inventor, easy tutorial - Juan Antonio Villalpando

Journal of Applied Research and Technology ISSN: Centro de Ciencias Aplicadas y Desarrollo Tecnológico.

Operating Instructions

From the artwork to the demo artwork. Case Study on the conservation and degradation of new media artworks

FORMAS DE IMPLEMENTAR LOS OYENTES. A).- El oyente en una clase independiente con el constructor con un argumento y usando el método getactioncommand.

SAP NETWEAVER AS ABAP SYSTEM ADMINISTRATION

Agenda: Estado Actual 2012

// initialize the library with the numbers of the interface pins - S LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

Letter. Activity. Tips. Use sides and angles to name this quadrilateral.

PTFE Politetrafluoretileno t til sinterizado i / Sintered polytetrafluoroethylene

Programación remota de robots de ensamblado mediante modelos 3D

Eng.mohammed Albhaisi. Lab#3 : arduino to proteus simulation. for simulate Arduino program that you wrote you have to have these programs :

EDITRAN/G 5.2. Application Program Interfaces. Application Generic Interface. z/os CICS IMS

Guidelines. Table of Contents. Welcome Letter

Bien, funciona cuando hay un espacio. No funciona bien si no lo hay espacios o hay dos. 23/25

Propedéutico de Programación

Universidad Salesiana de Bolivia Ingeniería de Sistemas Redes y Comunicaciones LABORATORIO 2

DOC // MANUAL CALCULADORA HP 17BII EBOOK

Configuración del laboratorio de acceso telefónico de clientes (San José, Estados Unidos)

Floor: Tex Grey Pattern Natural 99,55x99,55 cm

Arrays y Templates. Prof. Ing. José María Sola. 1. Array. 2. Array of Array. 3. Matrix Template. 4. Matrix Template Module. 5. Listados Completos

NOKIA 97 MINI FIND MANUAL

Journal of Applied Research and Technology ISSN: Centro de Ciencias Aplicadas y Desarrollo Tecnológico.

IMPORTADORA MIZCO S.A. DE C.V.

Identificación de prioridades regionales de RRD

Documentation for Scanner Tool

Quick Installation Guide TK-408K

Chamilo LMS - Feature #6015 Improve procedure to add new friends in the social network

template<class T> T TreeNode<T>:: getdata() const { return data; }//end getdata

Inyección de Dependencias en el Lenguaje de Programación Go

Computer Architectures

GH A. Get started. All you need to know to get going. Todo lo que tienes que saber para empezar. Vamos.

% & (! *+)? ) /! %*) &

Task 5: Dilating Figures

Sincerely, Your child s teacher

Physics 120B: Lecture LCD. LCD Text Display Keypads and Time Slicing Interrupts

REPORTE DE CASO Rev. Investig. Altoandin. 2016; Vol 18 Nº 4:

Backlog Refinement Process. Carolina Graffe Jorge Fernández

Arquivos script. Cálculo numérico con Matlab Arquivos script 1

Guía de instalación rápida. TE100-S16Eg 1.01

NAVIGATOR SMART RDM. DMX Controller USER MANUAL / MANUAL DE USUARIO

Physics 124: Lecture 4. LCD Text Display Keypads and Time Slicing Interrupts

Cómo usar dispositivos Bluetooth

Final Project Lorena Prieto Horcajo SAP-UC3M

Aprovechando el valor de la Tecnología Flash. Fernando Ochoa, Senior System Engineer, EMC

Taxonomy Architecture Guidance Observation Document Version 1.0

RISC Processor Simulator (SRC) INEL 4215: Computer Architecture and Organization Feb 14, 2005

Quick Installation Guide TK-208K TK-408K

GUIA PARA EL MENSAJE DE REPORTE DE INVENTARIOS EN FORMATO EANCOM DETALLE DE LOS SEGMENTOS

ANX-PR/CL/ LEARNING GUIDE

Single user Installation. Revisión: 13/10/2014

Mac Os Sierra Al 100 Guida Completa Al Nuovo Sistema Operativo Di Apple

tick which says safely remove software. I've removed the drivers and created a archive from the in the event that someone doesn't want to extract it

CERTIFICACION SAGE Enterprise Management (X3)

Repaso Para El Servsafe

Moving-Object management method of combat system using main memory DBMS

Step 3 Connect to Phone Line

OMNIDIRECTIONAL MOBILE PLATFORM DRIVEN BY TWO DIFFERETIALLY DRIVEN WHEELED MOBILE ROBOTS FOR MOVING HEAVY LOADS

Surix Security Phone Amplificado: User, installation and programming Guide

CAD MODELLING AND VIRTUAL SIMULATION OF AN AIRCRAFT DOOR MECHANISM

REPAIR NERO BURNER ARCHIVE

DOC - MANUAL DE ACTIONSCRIPT

Parent/Student Laptop Handbook

NEW TECHNOLOGIES APPLIED TO OPERANT RESEARCH: INEXPENSIVE PHOTOCELLS FOR THE ARDUINO-VISUAL BASIC INTERFACE

Installing. Connecting the Charger unit

ES Promise.

High-Speed INTERNET Modem Installation Instructions

MEASUREMENT OF ATM LAYER QUALITY OF SERVICE PARAMETERS USING OAM CELLS

Taxonomy Architecture Guidance Observation Document Version 1.0

Transcription:

Anexos Diseño y construcción de un puente grúa automatizado de precisión Nombre: Daniel Andrade García Especialidad: Ingeniería Electrónica Industrial y Automática Tutor: Inmaculada Martínez Teixidor Cotutor: Grau Baquero Armans Convocatoria: Mayo 2015

Índice Anexo I... 3 Código de programación... 3 Anexo II... 26 Esquemas de conexión... 26 Anexo III... 30 Datasheets y otros documentos... 30

Anexo I Código de programación #include <Keypad.h> #include <Stepper.h> #include <LiquidCrystal.h> LiquidCrystal lcd(22, 24, 26, 28, 30, 32); //[si los pasos son positivos va en sentido antihorario, si son negativos sentido horario] // Cada 2037 pasos són una vuelta completa del eje del motor 3 // Cada 200 pasos del motor 1 y 2 int pasos1 = 165; int pasos2 = 330; int pasos3 = 230; int pasos4 = 460; int pasos5 = 4050; int pasos6 = 675; char tecla; char tecla2; char tecla3; char pos1; char pos2; const int pasosxrevolucion = 2037; const int pasosxrevolucion2 = 200; Stepper mystepper(pasosxrevolucion2, 38,3,4,2); [3,4,2 son PWM] [por orden de 1N1,1N3,1N2,1N4] Stepper mystepper2(pasosxrevolucion2, 36,6,7,5); [6,7,5 son PWM] Stepper mystepper3(pasosxrevolucion, 34,10,9,8); [11,12,8 son PWM] //Motor eje X //Motor eje Y //Motor eje Z Stepper mystepper4(pasosxrevolucion, 40,11,13,12); //cuando (pasos) es negativo en el eje horizontal (eje x) es que el motor va a la derecha de lo contrario izquierda //cuando (pasos) es negativo en el eje horizontal (eje y) es que el motor va hacia arriba de lo contrario abajo //cuando (pasos) es negativo en el eje vertical (eje Z) es que el motor va hacia abajo de lo contrario arriba // { '1' '2' '3' } Estas son las nueve posiciones posibles, // { '4' '5' '6' } la posición 0 es el estado inicial.

'7' '8' } // { '0' const byte ROWS = 4; // cuatro filas const byte COLS = 3; // tres columnas // matriz que dibuja el teclado char numberkeys[rows][cols] ={ }; {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} byte rowpins[rows] = {31,33,35,37}; byte colspins[cols] = {39,41,43}; //inicializar una instancia de la clase NewKeypad Keypad customkeypad=keypad(makekeymap(numberkeys),rowpins,colspins,rows,cols) ; void setup() { lcd.begin(20, 4); lcd.setcursor(5,0); lcd.write("epsem UPC"); lcd.setcursor(4,2); lcd.write("puente GRUA"); lcd.setcursor(4,3); lcd.write("automatizado"); delay (5000); mystepper.setspeed(60); //Determina la velocidad del motor1 mystepper2.setspeed(60); //Determina la velocidad del motor2 mystepper3.setspeed(14); //Determina la velocidad del motor3 mystepper4.setspeed(14); //Determina la velocidad del motor3 customkeypad.setdebouncetime(50); } void loop() {

lcd.setcursor(0,0); lcd.write("donde quieres"); lcd.write("cogerlo?"); lcd.write("donde quieres"); lcd.setcursor(0,3); lcd.write("dejarlo?"); lcd.display(); // la función waitforkey() permite bloquear el programa hasta obtener un nuevo valor de la tecla pulsada en ASCII char tecla=customkeypad.waitforkey(); // Espera hasta pulsar la tecla // Guarda valor pulsado en (tecla) if (tecla!= NO_KEY) // Condición que se utiliza para saber si se ha pulsado (tecla) { pos1=(tecla); // Guarda valor tecla en (pos1) lcd.setcursor(11,1); lcd.print(pos1); char tecla2=customkeypad.waitforkey(); // Espera hasta pulsar la tecla2 // Guarda valor pulsado en (tecla2) if (tecla2!= NO_KEY) // Condición que se utiliza para saber si se ha pulsado (tecla2) { pos2=(tecla2); // Guarda valor tecla en (pos2) lcd.setcursor(11,3); lcd.print(tecla2); delay(1000); //Determinaremos las posiciones con un 'switch' inicial para la primera posición, con los 9 'case' posibles. //Dentro de cada 'case' daremos las funciones que activan los steppers con sus respectivos movimientos. //Cada 'case' principat tendrá un 'switch' secundario con otros 9 'case', eso es porque desde cada posición, //la segunda posición que se da será diferente, es decir,'ejemplo': si decidimos que vaya a coger el objeto //a la posición '1' y lo deje en la '4', la trayectoria será única para ese movimiento. Por lo tanto hay un total //de 81 combinaciones de movimientos diferentes. lcd.setcursor(0,0); lcd.write("presione '#'");

lcd.write("para autorizar"); lcd.write("movimientos:"); lcd.setcursor(0,3); lcd.write("pos1:, POS2:"); lcd.setcursor(6,3); lcd.write(pos1); lcd.setcursor(16,3); lcd.write(pos2); char tecla3=customkeypad.waitforkey(); if (tecla3 == 35) //Condición para confirmar la aceptación de ordenes { lcd.setcursor(13,2); lcd.print(tecla3); switch(pos1){ case 35: //Posición erronea (#) case 42: //Posición erronea (*) case 48: //Posición inicial lcd.display(); lcd.write("ya esta en la"); lcd.write("posicion inicial"); case 57: //Posición erronea (9)

case 49: //Primera posición mystepper2.step(-pasos2); mystepper4.step(-pasos6); //motor eje y //motor eje z //cierra pinza switch(pos2){ case 35: //Posición erronea (#) //abre pinza case 42: //Posición erronea (*) case 48: lcd.write("volviendo a inicio"); case 49: //P1

case 50: //P2 case 51: //P3 mystepper.step(-pasos4); case 52: //P4 case 53: //P5 case 54: //P6 mystepper.step(-pasos4); case 55: //P7 case 56: //P8 mystepper.step(-pasos4);

case 57: //Posición erronea } case 50: //Segunda posición mystepper2.step(-pasos2); mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#) case 42: //Posición erronea (*)

case 48: lcd.write("volviendo a inicio"); case 49: //P1 case 50: //P2 case 51: //P3 case 52: //P4 case 53: //P5 case 54: //P6

case 55: //P7 case 56: //P8 case 57: //Posición erronea } case 51: //Tercera posición mystepper.step(-pasos4); mystepper2.step(-pasos2); mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#)

case 42: //Posición erronea (*) case 48: lcd.write("volviendo a inicio"); case 49: //P1 case 50: //P2 case 51: //P3

case 52: //P4 case 53: //P5 case 54: //P6 case 55: //P7 case 56: //P8 case 57: //Posición erronea

} case 52: //Cuarta posición mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#) case 42: //Posición erronea (*) case 48: //P0 lcd.write("volviendo a inicio"); case 49: //P1 case 50: //P2

case 51: //P3 mystepper.step(-pasos4); case 52: //P4 case 53: //P5 case 54: //P6 mystepper.step(-pasos4); case 55: //P7 case 56: //P8 mystepper.step(-pasos4);

case 57: //Posición erronea P9 } case 53: //Quinta posición mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#) case 42: //Posición erronea (*) case 48:

lcd.write("volviendo a inicio"); case 49: //P1 case 50: //P2 case 51: //P3 case 52: //P4 case 53: //P5 case 54: //P6

case 55: //P7 case 56: //P8 case 57: //Posición erronea P9 } case 54: //Sexta posición mystepper.step(-pasos4); mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#)

case 42: //Posición erronea (*) case 48: lcd.write("volviendo a inicio"); case 49: //P1 case 50: //P2 case 51: //P3 case 52: //P4

case 53: //P5 case 54: //P6 case 55: //P7 case 56: //P8 case 57: //Posición erronea P9 } case 55: //Séptima posición

mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#) case 42: //Posición erronea (*) case 48: lcd.write("volviendo a inicio"); case 49: //P1 mystepper2.step(-pasos2); case 50: //P2 mystepper2.step(-pasos2);

case 51: //P3 mystepper2.step(-pasos2); case 52: //P4 case 53: //P5 case 54: //P6 case 55: //P7 case 56: //P8 case 57: //Posición erronea P9

} case 56: //Octava posición mystepper.step(-pasos4); mystepper4.step(-pasos6); switch(pos2){ case 35: //Posición erronea (#) case 42: //Posición erronea (*) case 48: lcd.write("volviendo a inicio"); case 49: //P1 mystepper2.step(-pasos2);

case 50: //P2 mystepper2.step(-pasos2); case 51: //P3 mystepper2.step(-pasos2); case 52: //P4 case 53: //P5 case 54: //P6 case 55: //P7 case 56: //P8

case 57: //Posición erronea P9 } } } else { lcd.setcursor(5,1); lcd.write("movimiento"); lcd.setcursor(5,2); lcd.write("cancelado"); delay(3000); } } } }

Anexo II Esquemas de conexión

Anexo III Datasheets y otros documentos