Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIRECCIÓN DE MECATRÓNICA
MEMORIA DE ESTADÍA PROFESIONAL
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
GENERACIÓN:
2020-2022
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
ASESOR ACADÉMICO:
DR. ALEJANDRO DEL RÍO OSORIO
ASESOR EMPRESARIAL:
ING. DANIEL DEL JESÚS BENÍTEZ ANCONA
III
ÍNDICE
DATOS GENERALES DEL ALUMNO ....................................................................... III
Resumen.................................................................................................................. X
Abstract .................................................................................................................... X
INTRODUCCIÓN ........................................................................................................ 1
Preguntas específicas........................................................................................... 8
Justificación .......................................................................................................... 9
Viabilidad ........................................................................................................... 10
IV
2.1.1.¿Qué es y para qué sirve Python?............................................................. 18
RESULTADOS ...................................................................................................... 80
DISCUSIÓN ........................................................................................................... 80
CONCLUSIONES .................................................................................................... 83
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
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.
XI
INTRODUCCIÓN
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.
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.
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
Encargado de
laboratorio
Ilustración 1. Organigrama
3
Misión
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
……………
5
PLANTEAMIENTO DEL PROBLEMA
DESCRIPCIÓN DEL PROBLEMA O NECESIDAD.
6
para su instalado y mantenimiento deben ser operados y instalados por personal
apto para este trabajo y que tenga conocimientos en programación.
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.
Pregunta principal
Preguntas específicas
Se deben desarrollar al menos tres preguntas las cuales deben corresponder a los
objetivos secundarios (colocarles viñetas numeradas).
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.
1. Mayor productividad
2. Mayor confiabilidad
3. Control simplificado
Objetivo general.
9
Objetivos específicos.
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.
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.
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.
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
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.
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 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.
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.
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:
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.
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.
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.
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.
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.
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: "))
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”.
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.
• Descargar contenido
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.
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:
21
2.1.2.6. Automatización de pruebas de software
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.
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.
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.
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.
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.
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:
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.
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.
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.
¿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.
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.
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.
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.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
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
2.1.4.5. OpenCV-Python
2.1.4.6. Keras
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.
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
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:
2.1.6.5 PyTorch
30
2.1.7. ¿Qué son los IDE de Python?
2.1.8.1. PyCharm
31
2.1.8.2. IDLE
2.1.8.2. Spyder
• Depurador básico
32
2.1.8.3. Atom
33
2.1.11. Lógica de programación de Python
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”).
34
Ilustración 3. División, Division entera, modulo, incremento, decremento
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:
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:
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:
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.
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:
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
• 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
40
2.1.12. Ejemplo de primer programa
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.
Python 3.x:
41
2.2. DISEÑO DE EN SOLIDWORKS DE UN SOPORTE DE CÁMARA CELULAR.
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
53
Ilustración 37.solido de la pieza 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.
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.
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.
56
Ilustración 43. hoyo del otro extremo de a pieza cuatro.
57
Ilustración 45. base sólida de soporte del teléfono
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.
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
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.
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ó.
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.
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
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.
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.
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.
67
Ilustración 64. primeras dos piezas de ensamble.
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.
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.
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.
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.
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.
72
Ilustración 74. Declaración de la cámara conectada.
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.
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.
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.
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.
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.
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 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
77
Ilustración 81. Registros en la GUI
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
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.
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
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
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
87