0% encontró este documento útil (0 votos)
46 vistas61 páginas

Tecnológico Nacional de México: Reporte Final de Residencia Profesional

Cargado por

Marce Loga
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
46 vistas61 páginas

Tecnológico Nacional de México: Reporte Final de Residencia Profesional

Cargado por

Marce Loga
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tecnológico Nacional de México

Campus Querétaro

Reporte Final de Residencia Profesional

Simulador Mecánico de Oscilaciones acoplado a un Prototipo


de Generador Eléctrico Lineal de Metal Líquido

Que presenta:

López García Marcela

Estudiante de la carrera:

Ingeniería en Mecatrónica

Asesor:
Cervantes Gloria Omar Alejandro

Asesor Externo:
Ávalos Zúñiga Raúl Alejandro

Periodo:

Agosto-Diciembre 2022
Indice General

Introducción …………………………………………………………………………………… 1

Capítulo 1 Generalidades de la empresa


1.1 Datos generales……...…………………………………………………………………… 2
1.2 Breve reseña histórica……..…………….………………………………………………. 2
1.3 Organigrama………………………………………………………………………………. 4
1.4 Misión Visión y Política
1.4.1 Misión……………………..……………………………………………………… 5
1.4.2 Visión…………...………………………………………………………………… 5
1.4.3 Objetivo…..………………………………………………………………………. 5
1.5 Principales productos y clientes…………..……………………………………………... 5
1.6 Premios y Certificaciones………………………..……………………………………….. 6
1.7 Caracterización del área en la que se participó
1.7.1 Descripción del área……………..……………………………………………… 7
1.7.2 Actividades del área……………..………………………………………………. 7
1.7.3 Funciones y ubicación del residente…..………………………………………. 7

Capítulo 2 Planteamiento del problema


2.1 Antecedentes y definición del problema para
la realización del proyecto de residencia……………………………………………………. 8
2.2 Objetivos
2.2.1 Objetivo General…………………………….…….…………………………….. 9
2.2.2 Objetivos Específicos…………..…………………..…………………………… 9
2.3 Justificación…………………….…………………………………………………………... 9
2.4 Alcance……………...……………………………………………………………..………. 10

Capítulo 3 Marco teórico


3.1 MicroFlex e100 ABB………………….…………………………………………………… 11
3.2 Servomotor Baldor sin escobillas
de la serie N de BSM……………………………………………….…………………………. 12
3.2.1 Características generales………………………….……………….………….. 12
3.2.2 Aplicaciones comunes……………………………………………….…………. 13
3.3 Mint Workbench…………………………………………..……………………………….. 13
3.4 PLX – DAQ………………..……………………………………………………………….. 15
3.5 Arduino………...……………………………………………………………………………. 15
3.5.1 Características………..………………………………………………………….. 16
3.6 Lenguaje MINT…..……………………..………………………………………………….. 17
3.7 Sensor Sharp……………..………………………………………………………………... 17
3.8 Sensor o switch magnético.………….………….………………………………………... 19

i
Capítulo 4 Desarrollo del Proyecto
4.1 Metodología…………………………………………..…………………………………… 20
4.2 Descripción del emulador………………………………………..………………………. 21
4.2.1 Características mecánicas y
expresiones matemáticas auxiliares…………………………………..……………. 23
4.2.2 Funciones posibles de emular……………………………………..…………. 23
4.3 Sensor de Posición……………………………………………………………..……….. 24
4.3.1 Principio de funcionamiento general…….….……..………………………… 24
4.3.2 Calibración……………………………………..……….………………………. 25
4.3.3 Reajuste del sensor Sharp……………...…………………………………..… 29
4.4 Circuito y cableado……………………………………..………………………………… 30
4.5 Interfaz de visualización para la posición del oscilador………………..…………….. 34
4.6 Programación de las funciones a emular.…………………………….……………….. 36
4.7 Prueba piloto. Comprobación del funcionamiento del sistema.…………….……….. 39
4.8 Pruebas finales………………...…………………………………………………………. 41
4.9 Emulación por tabla de datos…………………………………..……………………….. 44

Capítulo 5 Resultados…………………………………..…………………………………… 45
5.1 Otras actividades…………………………………..……………………………………... 47

Capítulo 6 Competencias desarrolladas yo aplicadas


6.1 Competencias específicas……………………………………………………………….. 48
6.2 Competencias genéricas……………………………..………………………………….. 48

Conclusiones y recomendaciones…………………………………………………………… 49

Referencias bibliográficas y virtuales………………………………………………………... 49

Anexos…………………………………………………………………………………………... 50

Indice de Figuras

Figura 1 Organigrama del CICATA…………………...………………………………………. 4


Figura 2 Servo Drive MicroFlex e100…………..……………………………………………. 11
Figura 3 Servomotor Baldor sin escobillas…………………………………..……………… 12
Figura 4 Pantalla principal de Mint Workbench………………………………………..…… 14
Figura 5 Archivo de ayuda de Mint Workbench……..……………………………………… 14
Figura 6 Pantalla de PLX – DAQ…………………………..………………………………… 15
Figura 7 Arduino UNO……………………………………. ………………………………….. 16
Figura 8 Método de triangulación……………………………………………………………..17
Figura 9 Gráfica de salida del sensor Sharp……………………………………………….. 18
Figura 10 Conexión entre Arduino y el sensor Sharp……………………………………... 19
Figura 11 Switch magnético………………………………………………………………….. 19
Figura 12 Sistema mecánico inicial………………………………………………………….. 21

ii
Figura 13 Sensores magnéticos instalados……………………………………….….…….. 22
Figura 14 Dimensiones del sistema……………………………………………………….. .. 22
Figura 15 Sensor Sharp………………………………………………………….……………. 24
Figura 16 Posición inicial del sensor Sharp…………………………………………………. 25
Figura 17 Base y sistema montados en placa metálica…………………..……………….. 26
Figura 18 Superficie con material reflectante………………….……………………………. 26
Figura 19 Calibrador armado en un 70%……………………………………………………. 27
Figura 20 Sistema calibrador completo………….…..…….………………………………... 27
Figura 21 Cálculos para disminución del error……………………………………………… 28
Figura 22 Gráfica de calibración con hoja de papel blanco……………………………….. 29
Figura 23 Sensor Sharp montado en el sistema.…………………………………………… 29
Figura 24 Sistema mecánico completo.……………………………………………………… 30
Figura 25 Conexiones al driver……………………………………………………………….. 31
Figura 26 Conexiones a protoboard……………………………………………….…………. 32
Figura 27 Salidas digitales del driver…………………………………………………………. 33
Figura 28 Conexiones del driver a la fuente…………………….…………………………... 33
Figura 29 Conexiones completas……………………………………………………….……. 34
Figura 30 Mensaje advertencia…………………………………………………….………… 35
Figura 31 Configuración de PLX – DAQ…………………………………………………….. 35
Figura 32 Pantalla de Mint Workbench……………………………………………………… 36
Figura 33 Pantalla de PLX - DAQ sin registro de datos.…………………………………... 40
Figura 34 Declaración del pin 2 como entrada……………………………………………… 40
Figura 35 Ecuación de calibración inicial……………………………………………………. 41
Figura 36 Verificación de los sensores magnéticos………………………………………... 41
Figura 37 LEDs indicadores del driver……………………………………………………….. 42
Figura 38 Ejecución de la función seno…………………………………….………………... 43
Figura 39 Tabla de datos generada en Matlab…………..…………………………………. 44
Figura 40 Gráfica generada por Matlab
de P(x) = 5sen(2πt)cos(2π2t)………………………….……………...………….…………… 44
Figura 41 Datos y gráfica de P(X) = 10sen(2π0.5t)………………………………………… 45
Figura 42 Datos y gráfica de P(x) = 15cos(2πt)………………...……………..……………. 46
Figura 43 Datos y gráfica de P(x) = 5sen(2πt)cos(2π2t)………………………….………. 46
Figura 44 Experimento del disco de cobre……………………..……..……………………... 47
Figura 45 Prototipo de tanque de agua electromagnético………………………….……... 48

iii
Indice de Tablas

Tabla 1 Sensores Sharp más utilizados………………………………………………………. 18


Esquema 1 Metodología……………………………………………………………..…………. 20
Tabla 2 Datos de calibración del sensor………………………………………………………. 28
Esquema 2 Circuito de conexión de los sensores magnéticos…………………………….. 30
Tabla 3 Directivas para PLX – DAQ…………………………………………………………… 34

iv
Introducción

El proyecto de Residencia Profesional se llevó a cabo en el Centro de Investigación en


Ciencia Aplicada y Tecnología Avanzada, ubicado en Cerro Blanco 141, Colinas del
Cimatario, Querétaro, Querétaro, su giro se centra en la investigación, su principal propósito
es enlazar a la comunidad científica con los sectores productivos de la región y del país.
El tiempo comprendido en la Residencia fue el periodo Agosto – Diciembre 2022.
El tema central la implementación de un simulador de oscilaciones y el acoplamiento del
mismo a un prototipo de generador eléctrico de metal líquido.

El primer capítulo presentado en este informe abarca los datos generales del Centro
de Investigación en Ciencia Avanzada y Tecnología Aplicada, como su reseña histórica,
organigrama, entre otra información.
El capítulo dos describe claramente el problema que existe en la organización motivo por el
cual se realiza el proyecto, se incluyen antecedentes, objetivos y demás datos relacionados
con la problemática.
El capítulo tres se basa el la información teórica del proyecto como conceptos básicos,
antecedentes históricos, descripciones generales, etcétera.
En el capítulo cuatro se centra en la metodología y procedimientos usados para la realización
del proyecto así como una breve descripción de otras actividades realizada.
En el capítulo cinco se reflejan todos los resultados del proyecto, incluyendo pruebas con un
antes y un después.
El último capítulo describe lo que se consiguió con la realización de dicho proyecto, así como
las competencias alcanzadas y aquellas que se aplicaron para lograr los objetivos.
Este documento explica a detalle ciertas actividades que fueron requeridas para el proyecto y
da un enfoque diferente a la manera en que fue realizado anteriormente, se contó con un
manual con todos los pasos necesarios para la puesta en marcha del oscilador, sin embargo
fueron implementadas otras cosas muy útiles para un mejor funcionamiento. Siendo de ese
modo puede resultar de mucha ayuda para alumnos y futuros residentes que tengan la
oportunidad de realizar un proyecto con características similares a las presentadas en este
informe. El proyecto se limita a trabajar con el sistema usado por un residente anterior pero
fueron aplicadas otras metodologías para retomarlo además se hizo un sistema extra para
facilitar el uso de ciertos componentes.

1
Capítulo 1 Generalidades de la empresa

1.1 Datos generales

El nombre oficial es Centro de Investigación en Ciencia Aplicada y Tecnología


Avanzada, ligado al Instituto Politécnico Nacional.
El CICATA está ubicado en la calle Cerro Blanco #141, colonia Colinas del Cimatario,
Querétaro, Querétaro.
El teléfono de contacto es 01 (442) 2290804 o 01 (55) 5729 6000 Ext, 81002,
El giro de la organización es la investigación y es una mediana empresa.

1.2 Breve reseña histórica

El Programa de Investigación Científica y Tecnológica del Programa de Desarrollo


Institucional del IPN existente en el año 2000 consideró dar respuesta a los proyectos
estratégicos que contribuyan al desarrollo científico y tecnológico nacional, y al mejoramiento
de la sociedad a través de la investigación científica básica y aplicada. Conjuntamente la
Comisión Interna de Administración adoptó el 15 de diciembre 1995, el acuerdo 4/95-5 de la
Secretaría de Educación Pública, por medio del cual, se autorizó al Instituto adquirir los
activos del Instituto Mexicano de Investigaciones Tecnológicas (IMIT), A. C. en liquidación,
esto con el propósito de incorporar dichos bienes al patrimonio institucional para destinarlos
al reforzamiento de las acciones de investigación en materia de ciencia aplicada y tecnología
avanzada.
Por lo anterior el Director General del Instituto en esa época el Ing. Diódoro Guerra
Rodríguez con la aprobación del Consejo General Consultivo, el 30 de agosto de 1996,
expidió el acuerdo de creación con fecha 2 de septiembre de 1996 del Centro de
Investigación en Ciencia Aplicada y Tecnología Avanzada (CICATA-IPN, Querétaro) del
Instituto Politécnico Nacional, cuyo propósito fundamental quedó definido desde su nombre
mismo.
En 1997 CICATA-IPN Unidad Querétaro, inicia operaciones en las instalaciones ubicadas en
José Siurob No. 10, Colonia Alameda, Querétaro, dependiente del CICATA Legaría y bajo la
dirección inicial del Dr. Feliciano Sánchez Sinencio, seguida por el Dr. Juan Manuel Figueroa
Estrada y posteriormente el Dr. José de la Luz Martínez Montes.

A partir de julio del 2000, la Secretaría de Hacienda y Crédito Público y la Secretaría


de Contraloría y Desarrollo Administrativo autorizan la estructura del CICATA-IPN, Querétaro
y el 5 de abril del 2001, independiente de la Dirección de CICATA Legaría, es nombrado
director interino de la Unidad CICATA-IPN, Querétaro, el Dr. Adrián Luis García García;
anterior a este nombramiento los asuntos académicos y de investigación se atendían por
acuerdo directo entre el Director de la Unidad Legaría y el o los investigadores respectivos,
apegándose a lo aprobado en Colegio de Profesores en los casos requeridos.

2
El 6 de febrero del 2003 se llevó a cabo en esta Unidad el primer examen de grado de
maestría, correspondiente a una alumna que dedicó tiempo completo a sus estudios y el 27
de junio del mismo año, se graduó el primer alumno que dedicó tiempo parcial a sus
estudios.
A partir de diciembre de 2004, los Programas de Posgrado en Tecnología Avanzada fueron
admitidos en el Programa Integral de Fortalecimiento al Posgrado (PIFOP) 2.0 del
CONACYT. Antes de estar en el PIFOP, la característica principal del funcionamiento del
posgrado en el CICATA-IPN, Querétaro fue, que se atendían alumnos en su mayoría de
medio tiempo, combinando así sus actividades laborales con las escolares. Lo que permitió
que sus tesis y trabajos de asignaturas realizadas en el Centro fueran de aplicación directa a
su actividad profesional; los alumnos de tiempo completo en este periodo contaron con becas
institucionales del IPN para estudios de posgrado, además de los apoyos económicos del
Programa Institucional de Formación de Investigadores (PIFI).
Fue hasta el 30 de junio de 2005 cuando se estableció, de manera oficial, el CICATA-IPN,
Querétaro. En los considerandos del acuerdo respectivo se menciona que el desarrollo
científico y tecnológico del país requiere de centros de investigación que tengan la capacidad
de crear tecnología propia; vincularse con los sectores productivos de bienes y servicios,
público, social y privado y realizar la transferencia de la tecnología desarrollada; señala,
además, que la infraestructura ofrecida por el estado de Querétaro permite el desarrollo de la
investigación en el ámbito de la ciencia y la tecnología, lo cual posibilita cumplir con los
objetivos planteados por el CICATA. Por esto, se decidió establecer el CICATA-IPN,
Querétaro, como una entidad regional teniendo por objeto impartir docencia y desarrollar
investigaciones científicas y de tecnología avanzada que contribuyan en el crecimiento
económico y social del país.

3
1.3 Organigrama

Figura 1 Organigrama del CICATA

4
1.4 Misión Visión y Política

1.4.1 Misión

El CICATA-IPN, Querétaro, atiende las necesidades de formación de personas


competentes a nivel posgrado y de desarrollo tecnológico e innovación, a través de proyectos
de investigación que contribuyen al desarrollo social, con un enfoque multidisciplinario.

1.4.2 Visión

Centro de Investigación de vanguardia con reconocimiento nacional e internacional por


la contribución de su comunidad a la sociedad, a través de la formación de personas
competentes, investigaciones y desarrollos tecnológicos innovadores.

1.4.3 Objetivo

Servir de enlace entre la comunidad científica y los sectores productivos de bienes y


servicios, atenderlos y ofrecerles soluciones a sus problemas de desarrollo. Para el
cumplimiento de este objetivo, CICATA-IPN, Querétaro desarrolla programas de investigación
científica, tecnológica e innovación con un enfoque interdisciplinario, y asimismo atiende la
formación de capital humano de alto nivel, contribuyendo decisivamente al fortalecimiento de
la calidad y la competitividad del aparato productivo mexicano.

1.5 Principales productos y clientes

EL CICATA unidad Querétaro, ofrece la posibilidad de estudiar un posgrado con grado


de excelencia del CONACYT (PNPC) a estudiantes egresados de nivel licenciatura con un
alto nivel, ofrece también la posibilidad de prestar su servicio social y realizar su residencia
profesional a estudiantes de licenciatura.
Posee un catálogo de servicios a la industria:

• Perfil de sabor y aroma: Determinación de un perfil general de los compuestos


volátiles y semivolátiles.

• Desarrollo y Validación de técnicas de análisis y cuantificación acopladas a


cromatografía de gases: Desarrollo de técnicas no convencionales o no existentes
para la medición de sustancias susceptibles de ser analizadas por Cromatografía de
Gases.

• Determinación de características geométricas de productos a través del análisis de


imágenes: Es una tecnología para la detección de fracturas en productos alimenticios
o productos de la industria metalmecánica.

5
• Captura y video de eventos de alta velocidad: La captura de videos o imágenes a alta
velocidad de adquisición ofrece la posibilidad de poder observar eventos que suceden
muy rápido. Esto resulta eficaz para la detección de problemas o el análisis de
procesos. Esta información puede ser utilizada para la toma de decisión o
simplemente para la observación de fenómenos. La captura es mediante una cámara
digital de alta velocidad Memrecam GX-1.

• Digitalización y escaneo 3D de cuerpos geométricos: Ofrece la posibilidad de pasar


diseños tridimensionales al medio digital, esto sirve para tener la representación (a
escalas reales) de tu modelo en 3D lista para ser trabajada en cualquier software de
diseño, y con el cual los objetos se pueden reproducir, escalar o duplicar en otros
materiales.

• Determinación de tamaño de partícula: El cliente proporcionará al CICATA Querétaro


una muestra de 20 g de material para el caso de su análisis en la Vía Húmeda y de
500 g en el análisis, se tiene que hacer en Vía Seca, el CICATA Querétaro no asume
ninguna responsabilidad por el proceso de muestreo que el cliente haya llevado a
cabo, el cliente tiene que proporcionar para el caso de Vía Húmeda características del
muestreo al respecto a los solventes a emplear en Vía Húmeda, por ejemplo; agua,
metanol, etanol, acetona, glicerina, etc.

1.6 Premios y Certificaciones

1998
2º. Lugar en el VII Concurso universitario Feria de las ciencias asesorando el trabajo
“Osciloscopio de Gas. Certamen patrocinado por la UNAM. C.U. D.F. 3 Abril 1998.

2000
3er lugar en el simposio “ La Investigación y el Desarrollo Tecnológico en Querétaro 2000”
con el trabajo titulado ”Mejoramiento de adobes a través de agentes tenso activos y
emulsiones” Mc. Jorge Pineda Piñón, Ing. Vicente Sánchez Maqueda, Dr. Alejandro manzano
Ramírez, Dr. Juan francisco Pérez Robles, Ing. Eduardo Morales Sánchez” . Querétaro, Qro.,
14 de noviembre de 2000.

2003
2do. Lugar en el certamen “Premio Alejandrina a la investigación y a la creación artística”
versión 2003. trabajo titulado “Proceso de cristalización en memorias ópticas de cambio de
fase: Discos Compactos”. Octubre de 2003.

2006
2do. Lugar en el simposio “ La Investigación y el Desarrollo Tecnológico en Querétaro 2006”
dentro del área avance tecnológico de la industria, con el trabajo titulado “Aplicación de
metodología para seleccionar maices de alto valor agregado en base a su uso final”.

6
1.7 Caracterización del área en la que se participó

1.7.1 Descripción del área

El área en la que se participo fue laboratorio de aprovechamiento de energía, el cual


tiene por objetivo ayudar a dar respuesta a las diferentes escalas de necesidad energética de
la sociedad, es por ello que busca fuentes de energía alternativas a las de carbón, petróleo y
gas natural, tales como energía solar, eólica, oceánica, etc. que tienen como principal
característica que son renovables.

1.7.2 Actividades del área

Se llevan a cabo diversos proyectos que buscan la manera de aprovechar de forma


correcta distintos tipos de energía como la hidráulica, eléctrica, mecánica, magnética, entre
otras.
Algunos de los recursos son limitados así que se recurre a la elaboración de prototipos que
muestren de la mejor manera el comportamiento real del proyecto que se realice.

1.7.3 Funciones y ubicación del residente

La función principal del residente fue la realización de un oscilador mecánico de


oscilaciones como proyecto principal así como apoyar al asesor externo, Dr. Raúl Ávalos, con
algunas actividades realizadas dentro y fuera del laboratorio como la asistencia a la Feria de
Ciencias, diseños en Solidworks de ciertas piezas, por mencionar algunas.
La ubicación del residente estuvo en el laboratorio de aprovechamiento de energía, en el
área de energías alternativas.

7
Capítulo 2 Planteamiento del problema

2.1 Antecedentes y definición del problema para la realización del proyecto de


residencia

El uso de los recursos naturales para la generación de energía ha sido una tendencia
en los últimos años además la humanidad entera es consciente que el agua, el viento, el sol
y otros recursos son usados actualmente como generadores de la energía eléctrica, la cual
se ha convertido en el tipo de energía más demandado en el mundo. El motivo principal de
recurrir a las energías alternativas es el ahorrar y aprovechar los recursos naturales con el
debido cuidado para satisfacer ciertas necesidades.
Una de estas alternativas que ha llamado la atención en los últimos años es el uso de los
generadores de metal líquido, mejor conocidos como generadores magnetohidrodinámicos
(MHD), en conjunto con algún aparato que aproveche la energía de las olas del mar, por
mencionar un ejemplo; el MHD no es otra cosa que un sistema encargado de convertir el
movimiento oscilatorio de un fluido conductor en energía eléctrica al reaccionar con un
campo magnético; sus principales características son el diseño sencillo, la ausencia de
partes móviles y alta eficiencia.

Como este tipo de sistemas funcionan a base de movimientos oscilantes es posible


que puedan acoplarse, como se mencionó, a otro sistema que se encargue de producir este
tipo de movimientos. En el Centro de Investigación de Ciencia Aplicada y Tecnología
Avanzada, el laboratorio de aprovechamiento de energía se encarga de aplicar el concepto
de las energías renovables en una investigación enfocada en aprovechar el movimiento
oscilatorio y el uso de generadores magnetohidrodinámicos. La investigación de enfoca en
estudios teórico - experimentales de un generador MHD de metal liquido acoplable a un
convertidor de energía de olas, en sus más recientes prototipos de generadores han llegado
a obtener hasta 19 Amperes en la amplitud de corriente eléctrica y valores del orden 10 −3
volts en la amplitud de voltaje, los cuales corresponden a los calculados teóricamente según
sus resultados, actualmente continúan con la exploración de esta tecnología
Se ha realizado un prototipo de sistema de oscilaciones generadas por el oleaje de los mares
que son emuladas por un servomotor industrial y un sistema mecánico oscilante, este
sistema por el momento solo les permite emular la funciones armónicas simples, las cuales
tienen poca similitud con los movimientos oscilantes del oleaje pero los cálculos teóricos se
hicieron de manera más sencilla, lo cual sirvió para probar la vialidad de estos generadores.

Este proyecto tiene como fin innovar y desarrollar nuevos sistemas para la generación
eléctrica a partir de sistemas oscilantes. El proceso consiste en la integración del simulador
mecánico de oscilaciones para evaluar la factibilidad y acoplamiento de sus componentes.
En este caso se innova un concepto de generador eléctrico lineal de metal líquido que
funciona por el principio de inducción electromagnética. La particularidad del proyecto es la
caracterización eléctrica del generador lineal para aprovechar el desplazamiento mecánico
de los convertidores de energía.

8
2.2 Objetivos

2.2.1 Objetivo General

El objetivo de este proyecto es adecuar y probar el control e instrumentación de un


simulador de movimientos oscilantes para caracterizar el funcionamiento de generadores
eléctricos lineales de metal líquido. El simulador está compuesto por un servomotor tipo ABB
BALDOR, un programa de control en el lenguaje MINT WORKBENCH de ABB-BALDOR y un
sistema mecánico oscilante, el cual, se acoplado a un generador lineal de metal líquido.

2.2.2 Objetivos Específicos

• Llevar a cabo una prueba piloto del sistema ya implementado para comprobar su
funcionamiento.
• Diseñar e implementar un sistema de calibración para el sensor Sharp de
posicionamiento.
• Mejorar el sistema mecánico haciendo los ajustes y montajes de piezas necesario
para mejorar el funcionamiento del mismo.
• Realizar la programación correspondiente a la visualización de la posición del
oscilador.
• Probar el sistema una vez que haya sido completamente verificado.

2.3 Justificación

La generación de energía eléctrica por sistemas acoplados a fuentes como el oleaje,


ha tenido gran desarrollo últimamente. Los sistemas de generación eléctrica que utilizan
metal líquido representan una alternativa prometedora. Aun son considerados una tecnología
no madura y el CICATA ha abierto una línea de investigación sobre éstos sistemas,
obteniendo importantes resultados. Ahora buscan evaluar la funcionalidad de éstos
exponiéndolos a simuladores de movimientos oscilantes similares a los WEC´s. Esto
permitirá seguir explorando la tecnología de este tipo generadores.
También se busca modificar el sistema mecánico oscilante que trabaja actualmente para que
pueda emular funciones armónicas y no armónicas típicas de los prototipos WEC´s, de esta
manera este proyecto permitirá seguir explorando la tecnología de los generadores MHD de
metal líquido, observando la respuesta de estos a diferentes movimientos oscilantes, es
decir, caracterizar la energía obtenida por este, con lo que se podrá dar una
retroalimentación a la línea de 10 investigación de generadores MHD de metal liquido
obteniendo datos de gran relevancia para la vialidad de estos generadores, que como se
menciona son una propuesta atractiva para sustituir los medios actuales de generación
eléctrica en un futuro.

9
2.4 Alcance

El sistema actual que emula movimientos oscilantes para el generador MHD de metal
líquido tiene fallos de programación, tales como la programación par visualizar la posición del
oscilador; permite emular diferentes funciones armónicas y no armónicas como;
Asen(wt)
Acos(wt)
Asen(wt)*cos(wt)
Asen(w1t)+ABcos(w2t)
Acos(wt)*e-ct
Siendo A la amplitud y w el producto 2π por la frecuencia.

El sistema también tiene montada una superficie y un sensor infrarrojo de


posicionamiento, el cual detecta dicha superficie,en cada extremo del sistema e encuentra un
sensor magnético de fin de carrera que sirve para detectar un fallo en el funcionamiento. Se
cuenta también con la programación correspondiente a la calibración del sensor y la
visualización de la posición del oscilador tanto en Arduino como el Matlab.
Los tres sensores no están completamente fijos, los códigos de la programación tienen
algunos errores y el sensor de posicionamiento debe volver a calibrarse de una mejor
manera, además las conexiones no están perfectamente conectadas.

Todos los esfuerzos se pondrán en corregir todos esos detalles, se realizarán las
mejores necesarias para garantizar una mejor eficiencia en todo el sistema, el CICATA
cuenta con licencias de varios softwares de diseño mecánico e impresión 3D que pueden ser
útiles, por ejemplo, para la construcción de un sistema de calibración del sensor de posición
o innovar el sistema mecánico; algo importante que se busca es aprovechar todos los
recursos disponibles en el laboratorio y en las instalaciones del centro de investigación para
evitar gastos innecesarios. Al momento de realizar pruebas con el sistema completo, será
necesario hacer ciertos cambios en las instrucciones correspondientes al uso de dicho
sistema.

10
Capítulo 3 Marco teórico

3.1 MicroFlex e100 ABB

El MicroFlex e100 es controlador sin escobillas que proporciona un movimiento


preciso y potente, cuenta con ciertas características como las siguientes:
• Tensión de funcionamiento monofásico de 110 a 230 VAC o trifásico 230 VAC
• Sobrecarga del 200 % de 3, 6 y 9 amperios por 3 segundos
• 2,5, 5,25 y 7,5 amperes 300 % de sobrecarga por 3 segundos
• Servocontrol de alto rendimiento para motores sin escobillas rotativos y lineales
• Retroalimentación de codificador digital universal
• Ethernet Powerlink integrado y Modbus TCP

También incluye características destacadas en su hardware tales como:


• Accionamiento sin escobillas de corriente alterna de un solo eje
• Interfaz de retroalimentación universal con retroalimentación de encoder incremental,
SSI, EnDAT o SinCos.
• Control de posición, velocidad y corriente.
• Asistente de autoajuste con bucle de posición) e instalaciones de software de
osciloscopio proporcionadas por el software Mint WorkBench.
• Tres entradas digitales de uso general ópticamente aisladas.
• Dos entradas que proporcionan una captura de posición en tiempo real.
• Una entrada de habilitación de accionamiento aislada ópticamente.
• Una salida digital aislada ópticamente para propósito general.
• Puerto serial USB 1.1
• Protocolo de comunicación CAN para controladores MINT
MicroFlex e100 funcionará con una amplia gama de servomotores rotativos y lineales sin
escobillas así como motores de inducción usando control vectorial de lazo cerrado.

Figura 2 Servo Drive MicroFlex e100

11
3.2 Servomotor Baldor sin escobillas de la serie N de BSM

Figura 3 Servomotor Baldor sin escobillas

Los servomotores de corriente alterna sin escobillas BSM de la serie N de ABB


proporcionan aplicaciones para control de movimiento industrial con baja inercia para lograr
la mayor capacidad de aceleración, le permite posicionarse rápidamente y se utilizan en las
máquinas más rápidas del mundo y en aplicaciones potentes, exigentes y más avanzadas.
Proporcionan un rendimiento resistente y duradero con tecnología de imanes permanentes
de alta energía. Ofrecen una capacidad de par de parada continua que oscila entre 0,45 Nm
(3,9 lb/pulg.) y 40 Nm (354 lb/pulg.).
Han sido probados a lo largo de los años, son confiables y tienen un alto rendimiento en la
máquina más rápida del mundo, en aplicaciones como indexadores, maquinaria para formar,
llenar y sellar, tijeras voladoras, máquinas de línea de corte a medida, robótica, máquinas de
inserción, envasado y taponado, cortadoras láser, calificación, etiquetado y muchas otras
aplicaciones exigentes.

3.2.1 Características generales

• Diseño de rotor de imanes permanentes.


• Pares de aceleración de 16 lb/in (1,8 Nm) a 1400 lb/in (160 Nm)
• Alto par de salida a baja velocidad: continuo de 0,4 Nm (4 lb/in) a 40 Nm (354 lb/in)
• Rango de inercia 0,00006 - 0,034 lb/in2 (0,067 - 38 kg/cm²)
• Confiabilidad diseñada en el diseño de alta 155°C.
• Cable multicapa premium resistente a la humedad de 200 °C para mayor confiabilidad.
• Estator con aislamiento extra alto para protección contra picos de corriente y alto
voltaje.
• Protección superior de rodamientos con grasa Mobile Polyrex™ EM para brindar una
vida útil cuatro veces mayor.
• Construcción industrial robusta para una calidad inigualable.

12
3.2.2 Aplicaciones comunes

• Impresión 3D.
• Cortado a medida.
• Cizalla voladora.
• Etiquetado.
• Mecanizado.
• Manejo de materiales.
• Devanado.

3.3 Mint Workbench

MINT WorkBench es una interfaz gráfica de Windows muy completa para


programación MINT, lenguaje de programación propio de la marca ABB, que permite además
una fácil e intuitiva puesta en marcha de servoconvertidores NextMove, MicroFlex y MotiFlex.
Esta interfaz incluye lo siguiente:
• Editor de pantalla completa con resaltado de sintaxis.
• Interfaz de línea de comandos que permite interrogar al controlador incluso cuando
está ejecutando el programa.
• Ventana espía para monitorizar variables comunes de movimiento y E/S.
• Osciloscopio software con captura digital de 6 canales.
• Ventana de vigilancia para monitorizar variables y tareas.
• Función SupportMe con generación automática de correos electrónicos para agilizar el
soporte técnico.
• Actualizaciones web del firmware interno de MINT WorkBench para el usuario.
• Gestión sencilla de los archivos de firmware.
• Asistente de puesta en marcha para la configuración paso a paso de los parámetros
del convertidor, del motor y del control, dependen del programa a ejecutar.
• Asistente de red para la configuración paso a paso de redes Ethernet POWERLINK.

La ventana principal de Mint WorkBench contiene una serie de menús, el cuadro de


herramientas y otras barras. Se puede acceder a muchas funciones desde el menú o
haciendo clic en un botón. La mayoría de los botones incluyen una descripción llamada
“consejo de herramienta” que aparecerá al mantener el puntero del ratón encima algún botón
sin hacer clic.

13
Figura 4 Pantalla principal de Mint Workbench

Incluye también un archivo de ayuda completo con mucha información sobre todas las
palabras clave de Mint, cómo usar la plataforma y la información complementaria sobre
temas de control de movimientos.

Figura 5 Archivo de ayuda de Mint Workbench

14
3.4 PLX – DAQ

Es un complemento de software de la herramienta de adquisición de datos Parallax


para Microsoft Excel. puede adquierir hasta 26 canales de datos de cualquier
microcontrolador Parallax y coloca los números en columnas a medida que llegan. PLX-DAQ
proporciona un análisis fácil en hoja de cálculo de los datos recopilados en el campo, análisis
de laboratorio de sensores y monitoreo de equipos en tiempo real.
PLX-DAQ tiene las siguientes características:
• Trazar o graficar datos a medida que llegan en tiempo real usando Microsoft Excel.
• Registra hasta 26 columnas de datos.
• Marque los datos con tiempo real (hh: mm: ss) o segundos desde el reinicio.
• Leer/Escribir cualquier celda en una hoja de trabajo.
• Leer/Establecer cualquiera de las 4 casillas de verificación en el control de la interfaz.
• Código de ejemplo disponible para BS2, SX (SX/B) y Propeller.
• Tasas de baudios de hasta 128K.
• Admite Com1-15.

Figura 6 Pantalla de PLX – DAQ

3.5 Arduino

Arduino es una plataforma de desarrollo que se basa en una placa electrónica de


hardware libre con un microcontrolador reprogramable y fácil de manejar además de una
serie de pines hembra, los cuales permiten establecer conexiones entre el microcontrolador y
diferentes actuadores externos de una manera muy sencilla.
El microcontrolador de Arduino posee una interfaz de entrada, una conexión en la que es
posible conectar en la placa diferentes tipos de periféricos o puertos.

15
La información de esos periféricos se trasladará al microcontrolador, el cual se
encargará de procesar los datos que le lleguen a través de ellos.
El tipo de periférico que se utilizan para enviar datos al microcontrolador depende del
propósito que se desea cumplir. O la aplicación que se desee realizar También cuenta con
una interfaz de salida, encargada de llevar la información que se ha procesado en el Arduino
a otros periféricos que pueden ser pantallas o altavoces en los que reproducir los datos
procesados o también pueden ser otras placas o controladores.

Figura 7 Arduino UNO

3.5.1 Características

Cuenta con 14 entradas/salidas digitales, 6 se pueden utilizar como salidas de


Modulación por ancho de pulsos y otras 6 son entradas analógicas. Además, incluye un
resonador cerámico de 16 MHz, conector USB, de alimentación, cabecera ICSP y botón de
reseteado o reinicio. La placa incluye todo lo necesario para que el microcontrolador cumpla
con su objetivo, basta conectarla a un ordenador con un cable USB o a la corriente eléctrica
a través de un transformador.
Arduino UNO incluye lo siguiente:
• Microcontrolador: ATmega328.
• Voltaje: 5V.
• Voltaje entrada (recomendado): 7-12V.
• Voltaje entrada (limites): 6-20V.
• Digital I/O Pines: 14 (de los cuales 6 son salida PWM).
• Entradas Analógicas: 6.
• DC Current per I/O Pin: 40 mA.
• DC Current parar 3.3V Pin: 50 mA.
• Flash Memory: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados para el
arranque.
• SRAM: 2 KB (ATmega328).
• EEPROM: 1 KB (ATmega328).

16
3.6 Lenguaje MINT

Mint es una forma estructurada de Basic, diseñada para aplicaciones de control de


movimiento, paso a paso o servo. Fue diseñado para permitir a los usuarios comenzar a
trabajar rápidamente con programas simples de control de movimiento, además incluye una
amplia gama de comandos para aplicaciones complejas. Apoyando una estructura de tipo
básica, Mint tiene una serie de palabras clave específicas de trece movimientos integradas.
Estas palabras claves permiten el control de la posición del actuador, la velocidad, el par, la
interpolación y la sincronización de varios ejes. El control total del software sobre los
parámetros fundamentales de control del motor se proporciona a través del lenguaje. Las
aplicaciones pueden variar desde un simple control de posición de un eje hasta complejos
sistemas de varios ejes. El conjunto de comandos flexibles y precisos de Mint proporciona
una solución para la gran mayoría de aplicaciones industriales de control de movimiento.

3.7 Sensor Sharp

Es un sensor óptico capaz de medir la distancia entre él y un objeto, para esto, con la
ayuda de un emisor infrarrojo y un receptor, miden la distancia usando el método de
triangulación que consiste en medir uno de los ángulos que forma el triángulo emisor-objeto-
receptor, el receptor es un PSD (Position Sensitive Detector) que detecta el punto de
incidencia el cual depende del ángulo y a su vez de la distancia del objeto.
El termino SHARP (Agudo) proviene del hecho de que tiene un rango de visión muy reducido
porque la luz que emite es puntual, lo que permite usar el sensor para escanear o mapear
áreas pero teniendo en cuenta que los objetos pequeños son muy difíciles de detectar

Figura 8 Método de triangulación

Existen varios modelos y fabricantes de estos sensores, algunos de los más utilizados se
muestran en la tabla siguiente.

17
Tabla 1 Sensores Sharp más utilizados

La salida que arroja el sensor al registrar datos tiene una forma potencial, como se muestra
en la imagen.

Figura 9 Gráfica de salida del sensor Sharp

El sensor Sharp tiene muchas aplicaciones, puede ser utilizado y enlazado directamente con
Arduino usando librerías o simplemente con las entradas analógicas, dicha aplicación es la
que usó en este proyecto.

18
Figura 10 Conexión entre Arduino y el sensor Sharp

3.8 Sensor o switch magnético

Figura 11 Switch magnético

El sensor magnético funciona como un interruptor, de ahí que también se le llame


switch, el cual se ve activado por la presencia de un campo magnético, y se desactiva
cuando no hay presencia de campo magnético. Un sensor magnético se compone de dos
laminas ferromagnéticas compuestas de Ni y Fe, herméticamente selladas en una cápsula de
vidrio.
Las hojas se superponen internamente en la cápsula de vidrio dejando solo un pequeño
espacio entre ellas, y se ponen en contacto ante la presencia de un campo magnético
adecuado. El área de contacto de ambas hojas se recubre con metales duros (Rodio o
Rutenio) que elevan la vida útil de los contactos.

19
Capítulo 4 Desarrollo del Proyecto

4.1 Metodología

Para este proyecto el objetivo principal fue innovar o mejorar un emulador de


oscilaciones ya prefabricado, para ello la metodología que se siguió en el proceso inicial al
momento de armar el sistema debe sufrir ciertos cambios, respetando el esquema que se le
dio.
Cabe destacar, como se ha mencionado, que el sistema mecánico usado en este proyecto ya
está construido, tiene su instrumentación incluida y los códigos de programación
correspondientes, sin embargo hay varios errores en dichos códigos y el sistemas tiene
varios detalles que hay que mejorar, los cuales serán mencionados más adelante.
Por estas razones, la metodología seguida en esta ocasión que da de la siguiente manera:

Esquema 1 Metodología

20
Este proceso respeta la norma VDI 2206, la cual es una guía de metodología para
sistemas mecatrónicos, ésta establece ciertos pasos para el desarrollo de un proyecto y
están adecuados a las características propias del proyecto redactado en este informe,
también esta norma establece que debe existir una constante verificación en los pasos a
seguir para determinar si se deben hacer modificaciones en pasos anteriores, estas posibles
modificaciones se representan con una flecha indicando al paso al que hay que regresar.
El primer paso será identificar necesidades del sistema para seguir cumpliendo los requisitos
que se piden, después se hará una caracterización más detallada del sistema mecánico para
resaltar los errores y detalles que deben mejorarse, después se procederá a tomar acción
sobre cada uno de ellos, analizando uno por uno para, finalmente, hacer las pruebas finales
con todo el sistema ya mejorado tanto en hardware como en software.

4.2 Descripción del emulador

El emulador con el que se cuenta consiste de un sistema mecánico oscilante


compuesto por tres barras de aluminio ensambladas como se muestra en la imagen, la
cuarta barra hace función de camisa acoplada a un tornillo sin fin, cuando este tornillo gira, la
camisa se mueve hacia adelante o hacia atrás dependiendo el giro, esto debido a las guías
que sostienen a la camisa las cuales impiden que ésta gire y redireccionan el movimiento, el
tornillo sin fin está acoplado mediante un cople a un servomotor industrial Baldor conectado a
la vez a su servo drive MicroFlex e100 de la marca ABB, este último es alimentado por una
fuente de 24V también de la marca ABB. El servo drive de este motor se conecta por USB a
una computadora, donde por medio de su plataforma Mint Workbench se controlan los
movimientos de este motor a través de programas en lenguaje MINT, propio de la marca
ABB.

Figura 12 Sistema mecánico inicial

21
Este sistema ya tiene instalados los sensores magnéticos en cada extremo, en la
figura 13 se observan mejor, estos sensores se encargan de dar seguridad, están
conectados en serie con un diodo LED cuya función es encenderse cada vez que se llegue al
fin de carrera y se detecta un error.

Figura 13 Sensores magnéticos instalados

Al ser un mecanismo ya implementado, el doctor Raúl Ávalos me proporcionó el manual que


fue realizado durante el proceso de construcción de dicho sistema, en él se detallan los
pasos necesarios para realizar la prueba piloto de funcionamiento, pero antes de describirlos,
presento las dimensiones del sistema inicial.

Figura 14 Dimensiones del sistema

El manual indica una carrera efectiva de 120 mm, se dan 10 mm de libertad, por lo que
la carrera total es de 110 mm, al posicionar el oscilador en el centro de la carrera, a 55 mm
de la de la barra lateral izquierda, el oscilador podrá recorrer 50 mm hacia la izquierda y 50
mm hacia la derecha, es decir la amplitud máxima de una oscilación que puede efectuar sin
coalición es de 50 mm, dato que será corroborado con la prueba piloto.

22
4.2.1 Características mecánicas y expresiones matemáticas auxiliares

El tornillo sinfín con el que cuenta el sistema es de 8 mm con un paso de 7.85 mm por
vuelta, en el manual de usuario del motor industrial, cuyo enlace se anexa al final de este
documento, se indica que un giro del motor equivale a 10,000 pasos, es decir, si se desea
que el motor de media vuelta se debe crear un programa que haga avanzar al motor 5 mil
pasos, también se indica que la velocidad máxima a la que el motor puede girar es de
400,000 pasos por segundo, por lo que se obtienen las siguientes relaciones:

1 vuelta = 10,000 pasos


1 vuelta = 7,884 mm de desplazamiento
1 mm de desplazamiento = 1,273 pasos del motor

Usando esas relaciones se encuentra el número de pasos que el motor debe hacer para
realizar el desplazamiento deseado con la siguiente fórmula:

Número de pasos = 1273x


Donde x es la distancia en milímetros que recorrerá el oscilador.
La velocidad máxima se encuentra usando la siguiente expresión:

Máx. Veloc. de desplazamiento = (400,000 pasos/seg)(1,273 pasos/mm) -1 = 314.2183 mm/s

Esa es la velocidad máxima del sistema mecánico.

4.2.2 Funciones posibles de emular

Para saber si una función puede ser emulada hay que comprobar que no rebase los 50 mm
de amplitud y los 314.2183 mm/s, a continuación presento un ejemplo para entender mejor el
procedimiento.
Ejemplo.
Se desea saber si una función de la forma Acos(2πft) siendo A la amplitud, f la frecuencia y t
el tiempo, se sabe que la derivada de una función de posición como la que se quiere emular
es la velocidad, por esto como primer paso se debe calcular la derivada de dicha función.

V = (d(Acos(2πft))/dt = -2πAfsen(2πft)

El valor absoluto de la velocidad debe ser menor a 314.21 mm/s, es decir:


−314.21 mm/s ←2 πAfsin(ft) < 314.21 mm/s

El valor máximo y mínimo de una función seno son: 1 y -1 respectivamente por lo que nos
quedan las siguientes expresiones:

−314.21 mm/s ←2πAf


2πAf < 314.21 mm/s
A f ∨ 50 mm/s

23
El sistema mecánico oscilante solo puede emular funciones de la forma Acos(ft) que cumplan
con que la multiplicación de la amplitud por la frecuencia sea menor a 50, dando la amplitud
en milímetros y la frecuencia en Hertz, y además la amplitud sea menor a 50 mm.

NOTA: Es recomendable realizar este procedimiento con cada función para encontrar
una fórmula que nos permita saber si el sistema podrá emularla, y así no dañar el
sistema.

4.3 Sensor de Posición

En el capítulo 3 se describieron algunas características del sensor Sharp y para este


sistema se usó el modelo GP2Y0A41SK0F.
Algunas de sus principales características se mencionan a continuación:
- Mediciones en rangos de entre 40 y 80 mm.
- Margen de error de ±2mm.
- Voltaje de alimentación de entre 4.5 y 5.5V.
- Salida analógica.

Figura 15 Sensor Sharp

4.3.1 Principio de funcionamiento general

Este sensor envía una señal infrarroja, la cual choca y rebota en una superficie y con
el tiempo que tarda en realizar esto se determina la distancia a la que se encuentra la
superficie del sensor, tiene 3 salidas la primera es donde se alimenta con 5 volts, la segunda
es 0 volts o “tierra” y la tercera es la salida analógica que nos indica la distancia que está
determinando el sensor. Al principio el sensor fue colocado en la barra lateral derecha
usando cinta doble cara, uno de los detalles que deben corregirse por cuestiones de estética
y técnicas.
La salida de este sensor debe regirse de la gráfica que se presentó en el capítulo 3, en el
manual se recomienda realizar un proceso de calibración ocasional, otro detalle que también
debe revisarse puesto que no ha sido calibrado desde la contingencia sanitaria.

24
La barra oscilante cuenta con una pestaña la cual funciona como la superficie en la que
rebota la señal infrarroja para que se pueda determinar la distancia, es por eso que es de
color blanco ya que, según el manual, esto mejora el “rebote” de la señal, eso será
comprobado más adelante.

Figura 16 Posición inicial del sensor Sharp

4.3.2 Calibración

En el manual se describe un proceso de calibración, pero tras un análisis y una breve


prueba se determinó que ese procedimiento no es el más óptimo puesto que no se tomó en
cuenta la distancia de la pestaña al sensor sino solamente a la barra de la derecha, además
hay que considerar que el sensor tiene un margen de error el cual se mencionó en el
apartado anterior. Siguiendo esa deducción se llevó a cabo la construcción de un sistema de
calibración, no se gastó mas que un peso en la compra de un par de tornillos, todo lo demás
son materiales con los que contaba el laboratorio.

Con una placa metálica se guió todo el procesos, se sacaron las dimensiones y se
consideró el margen de medición del sensor, el doctor Raúl me proporcionó un sistema
mecánico manual parecido al oscilador el cual serviría para usarlo como calibrador.
Lo que siguió fue hallar la manera de fijar ese pequeño sistema a la placa de metal, así que
opté por realizar una pieza en SolidWorks y aprovechar la impresora 3D con la que cuenta el
CICATA.
Cabe mencionar que las mediciones de los tornillos y de las aberturas de la placa fueron las
dimensiones clave para elaborar el resto del sistema calibrador, por ser mi primera impresión
en 3D tuve ciertos errores en el diámetro de los círculos por lo que recurrí al taladro y a una
lima para aproximar dichos diámetros a las medidas de los tornillos, éstas las coloqué muy
exactas en el diseño y por ser tan exactas los tornillos no entraban en los orificios.

25
Figura 17 Base y sistema montados en placa metálica

Una vez montado el sistema lo siguiente fue diseñar una superficie que fuese
detectada por el sensor, con esa superficie deben hacer algunas pruebas con materiales
reflectantes, en este caso fueron una hoja de papel blanco y una pequeña lámina de metal,
esos materiales fueron adheridos a la superficie diseñada que a su vez fue monada en el
sistema aprovechando los orificios con los que ya se contaba, en la imagen se muestra dicha
superficie con un trozo de papel blanco.

Figura 18 Superficie con material reflectante

A continuación sigue el montaje del sensor Sharp, para ello se usó un mecanismo que
ya se encontraba en el laboratorio y se diseñaron dos piezas más: la primera fue una base
para fijar el mecanismo a la placa de metal y la segunda fue otra base para montar el sensor
de forma horizontal. Con esas piezas también tuve varios errores en ciertas medidas y cada
una de ellas fue impresa un par de ocasiones porque era muy importante que el sensor
quedara completamente fijo así que no podía haber más fallas, antes de rediseñar esas
piezas tuve que corroborar todas las medidas, la ventaja fue que en la hoja de datos del
sensor éstas ya se encuentran disponibles y en lo único que tuve que tener cuidado fue en
los diámetros de los orificios para los tornillos. Cuando las piezas se reimprimieron ahora sí
debían ser colocadas en el sistema, se inició con el sensor y después el mecanismo se
montó en su respectiva base para ser montado en la placa metálica.

26
Hubo que diseñarse una pieza extra porque el sistema de balanceaba un poco y nada
debía de moverse así que opté por diseñar un prisma con una pequeña ranura circular para
ajustarlo debajo de la manija, delante de la superficie blanca, el sistema casi completo se ve
de la siguiente manera.

Figura 19 Calibrador armado en un 70%

Lo único que falta es tener una base de medición, el sensor registra la distancia hacia
la superficie pero recordemos que hay un margen de error, para disminuir ese error se colocó
un calibrador digital, de ahí el nombre del sistema, también se diseñó una pieza para evitar
que el calibrador se moviera y es así como queda el sistema final.

Figura 20 Sistema calibrador completo

El proceso de calibración es el siguiente:


Se crea un código en Arduino, el cual se encuentra en el apartado de anexos de este
documento cuya función será enlazarse con el sensor Sharp usando la entrada analógica A0
y se sigue el esquema de conexión mostrado en el capítulo 3.
Para disminuir el error del sensor se siguieron las siguientes relaciones:

27
Figura 21 Cálculos para disminución del error

Los datos que registre el sensor se visualizan en el monitor serial de Arduino, se


tomaron los datos de los primeros dos segundos y se fue recorriendo el sistema cada 10 mm
hasta que se recorre toda la carrera. En una hoja de Excel se pegan esos datos, todos los
que se registren de cada medición, en otra columna se saca el mínimo, promedio, máximo y
desviación estándar de cada grupo de datos. Una vez que se recorrió toda la carrera y se
obtuvieron los valores correspondientes a cada grupo de datos se hace una gráfica, en el eje
X irá la distancia en mm y el eje Y irá el promedio, en la gráfica debe ponerse una línea de
tendencia junto con su ecuación.
El material que se probó fue la hoja de papel blanco y la lámina de metal pero con este último
la gráfica tenía demasiadas variaciones y un arco que se salía completamente de los
márgenes de error, en cambio con el papel blanco no hubo variaciones extremas así que
concluyo que esa es el material más óptimo para el sistema oscilante. En la tala se muestran
los valores de salida que arrojó el sensor y los cálculos correspondientes.

Tabla 2 Datos de calibración del sensor

28
Figura 22 Gráfica de calibración con hoja de papel blanco

Una vez calibrado el sensor se requiere de un nuevo código en Arduino para el sistema
mecánico oscilante que se enlace con el servo drive, el manual cuenta con uno que se
analizará en la prueba piloto más adelante.

4.3.3 Reajuste del sensor Sharp

Se mencionó anteriormente que el sensor Sharp fue montado al sistema usando un


trozo de cinta doble cara, este es otro detalle que debe corregirse porque no es lo más
óptimo así que decidí diseñar una nueva pieza para montar el sensor, de nuevo tuve ciertos
errores iniciales y la pieza fue reimpresa varias veces hasta que quedó lo más justa que fue
posible, era muy importante que el sensor no balanceara porque ocasionaría incongruencias
en el registro de los datos.

Figura 23 Sensor Sharp montado en el sistema

29
El sistema mecánico está casi completo, el casi es porque había un pequeño
desequilibrio del lado derecho, en donde está colocado el motor, así que para evitar ese
balanceo diseñé una última pieza que fue colocada en un extremo del motor, además se
cambió el trozo de hoja de papel blanco por uno más limpio. Con ello el sistema mecánico
quedó completo y se ve una buena diferencia en comparación con el sistema inicial.

Figura 24 Sistema mecánico completo

4.4 Circuito y cableado

Antes de comenzar con la prueba piloto es necesario explicar los cableados


correspondientes para el funcionamiento del sistema.
Primero está el cableado de los sensores magnéticos, su circuito está de la siguiente
manera:

Esquema 2 Circuito de conexión de los sensores magnéticos

Los sensores se conectan en serie con dos diodos que sirven como protección y éstos
a su vez van conectados también en serie a un diodo LED el cual se enciende cada vez que
hay un error o que el oscilador llegó al tope de carrera. Los sensores magnéticos hacen la
función de alarma y ayudan a proteger al sistema de colisiones.

30
Ahora bien, todo debe estar enlazado con driver, la hoja de datos se adjunta en este
documento y en ella hay un apartado que indica las entradas y salidas, para hacer el enlace
entre el driver y los sensores magnéticos se recurrió al uso de las entradas digitales 6
(negativa) y 16 (positiva) las cuales también están conectadas al circuito de los sensores
magnéticos y a las entradas V+ y V- de la fuente.
Los cables V+ y V- sirven para que la fuente alimente al driver y éste pueda funcionar.

Figura 25 Conexiones al driver

Las salidas digitales 3 (negativa) y 13 (positiva) sirven para enlazar el driver con el
sensor Sharp para que la salida de los datos venga del driver, se “traslade” al sensor, se
enlace directamente con Arduino y la plataforma PLX – DAQ. Esas salidas van conectadas a
los pines positivo y negativo del circuito mostrado anteriormente, como está en protoboard y
está aislado de los sensores magnéticos no causa ningún inconveniente.
El sensor Sharp también se conectó directamente al protoboard a excepción de cable
amarillo que va al pin A0 del Arduino.
Las conexiones iniciales de las entradas y salidas estaban mal ajustadas por lo que me vi en
la tarea de desconectarlas, con un poco de soldadura en las puntas de los cables le di un
poco más de grosor para que ya no se desconectaran del driver, eso no afectó para nada al
sistema.
La placa Arduino también necesita alimentarse así que se conectaron los pines GND y 5V a
las terminales negativa y positiva del protoboard, respectivamente. El pin RX de Arduino es el
enlace final entre la plataforma PLX – DAQ, Arduino y el driver, ese pin va conectado a una
terminal positiva el protoboard.

31
Figura 26 Conexiones a protoboard

32
Figura 27 Salidas digitale del driver

Las entradas 6 y 16 del driver deben ir conectadas a la fuente, las entradas del driver con las
etiquetas 0V y +24V también van a V- y V+ de la fuente. Las últimas conexiones van desde el
motor al driver, hay que tener cuidado de que todos los cables estén completamente
apretados y muy justo ya que si algún cable se suelta cuando el sistema está en marcha
pueden ocurrir colisiones o el motor puede dañarse.

Figura 28 Conexiones del driver a la fuente

33
Figura 29 Conexiones completas

4.5 Interfaz de visualización para la posición del oscilador

Para poder observar la salida de valores arrojados por el sensor e cuenta con la
plataforma PLX – DAQ que no es más que un complemento de Excel que permite un enlace
directo con Arduino por medio de una serie de comandos o directivas. Para este proyecto se
cuenta con un código en Arduino con las directivas necesarias sin embargo cuenta con
ciertos detalles que se describirán más adelante, y que deben ser corregidos. Para lograr el
enlace, aparte de las directivas, debe tenerse en cuenta el puerto COM que va a usarse y la
velocidad en baudios, no deben ser diferentes a los usados en la programación.

Tabla 3 Directivas para PLX – DAQ

34
Esta plataforma puede descargarse desde la página de Parallax, el archivo es una
carpeta comprimida, para instalarse hay que descomprimir dicha carpeta y ejecutar como
administrador el archivo plx_daq_install.exe, se siguen los pasos y para abrirla hay que ir a la
carpeta correspondiente a PLX – DAQ, en esa carpeta aparecerán dos archivos, el que debe
abrirse es el correspondiente a una hoja de Excel, una vez abierto aparecerá dicha hoja al
fondo con el siguiente mensaje:

Figura 30 Mensaje advertencia

Se da clic en Aceptar y seguido a ello se verá la ventana de configuración.

Figura 31 Configuración de PLX – DAQ

El programa en Arduino para obtener los datos consiste en declarar la entrada A0


como entrada analógica, ya que es la entrada donde se conecta la señal de voltaje del
sensor Sharp, el lector analógico de Arduino lee este voltaje y arroja un número en la escala
de 0 a 1023, donde 0 es 0 volts y 1023 corresponde a una lectura de 5 volts, este número se
evalúa en la función que se obtuvo en la calibración, la cual entrega la distancia del oscilador
al sensor en milímetros, a esta distancia se le resta la cantidad de 66.25 mm ya que es la
distancia a la que se encuentra el centro de la carrera del oscilador al sensor Sharp.

35
Este centro será indicado como la posición 0 del emulador; se repite este proceso de
lectura un cierto número de veces para reducir el error, en este caso se repite cinco veces,
estas se promedian para obtener una medición más precisa y ésta es la que se envía junto al
tiempo en que esta medida fue obtenida a la plataforma de visualización mediante el puerto
serie de Arduino, en el apartado de anexos se encuentra ese código.

4.6 Programación de las funciones a emular

El servo drive MicroFlex e100 cuenta con un software propio de la marca ABB llamado Mint
Workbench que es un lenguaje de programación muy parecido a C o C++, puede
descargarse de la página oficial de ABB que se adjunta en la bibliografía de este documento.
La pantalla principal de Mint Workbench cuenta con una serie de íconos que permiten utilizar
las diferentes herramientas del software.

Figura 32 Pantalla de Mint Workbench

No es difícil la programación en Mint Workbench aunque si hay que tener cuidado en las
líneas de código, aunque es parecido al lenguaje C eso no significa que la sintaxis sea igual,
voy a explicarlo con un código usando de ejemplo la función A*sen(2π *f * t).

36
Las primeras líneas de código son las variables a utilizar, Dim
significa que la variable se está declarando, Float indica una
variable decimal e Integer una variable entera, como se
observa la sintaxis es:
Dim nombre_de_la _variable AsTipo de variable

Seguido de las variables se escribe STOPINPUT(0)=1, el cual


es un comando que activa la función stop cuando se detecta un
valor alto en los pines 6 y 16. El driver permite conectar más de
dos motores los cuales se indican con la palabra Axis y su
numeración empieza de 0, si sólo se tiene un motor conectado, ése se indicará como Axis 0,
de ahí el cero que aparece entre paréntesis. Es indispensable que este comando se
encuentre en todos los códigos a realizar y antes de ejecutar cualquier otro ya que es más
como una línea de seguridad.

La siguiente parte consiste en el programa


principal, primero se piden las
instrucciones donde se colocarán los
respectivos datos de la función, en este
caso la amplitud y el periodo, esto sólo si
se presiona 1. Ahora, si se desea repetir la
misma emulación se presiona 2, la variable
k1 se inicia en uno para poder entrar el
ciclo while.

Enseguida se escribe el comando MOVEBUFFERSIZE y


el número de motor que le corresponde y se iguala a 30
por defecto, permite guardar todos los movimientos del
comando MOVEA en una memoria pero como en este
caso no es necesaria esa acción entonces se iguala a 30
por defecto.
SCALEFACTOR(0)=1 es un comando que permite reducir
los valores de la posición, velocidad y aceleración ya que
generalmente son números muy grandes.

Después se escriben los valores correspondientes a velocidad, aceleración y desaceleración


seguido de los tiempo en milisegundos para esos últimos.

37
La parte más importante son los cálculo, al
inicio de este capítulo se indicaron una
serie de relaciones que son
indispensables. El producto 2π se sustituye
por 2*180, su equivalente en grados, la
división por 1000 es para obtener
milisegundos.
El periodo se multiplica por 1000 para
denotarlo en segundos, y para que la
función comience de cero entonces se
evalúa con t = 0.
Algunas funciones como coseno no inician
su movimiento a partir del 0, si no en una
posición especifica, este valor posición
obtenido se guarda en la variable dpos2 y
con el comando MOVEA se mueve el
motor a esa posición.
Con Pause se detiene al sistema por
seguridad. De esta forma el sistema ya
estará en la posición inicial para empezar
la emulación.
La siguiente línea es para que el usuario
indique el número de ciclos deseados y
con ello termina el ciclo IF.
Como el posicionamiento se realizó dentro del IF cuando la respuesta fue 1, se vuelve a
realizar por si la respuesta fue 2, si ya se había posicionado anteriormente no ocurrirá nada.
El comando OUT(0)=3 pone en estado alto la salida 3 del servo drive, esto indicará al
Arduino que es momento de empezar a obtener datos de la posición del oscilador, de esta
manera se evita que Arduino y la plataforma de visualización registren datos no deseados
entre cada pausa de emulación y solo registran cuando se realiza una emulación.

El ciclo While se repetirá hasta que el


temporizador del programa sea
mayor a la variable tiempo, dentro de
este ciclo se calculan los dos puntos
para encontrar las velocidades que se
irán implementando, lo cual se hace
de la siguiente manera: En la variable
dpos1 se guarda la posición 1, en
este caso la inicial, la cual estaba
guardada en dpos2, ahora en la
variable dpos2 se calcula la posición a 50 milisegundos de iniciar la emulación (posición 2)
evaluando este tiempo en la función a emular, se calcula la pendiente entre estos 2 puntos,
restándolos y dividiéndolos entre 50 milisegundos y se guarda en la variable velo.

38
Este valor se manda al comando JOG(0)=velo que es el comando que controla la velocidad
del motor, y se mantiene esta velocidad durante 50 milisegundos con un retardo Wait(50),
una vez terminado este retardo, se vuelve a iniciar el ciclo while, ya que, la variable Time
sigue siendo menor a la variable tiempo, aquí ya no es necesario calcular las dos posiciones
requeridas para encontrar la siguiente velocidad, ya que la posición 2 del cálculo anterior
ahora es la posición 1 para este cálculo, así que el valor que tenía dpos2 ahora lo guardamos
en dpos1 y se vuelve a calcular la posición a 50 milisegundos después y esta se guarda en
dpos2, se vuelve a calcular la pendiente y se guarda en la variable velo, se envía al comando
JOG y este procedimiento se repite sucesivamente hasta que se cumpla el tiempo de
funcionamiento establecido.

Cuando se termina el ciclo while, la velocidad del motor se pone


en 0 con el comando JOG, esto detendrá al sistema en la
posición en la que se haya quedado, se ejecuta un retardo por
seguridad y se regresa a la posición 0 con el comando MOVEA.
Se termina el if tanto de si la respuesta fue 1 o 2 a la pregunta
“continuar”. Se pone en estado bajo la salida digital del servo
drive indicando al Arduino que ya terminó la emulación y ya no es
requerido registrar la posición del oscilador.

Para poder abrir correctamente cualquier programa, el cable USB


del driver debe estar conectado tanto al driver como a la
computadora.

4.7 Prueba piloto. Comprobación del funcionamiento del sistema

El manual proporciona una serie de pasos para la puesta en marcha del emulador, los
cuales se resumen a continuación.
1) Verificar la posición 0 del oscilador (a 55 mm de la barra lateral derecha).
2) Revisar que los sensores magnéticos funcionen moviendo manualmente el tornillo hacia
cada extremo, el LED debe encenderse.
3) Regresar a la posición 0 y conectar la fuente y el motor así como el cable USB del driver.
5) Abrir la plataforma PLX – DAQ y configurar la velocidad y el puerto que correspondan.
6) Conectar el cable USB del motor y del Arduino a la computadora y cargar el código que
corresponde a la posición del oscilador al Arduino.
7) Abrir el archivo de Mint Workbench correspondiente a la función que se desea emular.
8) En la pantalla saldrá un error por defecto y una ventana con el nombre WATCHING, el
error se quita con el ícono al lado izquierdo del cuadro rojo, se cierra la ventana WATCHING
y se activa el control con el ícono de flecha a la izquierda del letrero Axis 0.
9) Dar PLAY con el ícono de la flecha verde y presionar 1 + ENTER para colocar los
parámetros

39
10) Después de colocar el último parámetro que es el número de ciclos, dar ENTER y el
movimiento comienza así como el registro de datos
11) Una vez que termina la emulación se da clic en desconectar en la pantalla de PLX – DAQ
y se grafican los datos registrados.
12) Si se desea repetir la emulación, presionar 2 y ENTER.

Seguí esos pasos y el sistema funcionó, emuló la función como se debía pero no había
ninguna conexión con PLX – DAQ, no se registró ningún dato, cosa que fue muy extraña, por
ello me dispuse a revisar el sistema y analizar el código línea por línea.

Figura 33 Pantalla de PLX - DAQ sin registro de datos

Después de revisar el código y el sistema me di cuenta de que la entrada RX de Arduino


corresponde al pin 0 de la placa, en el código inicial estaba declarado el pin 2. Otro detalle
fue la ecuación de calibración, en ese código la ecuación tiene forma de potencias de x y en
mi proceso de calibración la ecuación es de la forma f(x) = ax k .

Figura 34 Declaración del pin 2 como entrada

40
Figura 35 Ecuación de calibración inicial

En el apartado de anexos se adjunta el código ya corregido, es decir con el pin 0


declarado como entrada y con la ecuación en forma de exponente, dicha ecuación se mostró
anteriormente en la explicación del proceso de calibración. Otro detalle que corregí fue la
posición cero, el manual indica que 55 mm del extremo derecho al oscilador. Sin embargo
menciona que la carrera efectiva es de 120 mm menos 10 mm de libertad que se le dan al
oscilador, lo que daría que la posición 0 sean 65 mm puesto que no existe ninguna marca
que quite esos 10 mm de libertad.
En el circuito no había ningún detalle en particular, todo estaba bien conectado y con el
nuevo código más los arreglos que hice en el montaje del sensor, la calibración y la base del
motor todo el sistema quedó listo para las pruebas finales. Cabe destacar que también
modifiqué parte de los pasos para la puesta en marcha del sistema porque en el manual
ciertos pasos son muy confusos y con los detalles que modifiqué cambian un poco.

4.8 Pruebas finales

Ahora que el sistema está completo es momento de realizar algunas pruebas, voy a listar los
pasos para el arranque.
Pasos para puesta en marcha del sistema mecánico oscilante

1. Verificar que el oscilador se encuentre en la posición cero, es decir a 65 mm de la


barra lateral derecha.
2. Revisar que los sensores magnéticos funcionen, para ello el tornillo se mueve
manualmente hacia un extremo de la carrera, el LED debe encenderse en ambos
extremos.

Figura 36 Verificación de los sensores magnéticos

41
3. Regresar el oscilador a la posición 0.
4. Conectar el sensor Sharp al Arduino, en caso de estar desconectado.
5. Conectar la fuente y el driver. Es muy importante verificar que el LED de estado
siempre esté encendido, ya sea en verde fijo o en verde parpadeante.

Figura 37 LEDs indicadores del driver

Los LEDs CAN indican el estado general de funcionamiento, si están en verde fijo ambos el
sistema de encuentra en estado operativo uno rojo y uno verde el sistema está funcionando
pero el bus está desactivado. Los LEDs de ETHERNET no deben estar encendidos de forma
fija porque ese tipo de conexión no se está usando, pueden parpadear ocasionalmente in
ningún problema.

6. Conectar el cable USB del driver a la computadora


7. Conectar el USB de Arduino a la computadora que corresponda y abrir el código para
la posición del oscilador.
8. Cargar el código del paso anterior al Arduino
9. Abrir el programa en Mint Workbench que corresponda a la función que se desea
emular.
10. En la pantalla aparecerá un mensaje de ERROR en un recuadro de color rojo, para
quitarlo se da clic en el ícono del lado izquierdo, cuya indicación se muestra en la
figura 34.
IMPORTANTE: Ese ERROR no tiene nada que ver con el código o con el driver,
es un mensaje que aparecerá siempre que se abra un programa.

11. Cerrar la ventana WATCHING y activar el control con el ícono de flecha indicado
también en la figura 34
12. En los parámetros que se encuentran del lado derecho en los recuadros negros, debe
verificarse que POSITION se encuentre en cero o en un valor cercano a cero, de no
ser así, debe cerrarse el programa, desconectarse el USB, la fuente y el driver para
mover manualmente el tornillo a la posición cero, después se vuelve a conectar todo y
se repetir desde el paso seis.

42
13. Abrir la plataforma PLX – DAQ y seleccionar el puerto con y la velocidad en baudios
que correspondan.
14. Dar clic en el botón PLAY (ícono con el triángulo de color verde) para iniciar con la
ejecución del programa.
15. En la ventana terminal aparecerá la pregunta CONTINUAR, con el teclado de la
computadora presionar 1.
16. Se pedirá la amplitud, después de colocarla dar ENTER con el teclado de la
computadora y escribir el periodo seguido del número de ciclos.
17. Antes de dar ENTER después de ese último parámetro, ir a la pantalla de PLX – DA y
dar clic en CONNECT, y enseguida ahora sí dar ENTER después del número de
ciclos.
18. Una vez que termine la emulación, dar clic en DISCONNECT de PLX – DAQ y
graficar los datos que registre el sensor.
19. Si se desea repetir la emulación, presionar 2 con el teclado de la computadora o 1
para ingresar nuevos parámetros.

Figura 38 Ejecución de la función seno

Algo muy importante a mencionares que se encontró una limitante por una falla en el
sistema: la máxima amplitud que pueden tener todas las funciones es de 15 mm, la hipótesis
es que el cople que sostiene al tornillo sinfin está flojo y/o el motor no está completamente
apretado con el tornillo, después de platicarlo con el doctor Raúl sostuvimos esa hipótesis y
concluimos que hay una posibilidad de que al momento de empezar la contingencia sanitaria,
la verificación del sistema no se hizo completa además el sistema no se había usado desde
entonces; las emulaciones se realizan muy bien, el sistema hace lo que debe hacer pero,
como ya mencioné, está la limitante de la amplitud máxima.

43
4.9 Emulación por tabla de datos

Mint Workbench ya tiene varias funciones precargadas y listas para ejecutarse, sin
embargo hay otra manera de realizar la emulación de distintas funciones y esa es mediante
la generación de una tabla de datos vía Matlab. En el manual se incluyen dos códigos, el
primero de ellos permite la generación de una tabla de datos, éstos representan la posición
del oscilador, en el apartado de anexos se encuentra dicho código y en la imagen siguiente
se pone un ejemplo de una tabla de datos tomando como ejemplo la función así como la
gráfica que arroja Matlab
P(x) = 5*sen(2π*t)*cos(2π*2*t)
El siguiente paso es ejecutar otro script de Matlab que se
encargará de leer esa tabla de datos y con ella permite
generar un código en mi código que será leído en Mint
Workbench y para correrlo se siguen los mismos pasos
listados anteriormente, la única diferencia es que ya no se
pedirán todos los parámetros sólo hay que poner el número
de ciclos y dar ENTER, el principio de funcionamiento es el
mismo.

Figura 39 Tabla de datos generada en Matlab

Figura 40 Gráfica generada por Matlab de P(x) = 5sen(2πt)cos(2π2t)

44
Capítulo 5 Resultados

A continuación se presentan algunas gráficas realizadas con las funciones ya cargadas en


Mint Workbench, por ese detalle mencionado unos párrafos antes algunas de las gráficas
presentan ciertas “distorsiones” y desfases, no coinciden del todo con la gráfica original de la
función, pero no es problema del código más bien es una pequeña falla técnica en el sistema
mecánico pero eso no afecta en el funcionamiento del sistema puesto que la emulación se
realiza de la forma correcta.

Figura 41 Datos y gráfica de P(X) = 10sen(2π0.5t)

45
Figura 42 Datos y gráfica de P(x) = 15cos(2πt)

La siguiente es una gráfica resultante por tabla de datos.

Figura 43 Datos y gráfica de P(x) = 5sen(2πt)cos(2π2t)

46
5.1 Otras actividades

En el mes de octubre se llevó a cabo la Feria de Ciencias en el Centro Cultural Manuel


Gómez Morín en donde el doctor Raúl Ávalos tenía preparados dos proyectos que
pretendían mostrar de la mejor manera posible las propiedades electromagnéticas de los
materiales. Mi función era explicar dichos experimentos a todo grupo de estudiantes que se
acercaran a la estación del CICATA.
Los proyectos fueron:
- Un disco de cobre camuflajeado en el que se dejaba caer un material sin campo magnético,
que fue una pieza de madera, y luego un material con campo magnético, o sea un imán. El
objetivo era demostrar que el cobre puro posee su propio campo magnético y que al entrar
en contacto con un segundo campo magnético crea una capa invisible de energía magnética
que hace que la caída del imán sobre el disco de cobre sea muy ligera.

Figura 44 Experimento del disco de cobre

El segundo proyecto fue un tanque a escala con tres imanes, dos pegados en cada
pared del tanque y un tercero entre esos dos, los imanes de las paredes tenían soldado un
cable en el cual se conectaba una fuente de voltaje para alimentarlos. Ese tanque se llenaba
de agua con sal y se colocaba un pequeño barco de plástico. Cuando se conectaba la fuente
y se encendía, el barco comenzaba a moverse a causa del campo magnético del imán
superior cuya dirección era hacia abajo y entraba en contacto con la sal del agua que, a su
vez, producía energía.

47
Figura 45 Prototipo de tanque de agua electromagnético

Capítulo 6 Competencias desarrolladas yo aplicadas

6.1 Competencias específicas

• Comprender documentos de carácter científico en inglés, como manuales e


información actualizada en la red.
• Aprender, analizar y comprender un nuevo lenguaje de programación con la ayuda del
manual.
• Analizar algoritmos de control.
• Identificar, analizar y corregir fallos o errores dentro y fuera del sistema.
• Manejar nuevas plataformas de programación como lo es la plataforma Mint
Workbench o PLX – DAQ,
• Diseñar piezas en tres dimensiones en SolidWorks.
• Comprender y aprender los principios básicos de la impresión 3D.

6.2 Competencias genéricas

• Analizar problemas o errores lógicos


• Definir de alternativas para la solución de problemas.
• Trabajar con los recursos con los que se cuenta.
• Razonar sobre las necesidades que requieren cubrir ciertas situaciones.

48
Conclusiones y recomendaciones

Tuve la ventaja de poder trabajar de manera presencial y como todo debe iniciarse de
cero, m enfoqué primero en leer el manual que me fue proporcionado para entender las
partes del sistema, lo que realizaba y cómo lo hacía, su principio de funcionamiento así como
empecé a identificar todas las fallas que tenía a pesar de que salió otra muy importante.
Debo reconocer que en la construcción del sistema de calibración me llevé mucho tiempo y
la razón principal fue que algunas de las piezas tuvieron que reimprimirse más de dos veces
específicamente porque tenía varios errores en las dimensiones. También consumí bastante
tiempo corrigiendo el código de calibración del sensor Sharp ya que debía de encontrar la
manera de tomar un rango de valores en cierto tiempo.
A fin de cuentas pude lograr lo que se pretendía: innovar y mejorar el sistema oscilante tanto
en hardware como en software, aunque con la desventaja de que no supe administrar bien
mis tiempos, dedicando demasiado a ciertas actividades que debían consumir menos tiempo
pero me sirvió como experiencia y aprendí mucho con el doctor Raúl Ávalos, además el
ambiente en general del CICATA fue muy tranquilo y favorable.

Las recomendaciones que hago son las siguientes:


- Desmontar todo el sistema para ajustar o reemplazar el cople que va del tornillo sinfin al
motor.

- Calibrar el sensor de manera continua sin olvidar reemplazar la nueva ecuación de


calibración en el código de Arduin0 correspondiente.

- La interfaz PLX – DAQ no es la más óptima, creo que es mejor hacer un control de
visualización usando LABVIEW.

- Diseñar un encapsulado para proteger los sensores magnéticos.

- Buscar la manera de que los cableados del circuito del protoboard estén cubiertos, una
forma de hacerlo es usando una PCB o construir un encapsulado.

- Aceitar el tornillo sinfin de manera constante

Referencias bibliográficas y virtuales

ABB Site, Servoaccionamiento MicroFlex e100. Recuperado de:


[Link]

CICATA-IPN (2022), Página principal. Recuperado de:


[Link]

49
Pérez Orozco, Juan Adrián (2020), Estudio teórico-experimental de un generador
magnetohidrodinámico de metal líquido acoplable a un convertidor de energía de olas.
Recuperado de:
[Link]
%20magnetohidrodin%C3%A1mico%20(MHD,interacciona%20con%20un%20campo
%20magn%C3%A9tico.

ABB Baldor Reliance, BSM N-Series AC Brushless Servo Motors


Recuperado de: [Link]
brushless-servo-n-series-motors

ABB Site, MINT WORKBENCH. Recuperado de:


[Link]
workbench

Xataka (2019), ¿Qué es Arduino y cómo funciona?. Recuperado de:


[Link]

Naylamp Mechatronics, Sensor Sharp Tutorial. Recuperado de:


[Link]

Parallax Inc. (2020). Recuperado de: [Link]

García Torres, Jorge Alfredo (2020), Manual de funcionamiento de emulador ABB.

Anexos

• Código de calibración del sensor Sharp

//variables
const int sensor=A0; //pin A0 como entrada del sensor
int valor[5],i; //arreglo para promediar datos leidos por el sensor
float valorfinal,voltaje=0;
char mensaje;

void setup()
{
[Link](4800); //velocidad de 4800 baudios
}

50
void loop()
{
if([Link]()>0) //inicio de registro de datos
{
mensaje=[Link]();
if(mensaje=='1') //ciclo para la toma del tiempo
{
unsigned long tiempo=millis();
[Link]("Tiempo: ");
[Link](tiempo);
[Link](" ");
}
else if(mensaje=='2') //condición para detener la salida de datos
{
exit(0);
}
}
else
{
for(i=0;i<5;i++)
{ //lectura señal analogica del sensor
valor[i]=analogRead(sensor);
}

//promedio de las 5 medidas


valorfinal=(valor[0]+valor[1]+valor[2]+valor[3]+valor[4])/5;
[Link](valorfinal);
[Link](" ");
}
}

• Código para obtener la posición del oscilador

#define enviasi 0 //Se nombra al pin0 como "enviasi"


const int sensor = A0; //Entrada analogica del sensor sharp
int en;
int cont;
int valor[50],i;
float valorfin;
float k,timeres;
extern volatile unsigned long timer0_millis; //reinicio del timer

51
void setup()
{
[Link](9600);
[Link]("CLEARDATA"); //Comando para borrar los datos
enviados a la plataforma PLX

[Link]("LABEL,Hora, Tiempo, Posicion"); //Directiva para


nombrar las 2 columnas donde se registraran los datos

pinMode(enviasi,INPUT); //Se declara "enviasi" digital como entrada


}

void loop()
{
en=digitalRead(enviasi); //Se lee si el servo drive mando estado
alto
while(en==1) //si envio el estado alto, entra en un while
{
for(i=0;i<7;i++) //Se toman 7 medidas del sensor Sharp
{
valor[i]=analogRead(sensor);
delay(9);
}
valorfin=(valor[0]+valor[1]+valor[2]+valor[3]+valor[4]+valor[5]+
valor[6])/7; //promediar

valorfin = 18021.8606743583*(pow(valorfin,-0.9383906682));
valorfin=-(valorfin-66.45); //Se determina la posicion 0
[Link](valorfin);
k=millis(); //Se toma el tiempo en que se tomo la medida
en=digitalRead(enviasi); //Se corrobora que el servo drive sigan
indicando que se debe seguir midiendo
[Link]("[Link],TIMER,");
delay(100); //tiempo de espera de registro de datos
}

uint8_t oldSREG = SREG; //si no se debe de seguir midiendo, se


saldra del while

cli(); //y se reinicia el timer


timer0_millis = 0;
SREG = oldSREG;
}

52
• Código en Matlab para obtener la tabla de datos

%%Codigo para generar tabla de datos


clear all x=0:0.02:2; %% el tiempo será x, y se discretiza cada 20 ms
f=1; %% es un ciclo de 2 segundos

%% Se calculan los datos


for i=1:101 y(1,i) = 5*sin(2*pi*f*x(1,i))* cos(2*pi*2*x(1,i));
end %% y se guardan en un vector
plot(x,y); % Se grafica para visualizar la función

% Se escriben en el archivo "dat" de tipo txt


axis([-.5 2.5 -40 40]);
fileID = fopen('[Link]','wt');
fprintf(fileID,'%.2f\n\r',y);
fclose(fileID);

• Código en Matlab para obtener código en Mint a partir de una tabla de datos

%% Programa para generar el código para la plataforma


%% Mint Workbench a partir de tabla de datos

clear all;;
clc;
% Se pregunta el nombre del archivo donde se encuentran los datos
archivo= input('Nombre del archivo con los datos ','s');

fileID1= fopen(archivo,'r');
formatSpec = %f;
A = fscanf(fileID1,formatSpec); %se lee el documento
A=A*1273;
[tam,p]=size(A); % se obtiene la cantidad de datos
seguridad=1;
seguridad2=1;
for j=1:tam %% se verifica que la funcion se puede emular, que no rebase los limites del
sistema

if(A(j,1)>(45*1273)||A(j,1)<(-45*1273));
fprintf('La tabla de datos no se puede emular, rebasa las capacidades del sistema \n');
seguridad=0;
end
end

53
if(seguridad==1)
time= input('¿Cuánto es el tiempo de discretización? (en milisegundos) ');
timer=time/1000;
tiempo=(tam-2)*timer;
x=0:timer:tiempo;
v=diff(A)/timer; % se calculan las velocidades para llevar a cabo la %emulacion
[m,n] = size(v);
for j=1:m %se verifica que las velocidades no sobrepasen las del sistema
if(v(j,1)>400000||v(j,1)<-400000);
fprintf('La tabla de datos no se puede emular, rebasa las capacidades del sistema ;\n');

seguridad2=0;
end
end
if(seguridad2==1);
name= input('Nombre del archivo a generar ','s'); % se pregunta el nombre del archivo donde
se guardara el codigo

namecomplete= strcat(name,'.txt');
plot(x,v);
fclose(fileID1);
fileID = fopen(namecomplete,'wt');
fprintf(fileID,'Dim Amplitud As Float\n\r' );
fprintf(fileID,'Dim Frecuencia As Float\n\r' );
fprintf(fileID,'Dim Periodo As Float \n\r' );
fprintf(fileID,'Dim Ciclos As Float \n\r' );
fprintf(fileID,'Dim ampli As Float \n\r' );

fprintf(fileID,'Dim i As Integer \n\r' );


fprintf(fileID,'Dim seg As Float \n\r' );
fprintf(fileID,'Dim w As Float \n\r' ); % se escriben las lineas de codigo
fprintf(fileID,'Dim dpos1 As Integer\n\r' );
fprintf(fileID,'Dim dpos2 As Integer\n\r' );
fprintf(fileID,'Dim velo As Integer \n\r' );
fprintf(fileID,'Dim ciclo As Integer\n\r' );
fprintf(fileID,'Dim time1 As Float\n\r' );
fprintf(fileID,'Dim time2 As Integer\n\r' );
fprintf(fileID,'Dim tiempo As Float\n\r' );
fprintf(fileID,'Dim k As Integer\n\r' );
fprintf(fileID,'Dim volt As Float\n\r' );
fprintf(fileID,'Dim avanzar As Integer\n\r' );
fprintf(fileID,'Dim k1 As Integer\n\r' );
fprintf(fileID,'Dim velocidad(%i) As Float = {',m );
for i=1:(m-1) fprintf(fileID,'%.0f, ',v(i,1));
end

54
fprintf(fileID,'%.0f}\n\r',v(m,1));
fprintf(fileID,'STOPINPUT(0) = 1\n\r' );
fprintf(fileID,'k1=1\n\r' );
fprintf(fileID,'While(k1=1 Or k1=2)\n\r' );
fprintf(fileID,'Print "<<<<<< 1:Coninuar >>>>>>"\n\r' );
fprintf(fileID,'Input " ====> ", k1\n\r' );
fprintf(fileID,'If(k1=1 Or k1=2)Then\n\r' );
fprintf(fileID,'If(k1=1)Then\n\r' );
fprintf(fileID,'MOVEBUFFERSIZE(0) = 30\n\r' );
fprintf(fileID,'SCALEFACTOR(0) = 1\n\r' );
fprintf(fileID,'SPEED(0)= 100000\n\r' );
fprintf(fileID,'ACCEL(0)=10000000\n\r' );
fprintf(fileID,'DECEL(0)=10000000\n\r' );
fprintf(fileID,'ACCELTIME(0) = 130\n\r' );
fprintf(fileID,'DECELTIME(0)=130\n\r' );
fprintf(fileID,' Print "<<<< Escribir los ciclos que desea >>>>>"\n\r' );
fprintf(fileID,' Input "Ciclos ====> ",Ciclos\n\r' );
fprintf(fileID,' Wait(500)\n\r' );
fprintf(fileID,' End If\n\r' );
fprintf(fileID,'MOVEA(0)= %.0f :GO(0)\n\r',A(1,1)); f
printf(fileID,'OUT(0)=3\n\r' );
fprintf(fileID,'Pause(IDLE(0))\n\r' );
fprintf(fileID,'ACCELTIME(0) = 8\n\r' );
fprintf(fileID,'DECELTIME(0)=8\n\r' );
fprintf(fileID,'Wait(300)\n\r' );
fprintf(fileID,'tiempo=(%.0f*%.0f)*Ciclos\n\r',time,m );
fprintf(fileID,'i=1\n\r' );
fprintf(fileID,'Time =0\n\r' );
fprintf(fileID,'While (Time));
fprintf(fileID,'JOG(0)=0\n\r' );
fprintf(fileID,'Wait(1000)\n\r' );
fprintf(fileID,'ACCELTIME(0) = 130\n\r' );
fprintf(fileID,'DECELTIME(0)=130\n\r' );
fprintf(fileID,'MOVEA(0) = 0 :GO(0)\n\r' );
fprintf(fileID,'End If \n\r' );
fprintf(fileID,'OUT(0)=1\n\r' );
fprintf(fileID,'End While \n\r' );
fprintf(fileID,'Cls #_TERM2\n\r' );
fclose(fileID);
fprintf(' \n');
fprintf('El programa para la plataforma Mint Workbench esta listo en el archivo ');
fprintf(namecomplete);
fprintf(' \n\r');
end
end

55

También podría gustarte