View/Open - Universidad Católica de Pereira

Anuncio
UCPBRA: SOFTWARE PARA USO DE BRAZO ROBOTICO EN PHYSILAB
JUAN CARLOS PARRA VILLA
UNIVERSIDAD CATÓLICA DE PEREIRA
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
INFORME FINAL
2015-1
UCPBRA: SOFTWARE PARA USO DE BRAZO ROBOTICO EN PHYSILAB
JUAN CARLOS PARRA VILLA
DIRECTOR DE PROYECTO DE GRADO
JAMES BARRERA MONCADA
Ingeniero Electricista
UNIVERSIDAD CATÓLICA DE PEREIRA
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
INFORME FINAL
2015-1
2
Declaración de derechos de autor
Yo JUAN CARLOS PARRA VILLA declaro que el trabajo presentado es de mi
propia autoría, hasta el momento no ha sido presentado para antes para optar algún
título o calificación profesional, he hecho citas que están debidamente referenciadas,
respetando los derechos de autor de las fuentes, incluidas en este documento.
La Universidad Católica de Pereira –UCP- puede hacer uso de lo consignado
en este documento, según lo establecido por las normas y la Ley de Propiedad
Intelectual y la normatividad constitucional vigente.
3
Agradecimientos
Agradezco inicialmente al Todo poderoso, la Suprema Personalidad de Dios,
que nos ilumina con su gran sabiduría, dotándonos de paciencia para sortear cada
uno de los pasos a dar para llegar a esta instancia.
Mi familia se merece un agradecimiento especial por los momentos de apoyo
incondicional, cuando yo quería desfallecer ellos siempre han estado allí para dar un
gran aliento de fuerza para continuar el camino.
Sinceros agradecimientos a todo el personal humano que compone la
Universidad Católica de Pereira, desde las instancias administrativas, pasando por
docentes, secretarias, empleados, y todos aquellos que de una u otra forma hacen
posible este proceso educativo.
A PHYSILAB, su director, el equipo de trabajo, los monitores, asesores y
estudiantes que hacen un uso adecuado de este laboratorio, como espacio
incuestionable de conocimiento y aprendizaje.
A mis compañeros estudiantes que han compartido conmigo tantos
momentos tan especiales, algunos duros, otros alegres, pero todos unidos por los
lazos donde los esfuerzos se coordinan.
4
Dedicatoria
A mi madre, por su dedicación y esfuerzo, mi hermano, con ellos a toda mi
familia, por su apoyo incondicional, aun cuando ya no creía tener fuerzas ellos
siempre han estado allí.
A la Universidad Católica de Pereira, con todo su recurso humano, con ellos
en estas aulas he crecido como persona y principalmente como profesional.
Un profesor generalmente es un mutilador de sueños y utopías, aquel que
coarta la iniciativa y creatividad de la generación en honor de quien es su profesión,
sin embargo un maestro, es aquel que nos ofrece la luz sin restricción, aquel le
ofrece a sus discípulos la antorcha del conocimiento, sin ninguna ambición, es un
deleite aprender a su lado, en fin de cuentas, a los muchos Maestros, que me han
ensañado,
sin ellos este paso importante en la vida no sería posible, por su
acompañamiento y comprensión en tantos momentos de tensión.
5
Resumen
En los actuales desarrollos de programas, existe una tendencia fuerte por la
aplicación de la Ingeniería del Software, con el fin de obtener productos
estructurados y de calidad, debido a los resultados obtenidos por las metodologías
existentes, asegurando así un proceso de desarrollo eficiente y con posibilidad de
mejora.
Los laboratorios remotos y virtuales se han convertido en una gran posibilidad
para expandir la adquisición de conocimientos de las leyes naturales por medio de la
experimentación, puesto que el usuario de los mismos no necesita trasladarse hasta
una locación remota en donde se encuentren los equipos correspondientes para su
uso y apropiación de los conceptos relacionados con la temática correspondiente.
Este trabajo de investigación está destinado a la aplicación de la robótica, en
el laboratorio remoto y virtual denominado PHYSILAB de la Universidad Católica de
Pereira. Específicamente consiste en el desarrollo de un software para la
manipulación de un brazo robótico, el cual, posteriormente pueda ser integrado con
los elementos de laboratorio de PHYSILAB como utilidad complementaria del mismo,
basándose en información recopilada de diferentes publicaciones de Internet, libros y
datos obtenidos mediante la experimentación.
Palabras
claves:
Metodologías,
Laboratorios,
Experimentación, Equipos, Robótica, Physilab, Internet, Datos.
6
Remotos,
Virtuales,
Abstract
In the current developments of programs, there is a strong tendency for the
application of software engineering, in order to obtain structured quality products due
to the results obtained by the existing methodologies, thus ensuring efficient process
development and for improvement.
Remote and virtual laboratories have become a great opportunity to expand
the acquisition of knowledge of natural laws through experimentation, since the user
thereof need not travel to a remote location where related equipment are to use and
appropriation of the concepts related to the corresponding topic.
This research is intended for the application of robotics in remote and virtual
laboratory called PHYSILAB of the Catholic University of Pereira. Specifically is the
development of software for manipulating a robotic arm, which can then be integrated
with laboratory PHYSILAB elements as complementary usefulness, based on
information gathered from various Internet publications, books and data through
experimentation.
Keywords: Methodologies , Laboratories, Remote , Virtual , Experimenting ,
Equipment , Robotics, Physilab, Internet , Data .
7
TABLA DE CONTENIDO
Pag
Introducción ................................................................................................... 15
1.
FORMULACION DEL PROYECTO ....................................................... 17
1.1 DESCRIPCION Y FORMULACION DEL PROYECTO ........................ 17
1.2 OBJETIVOS ......................................................................................... 19
1.2.1 Objetivo General ........................................................................... 19
1.2.2 Objetivos Específicos .................................................................... 19
1.3 Justificación ......................................................................................... 20
2. MARCOR TEORICO ................................................................................. 21
2.1 ANTECEDENTES ................................................................................ 21
2.2 MARCO CONTEXTUAL ...................................................................... 25
2.2.1Desarrollo de Software en Colombia .............................................. 25
2.2.2Desarrollo de las TIC en Risaralda................................................. 29
2.3 MARCO CONCEPTUAL ...................................................................... 31
2.3.1 Brazo robot .................................................................................... 31
2.3.2 Tipos de brazo robot ..................................................................... 32
8
3. ARQUITECTURA DEL SOFTWARE ......................................................... 35
3.1 UML ..................................................................................................... 38
3.2 JAVA ................................................................................................... 41
3.3 NETBEANS ......................................................................................... 42
3.4 ARDUINO ........................................................................................... 42
3.5 METODOLOGIAS DE PROGRAMACION ........................................... 43
3.5.1 Rapid application development (Rad) .......................................... 43
3.5.2 Rational unified process (Rup) ..................................................... 44
3.5.3 Cascada ....................................................................................... 45
3.5.4 Prototipado .................................................................................... 46
3.5.5 Incremental.................................................................................... 47
3.5.6 Espiral ........................................................................................... 48
3.6 METODOLOGIA SELECCIONADA.................................................. 49
4. ESPECIFICACION DE LA SOLUCION ..................................................... 50
4.1 REQUERIMIENTOS ............................................................................ 50
4.2 PONDERACION DE LOS REQUERIMIENTOS................................... 55
4.3 DESCRIPCION DE LA TECNOLOGIA ................................................ 56
4.3.1 Brazo robótico AS-6DOF ............................................................... 56
4.3.2 Arduino mega 2560 ....................................................................... 58
4.3.3 Servomotores ................................................................................ 59
9
4.4 DESCRIPCION GENERAL DE LA SOLUCION ................................... 60
4.4.1Sistema General............................................................................. 60
4.4.2 Software en Arduino ...................................................................... 60
4.4.3 Software de Escritorio ................................................................... 61
4.4.4 Integración..................................................................................... 61
4.4.5 Cronograma de Actividades .......................................................... 62
4.4.6 Estimación de Presupuesto ........................................................... 63
5. ARQUITECTURA DEL SOFTWARE ......................................................... 63
5.1 Diagrama de casos de uso .................................................................. 63
5.2
Diccionario de casos de uso ........................................................... 64
5.3 Diagrama general de secuencias......................................................... 53
5.4 Prototipo no funcional .......................................................................... 55
5.5 Descripción del proceso de desarrollo ................................................. 56
5.6 Inconvenientes en el proceso de desarrollo ......................................... 55
6. RESULTADOS .......................................................................................... 56
Conclusiones ................................................................................................. 56
Referencias bibliográficas ............................................................................. 58
Bibliografía .................................................................................................... 58
ANEXO .......................................................................................................... 61
Anexo A. Pruebas realizadas ..................................................................... 61
10
ANEXO B. Pasos para la configuración y programación básica de un
Arduino a través del IDE Arduino........................................................................... 69
11
TABLA DE FIGURAS
Figura 1. UNO DE LOS PRIMEROS BRAZOS ROBÓTICOS ................................... 21
Figura 2. Brazo ensamblador .................................................................................... 23
Figura 3. PARTICIPACIÓN DE LOS SEGMENTOS DEL TI 2008 (OSEC Y
PROEXPORT). ......................................................................................................... 28
Figura 4. RELACIÓN ENTRE UN BRAZO ROBOT Y UN BRAZO HUMANO ........... 31
Figura 5. BRAZO ROBOT CARTESIANO ................................................................. 32
Figura 6. BRAZO ROBOT CILÍNDRICO ................................................................... 33
Figura 7. BRAZO ROBOT POLAR ............................................................................ 33
Figura 8. BRAZO ROBOT ARTICULADO ................................................................. 34
Figura 9. BRAZO ROBOT PARALELO ..................................................................... 34
Figura 10. BRAZO ROBOT ANTROPOMÓRFICO.................................................... 35
Figura11. MAPA MENTAL DE LOS PROCESOS UML
39
Figura 12. UML DIVISIÓN DE DIAGRAMAS ESTRUCTURALES ............................ 41
Figura 13. RAPID APPLICATION DEVELOPMENT (RAD). ...................................... 44
Figura 14. RATIONAL UNIFIED PROCESS (RUP)................................................... 45
Figura 15. MODELADO EN CASCADA .................................................................... 46
Figura 16. MODELADO EN PROTOTIPADO ............................................................ 47
Figura 17. MODELO INCREMENTAL ...................................................................... 47
12
Figura 18. MODELADO EN ESPIRAL....................................................................... 49
Figura 19. BRAZO ROBOT AS-6DOF....................................................................... 57
Figura 20. ARDUINO MEGA 2560 ............................................................................ 58
Figura 21. SERVOMOTOR RB-150MG .................................................................... 59
Figura 22. DIAGRAMAS DE CASOS DE USO UCPBRA.......................................... 64
Figura 23. DIAGRAMA DE SECUENCIA .................................................................. 53
Figura 24. INTERFAZ DE INICIO UCPBRA .............................................................. 55
Figura 25. INSERCIÓN DE DATOS PARA RUTINA MANUAL UCPBRA ................. 56
13
LISTA DE TABLAS
Tabla 1. Requerimiento 001 .......................................................................... 52
Tabla 2. Requerimiento 002 .......................................................................... 52
Tabla 3. Requerimiento 003 .......................................................................... 53
Tabla 4. Requerimiento 004 .......................................................................... 53
Tabla 5. Requerimiento 005 .......................................................................... 54
Tabla 6. Requerimiento 006 .......................................................................... 54
Tabla 7. Requerimiento 007 .......................................................................... 55
Tabla 8. Ponderación de Requerimiento
…………………………………. 55
TABLA 9. CRONOGRAMA DE ACTIVIDADES UCPBRA ........................................... 62
Tabla 10. Estimación de Presupuesto ........................................................... 63
Tabla11. Diccionario de casos de uso 1 ........................................................ 64
Tabla 12. Diccionario de casos de uso 2 ....................................................... 65
Tabla 13. Diccionario de casos de uso 3 ....................................................... 65
Tabla 14. Diccionario de casos de uso 4 ....................................................... 66
Tabla 15. Diccionario de casos de uso 5 ....................................................... 66
Tabla 16. Diccionario de casos de uso 6 ....................................................... 67
Tabla 17. Diccionario de casos de uso 7 ....................................................... 67
Tabla 18. Diccionario de casos de uso 8 ....................................................... 67
14
Introducción
Las Nuevas Tecnologías de la Información y la comunicación TIC, poco a
poco se han ido integrando en los procesos de enseñanza aprendizaje a todo nivel,
no solo con el fin de dinamizar dichos procesos si no buscando resolver problemas
tendientes a mejorar la calidad de vida de la población.
La robótica es una muestra de ello, la cual se define como el conjunto de
conocimientos teóricos y prácticos
que nos dejan crear, realizar y mecanizar
sistemas basados en estructuras mecánicas articuladas, proporcionados de un
determinado grado de “inteligencia” y destinados a la manufactura industrial o al
remplazo del hombre para diversas tareas.
El nivel de tecnología y desarrollo de software que puedan llegar a tener los robots
determinará lo que estos podrán hacer para facilitar las actividades diarias,
para realizar tareas que no pongan en peligro la integridad del ser humano, en la
diversión y el entretenimiento; en el aspecto productivo, no sólo en tiempo sino
en calidad.
Debido al movimiento acelerado y al desarrollo vertiginoso que presenta la
tecnología en la vida de las personas, poco a poco surgen aplicaciones más
complejas, que deben cumplir los requisitos de calidad, rendimiento, usabilidad,
escalabilidad, mantenimiento, accesibilidad, entre otros. La labor que debe realizar
un ingeniero del software es compleja, la cual parte de la documentación de todo el
proceso de diseño, los requerimientos deben de ser planteados analizados y
ponderados, debe ser apoyada por los diagramas necesarios. La ausencia de
algunas partes del proceso para el desarrollo de software produce daños que a
veces son intangibles o imperceptibles, principalmente en la tapa de mantenimiento.
En el campo académico se hace necesario desarrollar nuevas propuestas,
nuevas prácticas a partir del desarrollo del software. Para el caso concreto el
15
desarrollo de un software que permita el movimiento de un brazo robótico y su uso
en el laboratorio de física de la Universidad Católica de Pereira, PHYSYLAB.
En el marco de los nuevos paradigmas educativos, se debe pensar en una
academia que esté a la altura del reto de preparar los estudiantes para enfrentar la
nueva sociedad, la del conocimiento, donde se tengan mayores avances en el
análisis en contraposición a la metodología que obedece a procesos repetitivos,
rutinarios esto es, desarrollar novedosas metodologías, necesarias en la nueva era
donde la sociedad funciona con información, debemos saber la importancia de la
enseñanza fusionada con las TIC, donde surjan las facilidades y ventajas con la que
la tecnología posibilita el rápido intercambio de información lo cual contribuye al
mejoramiento del proceso enseñanza-aprendizaje.
El objeto de este trabajo es poder desarrollar un conjunto de tareas y rutinas
que permitan el funcionamiento un brazo robótico con seis grados de libertad, con el
fin
de apoyar a las labores en prácticas académicas
que se realizan en el
laboratorio de física de la universidad Católica de Pereira denominado PHYSILAB;
se
utiliza
teoría
movimientos del
de
sistemas
robot, la
para
descubrir
y
resolver
forma de alimentar o generar
las
diferentes
información de los
componentes de un problema, los cambios que provocan la transición de un
estado a otro, todos estos elementos importantes para poder construir e
implantar la aplicaciones más adecuada.
16
1. FORMULACION DEL PROYECTO
En
la vida moderna es muy común el uso de robots que ayudan en la
dinámica diaria, en la producción, educación etc. La diversidad en los modelos y las
aplicaciones de los robots ha hecho que evolucione no solo la concepción que se
tiene de ellos, sino también su morfología; esto quiere decir, que no solo hay robots
industriales, espaciales, sino también de uso militar, agrícolas, médicas y
pedagógicas; por ejemplo las prótesis robóticas, los dispositivos de rehabilitación,
robots utilizados como herramientas pedagógicas, entre otros.
Bajo esta línea se ha enfocado PHYSILAB, su propósito es permitir que los
estudiantes puedan desarrollar sus prácticas de
física sin necesidad de estar
ubicados físicamente en el laboratorio, la implementación de un brazo robótico, va a
permitir la modificación de elementos al interior del Laboratorio, así como el
desarrollo de nuevas prácticas en lo que tiene que ver con el campo vectorial. Los
trabajos y los esfuerzos impulsados desde PHYSILAB no son sólo un aporte
importante al avance tecnológico de la universidad, sino también de la región.
Este proyecto es una primera etapa cuya operación se realiza
de manera
local, puesto que en una segunda fase se desarrollará la implementación de los
procesos que permitan las funcionalidades remotas del software.
1.1 DESCRIPCION Y FORMULACION DEL PROYECTO
Las tareas de laboratorio en nuestro país generalmente no cumplen las
expectativas de los estudiantes debido a la falta de estructuración de los mismos,
también por la falta de instrumentación necesaria para su desarrollo y prácticas
experimentales que no alcanzan a desarrollar el conocimiento científico. En los
últimos años se están buscando mecanismos para suplir dicha problemática, como el
apoyo de trabajos que tengan entre sus objetivos el crear y desarrollar plataformas
que posibiliten la enseñanza a través de sistemas hipermedia y multimedia, de las
redes de comunicaciones de área extendida, estas herramientas o TIC brindan la
posibilidad de crear nuevos espacios, dinamizadores de enseñanza, aprendizaje
17
dentro y fuera del aula de clases posibilitando que los estudiantes sean partícipes de
su propio aprendizaje. (Rosado, 204)
En este sentido el laboratorio de PHYSYLAB, viene buscando alternativas
que orienten los productos académicos hacia el desarrollo de nuevas prácticas de
laboratorio, en este caso se pretende integrar un brazo robótico, como una
herramienta indispensable para los procesos de práctica remota en el laboratorio,
cabe notar que en PHYSYLAB no cuenta con un software para el manejo del mismo,
de esta forma nos lleva a el diseño de UCPBRA, el cual manipula un brazo robótico
de seis grados de libertad y su consecuente desarrollo en un trabajo
complementario. Con este proyecto se busca que el laboratorio tenga una ayuda
eficaz a la hora de probar localmente los movimientos del brazo antes de subir los
cambios en el laboratorio virtual, donde
primordial
los estudiantes tendrían un elemento
para poder desarrollar las destrezas, habilidades, capacidades y
competencias que se conjuguen con iniciativa y creatividad en una ambiente virtual.
18
1.2 OBJETIVOS
1.2.1 Objetivo General
Diseñar y desarrollar de un software para el control local de un brazo robótico
como apoyo de las prácticas dentro del laboratorio PHYSYLAB de la Universidad
Católica de Pereira.
1.2.2 Objetivos Específicos

Identificar el funcionamiento del brazo robótico para luego simularlo a través
del software

Identificar los requerimientos del software que permitan el control del brazo
robótico de acuerdo a las necesidades de la práctica.

Analizar los diferentes aspectos que permitan diseñar una solución software
que lleve al cumplimiento de los requerimientos.

Diseñar un sistema software de control, que interactúe con los sensores y
permita la manipulación de los mecanismos y motores del brazo.

Implementar el software construido de tal manera que interactúe con el brazo
robótico.

Realizar pruebas de las diferentes etapas que intervienen en el desarrollo del
proyecto.
19
1.3 Justificación
Actualmente los países altamente industrializados desarrollan y comercializan
aparatos y
equipos avanzados y costosos, invierten muchos
recursos en
investigación de nuevas tecnologías. De ahí la gama de productos ofertados
Lamentablemente este no es el caso de Colombia, las empresas nacionales buscan
soluciones en otros países y solo se limitan a utilizar los
equipos, es decir, la
escueta transferencia de tecnología; esto se debe a que no se fomentan las
investigaciones de forma adecuada.
Dicha ausencia de desarrollo también se aprecia en el campo de la robótica y
la educación, en nuestro país se encuentra muy limitada, son pocas universidades,
las que han venido desarrollando proyectos de investigación, donde desarrollen
rápidamente diferentes tecnologías de la información o sistemas permitiendo que el
proceso de la enseñanza y aprendizaje sea más fácil para los estudiantes. Por lo
anterior la universidad decidió crear un software que permita controlar localmente un
brazo robótico antes de ser manejado remotamente
desde la plataforma de
PHYSYLAB, es importante el apoyo que brindara este software en el movimiento de
algunos implementos dentro del laboratorio, ya que se realizaran localmente antes
de ser configurados en la plataforma remota, esto permite que a la hora de hacer las
practicas no tengan inconvenientes que impliquen altas perdidas económicas en
equipos tecnológicos, instalación y mantenimiento de los mismos, También es una
herramienta que sirve como apoyo, dando precedente base para el desarrollo del
software de control remoto para el brazo robótico en la plataforma virtual. Por estas
razones se decidió diseñar e implementar un software (UCPBRA) que manejara un
brazo robótico de seis grados de libertad para el funcionamiento en el laboratorio de
PHYSILAB,
20
2. MARCOR TEORICO
2.1 ANTECEDENTES
Desde tiempos atrás, el ser humano ha tenido una atracción y fascinación por
las maquinas que imitan los movimientos, funciones y acciones de diferentes seres
vivos. La construcción y realización de diferentes proyectos con mecanismos
hidráulicos; donde podían funcionar a través de poleas, engranaje, resortes o
simplemente por la morfología de su estructura, ha sido la constante desde tiempos
muy remotos.
La palabra robot fue usada por primera vez en el año 1921, cuando el escritor
checo Karel Capek (1890 - 1938) estrena en el teatro nacional de Praga su obra
Rossum's Universal Robot (R.U.R.). Su origen es de la palabra eslava robota, que
se refiere al trabajo realizado de manera forzada.
Figura 1. UNO DE LOS PRIMEROS BRAZOS ROBÓTICOS
Recuperado de http://proton.ucting.udg.mx/materias/robotica/r166/r63/r63.htm
Con el objetivo de diseñar una maquina flexible, adaptable al entorno y de
fácil manejo, George Devol, pionero de la Robótica Industrial, patento en 1948, un
manipulador programable que fue el germen del robot industrial, como muestra la
figura 1.
En 1948 R.C. Goertz del Argonne National Laboratory desarrollo, con el
objetivo de manipular elementos radioactivos sin riesgo para el operador, el primer
21
tele manipulador. Este consistía en un dispositivo mecánico maestro-esclavo. El
manipulador maestro, reproducía fielmente los movimientos de este. El operador
además de poder observar a través de un grueso cristal el resultado de sus
acciones, sentía a través del dispositivo maestro, las fuerzas que el esclavo ejercía
sobre el entorno.
Años más tarde, en 1954, Goertz hizo uso de la tecnología electrónica y del
servo control sustituyendo la transmisión mecánica por eléctrica y desarrollando así
el primer tele manipulador con servo control bilateral. Otro de los pioneros de la tele
manipulación fue Ralph Mosher, ingeniero de la General Electric que en 1958
desarrollo un dispositivo denominado Handy-Man, consistente en dos brazos
mecánicos teleoperados mediante un maestro del tipo denominado exoesqueleto.
Junto a la industria nuclear, a lo largo de los años sesenta la industria submarina
comenzó a interesarse por el uso de los tele manipuladores.
A este interés se sumo la industria espacial en los años setenta.
La evolución de los tele manipuladores a lo largo de los últimos años no ha sido tan
espectacular como la de los robots. Recluidos en un mercado selecto y limitado
(industria nuclear, militar, espacial, etc.) son en general desconocidos y
comparativamente poco atendidos por los investiga- dores y usuarios de robots. Por
su propia concepción, un tele manipulador precisa el mando continuo de un
operador, y salvo por las aportaciones incorporadas con el concepto del control
supervisado y la mejora de la tele presencia promovida hoy día por la realidad virtual,
sus capacidades no han variado mucho respecto a las de sus orígenes.
La sustitución del operador por un programa de ordenador que controlase los
movimientos
del
manipulador
dio
paso
al
concepto
de
robot.
La primera patente de un dispositivo robótico fue solicitada en marzo de 1954 por el
inventor británico C.W. Kenward. Dicha patente fue emitida en el Reino Unido en
1957, sin embargo fue Geoge C. Devol, ingeniero norteamericano, inventor y autor
de varias patentes, él estableció las bases del robot industrial moderno. En 1954
22
Devol concibió la idea de un dispositivo de transferencia de artículos programada
que se patento en Estados Unidos en 1961.
En 1956 Joseph F. Engelberger, director de ingeniería de la división
aeroespacial de la empresa Manning Maxwell y Moore en Stanford, Conneticut.
Juntos Devol y Engelberger comenzaron a trabajar en la utilización industrial de sus
máquinas, fundando la Consolidated Controls Corporation, que más tarde se
convierte en Unimation(Universal Automation), e instalando su primera máquina
Unimate (1960), en la fábrica de General Motors de Trenton, Nueva Jersey, en una
aplicación de fundición por inyección.
En 1968 J.F. Engelberger visito Japón y poco más tarde se firmaron acuerdos
con Kawasaki para la construcción de robots tipo Unimate. El crecimiento de la
robótica en Japón aventaja en breve a los Estados Unidos gracias a Nissan, que
formo la primera asociación robótica del mundo, la Asociación de Robótica industrial
de Japón (JIRA) en 1972. Dos años más tarde se formó el Instituto de Robótica de
América (RIA), que en 1984 cambio su nombre por el de Asociación de Industrias
Robóticas, manteniendo las mismas siglas (RIA).
Por su parte Europa tuvo un despertar más tardío. En 1973 la firma sueca
ASEA construyo el primer robot con accionamiento totalmente eléctrico, en 1980 se
fundó la Federación Internacional de Robótica con sede en Estocolmo Suecia.
Figura 2. Brazo ensamblador
Recuperado de http://proton.ucting.udg.mx/materias/robotica/r166/r63/r63.htm
23
La
configuración
de
los
primeros
robots
respondía
a
las
denominadas
configuraciones esférica y antropomórfica, de uso especialmente valido para la
manipulación. En 1982, el profesor Makino de la Universidad Yamanashi de Japón,
desarrolla el concepto de robot SCARA (Selective Compliance Assembly Robot Arm)
que busca un robot con un número reducido en grados de libertad (3 o 4), un coste
limitado y una configuración orientada al ensamblado de piezas, ver figura 2.
La definición del robot industrial, como una máquina que puede efectuar un
número diverso de trabajos, automáticamente, mediante la programación previa, no
es válida, porque existen bastantes máquinas de control numérico que cumplen esos
requisitos. Una peculiaridad de los robots es su estructura de brazo mecánico y otra
su adaptabilidad a diferentes aprehensores o herramientas. Otra característica
especifica del robot, es la posibilidad de llevar a cabo trabajos completamente
diferentes e, incluso, tomar decisiones según la información procedente del mundo
exterior, mediante el adecuado programa operativo en su sistema informático.
Se pueden distinguir cinco fases relevantes en el desarrollo de la Robótica
Industrial:
1. El laboratorio ARGONNE diseña, en 1950, manipuladores amoesclavo para manejar material radioactivo.
2. Unimation, fundada en 1958 por Engelberger y hoy absorbida por
Whestinghouse, realiza los primeros proyectos de robots a principios
de la década de los sesentas de nuestro siglo, instalando el primero en
1961 y posteriormente, en 1967, un conjunto de ellos en una factoría
de general motors. Tres años después, se inicia la implantación de los
robots en Europa, especialmente en el área de fabricación de
automóviles. Japón comienza a implementar esta tecnología hasta
1968.
3. Los laboratorios de la Universidad de Stanford y del MIT acometen, en
1970, la tarea de controlar un robot mediante computador.
24
4. En el año de 1975, la aplicación del microprocesador, transforma la
imagen y las características del robot, hasta entonces grande y
costoso.
5. A partir de 1980, el fuerte impulso en la investigación, por parte de las
empresas
fabricantes
de
robots,
otros
auxiliares
y
diversos
departamentos de Universidades de todo el mundo, sobre la
informática aplicada y la experimentación de los sensores, cada vez
más perfeccionados, potencian la configuración del robot inteligente
capaz de adaptarse al ambiente y tomar decisiones en tiempo real,
adecuarlas para cada situación.
En esta fase que dura desde 1975 hasta 1980, la conjunción de los efectos
de la revolución de la Microelectrónica y la revitalización de las empresas
automovilísticas, produjo un crecimiento acumulativo del parque de robots, cercano
al 25%.
La evolución de los robots industriales desde sus principios ha sido
vertiginosa. En poco más de 30 años las investigaciones y desarrollos sobre robótica
industrial han permitido que los robots tomen posiciones en casi todas las áreas
productivas y tipos de industria. En pequeñas o grandes fábricas, los robots pueden
sustituir al hombre en aquellas áreas repetitivas y hostiles, adaptándose
inmediatamente a los cambios de producción solicitados por la demanda variable.
(Ingenierías, 2004)
2.2 MARCO CONTEXTUAL
2.2.1Desarrollo de Software en Colombia
Debido a que el mundo de la informática es susceptible al cambio
constantemente, de igual manera debido a que en Colombia no se han creado las
condiciones necesarias para un desarrollo del software con el sello Made in
Colombia. Es claro que el desarrollo del software en Colombia es monopolizado
por grandes multinacionales como indra, Softec, Unisys, etc. Esto indica que en
25
nuestro pais el talento humano especializado para el desarrollo del software es
uno de los mejores a nivel internacional.
El desarrollo del software colombiano a pesar de sus inconvenientes ha
tenido un leve crecimiento en los últimos años ( 2010 y 2011), se cuentan con más
de 40 empresas certificadas, se ha visto también un descenso en piratería, en
este panorama se pueden encontrar algunas oportunidades como la integración
de servicios técnicos, el desarrollo de aplicaciones y modernización, outsourcing
de infraestructura tecnológica, servicios de apoyo, gestión de data center entre
otros, como lo plantea Proexport y Osec en un estudio relacionado con sector, en
el cual también se afirma que:
El sector de las TICs en Colombia está compuesto por PYMEs. En términos
de tecnología y profesionalismo, estas compañías están operando a buen
nivel. Estas compañías por lo general no tienen vocación exportadora y les
hace falta la experiencia necesaria. La mayoría de estas empresas son
familiares y la estructura financiera está orientada hacia los negocios locales
y no hacia el riesgo, como el que representa exportar. Las tecnologías que se
implementan están a la par con las tecnologías de punta. (OSEC y
PROEXPORT, 2012)
En Medellín hay unas 100 desarrolladoras de software. Un gran porcentaje se
agrupa en la Red Intersoftware, que promueve la calidad de esta industria, y
cuyas empresas generan el 80% del empleo del sector en la región; unos 3.200
puestos. (COLOMBIANO, 2013)
El segmento del software está representado por el software estándar. El
software a la medida forma parte del segmento de servicios (integración y
desarrollo).
26
Los segmentos del mercado dentro del sector de servicios colombianos de
TI1 son:





Soporte y Mantenimiento
Contratación externa
Integración y Desarrollo
Consultoría
Educación y Entrenamiento (OSEC y PROEXPORT, 2012)
La educación impartida por las universidades es de alto estándar, sin
embargo, hay una clara deficiencia en el campo de formación profesional.
Esta situación ya representa un gran reto para Colombia en cuanto a
contratar empleados que estén bien capacitados a todo nivel y en todas las
áreas del conocimiento. En caso que las exportaciones generen una gran
demanda de empleados calificados, el sistema actual no estaría en
capacidad de atenderla. (OSEC y PROEXPORT, 2012)
En la figura 3, se puede observar la participación del software en el mercado
nacional con respecto a las tecnologías de información lo cual deja ver claramente
que el hardware ocupa la mitad de la participación, dejando al software un escaso
7%, lo cual da muestras de todo el camino por recorrer en cuanto a desarrollo de
software, llenando de contenido lo planteado, el desarrollo de software en
Colombia está muy bajo.
El software y las aplicaciones estándar se ajustan a las normas (Iso, Spice,
CMM) y mercados internacionales. En Colombia no hay software con
estándares específicos. Algunas de las soluciones de software utilizarán los
parámetros establecidos por el mercado local (por ejemplo los sistemas
contables). La mayoría de las interfaces con los usuarios para las
aplicaciones estándar son en español. (OSEC y PROEXPORT, 2012)
1
TI Tecnologías de la Información .
27
Figura 3. PARTICIPACIÓN DE LOS SEGMENTOS DEL TI 2008 (OSEC Y PROEXPORT).
Software
[PORCENTAJE]
Hardware
[PORCENTAJE
]
Servicios
[PORCENTAJE
]
Recuperado de: Proexport Colombia Industria BPO-IT
Uno de los problemas en el desarrollo del software se encuentra que las
empresas y los desarrolladores (léase y entiéndase programadores) creen que
desarrollar software es escribir tres líneas de código y hacer clic pero esto no es así.
En este sentido en cuanto a la educación este mismo estudio plantea:
El sistema educativo en la fase de pregrado tiene tres niveles diferentes, el
nivel técnico, nivel tecnológico, y nivel profesional. En el nivel profesional se
está presentando diferentes conflicto con las compañías que quieren un alto
nivel educativo pero a un bajo costo, muchas de las universidades no están
orientadas a la investigación que nos lleve a enfocar la implementación de
acciones encaminadas hacia la creación de un valor agregado y obtener
relaciones internacionales con universidades de talla mundial. Son pocas las
personas que cuentan con un buen nivel educativo; no están dispuestos a
trabajar en proyectos educativos como desarrollo de software, pruebas,
investigación etc. Las compañías están orientadas fundamentalmente hacia
los negocios y la tecnología. Por esta razón requieren de mano de obra con
capacidades que se ajusten a todas las áreas de competencia de las TIC.
(OSEC y PROEXPORT, 2012)
28
2.2.2Desarrollo de las TIC en Risaralda
La Gobernación de Risaralda ha puesto en marcha una política educativa que
buscar hacer uso de las TIC para transformar la sociedad. Por ello estamos
trabajando para que los alumnos de los planteles públicos, desde la primera infancia,
estén inmersos en el bilingüismo y el acceso a las nuevas tecnologías de la
información y la comunicación.
Resulta inaceptable que exista una brecha profunda entre la formación que
reciben los estudiantes de planteles oficiales y sus pares de los colegios privados.
Por ello hemos dicho que las instituciones educativas del sector oficial, deben
marchar a la par con los avances de la ciencia, la tecnología y la innovación. No
existe otro camino para romper con los paradigmas de la pobreza y la desigualdad.
Pero también está claro que el acceso a la formación y el uso de estas
tecnologías debe extenderse a otros segmentos de la población, en especial al
sector empresarial y productivo.
En este orden de ideas, la Gobernación de Risaralda ha construido una
interesante alianza con la Cámara de Comercio de Pereira, en el marco de la cual
nos propusimos instalar esta Mesa TIC del Triángulo del Café. El propósito principal
de esta iniciativa es el de consolidar criterios y desarrollar actividades que atiendan
las necesidades de las empresas industriales en materia de tecnologías de la
información y la comunicación y que las acerque a las oportunidades que se abren
en un mundo moderno como el actual.
Así lo planteamos hace algunas semanas, al presentar el Clúster TIC del
Triángulo del Café, ante varias empresas, organizaciones e
instituciones
académicas de la región que han venido incursionando en el desarrollo de empresas
con base tecnológica.
29
Con la instalación de la mesa TIC de Risaralda no solo la visibilidad de las
empresas de la industria TIC del departamento será mayor ante el Ministerio y la
misma industria,
sino que también tendremos un proceso local incluyente y
articulado entre las empresas, la academia y el estado con base en los
requerimientos reales del sector y que permita preparar a las empresas TIC en
procesos de calidad más sólidos y por ende participar en ejercicios comerciales
nacionales e internacionales mucho más exitosos.
En Risaralda tenemos algunos ejemplos muy positivos en esta dirección,
como lo es el caso de empresas acogidas por ParqueSoft, las cuales han
desarrollado
innovaciones
supremamente
interesantes
que
les
han
valido
reconocimientos y premios a nivel internacional. (MINTIC, 2015)
Como respuesta de ayuda a solucionar alguno de los anteriores problemas la
Universidad Católica de Pereira está trabajando en la investigación de nuevos
proyectos, tiene como objetivo liderar y ejecutar los recursos de un nuevo proceso
para la enseñanza y el aprendizaje llamada PHYSYLAB, con el acompañamiento de
la Universidad Católica de Manizales y la Universidad de Medellín apoyando
el
desarrollo de laboratorios remotos y virtuales para enseñanza de la Física, bajo el
esquema de laboratorio distribuido, usando para esto la instrumentación como
herramientas indispensables en el desarrollo de equipos que puedan ser accedidos
de manera Remota. Para que estos puedan ser manipulados de manera remota y se
puedan crear un conjunto de prácticas de laboratorio de Física en el área de
mecánica clásica, donde puedan ser ejecutadas por los estudiantes y docentes que
se encuentren conectados a la red académica de Alta Velocidad (RENATA). Estos
laboratorios se diseñan de tal forma que permita mejorar las estrategias de
enseñanza y aprendizaje para cursos de Física a nivel básico e intermedio.
(PHYSILAB, 2012)
Este proyecto de investigación nace en el seno del Grupo de Investigación
GEMA , Grupo de investigación de la Universidad Católica de Pereira en asocio con
las universidades Católica de Manizales y la Universidad de Medellín y que fue
30
aprobado en la convocatoria “banco de proyectos elegibles para apoyar la
investigación, el desarrollo y la innovación educativa que (PHYSILAB, 2012) hagan
uso de la infraestructura y servicios de la red nacional académica de tecnología
avanzada (RENATA) para el año 2010”, convocatoria financiada por el Ministerio de
Educación Nacional.
2.3 MARCO CONCEPTUAL
2.3.1 Brazo robot
Por décadas
mecánicas
las personas siempre han tratado de
que traten de
imitar
construir maravillas
partes del cuerpo humano. En 1805, Henri
Maillardert fabrico una muñeca que sería capaz de hacer dibujos. De esta manera
se fueron evidenciando algunas creaciones mecánicas que fueron reflejando el
ingenio del hombre para poder ir acercando más y más
comodidades. En esa misma época
a una época de
hubieron muchas más invenciones
que
ayudaron a las industrias en su agilidad para hacer los procesos en el transcurso de
la revolución industrial, y casi siempre dirigidas al sector de la industria textil de esa
época. Entre las cuales se hace notar la hiladora giratoria de Hargreaves (1770)), el
telar mecánico de Cartwright (1785) la hiladora mecánica de Crompton (1779), y
otros.
Figura 4. RELACIÓN ENTRE UN BRAZO ROBOT Y UN BRAZO HUMANO
https://www.interempresas.net/Robotica
31
Un brazo robot es un brazo mecánico, como muestra en la figura 4, con
funciones y movimientos parecido a los de un brazo humano, es un manipulador
multifuncional; normalmente
reprogramable con varios grados de libertad, está
compuesto de materiales
electrónicos y su estructura que sostienen los
mecanismos; estos son interconectados a través de articulaciones capaz de realizar
Infinidad de actividades repetitivas, manipulando diferentes materiales dependiendo
de la programación o rutinas que previamente se haya ingresado en su tarjeta
controladora.
La robótica ha avanzado de tal manera que ya se incluyen poderosas
computadoras al interior de los robots las cuales son fusionadas con actuadores
mecánicos alimentados de nuevos controles o software para una tarea específica y
así agilizar nuevas tareas dentro de la industria.
2.3.2 Tipos de brazo robot
2.3.2.1 Brazo cartesiano
Figura 5. BRAZO ROBOT CARTESIANO
Recuperado de https://www.interempresas.net/Robotica
Como se observa en la figura 5, este brazo es utilizado habitualmente para
tomar y colocar, en algunos casos para operaciones de manipulación de
herramientas
o ensamblado, esta clase de brazo maneja tres articulaciones
coinciden en los ejes del plano cartesiano, esto quiere decir que los ejes principales
para el control del brazo son lineales, esta clase de brazo se mueve en línea recta.
32
2.3.2.2 Brazo cilíndrico
En la figura 6 muestra un brazo que es utilizado habitualmente para tareas de
ensamblaje, soldadura de puntos, y cuyo eje forma una relación de coordenadas
cilíndricas.
Figura 6. BRAZO ROBOT CILÍNDRICO
Recuperado de https://www.interempresas.net/Robotica
2.3.2.3. Brazo esférico / polar
Es usado en aplicaciones sobre manipulación de diferentes tipos de
máquinas, en este caso
sus ejes que
forman un sistema de coordenadas
cilíndricas. Es usado en aplicaciones sobre manipulación de diferentes tipos de
máquinas, en este caso
sus ejes que
forman un sistema de coordenadas
cilíndricas, en la figura 7, nos muestra un brazo robot polar.
Figura 7. BRAZO ROBOT POLAR
Recuperado de https://www.interempresas.net/Robotica
33
2.3.2.4 Brazo articulado
Se utiliza en tareas de ensamblaje y diferentes funciones, por otro lado este
brazo el momento trabaja con tres articulaciones, lo cual no lo hace multifuncional,
como lo muestra en la figura 8.
Figura 8. BRAZO ROBOT ARTICULADO
Recuperado de https://www.interempresas.net/Robotica
2.3.2.5 Robot paralelo
En la figura 9, nos muestra un breve ejemplo de estos brazos es la
manipulación de las cabinas de simuladores de vuelo en la aeronáutica, estos brazos
sus articulaciones son de tipo prismáticas y rotatorias.
Figura 9. BRAZO ROBOT PARALELO
Recuperado de https://www.interempresas.net/Robotica
34
2.3.2.6 Brazo antropomórfico
En la figura 10, nos muestra que este brazo es muy similar a un brazo
humano, y lo que busca es la sustitución de un brazo humano y necesidades de esta
sociedad. (DOCSETOOLS.COM, 2008)
Figura 10. BRAZO ROBOT ANTROPOMÓRFICO
Recuperado de https://www.interempresas.net/Robotica
3. ARQUITECTURA DEL SOFTWARE
Es importante brindar un panorama general de lo que es la Arquitectura del
Software como una disciplina emergente que poco a poco se abre paso en los
espacios académicos, muy a pesar de fosilizados docentes que creen que
desarrollar software es simplemente tirar código, lo cual se traduce en una
separación, en una dicotomía entre la formación académica y el qué hacer industrial,
precisamente en ese sentido, (Reynoso, 2004) citando a Jan Bosch plantea que
existe una considerable diferencia entre la práctica industrial y la percepción
académica de la arquitectura del Software, es decir, que los problema de la
academia no son los mismos problemas de la industria. Por ello es importante
avanzar en eliminar tal brecha. Como es sabido los patrones de diseño fueron
fundamentalmente orientados a servicios, estableciendo una limitante en el avance y
el desarrollo de la disciplina, situación está que ya ha dado pasos importantes, por
ello las cuestiones teóricas y metodológicas del diseño y la arquitectura se han
35
quedado a medio elaborar, y por parte de los docentes en las aulas a medio
mencionar.
Si bien los orígenes de la Arquitectura se pueden remontar a los años 90, con
unos primeros párrafos de Mary Shaw o David Garlan, tales referencias solo son de
carácter histórico, por lo que es necesario acudir a la literatura más reciente, es
decir, como la de (Reynoso, 2004) quien plantea que esos orígenes difusos permiten
distinguir corrientes de pensamiento diversas, cuyas diferencias distan de ser
triviales a la hora de plasmar las ideas en una metodología en este sentido y según
la literatura revisada se halló que no se habla de una metodología única, sino de una
serie de metodologías, como se verá más adelante.
En esta búsqueda por los orígenes de la Arquitectura del Software se halló
que la Universidad Tecnológica de Eindhoven en Holanda Edsger Dijkstra, sostenía
que las ciencias de la computación debían ser una rama aplicada de las
matemáticas, para lo cual sugería descomponer los problemas mayores en pasos
lógico formales a seguir para llegar a la resolución de un problema (Reynoso, 2004).
Fue pionero en proponer que los sistemas operativos estén organizados “como
capas de cebolla”; igualmente ayudó a precisar una serie de conceptos que para
cualquier ingeniero de sistemas son básicos, como el algoritmo del camino más
corto, los stacks, vectores, semáforos, entre otros, además de acuñar otro concepto
tras dar luces de respuesta a la problemática de la computación, donde la mayor
dificultad es escribir programas de cómputo libres de defectos, comprensibles,
mantenibles y verificables, denominado “crisis del software.. Los conceptos de
Dijkstra sentaron las bases para lo que luego fue llamado “programación en grande”;
precisamente P.I. Sharp, en la conferencia NATO n1969 dice acerca del genio
holandés; el piensa que tienen algo muy aparte de la ingeniería del software, algo de
lo que se ha hablado muy poco pero que debería poner sobre la mesa, para
concentrarse más en ello. Como ejemplo habla sobre OS/360 que están
extremadamente bien codificadas; su diseño fue delegado a varios ingenieros, cada
uno de ellos realizo su propia arquitectura y cuando todas estas partes se integraron
en una sola no produjeron una tersa y bella pieza de software. (Reynoso, 2004)
36
Y la siguiente frase es más que visionaria, es una profecía para tiempos de
caos, en los que décadas después los ingenieros están perdidos en lo referente a la
ingeniería y arquitectura del software, en este sentido Sharp continúa: indica que lo
que sucede es que las especificaciones de software se creen son funcionales. En
este caso solo hablamos de lo que puede hacer el programa. Dice que cualquier
desarrollador responsable de la implementación o partes del software debe
especificar más que esto, debe especificar el diseño, la forma; dentro de este marco
de referencia los desarrolladores de software deben crear algo.(Reynoso, 2004)
Ya para el año de 1975, aparece la publicación del diseñador del sistema
operativo OS/360, quien utilizaba el concepto de “arquitectura del sistema” para
designar la relación especifica del usuario con una interfaz específica, comparando al
arquitecto del software con el arquitecto de una casa [Brooks, 75] citado por
(Reynoso, 2004)
Sin embargo en el sentido estricto del término la expresión
Arquitectura del Software fue usada concretamente hasta el año de 1992 por Perrry
Wolf, diciendo que el propósito es construir el fundamento para la arquitectura del
software, donde primero se desarrollaran una percepción, recurriendo a diferentes
disciplinas de arquitectura bien definidas. Sobre la base de esta percepción, Perry
Wolf presenta un modelo para la arquitectura del software que consiste en tres
componentes: elemento, forma y razón. Los elementos son
los procesamientos,
datos o conexión. La forma son las propiedades, restricciones de la relación entre
los elementos. La razón proporciona una base para la arquitectura en término de
restricciones (Reynoso, 2004). En este sentido puede resultar útil estas analogías
guardadas, resaltando los tres componentes fundamentales que son elementos,
razón y forma, los cuales al moldearse en un mismo sistema de diseño, permite
ampliar las posibilidades eliminando las restricciones, por el contrario permitiendo el
desarrollo del software, allanando el camino para el futuro desarrollo de los
estándares de calidad y unificación en el modelado.
37
3.1 UML
El lenguaje unificado de modelado UML permite modelar visualmente los
sistemas de información y tiene como objeto el escribir con cierta formalidad los
sistemas de información, esto para especificar, visualizar, construir y documentar los
artefactos de un software. Está pensado para usarse con los métodos de desarrollo,
sus etapas del ciclo de vida, dominios de aplicación y medio. Igualmente es
concebido para ser utilizado en herramientas interactivas de modelado visual que
tengan generadores de código así también como generadores de informes. UML fue
adoptado unánimemente como estándar en noviembre de 1997, asumiendo la
responsabilidad de futuros desarrollos en el estándar de modelado. El surgimiento de
UML fue atractivo para el público informático ya que se pretende apoyar tanto la
expansión del uso del modelado a objetos, como la aparición de nuevas
herramientas de formación y utilización, teniendo en cuenta que ya no hay que
pensar en metodologías a usar y mantener. (Booch, Jacobson, & Rumbaugh, 2000)
Cómo se observa en la figura 11, UML está pensado para cubrir una serie de
necesidades en el proceso de diseño de un software, relacionándolo a diferentes
procesos que proporcionan a los desarrolladores de software, a los arquitectos de
sistemas, y a los ingenieros de software las herramientas necesarias para el análisis,
diseño, implementación de los sistemas de software. Su función es capturar las
partes esenciales del sistema para desarrollar, probar y mejorar más fácilmente
dicho software. (Booch, Jacobson, & Rumbaugh, 2000)
38
Figura 11. MAPA MENTAL DE LOS PROCESOS UML
Recuperado de http://lizeth-hoyseraundiamas.blogspot.com/2009/09/mapa-mental-uml.html
El modelado se puede considerar como la espina dorsal del desarrollo de
software con alta calidad, el cual busca representar los planos del software, es decir,
buscado visualizar lo que el cliente quiere que haga el sistema, especificar la
estructura o comportamientos del mismo, proporcionar plantillas que guíen al
desarrollador en la construcción, además de documentar las decisiones tomadas;
proporcionando un vocabulario con reglas de utilización y representación conceptual
de los modelos que pueden ser interpretados por algunas personas que no hayan
participado en su diseño. (Booch, Jacobson, & Rumbaugh, 2000)
Como muestra en la figura 12, los diagramas UML se dividen en diagramas
de estructura y diagramas de comportamiento, los primeros a su vez se dividen en
39
diagramas de clases, diagramas de componentes, diagrama de despliegue,
diagramas de paquetes, diagrama estructura compuesta y diagramas de objetos; los
diagramas de comportamiento se dividen en diagramas de estado, diagrama de
casos de uso, diagramas de actividades y diagramas de interacción, estos últimos a
la vez se dividen en diagramas de secuencia, diagramas de colaboración, diagrama
global de interacción y diagrama de tiempos. Sin embargo al realizar el modelado de
un software no es necesario realizar todos los diagramas propuestos por UML,
debido a que se debe analizar la importancia que puede tener cada diagrama para el
tipo de desarrollo a realizar, y así poder generar los diseños de los diagramas que se
consideren relevantes según las características del software.
Para definir cualquier modelo es necesario contar con un lenguaje de
modelado. Los metamodelos definen formalmente la sintaxis abstracta de los
lenguajes de modelado, recogiendo sus conceptos (palabras del lenguaje), así como
las reglas que indican cómo se pueden combinar dichos conceptos para formar
modelos válidos.
Por otra parte, la representación asociada a cada uno de los
elementos del modelo (conceptos y relaciones) constituye la sintaxis concreta del
lenguaje.
40
Figura 12. UML DIVISIÓN DE DIAGRAMAS ESTRUCTURALES
Recuperado de http: http://www.uml-diagrams.org/uml-24-diagrams.png
3.2 JAVA
Java hacia el año de 1991 cuando un grupo de ingenieros de Sun
Microsystems, buscaban diseñar un lenguaje de programación independiente de las
máquinas utilizadas, ya que éstas eran cada vez más reducidas. En este sentido se
diseñó
un código neutro que no dependía del tipo de CPU utilizado, éste se
ejecutaba sobre una máquina hipotética o virtual denominada "Java virtual machine".
41
Esta interpretaba el código neutro convirtiéndolo al código particular de cada CPU. Al
programar en Java el desarrollador no parte desde cero, sino que cuenta con un
gran número de clases pre-existentes, algunas hechas por el mismo. (TUTORIAL DE
JAVA)
El principal objetivo del lenguaje es llegar a ser el nexo universal que conecte
a los usuarios con la información, sitúan un ordenador local, en la web, en una base
de datos, o en cualquier otro lugar.
3.3 NETBEANS
NetBeans es un entorno desarrollo integrado (IDE) de carácter libre, el cual
fue hecho principalmente para el lenguaje de programación Java. Este proyecto de
código abierto tiene gran éxito, con una comunidad de usuarios en constante
crecimiento.
Esta plataforma permite que las aplicaciones sean desarrolladas a partir de
módulos, entendiendo un módulo como un archivo Java para interactuar con las
aplicaciones de Netbeans y un activo especial que lo identifica como tal. El hecho de
desarrollar los módulos independientemente permite que las aplicaciones basadas
en esta plataforma puedan ser extendidas o ampliadas por otros desarrolladores.
(Netbeans.org, 2014)
3.4 ARDUINO
Es
una
plataforma
de hardware
libre,
basada
en
una placa con
un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la
electrónica en proyectos multidisciplinares.
Se puede usar Arduino para crear objetos interactivos, leyendo datos de una
gran variedad de interruptores y sensores y controlar multitud de tipos de luces,
motores y otros actuadores físicos. Los proyectos de Arduino pueden ser autónomos
o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash,
Processing, MaxMSP). La placa se puede montar por cualquier persona o comprarla
42
ya lista para usar, y el software de desarrollo es abierto y se puede descargar gratis.
(ARDUINO ORG, 2012)
3.5 METODOLOGIAS DE PROGRAMACION
3.5.1 Rapid application development (Rad)
La metodología de desarrollo rápido de aplicaciones (RAD) se desarrolló para
responder a la necesidad de entregar sistemas muy rápido. El enfoque de RAD no es
apropiado para todos los proyectos. El alcance, el tamaño y las circunstancias, todo
ello determina el éxito de un enfoque RAD.
El método RAD tiene una lista de tareas y una estructura de desglose de
trabajo diseñada para la rapidez. El método comprende el desarrollo iterativo, la
construcción de prototipos y el uso de utilidades CASE (Computer Aided Software
Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a
englobar también la usabilidad, utilidad y rapidez de ejecución.
El desarrollo rápido de aplicaciones es un proceso de desarrollo de software,
desarrollado inicialmente por James Martin en 1980. El término fue usado
originalmente para describir dicha metodología. La metodología de Martin implicaba
desarrollo iterativo y la construcción de prototipos. Más recientemente, el término y
su acrónimo se están usando en un sentido genérico, más amplio, que abarca una
variedad de técnicas dirigidas al desarrollo de aplicaciones rápidas.
RAD requiere el uso interactivo de técnicas estructuradas y prototipos para
definir los requisitos de usuario y diseñar el sistema final. Usando técnicas
estructuradas, el desarrollador primero construye modelos de datos y modelos de
procesos de negocio preliminares de los requisitos. Los prototipos ayudan entonces
al analista y los usuarios a verificar tales requisitos y a refinar formalmente los
modelos de datos y procesos. El ciclo de modelos resulta a la larga en una
combinación de requisitos de negocio y una declaración de diseño técnico para ser
usado en la construcción de nuevos sistemas, como muestra la figura 13.
(gestionrrhhusm, 2011)
43
Figura 13. RAPID APPLICATION DEVELOPMENT (RAD).
Recuperado de: http://www.zlouatom.ru/wp-content/uploads/2013/04/rad.png
Los enfoques RAD pueden implicar compromisos en funcionalidad y
rendimiento a cambio de permitir el desarrollo más rápido y facilitando el
mantenimiento de la aplicación. (gestionrrhhusm, 2011)
3.5.2 Rational unified process (Rup)
El proceso unificado Rational (RUP) es un marco de trabajo de proceso de
desarrollo de software iterativo creado por Rational Software Corporation, una
división de IBM desde 2003. RUP no es un proceso preceptivo concreto individual,
sino un marco de trabajo de proceso adaptable, con la idea de ser adaptado por las
organizaciones de desarrollo y los equipos de proyecto de software que
seleccionarán los elementos del proceso que sean apropiados para sus
necesidades, como muestra la figura 14. (gestionrrhhusm, 2011)
44
Figura 14. RATIONAL UNIFIED PROCESS (RUP).
Recuperado de: http://projects.staffs.ac.uk/suniwe/images/rup-cycle.gif
RUP fue originalmente desarrollado por Rational Software, y ahora disponible
desde IBM. El producto incluye una base de conocimiento con artefactos de ejemplo
y descripciones detalladas para muchos tipos diferentes de actividades.
RUP resultó de la combinación de varias metodologías y se vio influenciado
por métodos previos como el modelo en espiral. Las consideraciones clave fueron el
fallo de proyectos usando métodos monolíticos del estilo del modelo en cascada y
también la llegada del desarrollo orientado a objetos y las tecnologías GUI, un deseo
de elevar el modelado de sistemas a la práctica del desarrollo y de resaltar los
principios de calidad que aplicaban a las manufacturas en general al software.
(gestionrrhhusm, 2011)
3.5.3 Cascada
En este modelo los pasos del desarrollo son vistos hacia abajo, a través del
análisis de las necesidades, el diseño, pruebas, implantación, integración y
mantenimiento como lo muestra la figura 15. (gestionrrhhusm, 2011)
45
Figura 15. MODELADO EN CASCADA
Recuperado de: http://www.gavide.com/images/page10_img1.jpg
Los principios básicos para este modelo son:



Este modelo está dividido en secuencias
Se hace insistencia en la parte de organización, horas, fechas,
presupuestos y la actuación del sistema una sola vez
La documentación de todo el proceso realizado, comentarios y
aprobación por el usuario.
3.5.4 Prototipado
Como se muestra en la figura 16, este modelo permite desarrollar los
modelos para aplicaciones de software que deja ver el funcionamiento básico del
mismo, condesciende al cliente verificar el producto temprana mente, el usuario tiene
una interacción con los diseñadores y desarrolladores para revisar si se está
cumpliendo satisfactoriamente con los requisitos y las funcionalidades anteriormente
acordadas. (gestionrrhhusm, 2011)
46
Figura 16. MODELADO EN PROTOTIPADO
Recuperado de: http://www.gavide.com/images/page10_img1.jpg
3.5.5 Incremental
Proporciona una estrategia para inspeccionar la complejidad de los riesgos,
reservando una parte del producto software para algunos aspectos en el futuro,
como muestra la figura 17. (gestionrrhhusm, 2011)
Figura 17. MODELO INCREMENTAL
Recuperado de: http://sg.com.mx/images/stories/200602/praticas_procesos_1.gif
47
Algunos de los principios son:



Se realiza una mini cascada para una parte del sistema, antes de
seguir con el proceso incremental.
Se realiza una mini cascada del desarrollo para cada uno de los
incrementos del sistema.
Se utiliza un enfoque de cascada para el análisis de las necesidades y
el diseño de la arquitectura, que finaliza con la instalación del prototipo
final o terminado. (gestionrrhhusm, 2011)
3.5.6 Espiral
Los principios básicos de este modelo son:

Se centra más que todo en la evaluación y reducción de los riesgos
del proyecto, dividiéndolo por segmentos pequeños para más facilidad
al proceso de cambio durante el desarrollo del mismo, también deja
ver la posibilidad de evaluar los riesgos con la aplicabilidad en el
proyecto durante todo el ciclo de vida.

Cada vez que realiza el proceso del espiral atraviesa cuatro enfoques
muy básicos:
1. Determinar objetivos, alternativas, y desencadenantes de la
iteración
2. Evaluar, identificar y solucionar los riesgos.
3. Desarrollar y verificar los resultados.
4. El ciclo siempre se comienza con el usuario y sus requisitos para
luego terminar con la revisión. (gestionrrhhusm, 2011)
La figura 18, muestra los enfoques básicos de esta metodología.
48
Figura 18. MODELADO EN ESPIRAL
Recuperado de: http://www.tutorialspoint.com/sp/software_engineering/images/sdlc_spiral.png
3.6 METODOLOGIA SELECCIONADA
Para el desarrollo del proyecto se realizó la búsqueda necesaria de las
diferentes tipos de metodología; acoplándose de una mejor forma la metodología de
la programación en cascada, debido a que se tienen claro cada uno de los procesos
que va realizar el sistema. Teniendo la necesidad de software requerida y analizando
en términos generales que el proyecto a desarrollar no es tan robusto, de manera
que no exige de un gran rendimiento de la metodología, sin embargo la misma es
una de las utilizadas por su facilidad y por buen desempeño en los proyectos, esta se
puede definir en los siguientes pasos:
Análisis: Esta consiste en levantar la información actual del problema y
proponer los casos generales de la solución.
49
Diseño: Permite describir o establecer los componentes o módulos que
formarán el software para ser producido. Donde, describen, con mucho detalle, cada
módulo que contendrá el sistema, y que operación va realizar.
Desarrollo: Esta consiste en desarrollar cada uno de los módulos creación
“física” donde se hacen los procesos de codificación, implementación de interfaz y
más.
Pruebas: Permite llegar al momento de verificar que el sistema es
consistente con la definición de requisitos y la especificación funcional.
Mantenimiento: El mantenimiento ocurre cuando existe algún problema
dentro de un sistema existente, e involucraría la corrección de errores que no fueron
descubiertos en las fases de prueba.
De acuerdo con la metodología y su estructura secuencial, cuando se finaliza
una etapa se lleva a cabo un proceso de revisión en el que se verifica el
cumplimiento de los requerimientos o de todos las actividades de esta etapa, para
así, dar paso a la siguiente etapa y continuar con los procesos de la metodología;
pero cuando se encuentran inconsistencias, se solucionan para así continuar con el
proceso, lo cual permite tener una reducción de errores al momento de implementar
el sistema.
4. ESPECIFICACION DE LA SOLUCION
4.1 REQUERIMIENTOS
Un requerimiento es la característica que debe tener determinado sistema de
cómputo, a su vez un requerimiento es una restricción que el sistema debe cumplir
para que de este modo pueda ser aceptado por la persona o entidad que demande
un software acorde a sus necesidades. Si el requerimiento se entiende como una
condición, una capacidad de una necesidad a cumplir por el usuario debe también
ser una representación documentada de esta condición o capacidad. El
50
requerimiento es necesario para que no hayan deficiencias en el sistema, debe ser
conciso fácil de leer, pero a su vez debe de ser completo con la información
suficiente para la comprensión.
Ahora bien, continuando el proceso se llega al paso siguiente es que el
levantamiento de los requerimientos, lo cual se puede entender como una
especificación del sistema de cómputo en los términos más sencillos para que
siguiente lo entienda, lo que a la larga que constituye en el contrato desarrollado
entre ambas partes.
Existen dos clases de requerimientos, los funcionales y los no funcionales.
Los funcionales son los que describen la interacción entre el sistema de cómputo
visual y el ambiente de manera independiente a la implementación; en este sentido
el ambiente incluye un determinado usuario y cualquier otro sistema que de manera
remota, a través de internet, pueda interactuar con el sistema. Para el levantamiento
de los requerimientos se pueden utilizar dos conceptos, los cuales deben ser escritos
en un lenguaje natural o sencillo, es decir, no técnico para que puedan ser
entendidos por el usuario. Los escenarios son usados para describir la aplicación y
su funcionalidad, con ejemplo de los puntos del sistema en términos de interacciones
entre el usuario y el sistema mismo. Continuando en este mismo orden de ideas,
cada escenario es una descripción de situaciones específicas en la aplicación
centrándose directamente en el comportamiento de la misma.
Los requerimientos no funcionales son aquellos que describen aspectos
visibles para el usuario pero que no necesariamente incluyen una relación directa
con el comportamiento funcional del sistema, incluyen restricciones generalmente de
seguridad, de tiempo y precisión. De acuerdo a este marco se procede a realizar la
especificación
de
los
requerimientos
levantados,
clasificación. (Ver Tablas de la 1 a la 7).
51
con
su
correspondiente
Tabla 1. Requerimiento 001
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Requerimiento Nro.
Juan Carlos Parra
001
Configuración Manual del Movimiento
Descripción del requerimiento:
Permitir la manipulación del brazo a partir de la configuración manual del
movimiento que realizará cada motor.
Tipo de requerimiento
x Funcional
No funcional
Tabla 2. Requerimiento 002
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Requerimiento Nro.
Juan Carlos Parra
002
Rutina Automática
Descripción del requerimiento:
Permitir que el usuario pueda activar la rutina automática por defecto a ser realizada
por el brazo.
Tipo de requerimiento
X Funcional
No funcional
52
Tabla 3. Requerimiento 003
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE NO FUNCIONAL PARA UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Requerimiento Nro.
Juan Carlos Parra
003
Verificación de datos ingresados
Descripción del requerimiento:
Delimitar el rango permitido de los grados a ser enviados al dispositivo hardware para
asegurar un correcto funcionamiento del mismo.
{ñ-Tipo
requerimiento
de x Funcional
No funcional
Tabla 4. Requerimiento 004
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Requerimiento Nro.
Juan Carlos Parra
004
Menú Inicial
Descripción del requerimiento:
Mostrar un menú inicial para la selección de la rutina automática, o la rutina manual
Tipo de requerimiento
Funcional
x No funcional
53
Tabla 5 Requerimiento 005
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Juan Carlos Parra
Interfaz Intuitiva
Descripción del requerimiento:
Requerimiento Nro.
005
Realizar una interfaz simple, y entendible, de manera que el software pueda ser
utilizado de una manera intuitiva
Tipo de requerimiento
Funcional
X No funcional
Tabla 6. Requerimiento 006
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Juan Carlos Parra
Requerimiento Nro.
007
Configuración de Retardos
Descripción del requerimiento:
Se debe poder configurar un retardo entre cada movimiento enviado en la sección de
rutina manual con el fin de no desgastar el juego de engranajes que está situado en la
caja reductora del servomotor.
Tipo de requerimiento
X funcional
No funcional
54
Tabla 7. Requerimiento 007
INGENIERIA
(UCP)
DE
SISTEMAS
Y
TELECOMUNICACIONES
CAPTURA Y DESCRIPCIÓN DE REQUERIMIENTOS
Nombre del proyecto:
Fecha:
SOFTWARE PARA EL CONTROL DE UN 18/03/2014
BRAZO ROBÓTICO
Analista Responsable:
Juan Carlos Parra
Requerimiento
Nro.007
Reinicio de Brazo
Descripción del requerimiento:
En el software debe existir la opción de reiniciar el brazo para que el mismo quede en
la posición inicial por defecto.
Tipo de requerimiento
funcional
X No funcional
4.2 PONDERACION DE LOS REQUERIMIENTOS
Tabla 8. Ponderación de Requerimientos
REQUERIMIENTOS
PONDERACIÓN
(%)
CLASIFICACIÓN
Configuración manual del movimiento
Rutina Automática
Verificación de datos ingresados
Configuración de Retardos
20
20
15
Funcional
Funcional
Funcional
15
Funcional
Interfaz intuitiva
10
Menú Inicial
Reinicio de Brazo
TOTAL
10
10
100
55
No
Funcional,
Interfaz
No funcional, Interfaz
No Funcional
4.3 DESCRIPCION DE LA TECNOLOGIA
Para el desarrollo del proyecto se implementaron diferentes tecnologías y
dispositivos hardware que mediante su interconexión logran dar forma al sistema
completo de prototipo físico y producto software. El brazo robótico AS-6DOF fue una
de las tecnologías escogidas con un diseño para realizar movimientos precisos de
alta repetitividad, además su estructura esta hecho de aluminio que nos permite fácil
movilidad e integración en el laboratorio, dentro de la misma estructura del brazo en
función de su movilidad tiene integrado diferentes servomotores de gran precisión
para poder ubicar cada articulación dentro del rango que se requiere en la operación,
estos servomotores tienen una ventaja que pueden ser controlados a través de un
integrado que recibe la señal o instrucciones desde la placa base para poder
controlar la fuerza y la velocidad de su caja reductora. Otro de sus componentes
tecnológicos es el arduino Mega 2560 o la placa base que se utilizó, es ideal para
proyectos de robótica, lo más destacado es su elevada cantidad de pines de entrada
y salida, su
plataforma de hardware es libre y está compuesta de un micro
controlador que después de estar programado ayuda con las tareas de movilidad de
nuestro brazo robótico, tiene un software libre (ID Arduino) para la programación de
las rutinas a integrar en el micro controlador que puede ser instalada en cualquier
sistema operativo, su entorno de desarrollo es diseñado para facilitar la funcionalidad
y programación de diferentes componentes que nos ofrece arduino.
4.3.1 Brazo robótico AS-6DOF
Después de analizar diferentes referencias de brazos robots para su
implementación con el sistema se decidió optar por el brazo robótico AS-6DOF que
se observa en la figura 19, debido a su estructura, porque permite encajar
perfectamente en el laboratorio de PHYSILAB, ya que por su peso, medidas, su
material de aluminio hace que sean elementos más fáciles e importantes a la hora
de integrarlo con otros elementos para el funcionamiento. De otra forma, fue
escogido por su forma de conexión con otros elementos el cual nos permite un
control total de sus movimientos.
56
Figura 19. BRAZO ROBOT AS-6DOF
Recuperado de: http://www.alsrobot.com/index.php?route=product/product&path=65
Es un brazo mecánico que contiene 6 servo motores que ayudan a mover sus
articulaciones, trae internamente un controlador para 32 servomotores, esto quiere
decir que puede manejar esta cantidad de motores al mismo tiempo, para poder
tener la conexión entre el arduino y el computador se debe utilizar una interconexión
USB para que la tarjeta sea reconocida por el computador y así poder manejar el
software de arduino, este entorno de programación es muy parecido a C++ que para
y así se facilita la programación o rutinas que manejarían el brazo robótico,
parámetros son enviados al micro controlador de la placa base que siempre está
activo a recibir instrucciones, estas rutinas son quemadas dentro del micro
controlador
a través de la interfaz del software de arduino y se almacena
inmediatamente para estar listo a ser ejecutado para realizar la rutina o los
parámetros programados en el movimiento de cada uno de los motores del brazo.
57
4.3.2 Arduino mega 2560
Para el desarrollo de este proyecto se tuvieron en cuanta diferentes tarjetas
de la familia Arduino, sin embargo la placa arduino mega 2560 la cual se observa en
la figura 20; fue seleccionada a diferencia de otras placas de éste tipo, incluye un
amplio espacio de
capacidad
memoria para programar y corriendo a 16 Mhz, tiene una
SRAM de 8 KB y cuenta con 54
pines que permite
tener otros
dispositivos similares, es decir, se eligió por sus especificaciones técnicas de alto
rendimiento, lo que lo hace atractivo para diferentes proyectos con alto nivel de
complejidad, además es perfecto pensado en la integración con PHYSILAB (un
proyecto de mayor envergadura) es importante contar con buenas posibilidades de
escalabilidad. El Aduino MEGA 2560 es ideal para los proyectos de robótica con el
control de varios elementos al mismo tiempo, su conexión USB hace más flexible y
fácil a la hora de interactuar con nuestro sistema de cómputo. (ARDUINO ORG,
2012)
Figura 20. ARDUINO MEGA 2560
Recuperado de: http://arduino.cc/en/Main/arduinoBoardMega2560
La tarjeta Arduino Mega está basada en el micro controlador ATmega2560,
esta board es la sucesora de la Arduino MEGA1280, Trae 54 I/O digital de los cuales
podemos usar 14 PWMs, 16 canales de entradas analógicas, 4 puertos seriales a 16
MHz, tiene integrado una conexión a USB, entrada de alimentación tipo Jack y
58
conector ICSP(In-Circuit Serial Programming), su uso es muy sencillo; éste tipo de
Arduino no requiere una programa de control externo, solamente es conectarla a la
tarjeta a través del puerto USB y descargar el programa o instrucciones en su Micro
controlador. (ARDUINO ORG, 2012)
4.3.3 Servomotores
Como se observa en la figura 21 un servomotor es un motor DC que está
conectado a un integrado. El integrado lo que hace es recibir una señal de control,
esta señal es de tipo PWM (pulse-width modulation), que quiere decir modulación
por ancho de pulso, el integrado lo que hace es recibir esta señal y la demodula para
verificar a cuantos grados tiene que girar el motor. El servomotor tiene una parte
mecánica denominada caja reductora, está compuesta de conjunto de engranajes o
piñones que nos proporcionan movimientos precisos aumentando la fuerza del servo
motor. (TdRobotica.co, 2012)
Figura 21. SERVOMOTOR RB-150MG
Recuperado de: http://www.alsrobot.com/index.php?route=product
59
4.4 DESCRIPCION GENERAL DE LA SOLUCION
Realizando el análisis de los requerimientos y de la contextualización del
proyecto se realiza la estructuración del sistema de la siguiente manera:
4.4.1Sistema General
El solución consta de 3 partes fundamentales, el prototipo hardware (Brazo
Robótico), el software para la tarjeta micro-controladora Arduino que permite
el
control del brazo y el Software de escritorio para el control de la tarjeta microcontroladora.
4.4.2 Software en Arduino
El software principal de control del brazo es el desarrollado para el dispositivo
Arduino Mega 2560, puesto que esta tarjeta es la primera capa de control del
dispositivo dentro del sistema general.
El dispositivo debe estar programado de manera que su estructura permita
por medio de parámetros ejecutar las funciones de movimiento que se requieren en
el sistema, como lo son una Rutina Automática, Posicionamiento Inicial y una Rutina
Manual.
La ejecución de la rutina automática se debe realizar al enviar un parámetro
que identifique esta opción dentro del dispositivo Arduino para así ejecutar los
diferentes movimientos (ángulos de posición y retardos) programados internamente,
es decir que se posicione en un objetivo inicial, descienda para agarrar un objeto
determinado, ascienda nuevamente y posteriormente sea llevado hasta una posición
final para soltar el objeto.
La ejecución del posicionamiento inicial, igualmente debe realizarse a partir
del envío de un parámetro que identifique la misma, en el software desarrollado para
el Arduino, y así ejecutar las acciones que permitan que el brazo se ubique en la
posición por defecto para el cual haya sido programado.
60
La ejecución de la rutina manual se realiza a partir del envío de un parámetro
de tipo cadena el cual incluya los valores de todas las posiciones y retardos de
manera que al ser enviado al software creado para la tarjeta, tome dichos
parámetros y se los asigne a cada servomotor con el fin de que estos realicen su
posicionamiento determinado.
4.4.3 Software de Escritorio
El sistema debe contar con una interfaz gráfica el cual actúa como canal de
comunicación entre el usuario y el sistema general.
El software debe estar compuesto por un menú principal en el cual se
encuentre la opción de inicializar la conexión con el brazo robot, la opción de
ejecutar la rutina automática y una tercera opción para la rutina manual.
La opción para la conexión al brazo robot debe existir puesto que los
sistemas operativos de los computadores pueden reconocer el dispositivo Arduino
desde diferentes puertos (COM1, COM2, COM3…) y se debe poder seleccionar el
puerto con el cual se quiere realizar la conexión al software.
Para la ejecución de la rutina manual debe aparecer otra interfaz, en la cual
se pida al usuario la posición en grados que sea que se mueva cada motor, y un
retardo posterior a cada movimiento, En la interfaz se debe enumerar cada uno de
los motores e indicar gráficamente que motor pertenece a que parte del brazo para
que sea entendible para el usuario la configuración de los mismos. En la interfaz de
la rutina manual deben estar habilitados 3 botones, uno de ellos que ejecute la rutina
que ha sido configurada, otro para regresar a la posición inicial, y el tercero que me
permita volver a al menú inicial.
4.4.4 Integración
Las 3 partes fundamentales del sistema deben estar integradas finalmente, El
dispositivo hardware debe estar conectado de manera que cada motor del brazo
robot se encuentre conectado a la alimentación de energía eléctrica y que
61
igualmente esté conectado a un pin correspondiente de la tarjeta micro-controladora
como medio para recibir las instrucciones.
La tarjeta micro-controladora igualmente debe estar conectada al computador
en donde esté instalado el software por medio de cable USB, para lograr la recepción
de instrucciones desde el software de escritorio.
4.4.5 Cronograma de Actividades
Las áreas sombreadas en verde corresponden a los avances que se
ejecutaran, y las áreas sombreadas en amarillo, son los momentos en los cuales
debe irse desenvolviendo el proyecto.
TABLA 9. CRONOGRAMA DE ACTIVIDADES UCPBRA
Fecha →
ACTIVIDAD
Formulación
Problema
Objetivos
Metodología
Marco Teórico
Marco Conceptual
Marco Contextual
Requerimientos
Armado de brazo
Análisis Diseño
Implementación
INFORME FINAL
Redacción Informe
Revisión
Exposición
Pruebas
Ajuste y corrección
Sustentación
Ene
Feb
Mar
23-abr 8-May
Recuperado de: Elaboración propia
62
/
Jun
4.4.6 Estimación de Presupuesto
Tabla 10. Estimación de Presupuesto
Concepto
Meses
(1/2 Tiempo)
1
Levantamiento de información
Valor
250.000
Conceptualización
1
200.000
Elección de Tecnologías
1
150.000
Diseño de Software
1
350.000
Creación y Programación de la interfaz UCPBRA
1
400.000
Programación de Rutinas en software de arduino
1
300.000
Brazo Robótico AS-6DOF
1
780.000
Arduino Mega 2560
1
150.000
Dispositivos Electrónicos
1
200.000
Reparación y compra de elementos dañados
3
280.000
3.060.000
Total:
Recuperado de: Elaboración propia
5. ARQUITECTURA DEL SOFTWARE
5.1 Diagrama de casos de uso
Los casos de uso se utilizan para describir los pasos de las actividades que
deberían realizar para poder llegar a ejecutar un proceso, todos los personajes que
actúan en un caso de uso se le denominan actores, en nuestro caso como muestra
la figura 22, existe un usuario que tendrá que tomar una decisión, si quiere que el
brazo efectué una rutina manual o si quiere que la realice automática, cada uno de
ellos tiene sus actividades por cumplir dependiendo a la decisión que se tome.
63
Figura 22. DIAGRAMAS DE CASOS DE USO UCPBRA
Recuperado de: Elaboración propia
5.2 Diccionario de casos de uso
Tabla11. Diccionario de casos de uso 1
No. Caso de Uso:
1
Nombre:
Rutina Manual
Descripción
El usuario del software podrá configurar los movimientos del
brazo seleccionando realizando la parametrización de los
diferentes motores.
Relaciones
Asociación: Usuario
64
Tabla 12. Diccionario de casos de uso 2
No. Caso de Uso:
2
Nombre:
Indicar Grados Motores
Descripción
Como segundo paso para la rutina manual, se deberá
ingresar el valor a ser enviado a los motores para su
respectivo movimiento
Relaciones
Asociación: Usuario
Tabla 13 Diccionario de casos de uso 3
No. Caso de Uso:
3
Nombre:
Definir Retardos
Descripción
Como tercer paso se debe ingresar el valor de los retardos
que se desean enviar después del movimiento de los motores
Relaciones
Asociación: Usuario
65
Tabla 14 Diccionario de casos de uso 4
No. Caso de Uso: 4
Nombre:
Ejecutar Rutina
Descripción
Finalmente la rutina con los motores y sus valores de
movimiento
previamente
asignados
y
sus
retardos
correspondientes son enviados al brazo robot conectado al
equipo para su inmediata ejecución. La rutina enviada tendrá la
opción de seleccionar la cantidad de veces que se quiere
repetir la rutina, o si se quiere realizar la rutina en un ciclo
infinito.
Relaciones
Asociación: Usuario
Tabla 15 Diccionario de casos de uso 5
No. Caso de Uso: 5
Nombre:
Ejecutar Rutina
Descripción
Finalmente la rutina con los motores y sus valores de
movimiento
previamente
asignados
y
sus
retardos
correspondientes son enviados al brazo robot conectado al
equipo para su inmediata ejecución. La rutina enviada
tendrá la opción de seleccionar la cantidad de veces que se
quiere repetir la rutina, o si se quiere realizar la rutina en un
ciclo infinito.
Relaciones
Asociación: Usuario
66
Tabla 16 Diccionario de casos de uso 6
No. Caso de Uso: 6
Nombre:
Posición Inicial
Descripción
Los motores son reiniciados para que el brazo quede
en la posición inicial por defecto.
Relaciones
Asociación: Usuario
Tabla 17 Diccionario de casos de uso 7
No. Caso de Uso:
7
Nombre:
Rutina Automática
Descripción
Se envía la rutina configurada por defecto a ser
ejecutada por el brazo, la misma puede ser ejecutada una
sola vez, o en un ciclo infinito.
Relaciones
Asociación: Usuario
Tabla 18 Diccionario de casos de uso 8
No. Caso de Uso:
8
Nombre:
Detener Brazo
Descripción
Detiene cualquier movimiento que se esté realizando y se
devuelve a su posición inicial por defecto.
Relaciones
Asociación: Usuario
67
5.3 Diagrama general de secuencias
En la figura No.23 se determinan las actividades del software y la secuencia en las que se ejecutan para lograr la
integridad de las opciones requeridas para el sistema.
Figura 23. DIAGRAMA DE SECUENCIA
Recuperado de: Elaboración propia
De acuerdo en la figura 23, se muestra como las actividades se comunican
entre sí al transcurrir la secuencia ordenada de cada una de las funciones que
realiza al ejecutar nuestro software, en este caso se tiene un inicio donde inicializa
una conexión con arduino o placa base (arduino mega 2560), donde se verificar la
conexión de puertos en el administrador de dispositivos; verificada esta acción se
sigue con la siguiente actividad que es la seleccionar puerto, se elige el puerto
donde esta el dispositivo y se ejecuta la siguiente actividad que es conectar, se
verifica si ha conectado, en caso de que la conexión no fue exitosa; inmediatamente
se vuelve hacer la actividad de conexión con arduino, pero si fue exitosa se pasa a
la toma de decisiones donde se encuentran tres actividades para seleccionar que
son: rutina Manual, rutina Automática y desconectar.
Si su elección fue la actividad de rutina manual se ingresa a una nueva
interfaz donde se verifica la siguiente actividad de configurar posición de motores,
se ingresan los grados para cada movimiento en los servo motores, terminando la
anterior configuración y se procede a la siguiente actividad que es la de configurar
retardos; dentro de unas casillas que muestra la interfaz, se coloca en milisegundos
los retardos de los motores, efectuada la anterior actividad se ejecuta la rutina para
el funcionamiento de los motores; dentro de esta misma interfaz se tiene otra
actividad que se puede ejecutar en caso no dejar el brazo en su posición inicial, se
pasa a realizar la siguiente actividad que es volver a posición inicial, si se desea
parar las actividades en esta misma interfaz existe otra actividad para desconectar
donde se hace la desconexión entre el arduino y el software, pero si se desea
regresar a la ventana inicial se selecciona la actividad de volver selección rutinas
y automáticamente se regresa nuevamente al menú inicial o donde se seleccionan
nuevamente rutina Manual, rutina Automática y desconectar.
Si su elección fue rutina automática se inicia la actividad de rutina
automática ya con unos parámetros inicialmente ingresados y guardados en el micro
controlador del arduino, la última
actividad que tendríamos es desconectar,
habilitada en caso de que se desee desconectar la aplicación.
5.4 Prototipo no funcional
Figura 24. INTERFAZ DE INICIO UCPBRA
Recuperado de: Elaboración propia
El programa en su menú principal (ver figura 24) permite realizar la conexión
con el Arduino por el puerto que sea seleccionado en el ítem de conexión situado en
la parte superior derecha, ingresamos el puerto donde está conectado nuestro
arduino y ejecutamos el botón conectar, en esta ventana inicial tenemos 2 opciones,
la Rutina Automática, la cual, al ser presionada, inmediatamente realiza la rutina por
defecto que ha sido programada para el brazo dentro del micro controlador de la
placa base y la Rutina manual, la cual consta de una
pasamos a ingresar en grados
los movimientos
interfaz diferente donde
a realizar con sus respectivos
retardos en milisegundos para la ejecución ordenada para cada motor, antes de
hacer el movimiento gradualmente debemos verificar la limitante de cada motor.
Figura 25. INSERCIÓN DE DATOS PARA RUTINA MANUAL UCPBRA
Recuperado de: Elaboración propia
En la figura 25, se muestra la interfaz de la sección “Rutina Manual” en la cual se
puede seleccionar los grados a los que se desea mover cada motor, y el retardo
posterior al movimiento. Se cuenta con dos botones, el de Ejecutar Rutina, para
enviar los parámetros asignados y realizar el movimiento, y el de Posición Inicial, el
cual reinicia el brazo para que éste se ubique en la posición por defecto de inicio.
5.5 Descripción del proceso de desarrollo
El proceso de desarrollo del prototipo hardware se realiza según los
siguientes lineamientos.
Se procede a la construcción del brazo robot, armando los diferentes
componentes, y posicionando los servomotores correspondientes en cada una de las
articulaciones.
Cada servomotor debe estar conectado al integrado. El integrado lo que hace
es recibir una señal de control, esta señal pasa por un proceso de PWM (modulación
por ancho de pulso) para verificar el valor en la cual se debe posicionar el motor y
enviar dicha instrucción al mismo para ejecutar el movimiento.
Se energiza el brazo robótico, utilizando una fuente de energía eléctrica
continua de 5 voltios y 1 amperio para el funcionamiento de los servomotores.
Se realiza la preparación del entorno procediendo a la instalación de IDE
Arduino, con el driver correspondiente para la tarjeta, el IDE Netbeans y el Kit de
Desarrollo de Java (JDK).
El Arduino IDE se utiliza para la codificación del micro-controlador. La
codificación realizada de manera que para la ejecución de cualquier proceso se
necesite un parámetro que indique cual es el movimiento a realizar.
Se diseña un algoritmo estructurado cómo se describe a continuación: Se
importa la librería Servo.h para la gestión de los servomotores. Se inicializan 6
variables se tipo ‘servo’ que representarán los 6 motores y se relacionan con el pin
en el que se encuentran conectados al Arduino. Se crea el método loop el método
que se ejecutará indefinidamente y estará verificando se hay valores enviados en el
puerto de conexión al computador. Se codifica de manera que sólo la primera vez de
la ejecución del ‘loop’ el robot se ubique en la posición inicial (esto se realiza para
que al momento de energizar el Arduino, éste de inmediato ubique los motores en
dicha posición). Después de la configuración de la posición inicial, se entra a validar
si hay datos en el puerto, Si el dato recibido es ‘1’ se ejecutan las instrucciones que
realizan la rutina automática determinando los grados de posición de cada motor, y
los retardos necesarios para que la rutina fluya apropiadamente, (La rutina
automática es diseñada a prueba y error siguiendo la descripción realizada en la
definición general de la solución), Si el dato recibido es ‘2’ se ejecutan las
instrucciones para ubicar el brazo en la posición inicial, Y si el dato recibido es de 48
caracteres se realiza la rutina manual. Los 48 caracteres vienen de la manera en
cómo diseñó la cadena que se recibe, puesto que el movimiento de cada motor
cuenta con 3 caracteres que indican la posición, va desde ‘000’ a ‘180’, y 5
caracteres que indican el retardo en milisegundos ejecutado después de la
instrucción de posicionamiento, va desde ‘00000’ a ‘99999’, cómo cada motor ocupa
8 caracteres, y son 6 motores, el tamaño de la cadena total es 48. El código
diseñado para la opción de rutina manual evalúa la cadena y la divide para obtener
los caracteres necesarios que indican cada movimiento o retardo, y posteriormente
son asignados a su motor determinado (esto se puede realizar ya que la cadena
siempre viene organizada de la siguiente manera ‘posicion_motor1’ + ‘retardo1’ +
’posicion_motor2’ + ’retardo2’ + ’posicion_motor3’ + ’retardo3’ y así sucesivamente
hasta el motor 6).
Se desarrolla la interfaz del software de control que utilizara el usuario, en el
ambiente de desarrollo Netbeans.
Se codifica la navegación entre las pantallas diseñadas en el prototipo no
funcional.
Se programa el software de escritorio asignándole el envío de información ya
determinada en la codificación del Arduino para que éstas concuerden y se realicen
los procesos correspondientes, es decir al botón ‘Rutina Automática’ se codifica de
tal manera que se envíe por el puerto al cual está conectado el Arduino el carácter
‘1’, al botón ‘Ejecutar Rutina’ en la pantalla de Rutina Manual se codifica de tal
manera que arme la cadena de 48 caracteres que recibe el Arduino, con todo
los valores de posición y retardo, y al botón ‘Posición Inicial’ se le asigna el envío del
carácter ‘2’.
Se hace la conexión con el equipo en donde se encuentre el software de
control por medio del cable USB-Serial para la realización de pruebas de
comunicación.
Se procede a realizar las correspondientes pruebas de integración entre el
software de control en el computador y el dispositivo Arduino programado con su
correspondiente conexión a los motores.
Se revisan posibles inconsistencias y fallos de comunicación o de algoritmos
en la integración y se procede a su corrección.
Se realizan las pruebas finales para comprobar que no existan fallos
adicionales, y si los hay corregirlos hasta obtener una versión estable del producto
5.6 Inconvenientes en el proceso de desarrollo
Una gran parte del desarrollo de este software fue basado en la
programación del Arduino Mega 2560, puesto que dicha tarjeta de programación
contiene el código base para realizar las instrucciones del brazo el cual debe estar
realizado de manera que al recibir un parámetro por el puerto serial, se realice la
ejecución de una serie de actividades para las cual ha sido programado, La
herramienta para realizar la programación es el IDE Arduino, generó diferentes
inconvenientes, no reconocía el puerto COM, el programa en ocasiones se
bloqueaba y se cerraba, y se debió realizar la posterior desinstalación y reinstalación
del IDE y del driver de Arduino en repetidas ocasiones, debido a causas no
identificadas particularmente, pero finalmente se logró una estabilidad del IDE y el
desarrollo se llevó a cabo.
Un desarrollo en el cual se involucra la manipulación de un dispositivo
hardware incrementa sustancialmente la cantidad de errores y la detección del origen
de los mismos, puesto en el transcurso del desarrollo se puede presentar una falla o
técnica del dispositivo o de codificación.
En algunas ocasiones los motores se detenía o atascaban por fallas en la
construcción o por debilidad de algunos motores para cargar con movimientos muy
pesados para los mismos, por lo cual se realizó la alternación de motores en algunos
momentos.
La estabilidad de la estructura se veía afectada cuando se realizaban
movimientos fuertes de los servomotores, por lo que se fijaron limitantes en los
rangos en los que se podían mover cada uno de ellos, e igualmente se amarró la
estructura a una base para evitar movimientos inadecuados de la misma.
El programa que esta quemado internamente en el micro controlador tiene
varias etapas y estas rutinas son ejecutadas por medio de la interfaz de java, antes
de hacer todo, este código luego ser quemado en el micro controlador se realizaron
pruebas de movimiento con cada uno de los motores los cuales fueron evidenciando
la manera más fácil de construir el software localmente.
Estas etapas de pruebas se realizaron repetitivamente hasta logran la rutina
que se deseaba, se sumó que los servomotores solo se posicionan en el ángulo
especifico y no tuvimos que delimitarlos en ese sentido, esto quiere decir que si
volvemos a dar la misma rutina manual no sucederá nada ya que se encuentran
posicionados en el ángulo anteriormente descrito, Sin embargo la estructura del
brazo y la fijación realizada a una base para lograr una mejor estabilidad del mismo,
limitan de alguna manera el espacio en el cual el brazo se puede mover, y existen
posiciones en las cuales la libertad de un motor está condicionada a la posición en la
que esté otra de articulaciones, por lo que se realizó una delimitación de cada motor,
para que estos puedan ser movidos libremente pero evitando la ejecución de
algunos movimientos que llegan a ser obstaculizados por la estructura. Tal
delimitación quedo explícitamente visible en la interfaz del usuario al lado de la
sección de los grados para cada motor.
6. RESULTADOS
Aunque el proyecto de forma general está orientado al control de un proceso
físico, en este caso el control de un brazo robótico, el prototipo desarrollado en
realidad es un software, razón por la cual es necesario asegurar que las funciones
programadas cumplen con los objetivos, lo cual llevó no sólo a desarrollar pruebas
en un entorno donde encontramos nuestro programa informático, donde se tuvo
que realizar pruebas físicas con nuestro hardware. Lo cual se hizo para hallar
posibles errores en diseño, programación y ejecución del software tendiente a unas
depuración completa, buscando cumplir con los estándares de calidad, el cual se dio
con un resultado satisfactorio.
Los resultados arrojados son los elementos necesarios para el desarrollo de
UCPBRA como aplicación de escritorio para la manipulación del brazo robótico.
Concluida la estructuración de la interfaz de programación y el acondicionamiento del
brazo robótico con sus respectivos elementos, se realizaron pruebas en las que se
analizó la interfaz como tal, es decir, las denominadas pruebas de software. En las
primeras pruebas desde el análisis probatorio donde se analizaron los parámetros de
cada elemento, que debería tener para su ejecución y obtener una respuesta física
del brazo robótico tras recibir las señales enviadas desde la interfaz del software;
dichas pruebas permite en un análisis secuencial y correcto de que solución para ser
integrada a la hora de realizar la interfaz gráfica del software como la programación
requerida.
Luego de realizar las pruebas y las consecuentes correcciones, se reflexionó acerca
del uso potencial de UCPBRA no sólo para los estudiantes de la universidad católica
de Pereira, sino también de cuán útil sería para el mantenimiento de la plataforma
virtual, donde se ejecutarían remotamente el brazo robótico e interactúe dentro del
laboratorio. Por otra parte
se analiza el impacto que desarrollarían con el
aprendizaje por medio de estos laboratorios a estudiantes de bachillerato y porque
no de primaria, puesto que también se estudió en la escuela y el colegio, el uso del
brazo robótico con tal demanda de estudiantes y aprendices, donde tengan una
importante herramienta pedagógica, la cual será manejada desde el laboratorio
PHYSYLAB.
De la misma manera al estar analizando los resultados se hizo una reflexión
acerca de las implicaciones sociales del uso del PHYSYLAB, debido a que disminuye
los costos directos de la educación ya que en una práctica de laboratorio puede
hacerse de manera habitual, es decir, desde el lugar de residencia sin incurrir en
costos de transporte y viáticos para llegar a la universidad, de manera similar en lo
educativo principalmente en la práctica en los laboratorios, lo cual lleva a un
incremento del nivel académico, y de esta forma contribuir a los estándares exigidos
por la acreditación universitaria.
Conclusiones
Gracias a los requerimientos se pudo entender muchos aspectos del mismo
hardware y cómo se manejaban cada uno de los componentes, de acuerdo a la
intensidad de la carga de cada servomotor, el retardo adecuado que ayuda a la
manipulación del brazo.
En cuanto al levantamiento de los requerimientos se tiene que al ser una
restricción del sistema, como condición o capacidad para satisfacer al usuario, en el
proyecto el realizar el proceso según los estándares de calidad llevo a minimizar las
deficiencias en UCPBRA.
Los requerimientos funcionales fueron permitir la manipulación del brazo a
partir de la configuración manual del movimiento que realizará cada motor, el usuario
pueda activar la rutina automática por defecto a ser realizada por el brazo, verificar
que los datos ingresados por el usuario si correspondan a valores dentro de los
límites establecidos, para su envío al dispositivo hardware, la opción de conexión del
puerto fue necesaria para poder conectar y desconectar nuestra aplicación con la
placa base.
Como se pudo observar al levantar los requerimientos y analizarlos, el
trabajos de diseño un sistema software de control arrojó una serie de resultados que
permiten en el entorno de desarrollo crear los elementos del software para que
pueda ser manipulado los mecanismos motores del brazo, lo cual se hizo utilizando
netbeans y la plataforma de arduino.
Los requerimientos no funcionales fueron Mostrar un menú inicial para la
selección de la rutina automática o
manual, realizar una interfaz simple, y
entendible, de forma que el software pueda ser utilizado de una manera intuitiva,
también se analizó la implementación de un botón para colocar el brazo en posición
inicial, donde normalmente esta por defecto.
La importancia de los laboratorios virtuales como un paso hacia adelante en
los usos pedagógicos, en las distintas fases de los procesos de enseñanza y
aprendizaje.
El valor agregado de verse enfrentado a responder a dar solución a
necesidades del medio en cuanto a la formación adquirida, para el caso concreto,
profesionales en sistemas y telecomunicaciones.
La importancia de los usos de otras tecnologías como es el caso de un brazo
robótico, como se pudo ver en la sección teórica del trabajo la tecnología robótica es
preferida debido a que la industria en múltiples áreas de la producción usa robots
computarizados, por agilidad, tiempo y precisión.
Referencias bibliográficas
Bibliografía
ARDUINO ORG. (2012). ARDUINO.
Booch, G., Jacobson, I., & Rumbaugh, J. (2000). El Lenguaje Unificado de Modelado:
Manual de Referencia. Madrid: Pearson Educacón S.A,.
Caicedo Bravo, E., Bacca, E. B., Calvache, B. A., Cardona, J. E., & Buitrago, J. A.
(2009). Laboratorio Distribuido con Acceso Remoto Para la Enseñanza de la
Robótica. Revista Educacion en Ingenieria, 51-61.
COLOMBIANO, E. (27 de Septiembre de 2013). El desarrollo de software local
requiere más expertos. EL COLOMBIANO.
DOCSETOOLS.COM.
(2008).
Brazos
Roboticos.
Obtenido
de
http://docsetools.com/articulos-noticias-consejos/article_125997.html
FERIA VIRTUAL. (s.f.). https://www.interempresas.net/Robotica.
gestionrrhhusm. (2011). DESARROLLO Y CICLO DE VIDA DEL SOFTWARE.
Bogota. Obtenido de http://gestionrrhhusm.blogspot.com/
Ingenierías, C. U. (2004). Robots de Servicio y Teleoperados. Universidad de
Guadalajara, Guadalajara. Obtenido de http://proton.ucting.udg.mx/
Londoño, J. H. (06 de abril de 2005). Recuperado el 21 de abril de 2013, de
Ingenieria del software: http://ing-sw.blogspot.com/2005/04/tipos-de-pruebasde-software.html
Luengas, L. A., Guevara, J. C., & Sánchez, G. (2009). ¿Cómo Desarrollar un
Laboratorio Virtual? Metodología de Diseño. Recuperado el Febrero de 2014,
de www.tise.cl: http://www.tise.cl/volumen5/TISE2009/Documento20.pdf
MINTIC. (2015). PLAN DE FORMACION EN USO DE TIC. RISARALDA. Obtenido
de http://www.mintic.gov.co/
Netbeans.org. (2014). Recuperado el mayo de 2014, de https://netbeans.org/:
https://netbeans.org/
OSEC. (2010). Generación de Capacidad Comercial hacia EFTA. Obtenido de
http://www.academia.edu/8722135/Suiza_TIC_Manufactura_TIC_Comercio_TI
C_Servicios_Detalles_de_los_servicios_Puestos_Puestos_Puestos_Software
_Fuente_Anuario_de_salarios_TIC
OSEC y PROEXPORT. (2012). Generación de Capacidad Comercial hacia EFTA:
Inteligencia de Mercado para Colombia – Sector de Software y Tecnologías.
BOGOTA:
OSEC.
Obtenido
de
Colombiatrade.com.co:
http://www.colombiatrade.com.co/sites/default/files/estudio_software__efta.pdf
PHYSILAB. (2012). PHYSILAB . Recuperado el 5 de MAYO de 2014, de
LABORATORIO REMOTO Y VIRTUAL PARA LA ENSEÑANZA DE LA
FIISCA: http://PHYSYLAB.ucp.edu.co/web/)
Reynoso, C. B. (Marzo de 2004). Introducción al a Arquitectura del Software. Buenos
Aires: Willy.net. Obtenido de willy.net.
Rosado, L. (204). APORTACIONES DIDÁCTICAS DE LOS LABORATORIOS.
Sebastián, J. M., Sanchez, F. M., & Garcia, D. (2013). LABORATORIOS REMOTOS
PARA LAS PRÁCTICAS DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA
EN LA UNIVERSIDAD MIGUEL HERNÁNDEZ. Recuperado el abril de 2014,
de
http://www.uv.es/eees/archivo/UMH-LaboratoriosRemotos03.pdf:
http://www.uv.es/eees/archivo/UMH-LaboratoriosRemotos03.pdf
TdRobotica.co.
(2012).
Servomotores.
http://www.tiendaderobotica.com/categoria/81
Bogota.
Obtenido
de
TUTORIAL
DE
JAVA.
(s.f.).
Recuperado
el
Abril
de
2014,
de
http://personales.upv.es/igil/java.PDF: http://personales.upv.es/igil/java.PDF
VACA GUZMÁN, A. E., & SEVILLANO, E. S. (2012). Diseño y construcción de un
robot scara de tres grados de libertad con un efecto final electromagnético,
para el paletizado de recipientes metálicos. Sangolquil, Ecuador.
ANEXO
Anexo A. Pruebas realizadas
Prueba No:
Objetivo
Tipo
1
Probar Arduino Mega 2560 para la conexión con el
computador.
Hardware/Software
Procedimiento
Se hace la instalación de los drivers de arduino
para su reconocimiento
Resultados
Se instala correctamente no se genera ningún
inconveniente.
Prueba No:
Objetivo
Tipo
Procedimiento
Resultados
Prueba No:
Objetivo
Tipo
Procedimiento
2
Probar arduino mega 2560 para encender 2 led
Hardware /Software
Se instala el software de la plataforma arduino y se
prueba un código básico para encender 2 led
Exitoso, se encienden los led intermitentemente.
3
Probar el funcionamiento de un servomotor.
Hardware/Software
Se conecta en uno de los pines.
Resultados
Prueba No:
Objetivo
Tipo
Procedimiento
Resultados
Prueba No:
Objetivo
Tipo
No funciono por que se conectó incorrectamente
4
Crear un circuito alimentado con pilas AA de para
alimentar los servomotores
Hardware
Se realiza el circuito en una protoboard
El circuito funciona después de
modificaciones y pruebas con el tester eléctrico.
ciertas
5
Probar dos servomotores conectados al arduino
Hardware/Software
Procedimiento
Se realiza la programación en el software de
arduino, por medio de ejemplos investigados.
Resultados
No fue exitosa ya que sale un error de librería
tengo que importar la librería servo.h
Prueba No:
Objetivo
Tipo
6
Probar dos servomotores conectados al arduino
Hardware/Software
Procedimiento
Se realiza la prueba nuevamente programando el
movimiento de 30° grados en cada motor.
Resultados
La prueba fue exitosa, los motores hicieron su
movimiento de 30°.
Prueba No:
Objetivo
Tipo
Procedimiento
Resultados
Prueba No:
Objetivo
Tipo
7
Conectar
funcionamiento
4
servomotores
y
verificar
el
Hardware/Software
Se conecta 2 motores más en los pines de PWM
No fue exitoso el arduino prende levemente y se
apaga, porque las pilas AA no entregan el voltaje
suficiente, van perdiendo su carga con cada prueba
8
Probar adaptador de 5V
Hardware
Procedimiento
Se verifica con el tester que esté enviando el
voltaje adecuado
Resultados
La prueba fue exitosa está generando los 5v
necesarios para alimentar el arduino
Prueba No:
Objetivo
9
Conectar adaptador de 5V al circuito
Tipo
Procedimiento
Resultados
Prueba No:
Objetivo
Tipo
Hardware
Se realiza la conexión
Se verifica con el tester que este en buen
funcionamiento y entregue el voltaje adecuado.
10
Conectar 1 servomotor y probar el funcionamiento
Hardware/software
Procedimiento
Se realiza la conexión y se envían datos al micro
controlador para probar el movimiento del motor.
Resultados
La prueba fue exitosa el motor dio indicios de
movimiento ya que se le ingreso 10° de movimiento, el
adaptador funciona correctamente.
Prueba No:
Objetivo
Tipo
11
Conectar 3 servomotores y verificar su funcionamiento.
Hardware/Software
Procedimiento
Se conectan los 3 motores y se programan los 3
servos con un movimiento corto en el micro controlador
del arduino
Resultados
La prueba fue exitosa funcionaron correctamente,
el adaptador soporta los 3 motores.
Prueba No:
Objetivo
Tipo
12
Conectar 5 servomotores
funcionamiento del adaptador.
para
verificar
el
Hardware/Software
Procedimiento
Se agregan 2 motores más ya que hay 3
conectados en el arduino, se programa el movimiento de
los dos motores adicionados, subimos el programa al
micro controlador.
Resultados
Funciona correctamente la prueba fue exitosa, el
adaptador funciona con 5 servomotores.
Prueba No:
Objetivo
Tipo
13
Conectar 6 servomotores
funcionamiento del adaptador.
para
verificar
el
Hardware/software
Procedimiento
Se conectan los 6 servomotores necesarios para
poder mover el brazo robotico.
Resultados
La prueba fue exitosa, funciono correctamente el
adaptador y los parámetros ingresados.
Prueba No:
Objetivo
Tipo
Procedimiento
14
Sincronizar motores según su posición en el brazo
Hardware/Software
Después de muchas pruebas se verifica el ajuste
de los movimientos para cada servomotor para sus
respectivos movimientos en su eje.
Resultados
Prueba No:
Objetivo
Tipo
Exitoso después de armar y desarmar el brazo en
reiteradas veces y se logra sincronizar los motores de
acuerdo a su necesidad de movimiento en sus ejes.
14
Colocar una rutina de posición inicial para el bazo
y probar el método loop para que el arduino al momento
de energizar ubique los motores en la posición deseada
Hardware/software
Procedimiento
Se programa una rutina de posicionamiento, y se
sube al micro controlador.
Resultados
Fue exitosa y se logró mantener en la posición
apenas se energizo automáticamente coloco los motores
en la posición indicada.
Prueba No:
Objetivo
Tipo
15
Crear una rutina de movimiento automático.
Hardware/Software
Procedimiento
Se hace la programación de los parámetros y
retardos para el movimiento de cada motor, se sube al
micro controlador.
Resultados
Después de muchas pruebas se logra sacar una
rutina automática donde el brazo funciona haciendo una
serie de movimientos.
Prueba No:
Objetivo
Tipo
16
Desarrollar una interfaz de software en netbeans,
que funcione asignándole él envió de información ya
determinada en el programa de arduino para que se
realicen los procesos correspondientes.
Software
Procedimiento
Se realiza la prueba de conexión entre los dos
programas.
Resultados
No fue exitosa, después de investigar hay que
agregar la librería arduino V 2.3.0
Prueba No:
Objetivo
Tipo
17
Conexión entre la interfaz de netbeans y arduino
Software
Procedimiento
Se agrega la librería arduino V2.3.0.jar y la
RXTXcomm.jar y se ejecuta en netbeans
Resultados
Prueba no exitosa, sale un error en pantalla de
netbeans por archivos rxtxSerial.dll y rxtxParallel.dll
Prueba No:
Objetivo
Tipo
Procedimiento
18
Conexión entre netbeans y arduino
Software
Después de investigar se deben descargar y
copiar los siguientes archivos
rxtxSerial.dll y
rxtxParallel.dll en esta dirección de mi equipo C:\Program
Files\Java\jdk1.7.0_45\jre\bin
Resultados
Prueba No:
Objetivo
Tipo
El procedimiento fue exitoso pude hacer funcional
la rutina automática a través de la interfaz de netbeans.
19
Realizar la rutina manual en la interfaz de
netbeans y poder ejecutarla en conjunto con los
parámetros programados en el micro controlador del
arduino.
Hardware/Software
Procedimiento
Se realizan muchas pruebas para poder ejecutar la
rutina desde la interfaz de netbeans, se colocan las 6
casillas donde podrán ingresar los grados para que
funcione cada motor con sus limitantes ya que después de
muchas pruebas se ha dañado un motor y se logró
conseguir otro.
Resultados
La prueba fue exitosa a pesar de que se dañó el
engranaje de un motor después de muchas pruebas
Prueba No:
Objetivo
Tipo
Coger y colocar un objeto en diferente lugar a
través del brazo robótico
Hardware/Software
Procedimiento
Se hace la configuración de los procedimientos y
rutinas en el programa arduino, se realizan de muchas
pruebas.
Resultados
La prueba fue exitosa después de muchas
pruebas se logra configurar los motores con las rutinas
deseadas, para el transporte de un elemento.
ANEXO B. Pasos para la configuración y programación básica de un
Arduino a través del IDE Arduino
1. Inicio
2. Clic derecho en equipo
3. Administrador de dispositivos
4. Ahí buscamos el del Arduino y miramos a que COM se encuentra
relacionado.
5. Nos dirigimos al programa Arduino.
Para programar con un servo es necesario configurar la librería servo
como lo muestran en estos videos o también lo podemos ver en la
siguiente grafica sketch, importar librerías, escogemos servo.
Y ahí se procede a diseñar el código, a continuación se explica un
código básico para realizar movimientos en el brazo.
#include <Servo.h>
Servo servo1;
Servo servo2;
Inicialmente
se
declaran
las
variables a utilizar, representando cada
una de ella a un motor del brazo, es
Servo servo3;
decir, al haber seis motores distribuidos
Servo servo4;
en el brazo robot, se declaran 6
Servo servo5;
variables.
Servo servo6;
void setup()
{
Aquí se asigna a cada
servo1.attach(2);
variable
servo2.attach(3);
el
representan,
pin
que
decir
que
es
servo3.attach(4);
cada variable representa cada
servo4.attach(5);
pin
servo5.attach(6);
de
salida
hacia
cada
motor.
servo6.attach(7);
}
void loop()
{
servo2.write(20);
A
continuación
se
servo3.write(120);
procede a enviarle los datos a
servo4.write(120);
cada
servo6.write(130);
pin,
con
el
‘write()’
método
indicamos
numéricamente los grados a
servo5.write(90);
mover cada motor.
delay(2500);
Como
servo1.write(60);
delay(1500);
se
puede
observar, se utiliza igualmente
el método delay() para enviar
un retardo en milisegundos
}
antes de continuar con la
siguiente instrucción. Y así
podemos proseguir a enviar
todos los movimientos que
sean necesarios.
Cuando se finalice la codificación se debe compilar el código y luego se envía
al Arduino con estos dos botones
Es importante verificar que el Arduino si tenga el puerto configurado. Para
verificarlo se puede observar en la parte inferior derecha encerrada en rojo, que
concuerde con el Arduino que se está utilizando y el puerto COM que se observó en
el administrador de dispositivos anteriormente.
Si el dispositivo no coincide dirigirse al menú ‘Herramientas’ – ‘Tarjeta’ y
seleccionar la tarjeta deseada, igualmente si el menú ‘Puerto Serial’ se encuentra
activado, seleccionar el COM correspondiente.
Descargar