Está en la página 1de 99

UNIVERSIDAD TECNOLÓGICA DE CAMPECHE

DIRECCIÓN DE MECATRÓNICA
MEMORIA DE ESTADÍA PROFESIONAL

DISEÑO DE UN SISTEMA SEMIAUTOMATIZADO PARA LA TOMA DE FOTOGRAFIAS


HACIA LA EMPRESA SECONT S.A. DE C.V

REALIZADA EN LA EMPRESA:
SEÑALIZACIÓN Y CONTROL DEL SURESTE S.A DE C.V.

QUE PRESENTA:
JESÚS MANUEL PÉREZ PÉREZ

PARA OBTENER EL TÍTULO DE:


INGENIERIA EN MECATRÓNICA

GENERACIÓN:
2020-2022

San Antonio Cárdenas, Carmen, Campeche . Mayo de 2022


Indicaciones: en esta hoja se inserta el formato de Acta de Aprobación de la
Memoria de Estadías (F-DC-17). Nota: el formato se imprime, anexa y firma en el
mismo empastado.
AGRADECIMIENTOS

A DIOS:

Por haberme dado vida, paciencia y la capacidad para terminar con éxito esta etapa
de preparación en mi vida, con la finalidad de afrontar los retos que se me presenten
en mi futuro.

PADRES:

Como también le doy las gracias a mis pilares de vida por haber puesto su apoyo
económico, moral, paciencia y sobre todo amor me ayudaron a poder tener las
fuerzas necesarias y no rendirme con facilidad delante de los problemas que se me
presentaron fue de gran inspiración para seguir adelante, en todo momento sin dar
mi brazo a torcer. Como también, un agradecimiento en particular a mi padre porque
me enseñó a que la vida te puede dar muchos golpes, pero uno mismo decide si te
levantas como también hacerme ver que la palabra nunca rendirse tiene mucho
significado. Agradecidos estaré durante todo el trayecto de mi vida porque sin ellos
no hubiera sido posible y de una cosa estoy seguro de que algún día pagaré todo lo
que hicieron por mí.

II
DATOS GENERALES DEL ALUMNO

NOMBRE:
JESÚS MANUEL PÉREZ PÉREZ

MATRÍCULA:
4219010001

DIRECCIÓN, TELÉFONO Y CORREO ELECTRÓNICO:


CALLE QUINTANA ROO ENTRE JUSTO SIERRA Y RIVAS PALACIO, COLONIA
DEPORTIVA, FRONTERA, CENTLA, TABASCO.
TEL.: (933) 37 5 49 69
CORREO ELECTRÓNICO: jesusperez0407001@gmail.com

FECHA DE INICIO Y TERMINACIÓN DE ESTADÍA:


16 DE ENERO AL 24 DE MARZO DE 2023

ASESOR ACADÉMICO:
DR. ALEJANDRO DEL RÍO OSORIO

ASESOR EMPRESARIAL:
ING. DANIEL DEL JESÚS BENÍTEZ ANCONA

CARGO DEL ASESOR EMPRESARIAL:


CONSULTOR TÉCNICO

III
ÍNDICE
DATOS GENERALES DEL ALUMNO ....................................................................... III

LISTA DE ILUSTRACIONES ................................................................................... VII

LISTA DE TABLAS ................................................................................................... IX

RESUMEN / ABSTRACT ............................................................................................ X

Resumen.................................................................................................................. X

Abstract .................................................................................................................... X

INTRODUCCIÓN ........................................................................................................ 1

PLANTEAMIENTO DEL PROBLEMA ........................................................................ 6

Descripción del problema o necesidad. .................................................................. 6

Pregunta principal ................................................................................................. 8

Preguntas específicas........................................................................................... 8

Justificación, Objetivos y Viabilidad. ........................................................................ 9

Justificación .......................................................................................................... 9

Objetivo del proyecto. ........................................................................................... 9

Viabilidad ........................................................................................................... 10

CAPÍTULO I. DESARROLLO TEÓRICO ................................................................. 11

1.1. Marco de referencia ..................................................................................... 11

1.2. Alcance .......................................................................................................... 12

1.3. Diseño de la investigación ............................................................................. 13

CAPÍTULO II. METODOLOGÍA ................................................................................ 18

2.1. SOFTWARE DE PROGRAMACIÓN SELECCIONADO PYTHON. ................ 18

IV
2.1.1.¿Qué es y para qué sirve Python?............................................................. 18

2.1.2. ¿Cómo se utiliza Python? ......................................................................... 19

2.1.3. Historia de Python..................................................................................... 22

2.1.4. ¿Cuáles son las características de Python? ............................................. 25

2.1.4. ¿Cuáles son las bibliotecas de Python más populares? ........................... 27

2.1.5. ¿Qué son los marcos de Python? ............................................................. 28

2.1.6.¿Cuáles son los marcos de Python más conocidos?................................. 29

2.1.7. ¿Qué son los IDE de Python? .................................................................. 31

2.1.8. ¿Cuáles son los IDE de Python más conocidos? ..................................... 31

2.1.9. ¿Qué son los SDK de Python? ................................................................. 33

2.1.10. ¿Qué es AWS PyCharm? ....................................................................... 33

2.1.11. Lógica de programación de Python ........................................................ 34

2.1.12. Ejemplo de primer programa .................................................................. 41

2.2. Diseño de en SolidWorks de un soporte de cámara celular. ........................... 42

2.3 Programación en python .................................................................................. 71

2.1.1. Xxxx xxxx (Tipo oración) .............................. ¡Error! Marcador no definido.

CAPÍTULO III. RESULTADOS Y DISCUSIÓN ........................................................ 80

RESULTADOS ...................................................................................................... 80

DISCUSIÓN ........................................................................................................... 80

CONCLUSIONES .................................................................................................... 83

FUENTES DE INFORMACIÓN ................................................................................. 85

Bibliografía............................................................................................................... 85

ANEXOS ................................................................................................................... 87

V
VI
LISTA DE ILUSTRACIONES
Ilustración 1. Organigrama................................................................................................... 3
Ilustración 2. asignación, Operadores aritméticos, producto y potencias. .................... 34
Ilustración 3. División, Division entera, modulo, incremento, decremento .................... 35
Ilustración 4. tipos de datos............................................................................................... 35
Ilustración 5. Estructuras de control de flujo ................................................................... 36
Ilustración 6. Funciones. .................................................................................................... 36
Ilustración 7. funciones, parametros *args y **kwargs .................................................... 37
Ilustración 8. Manipulación de cadenas ............................................................................ 37
Ilustración 9. Estructuras de datos. .................................................................................. 38
Ilustración 10. Excepciones. .............................................................................................. 39
Ilustración 11. Depurando con PDB .................................................................................. 39
Ilustración 12. Hola mundo. ............................................................................................... 41
Ilustración 13. Boceto de soporte para teléfono .............................................................. 42
Ilustración 14. primer parte de la base .............................................................................. 42
Ilustración 15. corte de la figura ........................................................................................ 43
Ilustración 16. Bordes de base .......................................................................................... 44
Ilustración 17. Corte superior de la base .......................................................................... 44
Ilustración 18. Moldeado de la base .................................................................................. 44
Ilustración 19. ajuste de la base ........................................................................................ 45
Ilustración 20. parte inferior de la base ............................................................................. 45
Ilustración 21. Rosca de la base ........................................................................................ 46
Ilustración 22. Base final. ................................................................................................... 46
Ilustración 23. Bloque de la pieza dos............................................................................... 47
Ilustración 24. Corte de ensamble ..................................................................................... 47
Ilustración 25. Parte superior y estética de la pieza dos.................................................. 48
Ilustración 26. Primera cara recortada. ............................................................................. 48
Ilustración 27. segunda cara recortada ............................................................................. 49
Ilustración 28. pieza redondeda. ........................................................................................ 49
Ilustración 29. Croquis de tercer pieza.............................................................................. 50
Ilustración 30. Extrusion de la pieza tres. ......................................................................... 50
Ilustración 31. corte de ensamble de la pieza tres. .......................................................... 51
Ilustración 32. corte de ceja ............................................................................................... 51
Ilustración 33. corte de circulo para ajuste de la pieza. ................................................... 52
Ilustración 34. corte del otro extremo de la pieza............................................................. 52
Ilustración 35. corte de la ceja dos .................................................................................... 53
Ilustración 36. corte de agujero de ajuste y redondeo de la pieza .................................. 53
Ilustración 37.solido de la pieza cuatro............................................................................. 54
Ilustración 38. corte de la figura cuatro ............................................................................ 54
Ilustración 39. redondeo de la figura cuatro ..................................................................... 55
Ilustración 40. hoyo de la figura cuatro............................................................................. 55
Ilustración 41. corte del otro extremo de la figura cuatro ................................................ 56
Ilustración 42. redondeo del otro extremo de la figura cuatro ........................................ 56
Ilustración 43. hoyo del otro extremo de a pieza cuatro. ................................................. 57

VII
Ilustración 44. acabado de la pieza cuatro ........................................................................ 57
Ilustración 45. base sólida de soporte del teléfono .......................................................... 58
Ilustración 46. parte donde se coloca el teléfono ............................................................. 58
Ilustración 47. alargamiento de la pieza. ........................................................................... 59
Ilustración 48. Dibujo de ensamble de la pieza. ............................................................... 59
Ilustración 49. Corte de ensamble de la pieza. ................................................................. 60
Ilustración 50. dibujo de tornillo de ajuste. ....................................................................... 61
Ilustración 51. Corte del tornillo de ajuste. ....................................................................... 61
Ilustración 52. Circulo de tornillo de ajuste. ..................................................................... 61
Ilustración 53. Base solida de la otra parte del soporte de teléfono. .............................. 62
Ilustración 54. Parte dos dónde se sostiene el teléfono .................................................. 62
Ilustración 55. extrusión de la pieza dos del soporte de teléfono ................................... 63
Ilustración 56. corte de tornillo de ajuste de la pieza dos del soporte de teléfono ........ 63
Ilustración 57. corte de espacios para tornillos. .............................................................. 64
Ilustración 58. Dibujo de bordes de la pieza dos del soporte de teléfono ...................... 64
Ilustración 59. corte de bordes de la pieza dos del soporte de teléfono ........................ 65
Ilustración 60. extrusión de acoplamiento del soporte de teléfono ................................ 65
Ilustración 61. Corte de ceja para la pieza de soporte del teléfono ................................ 66
Ilustración 62. Corte de círculo de la pieza del soporte de teléfono ............................... 66
Ilustración 63. Redondeo de la pieza dos del soporte del teléfono................................. 67
Ilustración 64. primeras dos piezas de ensamble. ........................................................... 68
Ilustración 65. Unión de la pieza dos y tres ...................................................................... 68
Ilustración 66. Relación de posición de la pieza tres y cuatro. ....................................... 69
Ilustración 67. Relación de circunferencias de la pieza tres y cuatro. ............................ 69
Ilustración 68. Relación de parte superior y inferior de los dos sujetadores. ................ 70
Ilustración 69. Uso de opción: "invertir alineación". ........................................................ 70
Ilustración 70. Ensamble final del prototipo. .................................................................... 71
Ilustración 71. Libreria PySimpleGUI................................................................................. 71
Ilustración 72. Libreria OpenCV ......................................................................................... 72
Ilustración 73. Declaración de librerías. ............................................................................ 72
Ilustración 74. Declaración de la cámara conectada. ....................................................... 73
Ilustración 75. Elementos de la interfaz grafica ................................................................ 73
Ilustración 76. Interfaz grafica ........................................................................................... 74
Ilustración 77. Lectura de cámara y declaración de variables para la cámara. .............. 74
Ilustración 78. Variables mostradas en las fotos.............................................................. 75
Ilustración 79. interfaz visual de los textos en las fotos. ................................................. 76
Ilustración 80. código de guardado de fotografía............................................................. 77
Ilustración 81. Registros en la GUI .................................................................................... 78
Ilustración 82. Ejecucion de la programacion final. ......................................................... 78
Ilustración 83. Conexion de la cámara del teléfono en el software DroidCam ............... 79

VIII
LISTA DE TABLAS
Tabla 1 Taxonomía de Bloom. .................................................. ¡Error! Marcador no definido.
Tabla 2. Datos del uso de sistemas operativos..................................................................... 87
Tabla 3. Uso de sistemas operativos. ................................................................................... 87

IX
RESUMEN / ABSTRACT
RESUMEN

Un sistema automatizado, existen muchísimos, de diferentes tipos y diferentes


tamaños y muchos cumpliendo diferentes tipos de trabajos. Sin embargo en la
actualidad, se busca que un sistema automatizado pueda suplir la necesidad humana
a un bajo costo de elaboración y debe ser rentable. Es por ello que la automatización
ha sufrido mucha demanda en la última década ya que gracias a ello podemos hacer
nuestra vida un poco mas sencilla y dejar que el resto lo haga la el equipo. La
automatización de tareas empresariales basadas en datos comenzó en la década de
1960 con la introducción de sistemas de planificación de recursos empresariales y,
en la actualidad, ha evolucionado para abarcar la automatización de procesos
robóticos. En la actualidad los sistemas automatizados se han vuelto parte de
nuestra vida diaria y poder apreciarlos por cualquier lado, es por ello, que en este
proyecto se elaboro un diseño de captura de fotografías automatizado para la
empresa SECONT mediante una programación la cual va a permitir trasladar las
fotografías a un ordenador de manera más fácil.

Palabras clave: sistema, programación, fotografías, automatizado (Máximo cinco


palabras por idioma. Se refiere a palabras importantes para el desarrollo y
comprensión del proyecto).

ABSTRACT

An automated system, there are many, of different types and different sizes and many
doing different types of jobs. However, currently, it is sought that an automated
system can meet the human need at a low manufacturing cost and must be profitable.
That is why automation has been in great demand in the last decade, since thanks to
it we can make our lives a little easier and let the rest be done by the team. Data-
driven business task automation began in the 1960s with the introduction of
enterprise resource planning systems and has now evolved to encompass robotic
process automation. At present, automated systems have become part of our daily
life and we can appreciate them anywhere, which is why, in this project, an

X
automated photograph capture design was developed for the company SECONT
through programming which will allow transfer photos to a computer more easily.

Keywords: system, programming, photographs, automated

XI
INTRODUCCIÓN

La automatización es un sistema donde se trasfieren tareas de producción,


realizadas habitualmente por operadores humanos a un conjunto de elementos
tecnológicos. Los sistemas automatizados en la industria nacen en 1745 Jacques de
Vaucanson.

Un inventor e ingeniero francés consiguió, después de ser contratado para reformar


el proceso de manufacturación de la industria textil de la seda, crear el primer telar
automático que más adelante se haría popular de la mano de otro ingeniero francés,
Joseph M. Jaquard.

Aunque en 1745 aparecen las primeras máquinas de tejido que eran controladas por
un sistema de tarjetas perforadas, la revolución en la automatización de los telares
no fue completamente perfeccionada y utilizada hasta que en 1805 Joseph Marie
Jacquard consigue que el telar sea utilizado y popularizado por el gremio.

Tener un proceso automatizado en su empresa permite continuar la actividad a


distancia sin perder en eficacidad ni en productividad. Podemos acceder a
información de calidad y a los datos en todo el tiempo desde cualquier lugar. El
confinamiento fue el ejemplo perfecto para demostrar lo importante que es la
automatización; aquellos que tenían este tipo de sistemas pudieron continuar con su
actividad trabajando desde sus casas.

Todas las empresas, pero sobre todo las más pequeñas, han de gestionar bien sus
procesos internos para aumentar la seguridad frente a imprevistos. La
automatización de las Cuentas por pagar aporta información y evita la pérdida de
documentos, de errores en el registro de los datos, entre otros, al momento de
ingresar y pagar las facturas.

Menos retrasos y litigios tener las Cuentas por pagar automatizadas facilita el control
de los proveedores y la generación de relaciones de calidad con ellos. De esta forma,
el equipo no pasa horas de su día intentando solucionar problemas de pago,

1
documentos perdidos, etc. Se estima que un 41% del tiempo de un contable se
invierte en la gestión de las llamadas de los proveedores y que se retrasa el pago en
un 31%. Con la automatización de las Cuentas por pagar, se podrán reducir
drásticamente los riesgos de retrasos en los pagos y otros errores.

Gracias a la automatización, se puede acceder a información relevante (indicadores


de rendimiento) que permite gestionar y realizar un mejor control de todo el proceso,
así como también del recurso humano; todo en tiempo real. Se pueden obtener todo
tipo de información y datos estadísticos del proceso.

La automatización permite ganar tiempo en tareas operativas y tediosas como el


ingreso de los documentos, el archivado, la búsqueda, etc. De esta forma se acelera
todo el proceso y se lo convierte en uno más productivo.

Pero los sistemas automatizados no solo se aplican a un solo proceso si no también


a la supervisión de datos se debe contar con parámetros y medidas adecuadas de
los procesos con indicadores y ratios de producción, actualizados y reales.

Estos productos ofrecen una mayor facilidad de manejo, no solo en lo que respecta a
la programación, sino también durante otras operaciones, como la instalación y el
mantenimiento.

2
CAPÍTULO I. DATOS GENERALES DE LA EMPRESA

Estos puntos serán descritos en prosa y en el siguiente orden, tomando en cuenta


los que se mencionan a continuación, omitiendo aquellos con los no cuente la
empresa: Nombre, Dirección, Sector, Giro, Departamento donde se desarrolla la
estadía (funciones y organigrama del departamento), Misión y Visión, Filosofía,
Valores, Política, Objetivos de Calidad.

La empresa Señalización y Control del Sureste S.A. de C.V. (SECONT) se encuentra


ubicada en la calle Cantarell No 20 en el Fracc. 18 de Marzo, es una empresa del
Industrial dedicada a la calibración de instrumentos de medición y control, La Estadía
se realizó en el Laboratorio Dimensional el cual se encarga de calibrar instrumentos
de la magnitud física de longitud. El departamento está compuesto por ocho
personas tal y como se muestra en el organigrama a continuación…

Encargado de
laboratorio

Tecnico Técnico Técnico


asistente calibrador calibrador

Ilustración 1. Organigrama

3
Misión

La misión es ofrecer servicios de calibración de instrumentos de medición y control,


esmerándonos para obtener los más altos estándares de calidad y seguridad para
así cumplir con las expectativas y necesidades de nuestros clientes con lo cual
lograremos la satisfacción de los mismos, apegados en nuestro sistema de gestión
de calidad de tal manera que se genere rentabilidad para ambos.

Visión

Ser una de las mejores empresas en el ramo que ofrezca servicios de ensayos y
calibración de instrumentos de medición y control. Cubrir y superar las expectativas
de nuestros clientes.

…….

Filosofía

………

Valores

• Satisfacción al cliente

• Disciplina

• Trabajo en equipo

• Calidad

• Responsabilidad

• Entusiasmo

• Misión

4
………

Política

……………

Objetivos de Calidad

En el laboratorio de Metrología SECONT nos comprometemos a brindar servicios de


calidad, satisfaciendo las necesidades de nuestros clientes, desarrollando
actividades de ensayo y calibración dentro de las instalaciones del laboratorio como
en sitio contando con personal y equipo calificado, en cumplimiento de la normativa
vigente, apegado a nuestro sistema de gestión de calidad basado en la norma NMX-
EC-17025-IMNC-2018, con la finalidad de garantizar una mejora continua en el
desarrollo de nuestras actividades.

……………

5
PLANTEAMIENTO DEL PROBLEMA
DESCRIPCIÓN DEL PROBLEMA O NECESIDAD.

Actualmente, la automatización de procesos computarizados puede ser


sorprendentemente fácil y puede ofrecer beneficios importantes. Una empresa que
cuenta con sistema computarizados que nos hacen la vida un poco más fácil y
eficientes, esto ha venido beneficiando a trabajadores y dueños de empresas,
permitiéndoles mejorar sus productos y reducir costos y tiempo.

Para poder llegar a un sistema de automatización que permita visualizar y añadir


fotografías en la base de datos de manera eficiente se debe pasar por diferentes
tipos de programación, así como también poder tener una interacción hombre
máquina, como por último visualizar su diseño para que se acople a las necesidades
del laboratorio.

Así mismo los controladores y su sistema eléctrico constan de varias


especificaciones y con hojas de datos que nos indica que tanto duran o cada cuanto
se le debe aplicar un mantenimiento a la maquina o de lo contrario el tiempo de vida
que tienen los componentes.

Se dice que actualmente los sistemas automatizados son utilizados a grandes


escalas en industrias, son las encargadas tener en orden y seguro las bases de
datos algún control de proceso además de ofrecer rapidez al momento de hacer
alguna consulta, para brindar buena calidad de servicio, por lo consiguiente tener un
Sistema Automatizado que ayude a tomar fotografías y guardarla en base de datos
para después poder visualizarlas en un ordenador agiliza el proceso para poder
tomar fotografías y pasarlas al ordenador.

Un Sistema automatizado ofrecen eficiencia y mejora las condiciones de trabajo del


personal, suprimiendo los trabajos penosos e incrementando la seguridad, realiza las
operaciones imposibles de controlar intelectual o manualmente lo que los hace
universales en las industrias para entornos administrativos y gerenciales, pero estos

6
para su instalado y mantenimiento deben ser operados y instalados por personal
apto para este trabajo y que tenga conocimientos en programación.

Este sistema automatizado ha sido popularizado en las últimas décadas, es común


poder hallarlos en empresas grandes, por lo que diseñar este sistema que ayude a
poder tener mejor control de las ordenes de trabajo y poder tener una mejor facilidad
al momento de transmitir las fotografías a un ordenador sea de manera más fácil.

Estos sistemas se clasifican Sistema de automatización fija, Sistema de


automatización programable, Sistema de automatización flexible, Sistema Integrado
de Automatización estos se rigen por la UNE-EN IEC 61511; esta norma incluye
recomendaciones de seguridad enfocados al sector industrial de proceso.

Entre todos los elementos que componen un laboratorio de la empresa lo primero


que se hace cuando un equipo entra calibración es tomar una evidencia de cómo es
que entra el equipo esto mediante el proceso es de suma importancia, ya que este
permite visualizar en qué condiciones entra el equipo por si después del proceso de
calibración llega a tener un fallo o rotura se tiene evidencia de como entró el equipo y
como salió.

Alguna de las fallas que llegase a tener este tipo de sistemas es de que no pueda
tenerse comunicación con el ordenador o la cámara tenga un tiempo de vida,
dependiendo igual a qué condiciones sea sometido, también en los puertos de
comunicación través de los cables de red pueden inducirse sobretensiones por
descargas atmosféricas o transitorias de red que inducidos pueden quemar los
puertos de comunicación. Una pérdida de comunicación produce una detención
instantánea de dispositivo. Las causas comunes que pueden ocurrirle son las de
interfaces de comunicación, manejo inadecuado, estas condiciones pueden acarrear
consecuencias entre otras: retraso en el proceso, acumulación de equipos, uso de
cámara personal.

7
De acuerdo a las necesidades que tiene la empresa se pueden elaborar el sistema
automatizado con la finalidad de poder agilizar los procesos de captura de
fotografías. A fin de poder lograr una rapidez y mejor control de manejo de base de
datos ya que estos generan un impacto relativo al tiempo para lo que son servicios
de urgencia, ya que en base al tiempo es lo que tarde el usuario en que entren a
calibración los equipos, es por ello que una de las opciones más viables es hacer
que una cámara fotográfica tome las fotos y esté se refleje en una base de datos
para que así sea más fácil reducir costos y tiempos.

En la empresa pueden diferentes tipos de necesidades o problemas que el alumno,


apoyado por su asesor académico deberá describir con exactitud, como por ejemplo:
Diseño de prototipos, propuestas técnico-económicas que impacten positivamente a
la empresa, manuales que no existan o se ajusten a las necesidades de la empresa,
implementación de proyectos, redes, desarrollo de software, entre otros.

Pregunta principal

La pregunta principal debe corresponder con el objetivo principal.

¿Cuál es la probabilidad de poder reducir los tiempos al implementar un sistema de


fotografías semiautomatizado para el manejo de una base de datos?

Preguntas específicas

Se deben desarrollar al menos tres preguntas las cuales deben corresponder a los
objetivos secundarios (colocarles viñetas numeradas).

1. ¿Cuál es la importancia de usar un sistema automatizado?

2. ¿Qué tipo de software será utilizado para la programación?

3. ¿Cuáles son las diferencias de aplicar el sistema automatizado a no


aplicarse?

8
JUSTIFICACIÓN, OBJETIVOS Y VIABILIDAD.
Justificación

La realización del presente proyecto tiene como finalidad poder elaborar dos
procesos a la vez para asi reducir el tiempo de espera para los equipos de
instrumentación que entran a calibración a fin de atender la alta demanda de equipos
que entran por parte de otras empresas. Considerando, costos bajos y permitiendo
que la empresa tenga una mejor fluidez y rapidez en sus al momento de tomar
fotografías y elaborar carpetas de manera rápida y realizar consultas de manera
rápido y así obtener mejor calidad en los servicios y así poder tener mejores
recomendaciones sobre la atención que recibe el cliente.

En términos generales un Sistema Automatizado de toma de fotografías permite la


consulta y elaboración de carpetas con órdenes de trabajo y facilitar a los operarios
como también ayuda a facilitar los procesos productivos. Otras ventajas que se
obtendrían con la implementación de un sistema automatizados son:

1. Mayor productividad

2. Mayor confiabilidad

3. Control simplificado

Objetivo del proyecto.

Objetivo general.

Diseñar un sistema automatizado de toma de fotografías para el laboratorio mediante


la implementación de una base de datos mediante una programación para reducir el
tiempo de procesos en la entrada de equipos a calibración y alcanzar un eficiente
proceso y rápido.

9
Objetivos específicos.

1.Indagar en fuentes de información acerca del software de programación


seleccionado para poder hacer el sistema automatizado de toma de fotografías
mediante un teléfono celular.

2. Elaborar un diseño del soporte para la cámara fotográfica mediante el software


SolidWorks. Para determinar las dimensiones y que elementos que compondrán el
sistema.

3.Elabor una programación que permita añadir fotografías a un ordenador tomadas


por una cámara de un teléfono y para integrar cada una de las funciones y validar su
correcto funcionamiento

Viabilidad

Viabilidad operativa

El título de la memoria tiene como vialidad este apartado, ya que en esta parte esta
enfocado a lo que se desea plantear puesto que se necesita del personal de los
laboratorios para que se efectué esté proyecto propuesto.

Lo que se pretende hacer es que mediante un software programado en Python


pueda elaborar la toma de fotografías a equipos que entrar a calibración y asi
efectuar de manera mas rápida, el acomodó de las diferentes fotografías que se van
capturando para asi poder tener un control más ordenado.

Es por ello que este proyecto puede ser manipulado con personas que requieran el
software para asi poder sederselos y se pueda tener un mayor control del proceso de
captura de fotografías.

Describir las características de los puestos requeridos para realizar las diversas
actividades del proyect

10
CAPÍTULO I. DESARROLLO TEÓRICO
1.1. MARCO DE REFERENCIA

El presente proyecto tiene como idea poder elaborar una programación mediante el
software de Python, dicho software permite que mediante código de C++ poder
elaborar un código que permita ejecutar mediante una librería llamada OpenCV que
proporciona un marco de trabajo de alto nivel para el desarrollo de aplicaciones de
visión por computador en tiempo real: estructuras de datos, procesamiento y análisis
de imágenes, análisis estructural, etc.

Dicho programa pretende ayudar a los empleados de los laboratorios de la compañía


de Señalizacion y Control del Sureste S.A. de C.V. pueda mediante esta ejecución
del programa capturar imágenes de los equipos que entran a calibración.

Cabe resaltar que además de poder capturar las imágenes se podrá tener un
apartado el cual en la misma imagen capturada permita ver la orden de trabajo, el
numero de acta y el identificador interno que tiene cada laboratorio.

Además de poder editar el nombre en la descripción de la imagen tomada, y poder


tener la opción de guardarlo en alguna parte de la computadora, en este caso en los
laboratorios existen base de datos dedicados a cada uno, y estos se guardan en una
carpeta dependiendo el año, que es lo que se está haciendo, que orden de trabajo
corresponde, que mes es el que este hecho, y que identificador interno tiene es que
se guardan las fotografías

Es por ello, que el presente proyecto tiene como finalidad poder facilitar el guardado
y poder tener las fotografías con mas rapidez y con un mejor orden.

11
1.2. ALCANCE

El presente proyecto tiene como prospecto llegar a ejecutarse en todos los


laboratorios de la empresa, dado que la toma de evidencias de como entran los
equipos antes de llevarse a cabo una calibración es de suma importancia, y como
anteriormente se planteaba en la Problemática de la página 7 que el poder tener una
comunicación rápida con la computadora y poder tener las fotografías de manera
rápida en la base de datos es por ello que mediante una investigación exploratoria
podremos saber nuestro alcance con mejor exactitud.

La visión artificial es una disciplina científica formada por un conjunto de técnicas que
permiten la captura, el procesamiento y el análisis de imágenes, con el fin de extraer
información de utilidad. Su objetivo es automatizar tareas reservadas hasta hace
poco tiempo al ámbito humano en áreas como la seguridad, la industria, el comercio,
la medicina, etc.

Muchas de las técnicas empleadas en visión artificial proceden de otras disciplinas


como la inteligencia artificial o el deep learning, que exigen amplios conocimientos
matemáticos. Por ese motivo, su expansión no se ha producido hasta la llegada de
librerías como OpenCV, que ocultan esta complejidad y las ponen al alcance de
cualquiera que disponga de unos conocimientos básicos de programación, en este
caso, de Python.

¿Qué es OpenCV? Una biblioteca de código abierto que contiene implementaciones


que abarcan más de 2500 algoritmos. Además, está especializada en el sistema de
visión artificial y machine learning.

¿Qué es el machine learning? una computadora capaz de analizar información de


datos de forma similar a como lo haría la mente humana

12
1.3. DISEÑO DE LA INVESTIGACIÓN

Para poder elaborar un sistema automatizado primero se debe conocer que software
se acerca mas a los requerimientos del problema planteado, es por ello que a
continuación se presentan los datos a cerca de Python que es un software gratis
capaz de poder ejecutar lo que se tiene planteado.

Python es un lenguaje de programación ampliamente utilizado en las aplicaciones


web, el desarrollo de software, la ciencia de datos y el machine learning (ML). Los
desarrolladores utilizan Python porque es eficiente y fácil de aprender, además de
que se puede ejecutar en muchas plataformas diferentes. El software Python se
puede descargar gratis, se integra bien a todos los tipos de sistemas y aumenta la
velocidad del desarrollo.

¿Qué beneficios ofrece Python?

Los beneficios de Python incluyen los siguientes:

• Los desarrolladores pueden leer y comprender fácilmente los programas de


Python debido a su sintaxis básica similar a la del inglés.

• Python permite que los desarrolladores sean más productivos, ya que pueden
escribir un programa de Python con menos líneas de código en comparación
con muchos otros lenguajes.

• Python cuenta con una gran biblioteca estándar que contiene códigos
reutilizables para casi cualquier tarea. De esta manera, los desarrolladores no
tienen que escribir el código desde cero.

• Los desarrolladores pueden utilizar Python fácilmente con otros lenguajes de


programación conocidos, como Java, C y C++.

• La comunidad activa de Python incluye millones de desarrolladores alrededor


del mundo que prestan su apoyo. Si se presenta un problema, puede obtener
soporte rápido de la comunidad.

13
• Hay muchos recursos útiles disponibles en Internet si desea aprender Python.
Por ejemplo, puede encontrar con facilidad videos, tutoriales, documentación y
guías para desarrolladores.

• Python se puede trasladar a través de diferentes sistemas operativos de


computadora, como Windows, macOS, Linux y Unix.

En junio de 2015 se produjo un hito importante, por fin la versión 3.0 estaba
disponible. Si se echan números, en 16 años (de 1999 a 2015) solo ha habido 3
versiones. Esto es debido a que desde un principio esta biblioteca ha sido robusta y
muy eficiente.

Dado esa introducción podemos pasar para los softwares que son compactibles con
esta librería los cuales se presentan a continuación:

• Python: es un lenguaje de alto nivel de programación interpretado cuya


filosofía hace hincapié en la legibilidad de su código, se utiliza para desarrollar
aplicaciones de todo tipo, ejemplos: Instagram, Netflix, Spotify, Panda3D,
entre otros.

• Java: es un lenguaje de programación y una plataforma informática que fue


comercializada por primera vez en 1995 por Sun Microsystems.

• Matlab: es un sistema de cómputo numérico que ofrece un entorno de


desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje
M).

• Octave: es un programa y lenguaje de programación para realizar cálculos


numéricos. Como su nombre indica, Octave es parte del proyecto GNU. Es
considerado el equivalente libre de MATLAB. Entre varias características que
comparten, se puede destacar que ambos ofrecen un intérprete, permitiendo
ejecutar órdenes en modo interactivo. Nótese que Octave no es un sistema de
álgebra computacional, como lo es Máxima, sino que está orientado al análisis
numérico.

14
• Javascript: es un lenguaje de programación interpretado, dialecto del estándar
ECMAScript. Se define como orientado a objetos, basado en prototipos,
imperativo, débilmente tipado y dinámico.

Una vez se pudo indagar a cerca de los diferentes softwares de programación que
puede llevar la librería podemos hablar un poco mas de lo que es el software a
utilizar y el porque se va a utilizar para llevar a cabo el proceso de programación.

Dada las especificaciones de cada uno de los softwares se determina que Python es
el software mas convincente a utilizar. ¿Por qué Python? Aunque todavía en lo
personal no se ha tratado este lenguaje de programación, lo que si se puede
asegurar es que Python es muy sencillo de usar, favoreciendo el código legible
gracias a su sintaxis sencilla.

Se debe ser conscientes que el lenguaje nativo de OpenCV es C/C++, con la


complejidad que ello conlleva si se quiere utilizar esta biblioteca en nuestros
proyectos.

La ventaja de Python es que es un lenguaje fácilmente portable a otras


plataformas entre las que se incluye Raspberry Pi. Si además disponemos de una
cámara conectada, se piensa en lo que se puede llegar a conseguir.

La decisión de empezar por Windows es muy sencilla. Es el sistema operativo más


utilizado del mundo y no porque lo diga un servidor, solo tienes que ver los datos
estadísticos que nos proporciona Net Market Share. Según esta empresa, más del
90% de usuarios utilizan Windows. (véase Anexo, pp. 110)

Aún así se puede pensar que es una estrategia de ventas y que esta empresa puede
pertenecer al magnate de Redmond. Por eso en la siguiente Ilustracion se comparte
los datos estadísticos obtenidos de Google Analytics sobre el uso de sistemas
operativos en esta web ósea, nosotros los usuarios. (véase en tabla 2, anexo pp.
110)

15
Como puedes se observa hay una diferencia aplastante con el resto de
perseguidores. Por eso he optado empezar por Windows, para poder llegar al
mayor número de gente y que nadie se sienta excluido.

La Revista de Tecnologías Computacionales escribió un articulo que habla de la


implementación de la librería OpenCV en las cámaras permite realizar los procesos
necesarios para lograr la detección de intrusos gracias a que OpenCV es una librería
que contiene muchas estructuras de datos complejos y funciones de alto nivel
utilizadas para procesos de flujo óptico, reconocimiento de patrones.[3]

Otra Revista Cientifica nos habla ahora de la pandemia COVID-19 El lenguaje con el
que se realiza el proyecto es Python el cual necesita de algunos framework
compatibles con los lenguajes ya mencionados como son OpenCV y Cascade
Trainer GUI, además se debe tener disponibles las siguientes librerías como son cv2,
numpy, imutils y os.

Luego se crea una base de datos con imágenes positivas y negativas, es decir se
crea dos carpetas: una para las imágenes positivas en las cuales como característica
principal las personas deben estar usando mascarilla; y, la segunda carpeta debe
constar de imágenes de personas sin mascarillas, tomando en consideración que
entre más imágenes, mayor precisión y exactitud se tiene en la detección de objetos,
por lo que no se tiene mayor cantidad de falsos positivos, dando así una mejor
sensibilidad a la hora de detectar [3]

Muchas empresas bien establecidas como Google, Yahoo, Microsoft, Intel, IBM,
Sony, Honda, Toyota que emplean la biblioteca, hay muchas empresas nuevas como
Applied Minds, VideoSurf y Zeitera, que hacen un uso extensivo de OpenCV.

Los usos desplegados de OpenCV abarcandesde unir imágenes de streetview,


detectar intrusiones en el video de vigilancia en Israel, monitorear el equipo de la
mina en China, ayudar a los robots a navegar y recoger objetos enWillow Garage,
detectar accidentes de ahogamiento en piscinas en Europa, ejecutar arteinteractivo
en España y Nueva York.

16
Revisando las pistas en busca de escombros en Turquía, inspeccionando las
etiquetas de los productos en fábricas de todo el mundo hasta la rápida detección de
rostros en Japón.

Tiene interfaces C ++, C, Python, Java y MATLAB y es compatiblecon Windows,


Linux, Android y Mac OS. OpenCV se inclina principalmente hacia aplicaciones de
visión en tiempo real y aprovecha las instrucciones MMX y SSE cuando están
disponibles.

Actualmente se están desarrollando activamente las interfaces CUDA y OpenCL.


Hay más de 500 algoritmos y aproximadamente 10 veces más funciones que
componen o soportan esos algoritmos.

OpenCV está escrito de forma nativa en C ++ y tiene una interfaz con plantilla que
funciona perfectamente con los contenedores STL.[4]

17
CAPÍTULO II. METODOLOGÍA

Este proyecto tiene como finalidad facilitar la captura de fotografías asi como un
ordenado guardado del mismo. Con una inversión mínima se ha elaborado un
sistema semiautomiatizado mediante un software que permite tomar evidencias
fotográficas en un teléfono mediante una librería llamada OpenCV, esto se elaborara
en un software llamado Python que es un programa de uso gratuito y sobre todo fácil
de manejar.

2.1. SOFTWARE DE PROGRAMACIÓN SELECCIONADO PYTHON.

2.1.1.¿Qué es y para qué sirve Python?

Python es un lenguaje de programación de alto nivel que se utiliza para


desarrollar aplicaciones de todo tipo. A diferencia de otros lenguajes como Java o
.NET, se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo
para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente
por el ordenador utilizando un programa denominado interpretador, por lo que no es
necesario “traducirlo” a lenguaje máquina.

Python es un lenguaje sencillo de leer y escribir debido a su alta similitud con el


lenguaje humano. Además, se trata de un lenguaje multiplataforma de código
abierto y, por lo tanto, gratuito, lo que permite desarrollar software sin límites. Con el
paso del tiempo, Python ha ido ganando adeptos gracias a su sencillez y a sus
amplias posibilidades, sobre todo en los últimos años, ya que facilita trabajar con
inteligencia artificial, big data, machine learning y data science, entre muchos
otros campos en auge.

Para que puedas ver lo sencillo que es Python, a continuación tienes un simple
programa escrito en este lenguaje, que podrás entender fácilmente incluso si no
sabes nada de programación. Se trata de un pequeño aplicativo para calcular un
sueldo por horas, algo muy sencillo pero que podría ser perfectamente funcional:

18
horas = float(input("Introduce tus horas de trabajo: "))

coste = float(input("Introduce lo que cobras por hora: "))

sueldo = horas * coste

print("Tu sueldo es", sueldo)

En las dos primeras líneas se le pide al usuario que introduzca cuántas horas ha
trabajado y lo que cobra por hora. En la tercera se hace la operación para calcular el
sueldo total y se guarda en una variable. En la última línea de código se imprime por
pantalla el resultado. Si, por ejemplo, ponemos que hemos trabajado 8 horas a 15
€, en pantalla se imprimirá “Tu sueldo es de 120”.

2.1.2. ¿Cómo se utiliza Python?

El lenguaje Python se aplica a varios casos de uso en el desarrollo de aplicaciones,


incluidos los ejemplos siguientes:

2.1.2.1 Desarrollo web del lado del servidor

El desarrollo web del lado del servidor incluye las funciones complejas
de backend que los sitios web llevan a cabo para mostrar información al usuario. Por
ejemplo, los sitios web deben interactuar con las bases de datos, comunicarse con
otros sitios web y proteger los datos cuando se los envía a través de la red.

Python es útil para escribir código del lado del servidor debido a que ofrece muchas
bibliotecas que constan de código preescrito para crear funciones
de backend complejas. Los desarrolladores también utilizan un amplio rango de
marcos de Python que proporcionan todas las herramientas necesarias para crear
aplicaciones web con mayor rapidez y facilidad. Por ejemplo, los desarrolladores
pueden crear la aplicación web esqueleto en segundos porque no deben escribirla

19
desde cero. Pueden probarla por medio de las herramientas de prueba del marco, sin
depender de herramientas de prueba externas.

2.1.2.2. Automatización con scripts de Python

Un lenguaje de scripting es un lenguaje de programación que automatiza las tareas


que suelen llevar a cabo las personas. Los programadores utilizan ampliamente
los scripts de Python para automatizar muchas tareas diarias, como las siguientes:

• Cambiar el nombre de una gran cantidad de archivos a la vez

• Convertir un archivo en otro tipo de archivo

• Eliminar palabras duplicadas de un archivo de texto

• Llevar a cabo operaciones matemáticas básicas

• Enviar mensajes por email

• Descargar contenido

• Efectuar análisis básicos de registros

• Encontrar errores en varios archivos

2.1.2.3. Realizar tareas de ciencia de datos y machine learning

La consiste en extraer conocimientos valiosos a partir de los datos, mientras que


el enseña a las computadoras a aprender automáticamente de los datos y a efectuar
predicciones precisas. Los científicos de datos utilizan Python para realizar tareas de
ciencia de datos, como las que se indican a continuación:

• Corregir y eliminar datos incorrectos, lo que se conoce como limpieza de


datos

• Extraer y seleccionar varias características de los datos

• , que consiste en agregar nombres significativos a los datos

20
• Buscar diferentes estadísticas a partir de los datos

• Visualizar los datos mediante el uso de tablas y gráficos, como los gráficos de
líneas, los de barras, los circulares y los histogramas

Los científicos de datos utilizan las bibliotecas de ML de Python para entrenar los
modelos de ML y crear clasificadores que clasifiquen los datos con precisión. Las
personas que trabajan en diferentes campos utilizan clasificadores basados en
Python para efectuar tareas de clasificación, como la clasificación de imágenes, texto
y tráfico de red; el reconocimiento de habla; y el reconocimiento facial. Los científicos
de datos también utilizan Python para las tareas de aprendizaje profundo, una
técnica avanzada de ML.

2.1.2.5. Desarrollo de software

Los desarrolladores de software suelen utilizar Python para realizar distintas tareas
de desarrollo y aplicaciones de software, como las que se indican a continuación:

• Realizar un seguimiento de los errores en el código del software

• Crear el software de forma automática

• Administrar los proyectos de software

• Desarrollar prototipos de software

• Desarrollar aplicaciones de escritorio por medio de las bibliotecas de interfaz


gráfica de usuario (GUI)

• Desarrollar juegos simples basados en texto a videojuegos más complejos

21
2.1.2.6. Automatización de pruebas de software

La prueba de software es el proceso de verificar si los resultados reales


del software coinciden con los resultados esperados, para garantizar que
el software esté libre de errores.

• Los desarrolladores utilizan marcos de prueba de unidad de Python, como


Unittest, Robot y PyUnit, para probar las funciones que escriben.

• Los encargados de probar el software utilizan Python para escribir casos de


prueba para diversos escenarios de prueba. Por ejemplo, lo utilizan para
probar la interfaz de usuario de una aplicación web, los diversos componentes
de software y las nuevas características.

Los desarrolladores pueden utilizar varias herramientas para ejecutar scripts de


prueba de manera automática. Estas herramientas se conocen como herramientas
de integración e implementación continuas (CI/CD). Los encargados de probar
el software y sus desarrolladores utilizan las herramientas de CI/CD, como Travis CI
y Jenkins, para automatizar las pruebas. La herramienta de CI/CD ejecuta
automáticamente los scripts de prueba de Python e informa los resultados de las
pruebas cada vez que los desarrolladores presentan nuevos cambios de código.

2.1.3. Historia de Python

La historia de Python empieza con Guido Van Rossum empezando su desarrollo en


1989 y empezando a implementarlo en febrero de 1991, momento en el que se
publicó la primera versión pública: la 0.9.0.

La versión 1.0, que se publicó en enero de 1994, la versión 2.0 se publicó en octubre
de 2000 y la versión 3.0 se publicó en diciembre de 2008.

Esta primera versión ya incluía clases con herencias, manejo de


excepciones, funciones y una de las características principales de
Python: funcionamiento modular. Esto permitía que fuese un lenguaje mucho más

22
limpio y accesible para la gente con pocos conocimientos de programación. Una
característica que se mantiene hasta el día de hoy.

Hasta el año 2018, el desarrollo de este popular lenguaje de programación estaba


dirigido personalmente por Van Rossum, pero decidió apartarse y, desde 2019, son
cinco las personas que deciden como evoluciona y se desarrolla Python. Un consejo
que se renueva de forma anual.

Para cuando salió la primera versión definitiva de Python, tal era la popularidad de
este nuevo lenguaje de programación que se se creó comp.lang.python, un foro de
discusión de Python que multiplicó, aún más, su cantidad de usuarios.

2.1.3.1. Version 1.0

Python es un lenguaje de programación que Van Rossum empezó a desarrollar


mientras trabajaba en CWI. Fue este centro de investigación quien liberó, en 1995 la
versión 1.2 de Python. A partir de este momento, ya desvinculado de CWI, Van
Rossum hizo aún más accesible el código y para el año 2000, el equipo principal de
desarrolladores de Python se cambió a BeOpen.com para formar el equipo
de BeOpen Python Labs.

Python 1.6.1 es exactamente lo mismo que 1.6, con algunos bugs arreglados y una
nueva licencia compatible con GPL.

La versión 1.6 de Python tuvo algunos problemas con su tipo de licencia hasta que
la Free Software Foundation (FSF) consiguió cambiar Python a una licencia de
Software Libre, que lo haría compatible con GPL.

23
2.1.3.2. Version 2.0

En octubre del año 2000 se publica la segunda versión de Python. Una nueva
versión en la que se incluyó la generación de listas, una de las características más
importantes del lenguaje este lenguaje de programación.

En 2001, se crea la Python Software Foundation, la cual a partir de Python 2.1 es


dueña de todo el código, documentación y especificaciones del lenguaje.

A mayores de esta nueva característica, esta nueva versión de Python también


incluyó un nuevo sistema gracias al cual los programadores eran capaces de hacer
referencias cíclicas y, de esta manera, Python podía recolectar basura dentro del
código.

2.1.3.3. Version 3.0

La última gran actualización de la historia de Python se produjo en el año 2008


con el lanzamiento de la versión 3.0, que venía a solucionar los principales fallos en
el diseño de este lenguaje de programación.

Aunque Python mantiene su filosofía en esta última versión, como lenguaje de


programación ha ido acumulando formas nuevas y redundantes de programar
un mismo elemento. De ahí la necesidad de nuevas versiones que eliminen estos
constructores duplicados.

Python 3.0 rompe la compatibilidad hacia atrás del lenguaje, ya que el código de
Python 2.x no necesariamente debe correr en Python 3.0 sin modificación alguna.

La última actualización de la versión 3 de Python ha sido lanzada este mes


de octubre de 2020. Se trata de la versión 3.9. Este lenguaje de programación no
volverá a ser actualizado hasta octubre de 2021.

24
2.1.4. ¿Cuáles son las características de Python?

Python tiene muchas características importantes para los programadores, tanto para
quien empieza como para quien ya tiene conocimientos y quiere probar cosas
nuevas o experimentar. Algunas de sus principales características son:

2.1.4.1. Orientado a objetos

Una de las principales características de Python es que se trata de un lenguaje de


programación orientado a objetos. Esto quiere decir que Python reconoce el
concepto de encapsulación de clases y objetos, lo que hace que lo que se codifique
con Python es más eficiente a largo plazo.

En este sentido, por ejemplo, Python facilita el crear clases de objetos heredados.
Esto quiere decir que, a partir de cosas ya hechas, se pueden crear nuevas clases
que heredarán los atributos de las anteriores, lo que simplifica y mejora la
eficiencia a largo plazo del código.

2.1.4.2. Código abierto

Otra de las características principales de Python es que se trata de un lenguaje de


programación de código abierto. Cualquiera puede crear y contribuir para su
desarrollo.

Esto hace que cuente con una gran comunidad que se vuelca para mejorar y facilitar
el aprendizaje de este sistema de programación. Además, se puede descargar gratis
para cualquier sistema operativo, ya sea Windows, Mac o Linux.

2.1.4.3. Fácil de aprender

Python es un código muy amable para todo tipo de desarrolladores, desde los que ya
tienen experiencia con otros lenguajes como para los que están aprendiendo a
programar desde cero.

25
Si ya tienes experiencia con C, C++, Java o C#, Python es un buen sistema con el
que seguir creciendo y ampliando conocimientos sobre programación. Si estás
empezando, con la formación adecuada, es fácil entrar y aprender a hacer cosas
con él en muy poco tiempo.

2.1.4.4. Integración y adaptación

Otra de las características principales de Python es que se trata de un lenguaje de


programación integrado. Esto quiere decir que ejecuta el código línea a línea.

¿Qué implica esto? Que Python, a diferencia de otros códigos, no compila, lo que
hace que el proceso de depuración de código sea mucho más sencillo y eficiente.
Otra de las ventajas de esta característica es que facilita la ejecución y ahorra
tiempo en la misma a largo plazo.

2.1.4.5. Soporte para GUI

La GUI es la Interfaz Gráfica de Usuario y es un aspecto clave para cualquier


lenguaje de programación, ya que ayuda a agregar estilo al código y hace que lo que
el programador está haciendo sea mucho más visible.

En este sentido, Python es compatible con una amplia gama de GUI, que se pueden
importar fácilmente, lo que hace que se haya convertido en un sistema tan usado en
Data Science, ya que facilita la visualización de datos.

2.1.4.6. Programación de alto nivel

Como decíamos al principio, una de las características principales de Python es que


ha sido diseñado para ser un lenguaje de programación de alto nivel.

Es decir, cuando se trabaja con él, no es necesario conocer la estructura del código,
la arquitectura, ni la administración de la memoria. Esto simplifica el trabajo de
los programadores.

26
2.1.4.7. Portable

Vamos a ver esto a través de un caso práctico: Supón que estás trabajando con
Python en Windows, pero necesitas trasladar lo que estás haciendo a Mac o Linux,
pues con Python puedes hacerlo sin tener que cambiar nada en el código.

Esta capacidad de portabilidad entre sistemas operativos distintos es algo que no es


frecuente en otros lenguajes de programación, por lo que Python se ha convertido en
uno de los sistemas más portátiles de la actualidad, lo que es una gran ventaja en
sus principales campos de aplicación.

¿Qué son las bibliotecas de Python?

Una biblioteca es una colección de códigos usados con frecuencia que los
desarrolladores pueden incluir en sus programas de Python para evitar tener que
escribir el código desde cero. De forma predeterminada, Python incluye la biblioteca
estándar, que contiene una gran cantidad de funciones reutilizables. Además, más
de 137 000 bibliotecas de Python están disponibles para diversas aplicaciones,
incluidos el desarrollo web, la ciencia de datos y el machine learning (ML).

2.1.4. ¿Cuáles son las bibliotecas de Python más populares?

2.1.4.1. Matplotlib

Los desarrolladores utilizan Matplotlib para trazar los datos en gráficos de dos y tres
dimensiones (2D y 3D) de alta calidad. Por lo general, se utiliza en las aplicaciones
científicas. Con Matplotlib, puede visualizar los datos mostrándolos en diferentes
gráficos, como los gráficos de barras y los de líneas. También puede trazar varios
gráficos de una sola vez, y estos se pueden trasladar a todas las plataformas.

2.1.4.2. Pandas

Pandas proporciona estructuras de datos optimizadas y flexibles que se pueden


utilizar para manipular datos de serie temporal y datos estructurados, como las tablas
y las matrices. Por ejemplo, puede utilizar Pandas para leer, escribir, combinar, filtrar

27
y agrupar datos. Muchas personas lo utilizan para las tareas de ciencia de datos,
análisis de datos y ML.

2.1.4.3. NumPy

NumPy es una conocida biblioteca que utilizan los desarrolladores para crear y
administrar matrices, manipular formas lógicas y efectuar operaciones de álgebra
lineal con facilidad. NumPy admite la integración a muchos lenguajes, como C y C++.

2.1.4.4. Requests

La biblioteca Requests proporciona funciones útiles que se necesitan para el


desarrollo web. Puede usarla para enviar solicitudes HTTP; agregar encabezados,
parámetros de URL y datos; y llevar a cabo muchas más tareas cuando se comunica
con aplicaciones web.

2.1.4.5. OpenCV-Python

OpenCV-Python es una biblioteca que los desarrolladores utilizan para procesar


imágenes para las aplicaciones de visión artificial. Proporciona muchas funciones
para las tareas de procesamiento de imágenes, como la lectura y la escritura
simultáneas de imágenes, la creación de un entorno 3D a partir de uno 2D y la
captura y el análisis de las imágenes de video.

2.1.4.6. Keras

Keras es la biblioteca de red neuronal profunda de Python que cuenta con un


excelente soporte para el procesamiento de datos, su visualización y mucho más.
Keras admite muchas redes neuronales. Posee una estructura modular que ofrece
flexibilidad en la escritura de aplicaciones innovadoras.

2.1.5. ¿Qué son los marcos de Python?

Un marco de Python es una colección de paquetes y módulos. Un módulo es un


conjunto de código relacionado, y un paquete es un conjunto de módulos. Los

28
desarrolladores pueden usar los marcos de Python para crear aplicaciones de
Python más rápido debido a que no tienen que preocuparse por los detalles de nivel
inferior, como la forma en que se producen las comunicaciones en la aplicación web
o el modo en que Python hará que el programa sea más rápido. Python tiene dos
tipos de marcos:

• El marco de pila completa incluye casi todo lo que se necesita para crear una
aplicación grande.

• El micromarco es un marco básico que proporciona funcionalidades mínimas


para crear aplicaciones de Python simples. También proporciona extensiones
si las aplicaciones necesitan funciones más sofisticadas.

2.1.6.¿Cuáles son los marcos de Python más conocidos?

Los desarrolladores pueden utilizar varios marcos de Python para que su desarrollo
sea eficiente, incluidos los siguientes:

2.1.6.1 Django

Django es uno de los marcos web de Python de pila completa más utilizados para el
desarrollo de aplicaciones web a gran escala. Proporciona varias características
útiles, incluidos un servidor web para el desarrollo y las pruebas, un motor de
plantillas para crear el sitio web de frontend y diversos mecanismos de seguridad.

2.1.6.2 Flask

Flask es un micromarco que se utiliza para el desarrollo de aplicaciones web


pequeñas. Sus características incluyen un importante soporte de la comunidad,
documentación bien escrita, un motor de plantillas, pruebas de unidad y un servidor
web integrado. También proporciona extensiones para el soporte de validación, las
capas de asignación de bases de datos y la seguridad web.

29
2.1.6.3 TurboGears

TurboGears es un marco diseñado para crear aplicaciones web con mayor rapidez y
facilidad. Estas son algunas de sus características clave:

• Estructura específica de tabla de base de datos

• Herramientas para la creación y la administración de proyectos

• Motor de plantillas para crear las bases de datos

• Motor de plantillas para crear el frontend

• Mecanismos para manejar la seguridad web

2.1.6.4 Apache MXNet

Apache MXNet es un marco de aprendizaje profundo rápido, flexible y escalable que


los desarrolladores utilizan para crear prototipos de investigación y aplicaciones de
aprendizaje profundo. Admite múltiples lenguajes de programación, incluidos Java,
C++, R y Perl. Proporciona un completo conjunto de herramientas y bibliotecas para
brindar soporte al desarrollo. Por ejemplo, puede encontrar un libro interactivo de
machine learning (ML), kits de herramientas de visión artificial y modelos de
aprendizaje profundo para el procesamiento de lenguaje natural (NLP), que procesan
este lenguaje, como el texto y el habla.

2.1.6.5 PyTorch

PyTorch es un marco para el machine learning que se ha creado sobre la biblioteca


Torch, que es otra biblioteca de machine learning de código abierto. Los
desarrolladores lo utilizan para aplicaciones como las de NLP, robótica y visión
artificial, para encontrar información significativa en las imágenes y los videos.
También lo utilizan para ejecutar esas aplicaciones en las CPU y las GPU.

30
2.1.7. ¿Qué son los IDE de Python?

Un entorno de desarrollo integrado (IDE) es un software que brinda a los


desarrolladores las herramientas que necesitan para escribir, editar, probar y corregir
código en un único lugar.

2.1.8. ¿Cuáles son los IDE de Python más conocidos?

2.1.8.1. PyCharm

JetBrains, una empresa checa que desarrolla herramientas de software, creó


PyCharm. Cuenta con una edición comunitaria gratuita que es adecuada para
pequeñas aplicaciones de Python, así como con una edición profesional de pago que
es adecuada para crear aplicaciones de Python a gran escala, con el siguiente
conjunto completo de características:

• Compleción automática e inspección del código

• Gestión de errores y correcciones rápidas

• Limpieza del código sin necesidad de cambios de funcionalidad

• Compatibilidad con los marcos de aplicaciones web, como Django y Flask

• Compatibilidad con otros lenguajes de programación, como JavaScript,


CoffeeScript, TypeScript, AngularJS y Node

• Herramientas y bibliotecas científicas, como Matplotlib and NumPy

• posibilidad de ejecutar, depurar, probar e implementar aplicaciones en


máquinas virtuales remotas

• un depurador para encontrar errores en el código, un creador de perfiles para


identificar problemas de rendimiento en el código y un ejecutor de pruebas
para llevar a cabo pruebas de unidad

• Soporte para bases de datos

31
2.1.8.2. IDLE

El entorno integrado de desarrollo y aprendizaje (IDLE) es el entorno de desarrollo


integrado (IDE) de Python instalado de forma predeterminada. Se ha desarrollado
solo con Python por medio del kit de herramientas de GUI de Tkinter y ofrece las
siguientes características:

• Funcionamiento en muchos sistemas operativos, como Windows, Unix y


macOS

• Ventana de shell para ejecutar comandos y mostrar el resultado

• un editor de textos de varias ventanas que proporciona resaltado de la sintaxis


del código y compleción automática del código

• posesión de su propio depurador

2.1.8.2. Spyder

Spyder es un entorno de desarrollo integrado (IDE) de código abierto que utilizan


numerosos científicos y analistas de datos. Proporciona una experiencia integral de
desarrollo con características para el análisis avanzado de datos, su visualización y
depuración. También incluye las siguientes características:

• Editor completo de código que admite varios lenguajes

• Consola interactiva de IPython

• Depurador básico

• Bibliotecas científicas, como Matplotlib, SciPy y NumPy

• Posibilidad de explorar variables en el código

• Posibilidad de visualizar documentación en tiempo real

32
2.1.8.3. Atom

Atom es un editor gratuito desarrollado por GitHub que admite la codificación en


varios lenguajes de programación, incluido Python. Mediante el uso de Atom, los
desarrolladores pueden trabajar directamente con GitHub, el sitio web en el que
puede guardar su código de forma centralizada. Atom ofrece las siguientes
características:

• Posibilidad de utilizarlo con muchos sistemas operativos

• Instalación o creación fáciles de nuevos paquetes

• Compleción automática de código más rápida

• Posibilidad de buscar archivos y proyectos

• Fácil personalización de la interfaz

2.1.9. ¿Qué son los SDK de Python?

Un kit de desarrollo de software (SDK) es una colección de herramientas de software


que los desarrolladores pueden utilizar para crear aplicaciones de software en un
lenguaje particular. La mayoría de los SDK son específicos de diferentes plataformas
de hardware y sistemas operativos. Los SDK de Python incluyen muchas
herramientas, como bibliotecas, muestras de código y guías para desarrolladores,
que estos encuentran útiles a la hora de escribir aplicaciones.

2.1.10. ¿Qué es AWS PyCharm?

AWS Toolkit for PyCharm es el complemento para el entorno de desarrollo integrado


(IDE) de PyCharm que facilita la creación, depuración e implementación de
aplicaciones de Python en AWS. Mediante el uso del AWS Toolkit for PyCharm, los
desarrolladores pueden comenzar fácilmente con el desarrollo de Python.
Proporciona varias características útiles para los desarrolladores, incluidas guías de
inicio, depuraciones paso a paso e implementaciones de IDE.

33
2.1.11. Lógica de programación de Python

La sintaxis de Python es extremadamente "limpia", no se requiere de ningún


caracter que indique el final de una secuencia y los bloques se definen a través de
la indentación del código. Los comentarios de una sola línea se definen con el
carácter almohadilla (#) y las cadenas de multiples líneas (""") se suelen emplear
para escribir comentarios multilínea.

Los operadores aritméticos +, - y / significan en Python lo mismo que en


matemáticas. El asterisco (*) es el símbolo para la multiplicación, el % se usa para
obtener el módulo, // para división entera y ** es el símbolo para
las potencias. También disponemos de los
operadores incrementar (+=) y decrementar (-=).

Existen tres operadores lógicos: and, or, y not. La semántica (significado) de estos
operadores es similar a sus significados en inglés (en español “y”, “o” y “no”).

La asignación de valores, como en la mayoría de lenguajes, se realiza con el


símbolo "igual" (=). La doble igualdad (==) se usa para comprobar que dos valores
son iguales, además disponemos de estos operadores de comparación: distinto
que (!=), mayor que (>), menor que (<), mayor o igual (>=) y menor o igual (<=).

Ilustración 2. asignación, Operadores aritméticos, producto y potencias.

34
Ilustración 3. División, Division entera, modulo, incremento, decremento

2.1.11.1. Tipos de datos

Los tipos de datos básicos en Python son los numéricos formados por enteros,
los reales y los complejos; las cadenas de texto y los booleanos. La
función type nos devuelve el tipo:

Ilustración 4. tipos de datos

2.1.11.2. Estructuras de control de flujo

Las sentencias de control de flujo, son bloques de código en los que se agrupan
instrucciones de manera controlada. Por un lado tenemos las estruturas
condicionales (if, if .. else, if ..elif ..else) y por otro las estructuras iterativas (for,
while).

35
Ilustración 5. Estructuras de control de flujo

2.1.11.3. Funciones

Una función no es más que un bloque de código reutilizable encargado de realizar una
determinada tarea. Para definir una función en Python debemos utilizar la palabra reservada
"def" seguido del nombre de la función y los parámetros los indicamos entre parentesis.
Veamos varios ejemplos:

Ilustración 6. Funciones.

36
2.1.11.4. Funciones, parametros *args y **kwargs

En el ejemplo anterior hemos visto varias formas de definir y ejecutar a las funciones en
Python, ya sea con parámetros por con valores por defecto o keywords como argumentos.
Nos faltaría ver como llamarlas con colecciones como argumentos, una forma muy común
de pasar valores a las funciones en Python, y que en muchas ocasiones cuesta entender.
Para ello debemos tener claro que las tupla como colección de argumentos se define
con *args y el diccionario con **kwargs. Veamos un ejemplo en la REPL:

Ilustración 7. funciones, parametros *args y **kwargs

2.1.11.5. Manipulación de cadenas

Las cadenas en Python pueden definirse entre comillas simples o dobles. En la REPL se
muestra un ejemplo de la mayoría de las operaciones que podemos realizar ellas:

Ilustración 8. Manipulación de cadenas

37
2.1.11.6. Estructuras de datos (colecciones)

Las colecciones son un tipo de datos diseñados específicamente para agrupar objetos y
llevar a cabo tareas con ellos. Las estructuras de datos más utilizadas en Python son
las listas, tuplas (listas inmutables) y los diccionarios, aunque personalmente también
suelo usar mucho los conjuntos (sets).

No todas las estructuras de datos exponen exactamente las mismas operaciones, por
ejemplo una lista no deja buscar por clave (si bien sí por índice) y un conjunto no deja buscar
ni por una cosa ni por otra.

El siguiente playground está dividido en tres ficheros, main.py desde el que se importa
listas.py y diccionarios.py, para ver los resultados de uno u otro, elimina o comenta su
respectivo import.

Ilustración 9. Estructuras de datos.

38
2.1.11.7. Excepciones

No soy muy fan de usar excepciones, pero es cierto que con Python hay momentos en los
que su uso no se puede obviar. Las excepciones en Python se manejan esencialmente
con try-except:

Ilustración 10. Excepciones.

2.1.11.8. Depurando con PDB

El depurador por defecto de python es pdb , nos permite inspeccionar nuestro


código de forma interactiva. La forma más simple de utilizarlo es
ejecutando pdb.set_trace():

Ilustración 11. Depurando con PDB

Los comandos básicos del depurador son: "n"(next) para ejecutar la siguiente
sentencia, para mostrar el valor de las variables "p"(print), si queremos ir paso a
paso dentro de las subrutinas utilizariamos "s"(step), y por último "q"(quit) para salir.

39
2.1.11.9. Guia de estilo - PEP8

En Python existen las denominadas PEP's (Python Enhancement Proposals), en


concreto la PEP 8 hace referencia a las convenciones de estilo de programación en
Python.

Entre las convenciones principales, destacan:

• Usar 4 espacios para indentar.

• Tamaños de línea con un máximo de 79 caracteres.

• Las funciones y las clases se deben separar con dos lineas en blanco,
mientras que los métodos de clase solo con uno.

• Los import deben de estar separados uno en cada línea. Se permite: from
urllib2 import urlopen, Request

• Las sentencias import deben de estar siempre en la parte superior del archivo
agrupadas de la siguiente manera:

o Librería estándar

o Librerías de terceros

o import's de la aplicación local

• Usar espacios alrededor de los operadores aritméticos, a excepción de


cuando forman parte de los argumentos de una función.

• No se deben de realizar comentarios obvios

• No se deben comparar booleanos mediante ==

40
2.1.12. Ejemplo de primer programa

En informática, un programa Hola Mundo es el que imprime el texto «¡Hola,


Mundo!» en un dispositivo de visualización, en la mayoría de los casos una pantalla
de monitor. Este programa suele ser usado como introducción al estudio de un
lenguaje de programación, siendo un primer ejercicio típico, y se lo considera
fundamental desde el punto de vista didáctico.

El Hola Mundo se caracteriza por su sencillez, especialmente cuando se ejecuta en


una interfaz de línea de comandos. En interfaces gráficas la creación de este
programa requiere de más pasos.

El programa Hola Mundo también puede ser útil como prueba de configuración para
asegurar que el compilador, el entorno de desarrollo y el entorno de ejecución estén
instalados correctamente y funcionando.

1.5.1. ¡Hola, Mundo!

Programa ¡Hola, Mundo! en diversas versiones de Python:

Python 3.x:

Ilustración 12. Hola mundo.

41
2.2. DISEÑO DE EN SOLIDWORKS DE UN SOPORTE DE CÁMARA CELULAR.

Antes de empezar con el diseño se elaboro un boceto conforme a las medidas y


superficie en el cual se hacen las tomas de fotografías en el laboratorio por lo cual la
siguiente ilustración muestra el borrador del boceto planeado en teoría.

Ilustración 13. Boceto de soporte para teléfono

Para la elaboración del soporte de celulares se abrió el programa SolidWorks, como


primer paso se trabajó en el alzado del croquis partiendo del punto central colocando
un rectángulo de 12 centímetros de largo por 7 centímetros de ancho y 8 cm de
extrusión (ver ilustración 17 ).

Ilustración 14. primer parte de la base

42
Para ello, se consultó el apartado de operaciones y en la parte donde dice extruir
saliente/base, se le ha establecido un grosor a la base de 8 centímetros, ya que
consultando las medidas es de buen grosor para poder sujetar bien las demás
piezas.

Como primera parte es darle un agujero que será como el encaje de donde se podrá
acomodar para que no se mueva y poder tener una mejor captura de fotografías para
ello se va a usar la herramienta de corte ubicada en las pestañas de Operaciones
pero para ello se hará un rectángulo de 80 cm de largo por 4 de ancho.(ver
ilustración 18)

Ilustración 15. corte de la figura

Después de ello se les da un redondeo de 2 mm para que ese borde no quede de


una manera rustica y se pueda visualizar de una manera más estética, junto a eso se
le coloca un croquis en la parte superior de la figura y se coloca un triangulo para
empezar a moldear la figura.

43
Ilustración 16. Bordes de base

Se procede a hacer las medidas especificas de los triángulos en este caso fueron
triángulos equilátero las cuales sus medidas fueron de dos centímetros por dos
centímetros posteriormente se uso la herramienta de corte.

Ilustración 17. Corte superior de la base

Seguidamente mediante la herramienta spline podemos darle forma de C a la base


para poder hacer que esta sea movible de una manera la cual se vea estético
posteriormente darles un redondeo para que se vea mas como una base a un bloque
solido.

Ilustración 18. Moldeado de la base

Posteriormente se visualiza que la parte superior esta muy ancha por lo cual se
procedió a hacerlo de manera mas delgada y siguiendo un modelo de un grillete
seguidamente se les aplica partiendo desde el croquis de planta y por mitad de la

44
figura unas líneas de dos centímetros y se termina el croquis completando las líneas
faltando y dándoles un corte por la mitad del plano para que asi se pueda expandir
por toda la figura.

Ilustración 19. ajuste de la base

el paso a seguir es darle redondeo a toda la spline que se hizo para poder hacer una
mejor estética y posteriormente en la parte inferior de la base un hexágono para
posteriormente extruirlo y con un grosor de 2.5 centímetros.

Ilustración 20. parte inferior de la base

una vez echo la parte del corte se procede a elaborar la rosca del la parte donde se
hizo el corte, para ello en el apartado de operaciones nos da una opción de asistente
de taladro y aparecen otras pestañas debajo la cual nos da la opción de rosca y ahi
se va a desplegar una pestaña la cual nos va a indicar que cara y donde es que se
requiere la rosca, pero para poder afectar la rosca se debe hacer mediante una

45
extruccion porque si no daría error y podemos modificar el tipo de rosca acorde a la
necesidad.

Ilustración 21. Rosca de la base

Como siguiente paso se coloca la parte donde ira el ensamble que va a conectar con
las demás piezas, para ello se crea un plano en la vista de planta para identificar
donde se encuentra este apartado, se da click en el apartado de operaciones y en
una pestaña que dice geometría está el apartado que dice plano, se va a seleccionar
y se despliega que tanta distancia quieres el plano para crear el croquis y sobre ese
croquis se dibujó la parte donde embona las demás piezas y se extruyo con un
grosor de un centímetro posteriormente, en el mismo apartado de operaciones hay
una herramienta que se llama matriz lineal lo que permite crear piezas iguales y con
una cierta distancia, entonces se da una distancia de 0.5 centímetros y quedando
como resultado final la pieza de soporte.

Ilustración 22. Base final.

46
Lo siguiente a elaborar es la parte que va conectada a la base para que se pueda
mover de una manera mas eficiente y no solo se quede en una sola posición para
ello se hace una nueva pieza y se comienza con un bloque de 1.5 de alto y 3.5 de
ancho para posteriormente darle una extrusión de 1.5 centímetros.

Ilustración 23. Bloque de la pieza dos.

Seguidamente se trabaja en la cara delantera y desde la mitad de lo extruido se


colocan líneas para poder formar el ensamble con la figura anterior, para ello las
medidas son de largo son 3.5 y de ancho se hace una línea de un centímetro y
después se hacen tres de 0.5 centímetros para finalizar con uno de un centímetro
para posteriormente solo terminar los rectángulos que se fueron formando con las
líneas de las medidas anteriores y darle un corte a las medidas de un centímetro y a
en medio uno de 0.5.

Ilustración 24. Corte de ensamble

47
Para la siguiente parte se elaboró un croquis en la parte superior de la otra parte
solida que quedaba, y se hizo los mismos pasos que anteriormente se hicieron para
poder hacer el otro ensamble, posteriormente al realizar el corte se encontraban
unos bordes que salían de la figura, haciendo una pieza con poco detalle estético
entonces esos detalles se hizo otro croquis para quitarlos y que la pieza se vea con
mejor estética y sobre todo que encaje perfectamente con la primer pieza.

Ilustración 25. Parte superior y estética de la pieza dos.

Como siguiente paso es darle forma a el codo que unirá las piezas, se trabajo
mediante una de las caras ya cortadas, para después darles un borde mediante un
circulo y cortando entidades para después cortar esas partes, seguidamente se saca
la medida del circulo donde lleva los sujetadores y se corta, dando como finalizado
una figura rustica pero ya con un poco mejor de ensamble.

Ilustración 26. Primera cara recortada.

48
El siguiente paso a seguir es hacerlo mismo del lado contrario para que esté sea
igual y pueda encajar en la otra pieza a elaborar se hizo la elaboración conforme a
los anteriores pasos son modificar nada, el único cambio que tuvo es de que este es
de tres ranuras.

Ilustración 27. segunda cara recortada

Para por ultimo con la herramienta de redondeos cubrir por completo la figura esto
para que se note la diferencia de estética y dando por terminada la segunda pieza de
todo el emsamble.

Ilustración 28. pieza redondeda.

Como siguiente paso a elaborar es el brazo largo de la pieza para ello se dibujó un
croquis en el plano alzado y para ello se utilizó un rectángulo de centro para
posteriormente mediante la herramienta de cota inteligente para darle referencias de
alto y ancho de la figura en este caso se tomo una medida de 250 milimetros de largo
y 8.5 de ancho.

49
Ilustración 29. Croquis de tercer pieza

Posteriormente mediante la herramienta de extrusión para darle una base solida que
va a permitir darle un modelado diferente y lo mas parecido a lo que se esta
buscando, para ello se utilizó un grosor de 45 milímetros y se queda una base solida
sin forma.

Ilustración 30. Extrusion de la pieza tres.

En una de los extremos se crea un croquis nuevo este para hacer las partes en
donde se va a enncajar con la pieza numero dos que anteriormente se elaboró, para
hacer eso se toman medidas de 0.9 centimetros de grosor por cada ceja, teniendo en
cuenta que debe encajar y tener coherencia con la pieza dos.

50
Ilustración 31. corte de ensamble de la pieza tres.

Se ajustó el ancho del primer croquis para poder elaborar el redondeo de donde se
coloca la pieza dos, para ello se hacen medidas de 22 milimetros para que después
con la herramienta spline se haga el arco y se ajuste al borde de la pieza solida y
posteriormente se usa la herramienta de corte.

Ilustración 32. corte de ceja

Para poder hacer que el brazo sea movible y fijo a su vez se hace unos agujeros que
permitan ajustarse y quedarse fijos dependiendo el equipo a la cual se va a tomar
fotografías y las necesidades de cada laboratorio para ello el circulo parte del centro
de la figura y con un diámetro de un centimetro para posteriormente se uso la
herramienta de corte.

51
Ilustración 33. corte de circulo para ajuste de la pieza.

El próximo paso es elaborar la otra cara de donde se encaja la siguiente pieza pero
para ello se trabaja sobre la misma cara que al inicio y se crea un nuevo croquis y se
hace lo mismo que con la primer cara, y se elabora lo mismo que como la primer
parte, y se corta ahora a la inversa dejando tres cejas disponibles para que este se
encajen con la siguiente pieza.

Ilustración 34. corte del otro extremo de la pieza.

Para casi finalizar la pieza lo siguiente es elaborar el la media luna que se forma y
que se encaja con la otra pieza, haciendo énfasis que las medidas son las mismas
que se añadieron en el otro extremo de la misma pieza.

52
Ilustración 35. corte de la ceja dos

Para finalizar la pieza completa, se hizo el mismo agujero que se hizo en el otro
extremo de la figura partiendo desde en medio de la figura y con un diámetro de un
centímetro, y para darle estética se aplico un redondeo a toda la figura.

Ilustración 36. corte de agujero de ajuste y redondeo de la pieza

Una vez se elaboro la primer pieza del brazo final, se elabora la otra parte del brazo
solo que este cumple con una medida mas pequeña que el otro, por ello se va a
empezar por hacer un croquis en la plano alzado para posteriormente hacer un
rectángulo de centro y con las respectivas medidas de largo y ancho, para este caso
como debe ser mas pequeño se ajusto mediante una cota inteligente de 16.5
centímetros con un ancho de tres centímetros.

Para finalizar el paso usando la herramienta de extrusión se da un grosor de 4.5


centímetros esto para que coincidan el grosor de las cejas que mas adelante se van
a elaborar.

53
Ilustración 37.solido de la pieza cuatro.

Como siguiente paso es elaborar un croquis en la parte extruida es decir, en la parte


superior de la figura y mediante cotas se da el largo que equivale a lo largo de las
cejas que es donde van unidas las demás piezas ya elaboradas, como anteriormente
se menciona es solo de darle un largo y un ancho que en esta ocasión es de un largo
de tres centímetros y de 0.9 centímetros cada barra para poder así se hace un corte
y se quedé de manera rustica las cejas.

Ilustración 38. corte de la figura cuatro

Una vez se hizo el corte en una cara de lo que se corto anteriormente se crea un
croquis y en este se dibuja el redondeo de la parte donde se encaja la figura, esto
para que no se vea de manera muy rustica y otra para que pueda tener un libre
movimiento sin tener algún tipo de obstrucción, por eso sus medidas son de 2.2

54
centimetros y el circulo con un diámetro de 3.6 centimetros y haciendo coincidentes
las líneas con el circulo y luego solo con la herramienta de corte se selecciona el
cortorno para darle el redondeo que se busca.

Ilustración 39. redondeo de la figura cuatro

Dentro del mismo croquis donde se hizo el redondeo, se coloca un circulo que de el
centro de la línea inferior al centro del circulo su distancia sea de 2.5 centímetros y el
diámetro del circulo sea de un centímetro para que como siguiente paso por la
herramienta de corte se ejecuta la herramienta y quedando el hoyo.

Ilustración 40. hoyo de la figura cuatro.

Una vez se concluye con ese lado de la pieza, como en los anteriores pasos se hizo
el corte de los encajes de la pieza, solo que la única modificación es que se cortan
dps lados en lugar de tres como anteriormente se hizo, al respecto de las medidas
son las mismas.

55
Ilustración 41. corte del otro extremo de la figura cuatro

Como otro paso que también se elaboró anteriormente es la parte del redondeo de la
pieza que es mediante una de las caras hacer dos líneas iguales de 2.2 centímetros
y con un circulo de 3.6 centímetros de diámetro haciendo coincidentes las líneas con
el diámetro del circulo para posteriormente hacer el corte.

Ilustración 42. redondeo del otro extremo de la figura cuatro

Dentro del mismo croquis donde se elaboró el redondeo de la figura se hace un


circulo centrado y con una cota del centro de la pieza al centro del círculo de 2.5
centímetros para posteriormente darle un diámetro de un centímetro.

56
Ilustración 43. hoyo del otro extremo de a pieza cuatro.

Para finalizar y darle más estética a la pieza se le aplico la herramienta de redondeo


este se encuentra en la pestaña de operaciones y dándole un redondeo de 0.2
centímetros a toda la pieza.

Ilustración 44. acabado de la pieza cuatro

Seguidamente para la creación de otra pieza que es donde se va a sostener el


teléfono y se empieza por crear un croquis en el plano de alzado y se dibuja un
rectángulo de centro para luego darle unas acotaciones inteligentes con medidas de
tres cm de ancho por 6.5 cm de largo con un espesor de 0.7 cm para así crear una
base sólida.

57
Ilustración 45. base sólida de soporte del teléfono

Una vez extruida la base de la pieza anterior lo siguiente que se elabora es un


croquis que este croquis se pondrá sobre los 0.7 cm que se extruyeron, y se va a
crear una figura con la que se va a sostener el teléfono empezando por el alto que es
equivalete a un centímetro luego una diagonal a 45 grados de 0.5 cm para luego
hacer una línea hacia dentro creando un triangulo rectángulo esa línea tendrá una
medida de 0.2 cm y se termina con una línea vertical al borde de la figura extruida,
para por último extruir lo que se dibujo por todo el ancho de la figura.

Ilustración 46. parte donde se coloca el teléfono

Adicional a lo que ya se elaboró se crea un croquis en la misma cara de lo que se


extruyo anteriormente y se dibuja la misma figura para posteriormente alargarle a la
pieza y lo mismo se hace con el otro lado para que se vea parejo.

58
Ilustración 47. alargamiento de la pieza.

A un costado del lado contrario se va a crear la parte donde se pondrá la otra parte
similar a esta que se esta elaborando pero la diferencia es que este lleva unos cortes
por dentro de la pieza y el otro es por fuera, este para que sean ensamblado de
manera correcta, entonces hacemos una diagonal a 45 grados de 3.31 mm
posteriormente una diagonal a 30 grados de 4.50 mm seguidamente una línea
horizontal de 4 mm para hacer una diagonal pero hacia abajo igual a unos 45 grados
de 2.50 mm de allí otra diagonal a 45 grados de 3 mm y terminando con una línea de
2 mm posterior a eso en la mitad de la figura se hace una línea constructiva y
consecutivamente mediante la herramienta de simetría seleccionar el dibujo creado y
con respecto a la línea constructiva poder hacer el mismo dibujo pero del otro
extremo de la figura.

Ilustración 48. Dibujo de ensamble de la pieza.

59
Una vez creada la figura se termina de cerrar el dibujo para que este reconozca las
áreas a cortar y en el corte sea pegado al borde de la parte donde se sostiene el
telefono

Ilustración 49. Corte de ensamble de la pieza.

Una vez echo el corte de la pieza se coloca un croquis sobre la parte central de
donde se cortó para poder poner una línea constructiva de referencia y hacer el
agujero de donde se pondrá un tornillo de ajuste para ello se empieza dibujando en
la parte inferior una línea horizontal de de 4.75 mm para posteriormente dibujar una
línea vertical de 4.50 mm seguidamente una línea diagonal a 45 grados y de 2.30
mm para como siguiente se dibuja una línea vertical de 45.50 mm para terminar con
una línea horizontal de 3.25 mm y para replicar el dibujo mediante la herramienta de
simetría se selecciona lo que se dibujó y como referencia se selecciona la línea
constructiva que se dibujo desde un inicio.

60
Ilustración 50. dibujo de tornillo de ajuste.

Com uno de los últimos pasos solo mediante la herramienta de corte se procede a
tener ejecutar la acción por toda la pieza y se visualiza una pieza con una parte
hueca en el centro.

Ilustración 51. Corte del tornillo de ajuste.

Para terminar la pieza se crea un croquis en la parte trasera de donde se hizo el


soporte para el teléfono y en la parte inferior y en el centro se dibuja un círculo para
poder tener una acotación de 3 mm de la línea inferior al centro del círculo y un
diámetro de 5 mm y para terminar hacer un corte por una profundidad de 63 mm.

Ilustración 52. Circulo de tornillo de ajuste.

Para hacer el otro lado de la pieza que se ensambla se empieza a como se comenzó
con la pieza anterior trabajando por hacer un croquis en el plano de alzado y para así
extruir la pieza y se obtiene un solido.

61
Ilustración 53. Base solida de la otra parte del soporte de teléfono.

Como anteriormente lo que se hizo fue que se trabajo sobre un croquis en una cara
que se extruyo, en este caso se hace lo mismo y se hace el mismo dibujo que se
hizo anteriormente, solo lo que cambia es que es del lado contrario para que este se
quedé de manera correcta se hizo del lado contrario, se tiene en cuenta de que son
las mismas medidas que el anterior que se describió.

Ilustración 54. Parte dos dónde se sostiene el teléfono

Una vez elaborado esa parte se utilizo la herramienta de extruir la pieza pero dentro
de las opciones se encuentran con diferentes tipos de direcciones en las que se
puede extruir la pieza y se utilizó la opción de extruir por dos direcciones y se ajustó
de tal forma que se tuviera las mismas medidas de los dos lados.

62
Ilustración 55. extrusión de la pieza dos del soporte de teléfono

Una vez se realizo la extrusión lo siguiente es hacer un agujero de tal modo que el
tornillo de ajuste pueda entrar de manera exacta, para ello se pone en vertical la
pieza y la parte donde esta libre se coloca un croquis, y en la parte media de ese
croquis se colocó un círculo y se puso una cota inteligente de 5 mm de diámetro,
por ultimo paso del croquis es solo cortar por toda la figura.

Ilustración 56. corte de tornillo de ajuste de la pieza dos del soporte de teléfono

Otro paso sencillo es hacer los agujeros donde se pondrá unos tornillos para
ajustarlo y este se dibuja en la parte plana de la pieza y se crea un croquis, se dibuja
el primer cuadrado y se utiliza la herramienta de cota inteligente teniendo unas
medidas de 5.6 mm de largo con 4.30 de ancho y esté rectángulo se tiene una
separación de 5 mm, para el otro rectángulo se hace pegado a la figura donde esta el
soporte del teléfono y se coloca con 4 mm de ancho por 6 de largo y por ultimo se
hace el corte.

63
Ilustración 57. corte de espacios para tornillos.

Una vez echo todas esas partes lo siguiente es hacer los encajes para que la pieza
pueda ensamblarse de manera correcta y no tenga obstrucciones o no entre la pieza,
para ello, donde se hizo el corte del circulo y allí mismo se crea un nuevo croquis y
se dibuja una diagional de 3.30 mm para posteriormente dibujar otra diagonal con
4.50 y para poder ejecutar el corte se cierra lo dibujado mediante líneas que vayan al
borde de el croquis y por ultimo se coloca una llinea constructiva en la mitad de el
croquis y por la herramienta de simetría se selecciona el dibujo anterior y con
referencia la línea constructiva.

Ilustración 58. Dibujo de bordes de la pieza dos del soporte de teléfono

Adicional se hace el corte tomando en cuenta que dicho corte va a una profundidad
especifica y que sea a borde de el soporte de teléfono y esto es para que se pueda
usar de manera universal el soporte.

64
Ilustración 59. corte de bordes de la pieza dos del soporte de teléfono

Posteriormente se crea un croquis en la parte trasera dónde se elaboro el soporte


para el teléfono y sobre eso se va a dibujar 5 lineas a lo largo de el croquis y
posteriormente a lo ancho es en el borde de la misma pieza donde se creo el croquis
y seguidamente se dibujan otras 5 líneas para por último se hacen horizontales
creando rectángulos y para finalizar se dan acotaciones de 9 mm de ancho, y se dan
una extrusión de 60 mm de largo.

Ilustración 60. extrusión de acoplamiento del soporte de teléfono

Una vez se hizo esa operación lo que sigue es crear un croquis un costado de lo que
se elaboro anteriormente con ello se dibujan lineaa verticales de 20 mm y con un
ancho de lo que tiene la parte del croquis y posteriormente se dibuja una línea
constructiva en el centro del croquis y sobre esa línea dibujar un circulo de un
diámetro de 18 mm y hacer coincidente a las líneas verticales que se dibujo con
anterioridad y por ultimo para poder hacer que la herramienta de corte lo identifique
cómo un corte se tiene que cerrar el dibujo así que mediante una línea horizontal se

65
cierra la pieza, una vez cerrada la pieza se utiliza la herramienta de corte y se
seleccionan las esquinas y se cortan por todo.

Ilustración 61. Corte de ceja para la pieza de soporte del teléfono

Como penultimo pasó es crear en mismo lado del croquis donde se hicieron los
bordes, se hace unas línea constructiva por mitad del croquis de la pieza y sobre eso
se dibuja un circulo de una distancia de 10 mm desde la orilla redondeada y con un
diámetro de 10 mm y para finalizar con un corte por toda la pieza.

Ilustración 62. Corte de círculo de la pieza del soporte de teléfono

66
Para finalizar la pieza, y se pueda apreciar de manera mas estética se aplico un
redondeo y asi poder tener una mejor perspectiva visual.

Ilustración 63. Redondeo de la pieza dos del soporte del teléfono

Una vez concluida la parte de la elaboración de las piezas lo siguiente es empezar


con el ensamble final de todas las piezas echas. Para ello, se abre un ensamble
nuevo y se seleccionan todas las piezas y se colocan en el apartado de ensamble y
para comenzar se empieza por la primera pieza y el codo.

Usando la herramienta de relación de posición se puede unir de manera fácil las


piezas y para poder unirlas se selecciona la cara interna de una de las cejas de
primera pieza y la cara externa del codo y se alinea junto a las cejas de la primer
pieza.

Posteriormente selecciona la circunferencia del circulo de la primer pieza y la


circunferencia del circulo del codo y es asi como tendrá un movimiento que se simula
al de una realidad.

67
Ilustración 64. primeras dos piezas de ensamble.

Seguidamente ya una vez relacionado los posicionamientos de la primer pieza con la


dos ahora es momento de relacionar el otro extremo con la pieza tres para ello
primero se utiliza la herramienta de relación de posición esta herramienta se utilizara
durante todas las uniones de las demás piezas.

Entonces se selecciona una de las cara interna de la pieza dos con una cara interna
de la pieza tres de las cejas o bordes que tiene, posteriormente se selecciona la
circunferencia interna de la pieza dos con la circunferencia de la pieza tres y así se
obtiene la unión de las piezas.

Ilustración 65. Unión de la pieza dos y tres

Ya que las tres piezas están relacionadas en sus posiciones en el otro extremo de la
pieza tres queda libre y es donde se relaciona con la pieza cuatro que es parecida a
la pieza tres solo que más pequeña, entonces para poder relacionarla se selecciona
la cara interna de la pieza tres con la cara externa de la pieza cuatro.

68
Ilustración 66. Relación de posición de la pieza tres y cuatro.

Una vez relacionado de esa manera lo único que queda es seleccionar la


circunferencia interna de la pieza tres con la circunferencia externa de la pieza cuatro
para que este tenga un movimiento en solo las posiciones que se asignaron.

Ilustración 67. Relación de circunferencias de la pieza tres y cuatro.

Para la siguiente pieza se queda libre el otro extremo de la figura cuatro entonces lo
que se hace es hacer una relación de posición con el segundo sujetador que se
elaboró el que tiene las cejas extruidas y para que se relacionen sus posiciones solo
se selecciona la cara interna de la pieza cuatro con la cara externa del segundo
sujetador y después con la circunferencia interna de la pieza cuatro con la
circunferencia externa del segundo sujetador.

Una vez elaborado esa parte se relaciona el primer sujetador con el segundo, para
ello primero su relación es con la parte de abajo del segundo sujetador con la parte
superior del primero estos para que se alineen.

69
Ilustración 68. Relación de parte superior y inferior de los dos sujetadores.

Para poder terminar su relación, solo se selecciona una de las líneas superiores del
sujetador dos con una de las líneas del sujetador uno y con las opciones que dan en
la relacon de posición se selecciona la que dice invertir alineación y esto hará que la
pieza del sujetador uno gire y quede de manera correcta.

Ilustración 69. Uso de opción: "invertir alineación".

Por ultimo se puede visualizar un ensamble final de todas las piezas y como es que
se conforma todas las piezas, desde que movimientos puede tener hasta que altura
puede desplazarse.

70
Ilustración 70. Ensamble final del prototipo.

2.3 PROGRAMACIÓN EN PYTHON

Para este apartado ya teniendo instalado el Python como tal, se busca en el


explorador de Windows, un apartado que se llama IDLE que este es donde vamos a
empezar por declarar o importar las librerías a utilizar en este caso será una librería
para una interface visual llamada PySimpleGUI para instalarla debemos abrir
ejecutor de comandos del sistema de la computadora y escribir pip install
PySimpleGUI, con ese comando se instala la primer librería a utilizar

Ilustración 71. Libreria PySimpleGUI.

Una vez instalada esa librería se procede a instalar la librería de Opencv ejecutando
en el mismo apartado de comandos de Windows se escribe el siguiente comando:
pip install opencv-python así mismo instalara la librería de Python y a su vez otra
librería llamada numpy.

71
Ilustración 72. Libreria OpenCV

Instalada las dos librerías que se van a utilizar lo siguiente es empezar a escribir el
código, se escribe primero la librería PySimpleGUI y se asigna a una variable se le
da un nombre de sg, posteriormente se importa la librería para fecha y hora, por
último se importa la librería de OpenCV.

Ilustración 73. Declaración de librerías.

Mediante un entorno en el cual se ejecuta el código de máximo nivel y debajo se va a


declarar una variable donde se conecta la cámara y se llamará “cámara” y sea igual
a donde se conecta la cámara para hacer pruebas se utiliza entre paréntesis el
número del puerto en el que está conectado la cámara, para el caso de hacer prueba
probando con el numero cero, podemos visualizar la cámara de la propia
computadora, pero si se tiene una cámara externa conectada es cuestión de ir
probando en este casó con el numero dos se identificó la cámara del teléfono
conectada.

72
Ilustración 74. Declaración de la cámara conectada.

Seguidamente mediante la librería de PySimpleGUI, se puede elegir buscando en


internet todas las diferentes tipos de temas que existen, en mi caso elegi uno llamado
DarkBlue4 que es uno color morado con un color lila esto solo es aplicado en el
laboratorio y se pueden elegir en diferentes temas para los diferentes laboratorios.

Una vez definido esa parte lo siguiente es anexar los elementos de la interfaz grafica
para ello se declara una variable de nombre layout y este va a ser igual y entre
corchetes se coloca el nombre de la declaración de la librería que es sg la imagen y
dentro de donde se va a guardar la imagen que se va a tomar.

De allí del mismo sg se pone un cuadro de texto con el nombre de la recepción con
el tamaño que es 15 por 1, y por ultimo un cuadro donde se podrá insertar el numero
de texto. La misma programación para la OT y su tamaño junto a la parte donde se
va a insertar el texto y los mismo para el ID y el tamaño junto a un cuadro de texto
para que se coloque la información.

Por ultimo se añade un botón con el nombre de carpeta que este abrirá el explorador
de archivos y se podrá guardar donde se desea la imagen y hasta poder crear una
carpeta ahora mediante una coma se hace una separación para crear otro botón con
el nombre de entrada, otro botón con el nombre de salida y uno ultimo con el nombre
de salir.

Ilustración 75. Elementos de la interfaz grafica

73
Ahora bien se crea la interfaz grafica como tal es una ventana de window con el
nombre de Camara de evidencia fotográfica junto a donde es que se quiere el
nombre y posteriormente la localización donde se encuentra.

Despues de eso de hace una declaración de la imagen y es lo que la ventana nos va


proporcionar empezando con un numero equivalente a 0.

Ilustración 76. Interfaz grafica

Siguiendo con las líneas de código se empieza con la lectura y la actualización de


datos mediante un operador de funciones que es while que en español significa
mientras, entonces colocamos la cámara, esta abierta, obtenemos la información de
la interfaz grafica y video entonces se declara un evento y valores van a ser igual a lo
que lea la ventana.

Al igual que se agregan otras variables para que lea lo que la camara esta
ejecutando que es un frame y ret, por otro lado se declara la variable Font, que es
donde se va a agregar la fecha en que se toma la foto.

Ilustración 77. Lectura de cámara y declaración de variables para la cámara.

74
Para seguir con la programación lo siguiente que se declara son las letras que
aparecen sobre la camara en este caso lo que la ventana esta leyendo, se empieza
declarando un dt que es equivalente a la fecha en que se tomó la fotografía una
declaracion str que ess para colocar texto se pone el evento que en este caso es el
lo que la ventana esta leyendo y adicional la fecha en que se toma le evidencia.

Por otro lado se declara una variable R que es un identificador de numero de


recepción en la empresa, este se queda fijo y no es necesario cambiarlo porque ese
identificador se utiliza en todos los demás laboratorios.

Una vez declarada la variable lo siguiente es añadir un texto simplemente R y


mediante un str va a introducir los datos que nosotros le proporcionemos en los
cuadros de texto añadidos anteriormente, adicional el numero 23 señalando el año
en que estamos actualmente.

Ahora se declara la OT que es otro de los identificadores que se utilizan en los


laboratorios esta variable va a ser igual a las letras describiendo la OT en este caso
se le añade el identificador del laboratorio que en este caso es D seguidamente de
otro str señalando los datos que proporcionamos en los cuadros de texto.

Por ultimo se declara el ID señalando otro identificador mas específicos de los


equipos que entran a calibración que es igual a las letras de RD la letra D hace
referencia de que laboratorio es este se puede ajustar dependiendo a que laboratorio
se desea trabajar seguidamente de los valores que se introducen en el cuadro de
texto y por un str antes de ese valor y el año que se esta actualmente

Ilustración 78. Variables mostradas en las fotos.

75
Anteriormente se declaro un frame que este básicamente es un widget que sirve
como una especie de contenedor, entonces vamos a colocar las palabras frame y
este va a ser igual a lo que se declaro como librería para OpenCv y se coloca un
texto y entre paréntesis colocamos el frame seguido de una coma y el nombre de la
primer variable en este caso es dt se coloca otra coma y se pone en la posición que
se quiere en este caso es de 10 y 30 que es en la parte superior izquierda y también
se coloca como el tamaño que en este caso es de 0.8 de tamaño posteriormente se
abre un paréntesis y se coloca el numero de la tabla RGB del color que se desea en
este caso elegi uun color morado para que hiciera juego con la interfaz visual y su
numero es 128,50,100 posteriormente se declara la acción que se realiza que en
este caso es una línea de texto.

Para todas las demás variables que es R, OT, y ID se hace lo mismo en dado caso
que se requiera cambiar el color solo se ajusta el numero de color RGB y con eso se
puede manipular para personalizarlo el gusto del usuario.

Ilustración 79. interfaz visual de los textos en las fotos.

Ahora bien en la interfaz se coloco unos cuadros con el nombre de entrada y salida
esto refiriéndose cuando un equipo entra y cuando uno sale, entonces declaramos n
operador if que en este caso es que si presionamos salir no se hará nada y se sale.

Por otro lado si el evento que se declaro anteriormente es igual a la carpeta se abrirá
el explorador de archivos para que el usuario decida donde va a querer la foto
mediante la declaracion de la variable ruta va a ser igual a la librería sg y el

76
identificador para abrir el explorador de archivos con el titulo guardar fotografía y un
mensaje de carpeta de destino.

Ahora si se toma una foto se escribe si el evento se da click en el cuadro de entrada


o el evento se da click en el cuadro de salida mediate la librería ejecutara la toma de
evidencia y se puede colocar el nombre a la foto tomada en este caso primero se
leerá la ruta a donde va de allí un espacio con la RD seguidamente los valores
correspondientes a ese recuadro de allí los datos del evento, si entro o salió el
equipo para después el día y hora que se tomo y un numero aleatorio para que este
no reemplace las imágenes tomadas seguidamente de un png que es e tipo de
imagen que se guarda si no se cumple esta condición o lo que lee la cámara se
cierra.

Ilustración 80. código de guardado de fotografía.

Ahora como ultimo paso es mandar el video que se registra a la consola de ejecución
del programa y para ello colocamos la variable imgbytes que es igual a la librería de
OpenCv en codigo lo que esta registrando en codigo y se abren paretesis con el tipo
de imagen y el frame

Posteriormente se manda la actualización y los datos serán iguales a la variable


imgbytes y el numero va a ser igual a numero mas uno que anteriormente es para
guadar la imagen y mandamos a imprimir en la consola de registro el evento la
recepción el año, la orden de trabajo y el identificador de los equipos con su año y
cerramo el programa con un main.

77
Ilustración 81. Registros en la GUI

Como ultimo se procede a ejecutar el código junto al teléfono conectado para


visualizar como es que el programa funciona de manera eficaz y ayudando a tener
una mayor velocidad en la toma de evidencias.

Ilustración 82. Ejecucion de la programacion final.

Ahora para conectar la camara del teléfono a lo que es la programación se tuvo que
recurrir a una aplicación que detecta la camara de teléfono como una webcam de la
computadora y para ello se busca en la Play store una aplicación que se llama
DroidCam y se descarga posteriormente en la computadora se busca en Google
igual el mismo software de DroidCam y se instala de allí solo se conecta mediante
USB la computadora y el teléfono y se oprime en el software de la computadora la
opción mediante USB y se acepta las opciones que aparecen en la pantalla del
teléfono y asi podemos utiliza la cámara del teléfono como Webcam.

78
Ilustración 83. Conexion de la cámara del teléfono en el software DroidCam

79
CAPÍTULO III. RESULTADOS Y DISCUSIÓN

RESULTADOS

En resumen, mediante una ardua búsqueda en internet y buscando un software que


sea amigable en la interacción humana es decir que se facilite el entorno de
programación y se pueda hacer lo que se tenía planteado.

Una vez se encontró el entorno de programación lo siguiente es encontrar que


librería de ese software de programación puede hacer que se detecte una camara de
teléfono en este caso se encontró que OpenCV es una librería capaz de visualizar de
manera digital el entorno.

Por otra parte el hacer un soporte propio se da la libertad de hacerlo a un gusto


propio y sobre todos las medidas que el usuario desee y cumpliendo con las
expectativas de la persona, una de las relevancias que se pueden resaltar que en el
soporte es universal y se puede colocar cualquier tipo de teléfono y de cualquier
tamaño.

Además, podemos obtener una reducción muy considerable de tiempo si se sabe


conectar bien la cámara mediante pasos anteriores, vemos que se redujo un tiempo
de 3 minuto y 20 segundos al conectar la camara y guardar la foto que en lugar de
primero tomar la foto, conectar el teléfono, buscar la imagen, hacer la carpeta y pasar
las fotografías.

DISCUSIÓN

El objetivo de este proyecto es de poder hacer una toma de evidencia de los equipos
que entren a calibración mediante un teléfono móvil y este tenga un soporte
articulado para poder tener el teléfono fijo y siempre conectado a la computadora,
pero al no haber el presupuesto suficiente para poder realizar la impresión 3D de el
soporte articulado solo se hicieron las pruebas con la mano y viendo que la
programación de una imagen y cumpla con los estándares señalados sin tener
problemas o complicaciones al momento de estar en ejecución la programación, lo

80
único que falla es poder tener el soporte adecuado para poder hacer la toma
fotográfica pero solo con las manos se puede tomar de manera efectiva.

Otra de las cosas comparadas la efectividad que se tuvo al implementar que con solo
un click en la pantalla de la computadora pueda guardar las fotos, no sin antes haber
seleccionado la carpeta y el lugar donde se requiere el guardado de las fotos, aun así
corriendo el riesgo de que los botones no cumplieran la acción que se le colocó, no
obstante lo que se pedía en la programación es poder hacer una toma de evidencias
y guardado de las fotografías, al principio no sabia como hacer ya que no tenía
ningún conocimiento sobre Python asi que sufri una batalla para poder llegar a lo que
quería, pero consultando con mi asesor empresarial, la cual el si tenia amplio
conocimiento en Python fue que me dio asesorías de como podría hacerlo y fue que
pude ir haciendo la programación de manera consisa y correcta, adicional a lo que el
asesor empresarial me decía, por mi cuenta estuve consultando en internet como
hacer la programación correcta.

Otra parte que también se cumplio como objetivo, es la construcción del modelado
básico de 3D, justamente que el software utilizado se llevo en una materia impartida
durante los últimos cuatrimestres de la carrera, pero esto solo fue superficial, así que
hubieron cosas que estuve viendo videos y mas que nada diseños que se asimilaran
a lo que yo quería obtener como modelado, es asi como fue que vi una figura sencilla
pero se veía de una manera menos complicada de lo que yo mismo pensaba, asi que
decidí hacerla partiendo de un boceto que yo mismo elaboré, cabe resaltar que solo
fue de apoyo a la idea que tenia en mente, entonces uno de los primeros retos era
hacer la curva que tiene la base de apoyo, como se hacia y que tan gruesa debería
estar, asi que ese problema se tuvo desde un principio y las cejas o separaciones de
las uniones de las demás piezas es una de las cosas que igual se tuvo problemas
porque no sabia como hacer ese tipo de extrusiones, hasta que consulte en internet
pude descifrar como hacerlo.

Por otro lado también hice una comparación de precios si que salia mejor, comprar
ese soporte ya echo o hacerlo desde cero y mandarlo a imprimir, claramente el
mandarlo a comprar ya elaborado y echo te resulta mejor si es para un uso propio y

81
de un solo laboratorio en este caso se implementa en todos los laboratorios sale
mejor imprimirlos ya que donde se mande a imprimir se puede conseguir algún
descuento dependiendo cuantos son los que se requieran, la desventaja es que si
alguna de las piezas no esta bien unidas ya que la impresora no hubiese estado su
extrusión con los parámetros de temperatura correctos puede sufrir alguna
separación y eso mismo sufrir una rotura de la pieza impresa, ello mismo causa una
desventaja poco considerable pero en cuestiones de presupuesto resulta mejor
imprimirlos.

Otra comparación que se tuvo es la de que tan viable económicamente es el


proyecto, ya que viéndolo de un ámbito económico resulta factible para la empresa el
considerar llevar a cabo físicamente el proyecto, ya que solo es de mandar a imprimir
el modelado que viene siendo entre unos 200 a 300 pesos y comprar un cable de
datos que permita tener la computadora conectada a distancia que esa cuesta 170
pesos aproximadamente este dando un gasto total de 470 pesos aproximadamente
solo por un laboratorio.

En otro caso factible y económico para la empresa es que no se conecte mediante


un cable USB, si no que se pueda buscar la manera en que el mismo software de
DroidCam tenga la opción de hacerlo mediante WiFi y conectarlo al router y a la
misma sintonia y ver que beneficios tiene el conectarlo por USB y conectarlo
mediante WiFi y sería cuestión de analizarlo cual conviene más y si es la misma
calidad de imagen en Wi-Fi que en USB y eso también viendo si no afecta en la
programación.

Una última comparación es que si resulta comprar esta misma programación en línea
que hacerla uno mismo, y consultando en tiendas en línea sale mas factible hacerlo
uno mismo y solo hacer el gasto de los soportes y el cable que comprarlo en una
tienda en línea, ya que si uno lo compra, no puede modificar la programación a gusto
del usuario ya viene predeterminado a comparación de que uno mismo la haga y
pueda tener las modificaciones que el usuario requiera.

82
CONCLUSIONES

Por último, se concluye de primera instancia el aprendizaje que se obtuvo y es que


programar y hacer que una cámara de teléfono móvil cumpla un estándar como
Webcam y que a su vez mediante una programación y librerías se pueda visualizar y
hacer que esa webcam se vea adicional poder tomar fotografías al instante y todas
se guarden al instante fue un reto para uno mismo, además de ello que puede existir
más mejoras en el proyecto a manera que se haga más autónomo hasta el caso de
volver la conectividad inalámbrica.

Un aprendizaje adicional es el poder hacer un modelado 3D sin tener el extenso


conocimiento del software y poder hacer el modelo a gusto propio y con las medidas
que se cree que sea resistente ante medidas de fuerza de tensión o al menos para
aguantar el teléfono.

Otro de los aprendizajes fueron el poder descubrir otro entorno de programación


adicional a lo que se vio durante la carrera, este software llamado Python tiene
infinidades de funciones y sirve para infinidades de cosas, asi como también su
entorno de programación es entendible y fácil de manejar si consultas en internet, y
más que nada es el corazón del proyecto elaborado, es decir que sin la
programación el proyecto no se hubiera podido llevar a cabo,

Gracias a ello, se logró el objetivo de diseñar un sistema semiautomatizado para la


toma de fotografías y así mismo mediante reducción de costos y ver que tan
económico es el proyecto, adicional a ello se pueda acortar los tiempos de retraso al
pasar las fotos del dispositivo móvil a la computadora de manera manual y asi tener
una facilidad en el traslado de fotos cuando un equipo entra a calibración y cuando
uno sale.

Para finalizar, próximas mejoras para el proyecto serían implementar una


conectividad inalámbrica que permita ser solamente la cámara del teléfono móvil con
la computadora a través de Wi-Fi existen actualmente varias maneras incluso el
software que se utilizó para volver la cámara del teléfono en webcam tiene la

83
facilidad de conectarse por WiFi pero falta hacer pruebas si este no influye en la
programación y no influye en la velocidad de procesamiento de la imagen y calidad
de esta, esto también ayuda mucho en la parte económica hablando de reducción de
costos y por último la optimización a tener muchos cables de conexión.

84
FUENTES DE INFORMACIÓN

Bibliografía

[1] Á. Hernando, «Escuela de revisores,» 21 julio 2020. [En línea]. Available:


https://www.escueladerevisores.com/2020/07/29/resultados-discusion-y-
conclusiones-juntos-pero-no-revueltos/.

[2] D. LARDIZÁBAL LÓPEZ, J. L. G. Gallegos Bañuelos , B. E. Flores Domínguez y J.


J. López Herrera, «Sistema de visión embebido para detección de movimiento de
forma remota utilizando el internet de las cosas,» Revista de Tecnologías
Computacionales , vol. 2, nº 7, p. 18, 2018.

[3] L. Chuquimarca Jiménez, S. Pinzón Tituana y A. Rosales Pincay, «Detección de


Mascarilla para COVID-19 a través de Aprendizaje Profundo usando OpenCV y
Cascade Trainer GUI,» Revista Científica y Tecnológica UPSE, vol. 8, nº 1, pp. 68-
73, 2021.

[4] b. B. C. E. h. j. J. H. K. D. M. N. K. m. s. S. S. w. Y. z. k. Arijit, «riptutorial,» 08


Septiembre 2017. [En línea]. Available: https://riptutorial.com/Download/opencv-
es.pdf. [Último acceso: 13 Marzo 2023].

[5] N7, «Aws,» [En línea].

[6] amazon, «Aws,» [En línea]. Available: https://aws.amazon.com/es/what-is/python/.

[7] Tokio School, «Tokio,» 22 Octubre 2020. [En línea]. Available:


https://www.tokioschool.com/noticias/historia-python/.

[8] L. d. V. Hernández, «programarfacil.com,» N/A. [En línea]. Available:


https://programarfacil.com/podcast/81-vision-artificial-opencv-phyton/. [Último
acceso: 23 Marzo 2023].

[9] H. Rodríguez, «Crehana,» 27 Abril 2021. [En línea]. Available:


https://www.crehana.com/blog/transformacion-digital/que-es-opencv/. [Último
acceso: 23 Marzo 2023].

85
[10] Figueroa, D. y Roa, E. (2016). Sistema de visión artificial para la identificación del
estado de madurez de frutas (granadilla). Revista Redes de Ingeniería. 7(1), 84-92. Doi:
10.14483/udistrital.jour.redes.2016.1.a08

86
ANEXOS

Tabla 1. Datos del uso de sistemas operativos.

Tabla 2. uso de sistemas operativos.

87

También podría gustarte