Está en la página 1de 22

SOFTWARE AVANZADO PARA INGENIERIA

Paso 4 - Construcción colaborativa.

Presentado Por:

Edward Fabián Calderón

Jairo Andrés Pérez

Marco Antonio Martínez

Wbeimar Canacue

Wilson Darío Rojas

Grupo:
203037_52

Tutor:
Gerardo de Jesús Becerra

Universidad Nacional Abierta y a Distancia UNAD


Escuela de Ciencias Básicas, Tecnología e Ingeniería ECBTI
CEAD Florencia
2020
CONTENIDO

INTRODUCCIÓN........................................................................................................................3

OBJETIVOS................................................................................................................................4

MARCO TEORICO.....................................................................................................................5

DIAGRAMA DE FLUJO........................................................................................................16

CAPTURAS DE PANTALLA DEL FUNCIONAMIENTO DEL APLICATIVO......................17

CONCLUSIONES.....................................................................................................................20

REFERENCIAS BIBLIOGRAFICAS........................................................................................21
INTRODUCCIÓN

Este documento podrá evidenciar el manejo de labview por medio de la solución del
problema dado en la guía del curso, siendo esta fase en donde evidenciamos la optimización
y exportación de datos en una solución del problema.

Desde la perspectiva de software para ingeniería se puede decir que esta actividad paso 4- es de gran
importancia ya que ayudara a fortalecer el conocimiento en la herramienta labview la cual es muy
eficiente para el desarrollo de problemas que involucren diseño de instrumentos virtuales.

De igual forma cabe destacar, que esta actividad consistirá en desarrollar información de fuentes
relevantes que en el paso anterior se aportaron, para dar solución a lo planteado, lo que llevara a tener
una margen o mejor idea para desarrollar el problema de lo tratado, que al mismo tiempo fortalecerá y
aclarara las dudas con respecto a cómo se trabajara el instrumento virtual, donde con estas fuentes se
buscara mejorar o hacer más dinámico el instrumento virtual.

Durante el desarrollo de esta tarea, se nos pide realizar un control para un motor a pasos, para esto
debemos como grupo brindar aportes y participar constantemente para lograr al final generar una
solución colaborativa, tomando en cuenta la participación y opinión de cada uno de los integrantes del
grupo.

El mayor reto durante esta actividad será satisfacer completamente el solicitado en la guía, ya que, en
algunos puntos, tiene explicaciones bastante superficiales.
OBJETIVOS

La solución de este trabajo tiene como finalidad la optimización y exportación de datos en


una solución del problema a partir del lenguaje de programación visual.

Evidenciar el manejo de seudocódigo y diagramas de flujo dando con igual solución al


problema propuesto en el curso.

Manejar la secuencia de estructuras para los diferentes casos en labview dando solución al
problema plateado en forma grupal. Y evidenciarlo por medio de pantallazos del problema
resuelto.
MARCO TEORICO

2. Realizar el algoritmo de la idea seleccionada y comentar cada uno de los elementos


incluidos en él

- Algoritmo.

- Algoritmo Unidad3_Paso4
- // defininimos la variables a usar en este caso la mayoria son de tipo entero a
ecepccion de algunas
- // que sus resultados son decimales Entonces se define como real
- Definir tipener,giro,resolucion,angaleatorio,nazar,pausa,reset,pasos,pasosne1,expd
Como Entero
- Definir pasosne,velocidad,velocidad1,velocidad2 Como Real
- // para poder reiniciar la ejecucion debemos usar la fucion de repetir mientras que se
cumpla una condicion
- // en este caso se repite siempre y cuando el susuario decee
- Repetir
- // pedimos las variables de entrada segun lo que indica la guia que son:
energizacio
- // velocidad, sentido de giro, resolucion y la opcion de generar el numero
aleatorio
- Escribir 'seleccione el tipo de energizacion:'
- Escribir '(1) Simple'
- Escribir '(2) Onda'
- Escribir '(3) Medio Paso'
- Leer tipener
- Mientras (tipener>3) Hacer
- Escribir '(1) Simple'
- Escribir '(2) Onda'
- Escribir '(3) Medio Paso'
- Leer tipener
- FinMientras
- Escribir 'Velocidad de trabajo en RPM: de 1 a 10 '
- Leer velocidad
- Mientras (velocidad>10) Hacer
- Escribir 'Velocidad de trabajo en RPM: de 1 a 10 '
- Leer velocidad
- FinMientras
- Escribir 'seleccione el tipo de giro:'
- Escribir '(1) Horario'
- Escribir '(2) Antohorario'
- Leer giro
- Mientras (giro>2) Hacer
- Escribir 'seleccione el tipo de giro:'
- Escribir '(1) Horario'
- Escribir '(2) Antohorario'
- Leer giro
- FinMientras
- Escribir 'Seleccione la resolucion'
- Escribir '(1)---0,72°'
- Escribir '(2)---1,8°'
- Escribir '(3)---3,6°'
- Escribir '(4)---7,5°'
- Escribir '(5)---15°'
- Escribir '(6)---90°'
- Leer resolucion
- Mientras (resolucion>6) Hacer
- Escribir 'Seleccione la resolucion'
- Escribir '(1)---0,72°'
- Escribir '(2)---1,8°'
- Escribir '(3)---3,6°'
- Escribir '(4)---7,5°'
- Escribir '(5)---15°'
- Escribir '(6)---90°'
- Leer resolucion
- FinMientras
- Escribir 'para generar un grado aleatorio presione (1) de lo contrario ENTER'
- Leer nazar
- Escribir nazar
- // redonddeamos la cantidad de pasos necesarios para que no se nos cree un
error a la hora de simular la energizacion
- pasosne1 <- redon(pasosne)
- // para calcular los pasos necesarios para lograr los grados generados
aleatoriamente, usamos condicionales anidados
- // ya que tenemos 6 tipos de energizacion y para esto lo que hacemos es de
acuerdo a la resolucion seleccionada
- // aplicamos los siguiente (grados generados)/(resolucion seleccionada)=
pasos necesarios
- Si nazar==1 Entonces
- angaleatorio <- azar(720)
- Escribir 'el angulo aleatorio generado es:'
- Escribir angaleatorio
- Si resolucion=1 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/0.72
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/0.72
- SiNo
- Si resolucion=2 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/1.8
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/1.8
- SiNo
- Si resolucion=3 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/3.6
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/3.6
- SiNo
- Si resolucion=4 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/7.5
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/7.5
- SiNo
- Si resolucion=5 Entonces
- Escribir 'los pasos necesarios
son:'
- pasosne <- angaleatorio/15
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/15
- SiNo
- Si resolucion=6 Entonces
- Escribir 'los pasos
necesarios son:'
- pasosne <-
angaleatorio/90
- pasosne1 <-
redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/90
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- SiNo
- Si resolucion=1 Entonces
- pasosne1 <- 1
- velocidad1 <- 360/0.72
- SiNo
- Si resolucion=2 Entonces
- pasosne1 <- 1
- velocidad1 <- 360/1.8
- SiNo
- Si resolucion=3 Entonces
- velocidad1 <- 360/3.6
- pasosne1 <- 1
- SiNo
- Si resolucion=4 Entonces
- velocidad1 <- 360/7.5
- pasosne1 <- 1
- SiNo
- Si resolucion=5 Entonces
- velocidad1 <- 360/15
- pasosne1 <- 1
- SiNo
- Si resolucion=6 Entonces
- velocidad1 <- 360/90
- pasosne1 <- 1
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- // creamos un ciclo mientras, para poder pausar la simulacion, entonces se
va repetir la simulacion siempre y cuando
- // el usuario seleccione la opcion de continuar
- pausa <- 1
- pasos <- 0
- Mientras pausa=1 Hacer
- // dentro de un condicional e introcucido dos opciones, si se cumple
el tipo de rotacion será horaria
- // y si no entonces será antohoraria
- Si giro=1 Entonces
- // se crean 3 condiconales anidados para que las bobinas se
energicen de acuerdo a lo elegido por el usuario
- // en este caso la energizacion sera en sentido horario
- Si tipener=1 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- // en este paso tomamos el valor de la velocidad
seleccionada por el usuario y mediante algunos calculos,
- // hallamos el valor en tiempo de cuanto se tardará
cada paso en realizarse.
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- // para realizar los pasos necesarios, se crea un siclo
mientras que se ejecuando pasos simulados son menores
- // a los pasos necesarios para lograr el angulo generdo
aleatoriamente.
- Mientras pasos<pasosne1 Hacer
- Esperar velocidad2 Segundos
- // para realizar los pasos necesarios, se crean
condicionales que lo que hacen es que se ejecutan
- // siempre y cuando los pasos simulados son
menores a los pasos necesarios para lograr
- // el angulo generdo aleatoriamente esto hace
que se muesten solo los pasos necesarios y no toda
- // la energizacion completa de nuevo.
- Si pasos<pasosne1 Entonces
- Escribir '|1---|1 |0 |0 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|2---|0 |1 |0 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|3---|0 |0 |1 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|4---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si tipener=2 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- // en este caso la velocidad no se divide entre 4
ya que debemos hacer 8 pasos en este tipo de energizacion para
- // lograr un giro de 360° entonces lo dividimos
entre los 8 pasos y nos dará el tiempo necesario para cada paso
- // y asi lograr las RPM indicadas por el usuario
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/8
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |1 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |1 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|0 |0 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|5---|0 |0 |1 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|6---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|7---|1 |0 |0 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|8---|1 |0 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- FinSi
- FinSi
- SiNo
- // en este caso la energizacion sera en sentido antihorario, ya
que se supone que el usuario ha seleccionado esta opccion
- Si tipener=1 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |0 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |0 |0 |0 |'
- pasos <- pasos+1
- FinSi
- FinMientras
- SiNo
- Si tipener=2 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/8
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |0 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |0 |0 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|5---|0 |0 |1 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|6---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|7---|0 |1 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|8---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- FinSi
- FinSi
- FinSi
- // luego de hacer la simulacion segun lo seleccionado por el usuario
se le da la opcion de continuar o finalizar la simulacion
- Escribir 'para continuar presione 1 de lo contrario ENTER?'
- Leer pausa
- FinMientras
- // como al inicio habiamos creado una funcion de repetir mientras se cumple
la condicion, en esta parte se le pide al usuario,
- // que seleccione la opcion que dea, si elige reiniciar, se reiniciará el ciclo
repetir.
- Escribir 'para reiniciar presione 1 para finalizar preione 2'
- Leer reset
- Mientras reset>2 Hacer
- Escribir 'para reiniciar presione 1 para finalizar presione 2'
- Leer reset
- FinMientras
- // se ha creado una condicion, que nos permite si el usuario desea reiniciar, la
pantalla se limpia, haciendo que la nueva informacion
- // se observe de una mejor manera y el usuario no se confunda.
- Si reset=1 Entonces
- Borrar Pantalla
- FinSi
- Hasta Que reset=2
- // en caso de que el usuario introduzaca el numero 2, el algoritmo se finaliza.
- // Finalmente se dan las opciones de exportar los datos de la simulación
- Escribir 'Desea Visualizar los datos de la simulación?'
- Escribir '(1)---si'
- Escribir '(2)---no'
- Leer expd
- Si expd=1 Entonces
- Escribir 'Cantidad de pasos calculados:',pasosne1
- Escribir 'Velocidad: ',velocidad,' RPM'
- // Condicional en el cual se establece el sentido del giro empleado.
- Si giro=1 Entonces
- Escribir 'Sentido de giro: Horario'
- SiNo
- Escribir 'Sentido de giro: Antihorario'
- FinSi
- // Condicional anidado en el cual se establece la resolucion del motor
simulado.
- Si resolucion=1 Entonces
- Escribir 'Resolución del motor: 0.72°'
- SiNo
- Si resolucion=2 Entonces
- Escribir 'Resolución del motor: 1.8°'
- SiNo
- Si resolucion=3 Entonces
- Escribir 'Resolución del motor: 3.6°'
- SiNo
- Si resolucion=4 Entonces
- Escribir 'Resolución del motor: 7.5°'
- SiNo
- Si resolucion=5 Entonces
- Escribir 'Resolución del motor: 15°'
- SiNo
- Si resolucion=6 Entonces
- Escribir 'Resolución del motor:
90°'
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- // Condicional anidado en el cual se establece el tipo de energización
simulado.
- Si tipener=1 Entonces
- Escribir 'El tipo de energizacion : simple'
- SiNo
- Si tipener=2 Entonces
- Escribir 'El tipo de energizacion : Onda'
- SiNo
- Si tipener=3 Entonces
- Escribir 'El tipo de energizacion : Medio paso'
- FinSi
- FinSi
- FinSi
- FinSi
- FinAlgoritmo
DIAGRAMA DE FLUJO.
CAPTURAS DE PANTALLA DEL FUNCIONAMIENTO DEL APLICATIVO.

Img1. Se evidencia que el arranque de la simulación se da cuando el usuario presiona el


botón de iniciar, además podemos seleccionar los datos que queramos.

Img2. Se ve el correcto calculo de pasos necesarios para llegar al Angulo generado


aleatoriamente, además de calcular correctamente la velocidad, que nos muestra en tiempo
por paso, es decir el tiempo que demora en realizar un paso.
Img3. En esta imagen se observa el correcto funcionamiento del botón de pause y velocidad,
ya que el tiempo por paso cambia cuando aumentamos o disminuimos la velocidad, además
de eso se observa un led encendido que en este caso seria una bobina del motor.

Img4. En esta imagen se evidencia que, si generamos un Angulo aleatorio, se realizarán solo
los pasos necesarios para llegar a ese Angulo y se detiene el VI. También se observa que, al
finalizar la ejecución, nos genera una tabla electrónica en Excel donde se exportan los datos
finales usados por el usuario.
CONCLUSIONES

Por medio de la solución de este trabajo se evidencio la optimización y exportación de datos


en una solución del problema a partir del lenguaje de programación visual.

La optimación del trabajo en grupo puedo mejorar de seudocódigo y diagramas de flujo


dando con igual solución al problema propuesto en el curso.

Mediante el trabajo en grupo se facilitó el Manejar la secuencia de estructuras para los


diferentes casos en labview dando solución al problema plateado en forma grupal.

LabVIEW es un lenguaje de programación grafico en el que podemos desarrollar


aplicaciones de pruebas, control y medidas por lo que fue muy importante emplearlo para el
desarrollo de la actividad antes propuesta teniendo en cuenta los conocimiento teóricos para
poderlo a manejar, las actividad propuesta se desarrolló sin dificultad siendo así un éxito.
Para el desarrollo de esta actividad, debimos como grupo brindar aportes para lograr una
construcción colaborativa de lo solicitado por la guía, lo cual era simular el control de un
motor a pasos. Para esto, ya veníamos trabajando en el curso algunas tareas las cuales nos
dieron una introducción para poder entender de una manera más clara el desarrollo de la
tarea.

Luego de varios intentos de desarrollo y aportes, logramos dar solución al problema


planteado, para esto fue indispensable las bibliografías, las webconferencias.
Acompañamiento vía Skype. Etc.

REFERENCIAS BIBLIOGRAFICAS

Abijana, L. B. (2009). Instrumentos virtuales al servicio de la enseñanza - aplicaciones en el


estudio del espectro ensanchado en la carrera de telecomunicaciones. El Cid Editor |
apuntes. Obtenido de https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/31312

Argentina, R. (2019). Robots . Obtenido de Robots : http://robots-


argentina.com.ar/MotorPP_basico.htm

Electrónica Práctica Aplicada. (20 de Junio de 2011). Obtenido de Electrónica Práctica


Aplicada: https://www.diarioelectronicohoy.com/blog/motores-pap-unipolares

Molina, A. (2014). Didáctica de la ingeniería: Fundamentos teóricos y metodológicos. En A.


Molina, Didáctica de la ingeniería: Fundamentos teóricos y metodológicos (págs. 15-23).
Rugeles, R. C. (2002). La instrumentación virtual en la enseñanza de la Ingeniería
Electrónica. Acción Pedagógica, 11. D - Universidad de los Andes Venezuela. Obtenido de
https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/16771

Vizcaíno, J. R. (2008). LabVIEW: entorno gráfico de programación. Marcombo. Obtenido de


https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/35715

También podría gustarte