Вы находитесь на странице: 1из 34

UNIVERSIDAD POLITCNICA DE CHIAPAS

ASIGNATURA: PROGRAMACIN ESTRUCTURADA

TRABAJO: PROYECTO: PRCTICA FINAL TIRO PARABLICO

CATEDRTICO: ING. YOLANDA PREZ PIMENTEL

ALUMNO: JORGE CELIN JIMENEZ RASGADO JESUS MANUEL VILLAMIL OPON

2 CUATRIMESTRE B 3er CORTE

TUXTLA GUTIERREZ, CHIAPAS 25 DE ABRIL DE 2012

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

INTRODUCCIN
La comunicacin, entre hombre y mquina se puede hacer mucho ms comn que en este entonces. Lo que facilita la comunicacin, la interaccin, entre dos sistemas de diferente naturaleza, tpicamente el ser humano y una mquina como el computador, se trata de un sistema de traduccin, ya que los dos "hablan" lenguajes diferentes: verboicnico en el caso del hombre y binario en el caso del procesador electrnico. De una manera ms tcnica define a Interfaz como un conjunto de componentes empleados por los usuarios para comunicarse con las computadoras. El usuario dirige el funcionamiento de la mquina mediante instrucciones, denominadas genricamente entradas. Las entradas se introducen mediante diversos dispositivos, por ejemplo un teclado, y se convierten en seales electrnicas que pueden ser procesadas por la computadora. Estas seales se transmiten a travs de circuitos conocidos como bus, y son coordinadas y controladas por la unidad de proceso central y por un soporte lgico conocido como sistema operativo. La interfaz incluye las pantallas, ventanas, controles, mens, metforas, la ayuda en lnea, la documentacin y el entrenamiento. Cualquier cosa que el usuario ve y con lo cual interacta es parte de la interfaz. Una interfaz inteligente es fcil de aprender y usar. Permite a los usuarios hacer su trabajo o desempear una tarea en la manera que hace ms sentido para ellos, en vez de tener que ajustarse al software. Una interfaz inteligente se disea especficamente para la gente que la usar. LabWindows/CVI es un entorno de desarrollo integrado para programadores en lenguaje C. Se basa fundamentalmente en un entorno interactivo para desarrollo de programas y una libreras de funciones para crear aplicaciones de adquisicin de datos y control de instrumentos. LabWindows/CVI contiene adems un conjunto de herramientas software para la adquisicin, anlisis y presentacin. Para utilizar LabWindows/CVI, el programador no necesita ser un experto conocedor de tcnicas avanzadas de programacin ni de los detalles internos del sistema operativo Windows. Como ventajas a versiones anteriores, decir, que LabWindows/CVI contiene la especificacin del lenguaje ANSI C, lo que proporciona mxima flexibilidad a la hora de desarrollar aplicaciones. Las herramientas que bsicamente forman este entorno de desarrollo y que iremos describiendo a lo largo de este tema son las siguientes: Un editor de interfaces grficas de usuario (GUI). Una ventana para editar el cdigo fuente de nuestros programas ANSI C. Paneles de funciones para la ejecucin interactiva y generacin de cdigo de forma automtica. Compilador, Reubicador y Depurador integrados para el desarrollo y mantenimiento de proyectos.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

MARCO TERICO
DAQ (Adquisicin de Datos o de Seales) La adquisicin de datos o adquisicin de seales, consiste en la toma de muestras del mundo real (sistema analgico) para generar datos que puedan ser manipulados por un ordenador u otras electrnicas (sistema digital). Consiste, en tomar un conjunto de seales fsicas, convertirlas en tensiones elctricas y digitalizarlas de manera que se puedan procesar en una computadora o PAC. Se requiere una etapa de acondicionamiento, que adecua la seal a niveles compatibles con el elemento que hace la transformacin a seal digital. El elemento que hace dicha transformacin es el mdulo de digitalizacin o tarjeta de Adquisicin de Datos (DAQ). La clave de la potencia de LabWindows/CVI est en sus libreras que proporcionan funciones para todas las fases del desarrollo de una aplicacin de adquisicin de datos o de control de instrumentacin. As tenemos: 1. Cinco libreras para adquisicin de datos:

- Instrument library: Esta librera contiene drivers GPIB, VXI y RS232 para instrumentos tales como osciloscpios, multmetros, generadores de funciones etc. Estos drivers consisten en funciones de alto nivel programadas en C que permiten controlar instrumentos por cualquiera de los interfaces comentados (RS232, GPIB,VXI). Se proporcionan adems el cdigo fuente de los drivers, con lo que si se desea pueden modificarse para adecuarlos a nuestra aplicaciones.

LabWindows/CVI dispone de todas las herramientas de desarrollo necesarias para crear nuestros propios drivers. - GPIB/GPIB 488.2 library: Esta librera contiene funciones para control de instrumentacin conectada a un bus GPIB. Son funciones de muy fcil aprendizaje y uso que hacen transparente al usuario todas las operaciones de bajo nivel que se producen en el bus cuando se realiza cualquier tipo de operacin.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

- Data Acquisition library: Esta librera se proporciona con las tarjetas de adquisicin de National Instruments y consiste en un conjunto de funciones de alto nivel que permitir controlar dichas tarjetas. - RS232 library.: Conjunto de funciones de alto nivel para comunicaciones a travs del puerto serie. - VXI library

2. Dos

libreras para anlisis de datos:

- Formatting and I/O library: Librera formada por un conjunto de funciones para almacenar y recuperar datos de ficheros y para manipular y formatear los datos de nuestros programas. - Advanced Analysis library: Esta librera consiste en un conjunto de funciones para realizar operaciones matemticas complejas, generacin de seales, operaciones con arrays, operaciones con nmeros complejos, procesamiento de seal, probabilidad etc.

3. Una

librera para presentacin de datos:

- User Interface library: LabWindows/CVI permite crear interfaces grficos de usuario (GUI) mediante la herramienta User Interface Editor. Todos los objetos utilizados en el interface grfico de nuestra aplicacin (mens pulldown, barras de mens, cajas de dilogos, controles de distintos tipos, grficos etc.) son almacenados en un fichero con extensin .uir denominado User Interface Resource (fichero resource). Las funciones de la User Interface Library permiten cargar el interface grfico de usuario almacenado en el fichero .uir y visualizarlo, recibir entrada de datos de usuario y visualizar datos y resultados sobre los objetos que forman la interface grfica de una aplicacin determinada.

UNIVERSIDAD POLITECNICA DE CHIAPAS 4. Una

PROGRAMACION ESTRUCTURADA

librera de utilidades

- Utility library: Contiene funciones para realizar distintas operaciones de carcter general: temporizaciones, teclado, utilidades de manejo de ficheros, operaciones de E/S, interrupciones, memoria, sonido, etc.

5. Dos libreras para redes y comunicacin entre procesos:


- Dinamic Data Exchange (DDE) library. - Transmission Control Protocol (TCP) library.

Adems, la librera completa ANSI C tambin est integrada en el entorno de desarrollo de LabWindows/CVI.

Proceso de adquisicin de datos


Definiciones Dato: Representacin simblica (numrica, alfabtica...), atributo o caracterstica de un valor. No tiene sentido en s mismo, pero convenientemente tratado (procesado) se puede utilizar en la relacin de clculos o toma de decisiones. Adquisicin: Recogida de un conjunto de variables fsicas, conversin en voltaje y digitalizacin de manera que se puedan procesar en un ordenador. Sistema: Conjunto organizado de dispositivos que interactan entre s ofreciendo prestaciones ms completas y de ms alto nivel. Una vez que las seales elctricas se transformaron en digitales, se envan a travs del bus de datos a la memoria del PC. Una vez los datos estn en memoria pueden procesarse con una aplicacin adecuada, archivarlas en el disco duro, visualizarlas en la pantalla, etc... Bit de resolucin: Nmero de bits que el convertidor analgico a digital (ADC) utiliza para representar una seal. Rango: Valores mximo y mnimo entre los que el sensor, instrumento o dispositivo funcionan bajo unas especificaciones.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Teorema de Nyquist: Al muestrear una seal, la frecuencia de muestreo debe ser mayor que dos veces el ancho de banda de la seal de entrada, para poder reconstruir la seal original de forma exacta a partir de sus muestras. En caso contrario, aparecer el fenmeno del aliasing que se produce al infra-muestrear. Si la seal sufre aliasing, es imposible recuperar el original.

Velocidad de muestreo recomendada: 2*frecuencia mayor (medida de frecuencia) 10*frecuencia mayor (detalle de la forma de onda)

Los componentes de los sistemas de adquisicin de datos, poseen sensores adecuados que convierten cualquier parmetro de medicin de una seal elctrica, que se adquiriere por el hardware de adquisicin de datos. Los datos adquiridos se visualizan, analizan, y almacenan en un ordenador, ya sea utilizando el proveedor de software suministrado u otro software. Los lenguajes especializados de programacin utilizados para la adquisicin de datos incluyen EPICS (Experimental Physics and Industrial Control System), utilizada en la construccin de grandes sistemas de adquisicin de datos, LabVIEW, que ofrece un entorno grfico de programacin optimizado para la adquisicin de datos. Estos entornos de adquisicin proporcionan un lenguaje de programacin adems de bibliotecas y herramientas para la adquisicin de datos y posterior anlisis. Se entiende por Adquisicin de datos a la accin de medir variables, convertirlas a formato digital, almacenarlas en un computador y procesarlas en cualquier sentido. Este proceso necesita de una "interface" entre el mundo fsico y el computador que se suele denominar como tarjeta de adquisicin de datos.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

El proceso de adquisicin de datos del mundo fsico conlleva los siguientes pasos fundamentales: 1.-Utilizacin de un sensor/transductor adecuado para la variable que se desea medir, el cual permite detectar y convertir la variable fsica a una seal analgica de voltaje o corriente elctrica. 2.-Amplificacin de la seal de voltaje o corriente, si se requiere. Si la seal que proviene del sensor es dbil, se requiere un amplficador de voltaje y algn mtodo para filtrar los ruidos elctricos. 3.-Traduccin de esta seal analgica al lenguaje propio del computador: lenguaje digital. Este proceso se conoce tcnicamente como conversin ANALOGO/DIGITAL (A/D). 4.-Adquisicin propiamente dicha de los datos que, en forma digital, podrn ser almacenados en la memoria del micro y llevados luego a pantalla o a otro perifrico del computador.

GENERACIN INTERACTIVA DE CDIGO: PANELES DE FUNCIONES.


En ste apartado aprenderemos a utilizar una de las herramientas ms potentes de LabWindiws/CVI: los paneles de funciones. sta herramienta simplifica el esfuerzo de desarrollo de forma notable, las caractersticas que presenta son las siguientes: - Ayuda interactiva para indicar como opera la funcin as como el significado de cada parmetro de sta. - Generacin automtica de cdigo. - Ejecucin interactiva de la funcin que permite comprobar sus efectos. El poder ejecutar una funcin de forma interactiva puede sernos de gran ayuda en la fase de depuracin de nuestros programas. - Permite declarar variables utilizadas como parmetros en las funciones para poder ejecutar stas de forma interactiva.

Para seleccionar una funcin de alguna de las libreras de LabWindows/CVI, seleccionamos el men Library, apareciendo entonces un submen en el que aparecen todas las libreras , como podemos ver en la figura:

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Con el fin de comprobar el funcionamiento de los paneles de funciones, vamos a aadir a nuestro programa una funcin que represente en un grfico los valores aleatorios almacenados en el array. Para ello nos situamos antes del comando return 0, en la ltima lnea del cdigo del programa fuente y seleccionamos la librera User Interface del men Library. Una vez en el rbol de funciones de la librera User Interface

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

seleccionamos PoP-up Panels, nos aparecer otro rbol de funciones y entonces seleccionamos la funcin YGraphPopup. Una vez seleccionada la funcin aparecer en pantalla el panel de la funcin tal y como aparece en la siguiente figura:

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Como puede observarse en la figura anterior, el panel de una funcin est formado por una serie de controles, cada control se corresponde con un parmetro de la funcin. Cada parmetro se edita en su control correspondiente. Una vez situados en el panel de la funcin, podemos obtener ayuda sobre sta o sobre cada uno de los parmetros que utiliza, basta para ello situndonos con el ratn en el control correspondiente y pulsar la tecla derecha del ratn Completamos los controles de panel de funciones con los siguientes parmetros:

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Observar como a medida que se van rellenando los distintos controles, la ventana que aparece al fondo del panel (ventana de generacin de cdigo) donde aparece el cdigo de la funcin, se va actualizando simultneamente. Para trasladar el cdigo de la funcin a nuestro programa, en primer lugar seleccionamos mediante la opcin Set Target File del men Code el fichero destino, en nuestro caso el fichero sample1.c. seguidamente insertamos el cdigo de la funcin en el fichero fuente seleccionando la opcin Insert Function Call del men Code. Una vez trasladada la funcin a nuestro programa podemos cerrar la ventana del panel de funciones. Observar que en el cdigo fuente aparece la nueva funcin aadida. Ejecutar el programa para comprobar el efecto de la nueva funcin aadida. 2.2.1 EJECUCIN INTERACTIVA DE UN PANEL Una vez introducidos todos los parmetros de la funcin en los controles de su panel, podemos ejecutarla de forma interactiva. Para ello seleccionamos la opcin Run Function Panel del men Code. La funcin puede ejecutarse tantas veces como se desee, cambiando sus parmetros en cada ejecucin hasta que encontremos la combinacin que mejor se adecue a nuestras necesidades. Como ejemplo, ejecutaremos una funcin de forma interactiva. Seleccionar la librera User Interface del men Library, una vez dentro del rbol de funciones seleccionar Pop-up Panels, seleccionar la funcin Message Popup, aparecer entonces su panel de funcin, completamos sus controles con los siguientes parmetros:

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Title: Mensaje de informacin Menssage: Esto es una ejecucin interactiva.

Cuando se hayan completado los controles seleccionar la opcin Run Function Panel del men Code.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Una vez declaradas las variables podemos ejecutar la funcin Con el fin de comprobar todo estos, seleccionamos la funcin YGraphPopup de la librera User Interface. Cuando aparezca su panel completar los controles con los siguientes parmetros: Title: Datos aleatorios Y Array: datapoints Number of points: 100 Y Data Type : double precision. Status: err Seleccionar la opcin Run Function Panel del men Code para ejecutar la funcin. Como se puede comprobar, aparece un mensaje de error indicndonos que la variable datapoints no ha sido definida. Para poder ejecutar la funcin de forma interactiva, nos situamos sobre el control de la variable a definir y seleccionamos la opcin Declare Variable del men Code. Una vez definida la variable podemos ejecutar la funcin.

Tiempo de conversion
Es el tiempo que tarda en realizar una medida el convertidor en concreto, y depender de la tecnologa de medida empleada. Evidentemente nos da una cota mxima de la frecuencia de la seal a medir. Este tiempo se mide como el transcurrido desde que el convertidor recibe una seal de inicio de "conversin" (normalmente llamada SOC, Start of Conversin) hasta que en la salida aparece un dato vlido. Para que tengamos constancia de un dato vlido tenemos dos caminos:

Esperar el tiempo de conversin mximo que aparece en la hoja de caractersticas. Esperar a que el convertidor nos enve una seal de fin de conversin.

Si no respetamos el tiempo de conversin, en la salida tendremos un valor, que dependiendo de la constitucin del convertidor ser:

Un valor aleatorio, como consecuencia de la conversin en curso El resultado de la ltima conversinificacin Excitacin Filtrado

UNIVERSIDAD POLITECNICA DE CHIAPAS


PROGRAMACION ESTRUCTURADA

Multiplexado Aislamiento Linealizacin

Amplificacin Es el tipo ms comn de acondicionamiento. Para conseguir la mayor precisin posible la seal de entrada debe ser amplificada de modo que su mximo nivel coincida con la mxima tensin que el convertidor pueda leer. Aislamiento - Otra aplicacin habitual en el acondicionamiento de la seal es el aislamiento elctrico entre el transductor y el ordenador, para proteger al mismo de transitorios de alta tensin que puedan daarlo. Un motivo adicional para usar aislamiento es el garantizar que las lecturas del convertidor no son afectadas por diferencias en el potencial de masa o por tensiones en modo comn. Cuando el sistema de adquisicin y la seal a medir estn ambas referidas a masa pueden aparecer problemas si hay una diferencia de potencial entre ambas masas, apareciendo un "bucle de masa", que puede devolver resultados errneos. Multiplexado - El multiplexado es la conmutacin de las entradas del convertidor, de modo que con un slo convertidor podemos medir los datos de diferentes canales de entrada. Puesto que el mismo convertidor est midiendo diferentes canales, su frecuencia mxima de conversin ser la original dividida por el nmero de canales muestreados. Se aconseja que los multiplexores se utilizen antes del conversor y despus del condicionamiento del seal, ya que de esta manera no molestar a los aislantes que podamos tener. Filtrado - El fin del filtro es eliminar las seales no deseadas de la seal que estamos observando. Por ejemplo, en las seales cuasi-continuas, (como la temperatura) se usa un filtro de ruido de unos 4 Hz, que eliminar interferencias, incluidos los 50/60 Hz de la red elctrica. Las seales alternas, tales como la vibracin, necesitan un tipo distinto de filtro, conocido como filtro antialiasing, que es un filtro pasabajo pero con un corte muy brusco, que elimina totalmente las seales de mayor frecuencia que la mxima a medir, ya que se si no se eliminasen apareceran superpuestas a la seal medida, con el consiguiente error. Excitacin - La etapa de acondicionamiento de seal a veces genera excitacin para algunos transductores, como por ejemplos las galgas "extesomtricas", "termistores" o "RTD", que necesitan de la misma, bien por su constitucin interna, (como el termistor, que es una resistencia variable con la temperatura) o bien por la configuracin en que se

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

conectan (como el caso de las galgas, que se suelen montar en un puente de Wheatstone). Linealizacin - Muchos transductores, como los termopares, presentan una respuesta no lineal ante cambios lineales en los parmetros que estn siendo medidos. Aunque la linealizacin puede realizarse mediante mtodos numricos en el sistema de adquisicin de datos, suele ser una buena idea el hacer esta correccin mediante circuitera externa.

Qu es el Sensor?
Un sensor es un dispositivo capaz de detectar magnitudes fsicas o qumicas, llamadas variables de instrumentacin, y transformarlas en variables elctricas. Las variables de instrumentacin pueden ser por ejemplo: temperatura, intensidad lumnica, distancia, aceleracin, inclinacin, desplazamiento, presin, fuerza, torsin, humedad, pH, etc. Una magnitud elctrica puede ser una resistencia elctrica (como en una RTD), una capacidad elctrica (como en un sensor de humedad), una Tensin elctrica (como en un termopar), una corriente elctrica (como en un fototransistor), etc. Un sensor diferencia de un transductor en que el sensor est siempre en contacto con la variable de instrumentacin con lo que puede decirse tambin que es un dispositivo que aprovecha una de sus propiedades con el fin de adaptar la seal que mide para que la pueda interpretar otro dispositivo. Como por ejemplo el termmetro de mercurio que aprovecha la propiedad que posee el mercurio de dilatarse o contraerse por la accin de la temperatura. Un sensor tambin puede decirse que es un dispositivo que convierte una forma de energa en otra. reas de aplicacin de los sensores: Industria automotriz, Industria aeroespacial, Medicina, Industria de manufactura, Robtica, etc. Los sensores pueden estar conectados a un computador para obtener ventajas como son el acceso a una base de datos, la toma de valores desde el sensor, etc.

DESARROLLO
Una de las herramientas que nos ayudo en muchos aspectos fue LabVIEW ya que este nos ayudo a generar nuestras lneas de cdigo, nos permiti crear un ambiente de comunicacin Fsico Digital o Analgico entre el Computador y nuestro Protoboard.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Qu es LabWindows/CVI?
LabWindows/CVI es un entorno de desarrollo integrado para el lenguaje C enfocado en el desarrollo de programas de prueba, medida y control gracias a la instrumentacin virtual (en ingls, CVI es el acrnimo de C for Virtual Instrumentation). LabWindows/CVI es un producto de National Instruments. LabWindows/CVI permite concebir aplicaciones de adquisicin de datos, as como de las interfaces grficas permitiendo almacenar y analizar estos datos. Este programa es muy similar a LabVIEW con lo cual comparte las funcionalidades, pero se programa en lenguaje C. Sus intereses son: La utilizacin en lenguaje C de las funcionalidades de instrumentacin, anlisis, medida y control de Nacional Instruments, La simplificacin de desarrollo de las interfaces grficas, La presencia de ayudantes facilita la programacin de pilotos de instrumentos y de adquisiciones de datos, El acceso a todo el SDK de Windows win32 y as a una paleta ancha de posibilidades de programacin.

Este entorno de desarrollo integrado funciona bajo Windows y se lleva tambin bajo Unix. Las bibliotecas especializadas en prueba, medida y control de Nacional Instruments son tambin accesibles para la programacin en C++, C# o Visual Basic gracias a Measurement Studio.

Qu es LabVIEW?
LabVIEW es una herramienta grfica para pruebas, control y diseo mediante la programacin. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Grfico. Este programa fue creado por National Instruments para funcionar sobre mquinas MAC. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o Vis.

-Este, es usado principalmente por ingenieros y cientficos para tareas como: Adquisicin de datos y anlisis matemtico Automatizacin industrial y programacin Automatizacin Programable)

de

PACs

(Controlador

de

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Diseo de controladores: simulacin, prototipaje rpido, hardware-en-el-ciclo (HIL) y validacin Diseo embebido de micros y chips Visin artificial y control de movimiento Robtica

Programar en LabVIEW
Como se ha dicho es una herramienta grfica de programacin, esto significa que los programas no se escriben, sino que se dibujan, facilitando su comprensin. Al tener ya pre-diseados una gran cantidad de bloques, se le facilita al usuario la creacin del proyecto, con lo cual en vez de estar una gran cantidad de tiempo en programar un dispositivo/bloque, se le permite invertir mucho menos tiempo y dedicarse un poco ms en la interfaz grfica y la interaccin con el usuario final. Cada VI consta de dos partes diferenciadas: Panel Frontal:

El Panel Frontal es la interfaz con el usuario, la utilizamos para interactuar con el usuario cuando el programa se est ejecutando. Los usuarios podrn observar los datos del programa actualizados en tiempo real. En esta interfaz se definen los controles (los usamos como entradas, pueden ser botones, marcadores etc..) e indicadores (los usamos como salidas, pueden ser grficas ....). Diagrama de Bloques:

Es el programa propiamente dicho, donde se define su funcionalidad, aqu se colocan conos que realizan una determinada funcin y se interconectan (el cdigo que controla el programa --. Suele haber una tercera parte icono/conector que son los medios utilizados para conectar un VI con otros VIs.-En el panel frontal, encontraremos todo tipos de controles o indicadores, donde cada uno de estos elementos tiene asignado en el diagrama de bloques una terminal. Es decir el usuario podr disear un proyecto en el panel frontal con controles y indicadores, donde estos elementos sern las entradas y salidas que interectuaran con la terminal del VI. Para realizar el proyecto del Tiro Parablico investigamos todo relacionado a ello por eso presento una investigacin acerca de cmo visualzar, comprender, analizar y calcular un Tiro parablico...

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

TIRO PARABLICO
El tiro parablico es un ejemplo de movimiento realizado por un cuerpo en dos dimensiones o sobre un plano. Cuando lanzamos un cuerpo con una velocidad que forma un ngulo con la horizontal, ste describe una trayectoria parablica. El movimiento de un proyectil puede considerarse el resultado de componer dos movimientos simultneos e independientes entre s: uno, horizontal y uniforme; otro, vertical y uniformemente acelerado.

En esta simulacin se ha seleccionado el punto de salida como origen de coordenadas. Si la velocidad de salida es v0 y el ngulo es , tendremos que las componentes de la velocidad inicial son:

Y las propiedades cinemticas del cuerpo en cualquier instante (t) de su movimiento son:

Observa que la aceleracin no depende del tiempo (es constante), pero la velocidad y la posicin del mvil s que dependen del tiempo. En el tiro parablico son de inters la altura mxima y el alcance (o desplazamiento horizontal) conseguido.

UNIVERSIDAD POLITECNICA DE CHIAPAS La altura mxima se alcanza cuando la componente vertical vy de la velocidad se hace cero. Como vy = v0y - gt, se alcanzar la altura mxima cuando t = v0y/g. Utilizando estos datos llegars fcilmente a la conclusin de que el valor de la altura mxima es: Altura mxima (Y Max):

PROGRAMACION ESTRUCTURADA

El mvil estar avanzando horizontalmente a la velocidad constante v0x durante el tiempo de vuelo, que ser 2t (siendo t el tiempo en alcanzar la altura mxima) ya que el mvil tarda lo mismo en subir que en bajar, por lo tanto el alcance es:

Alcance Max (X Max):

Para todos los proyectiles lanzados con el mismo impulso, la altura mxima, el alcance horizontal y el tiempo estn determinados por el ngulo de salida.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Al aumentar el ngulo, el alcance horizontal X, la altura mxima y el tiempo aumentan. El alcance mximo se logra con el ngulo de 45, Con el incremento del ngulo, aumenta la altura mxima y el tiempo. Con ngulos mayores que 45 el alcance disminuye, pero la altura mxima y el tiempo siguen aumentando. Incrementado ms el ngulo, el alcance sigue disminuyendo y la altura mxima y el tiempo continan incrementndose. En este tipo de movimiento siempre el primer paso es obtener la velocidad inicial en x y en y.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

LINEA DE CODIGO "TIRO PARABOLICO"


#include <ansi_c.h> #include <NIDAQmx.h> #include "daqmxioctrl.h" #include <cvirte.h> #include <userint.h> #include "Proyecto_Tiro_Parabolico.h" static TaskHandle sal_dig; static TaskHandle DIGITAL; static uInt8 LED[2];

static int panelHandle; int main (int argc, char *argv[]) { if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */

if ((panelHandle = LoadPanel (0, "Proyecto_Tiro_Parabolico.uir", PANEL)) < 0) return -1;

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

NIDAQmx_NewPhysChanAICtrl (panelHandle, PANEL_ENTERANALOGIC, 1); -NIDAQmx_NewPhysChanDOLineCtrl (panelHandle, PANEL_OUTDIGITAL, 1); DisplayPanel (panelHandle); RunUserInterface (); DiscardPanel (panelHandle); return 0; } int CVICALLBACK panelCB (int panel, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_GOT_FOCUS: break; case EVENT_LOST_FOCUS: break; case EVENT_CLOSE: break;

UNIVERSIDAD POLITECNICA DE CHIAPAS } return 0; }

PROGRAMACION ESTRUCTURADA

int CVICALLBACK RUN (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { //A CONTINUACION DECLARE MIS VARIABLES TaskHandle entradaVoltaje; int graphx; //declaro la variable que utilizare para graficar en x char entanal [256];//variable de la entrada analgica char saldig [256]; //variable de la salida digital double angle; //variable del ngulo obtenido a partir del ngulo controlado con potenciometro double velocity; //variable de la velocidad inicial que ingresara el usuario float64 convertvoltage;//variable de conversin de voltaje a grados double graphy[20000]; //variable para graficar en y double altmax=0; //variable para calcular altura mxima float radians, gravity=9.81,vertvel=0,velhor=0, distmax=0, timemax=0, VoltToGrad=0; //se declaran las variables con las cuales obtendremos nuestras variables

UNIVERSIDAD POLITECNICA DE CHIAPAS switch (event) {

PROGRAMACION ESTRUCTURADA

//SE OBTIENEN VALORES DE ENTRADA PARA LOS CALCULOS DE TIRO PARABOLICO case EVENT_COMMIT: GetCtrlVal(panelHandle,PANEL_ENTERANALOGIC, entanal); GetCtrlVal(panelHandle,PANEL_OUTDIGITAL,saldig); GetCtrlVal(panelHandle,PANEL_ANGLE, &angle); GetCtrlVal(panelHandle,PANEL_INICVEL, &velocity); //EN ESTA PARTE SE CREA LA TAREA DE LA DAQ DAQmxCreateTask ("adquirir voltaje", &entradaVoltaje); DAQmxCreateAIVoltageChan DAQmx_Val_Volts, ""); (entradaVoltaje, entanal, "canal ai", DAQmx_Val_RSE, 1, 5.5,

DAQmxStartTask (entradaVoltaje); DAQmxReadAnalogScalarF64 (entradaVoltaje, 10.0, &convertvoltage, 0); if (convertvoltage<5) //POR LOGICA, EN LA CONVERSION SI NOS LLEGA A DAR UN ANGULO IGUAL A 90 NO HAY TIRO PARABOLICO { VoltToGrad=(convertvoltage*90)/5; SetCtrlVal(panelHandle,PANEL_ANGLE,VoltToGrad);

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

if (velocity>10) //SI SE METE UN VALOR MENOR A 10 NOS DA ERROR EL PROGRAMA { //A CONTINUACION PASAMOS CON LOS CALCULOS DE VALORES QUE OBTENDREMOS A PARTIR DE LA FORMULAS DE TIRO PARABOLICO radians=VoltToGrad*(3.1416/180); vertvel=velocity*sin(radians); velhor=velocity*cos(radians); timemax=(vertvel/gravity)*2; altmax=pow(vertvel,2)/(2*gravity); distmax=velhor*timemax; //SE IMPRIMEN RESULTADOS EN PANTALLAS, SON LOS RESULTADOS QUE OBTIENE EL USUARIO SetCtrlVal(panelHandle,PANEL_VERTVEL,vertvel); SetCtrlVal(panelHandle,PANEL_HORIZVEL,velhor); SetCtrlVal(panelHandle,PANEL_TIME,timemax); SetCtrlVal(panelHandle,PANEL_MAXDIST,distmax); SetCtrlVal(panelHandle,PANEL_MAXALT,altmax); SetCtrlVal(panelHandle,PANEL_ANGLE,radians);

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

//SE UTILIZA UN CONTADOR PARA GRAFICAR, YA QUE SE TOMAN PUNTO A PUNTO Y SE OBTIENE LA GRAFICA DE TIRO PARABOLICO for (graphx=1; graphx<=distmax;graphx++)//se empiezan a guardar los puntos a graficar { graphy[graphx]=((graphx*tan(radians))((gravity*(graphx*graphx))/(2*(velocity*velocity)*((cos(radians)*(cos(radians))))))); float64 graphy[20000]; } PlotY (panelHandle, PANEL_GRAPH, graphy, distmax, VAL_DOUBLE, VAL_FAT_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED); //A CONTINUACION CREAMOS LA LINEA DE CODIGO CON EL CUAL DETENDREMOS LA TAREA DAQmxStopTask (entradaVoltaje); DAQmxClearTask (entradaVoltaje); // A CONTINUACION SIGUEN LAS CONDICIONES PARA LOS LEDS, Y POPUPS PARA EL USUARIO EN CASO DE ALARMA if (graphx>=500){ LED[0]=1; MessagePopup("ALERTA","HA SOBREPASADO LA DISTANCIA MAXIMA"); } else {

UNIVERSIDAD POLITECNICA DE CHIAPAS LED[0]=0; } if (altmax>=250){ LED[1]=1;

PROGRAMACION ESTRUCTURADA

MessagePopup("ALERTA","HA SOBREPASADO LA ALTURA MAXIMA"); } else { LED[1]=0; } //LINEA DE CODIGO CUANDO SE PARA LA TAREA SetCtrlVal (panelHandle, PANEL_LED_ALT, LED[0]); SetCtrlVal (panelHandle, PANEL_LED_DIST, LED[1]); DAQmxCreateTask ("SALIDA_DIGITAL", &sal_dig); DAQmxCreateDOChan (sal_dig, saldig, "", DAQmx_Val_ChanForAllLines); DAQmxStartTask (sal_dig); DAQmxWriteDigitalLines (sal_dig, 1, 1, 10.0, DAQmx_Val_GroupByChannel, LED, 0, 0); DAQmxStopTask (sal_dig); DAQmxClearTask (sal_dig);

UNIVERSIDAD POLITECNICA DE CHIAPAS LED[0]=0; LED[1]=0; } else {

PROGRAMACION ESTRUCTURADA

MessagePopup ("ERROR", "NO SE PUEDEN USAR VELOCIDAD INICIAL CON VALORES MENORES A 10"); } } else { MessagePopup ("ERROR", "NO SE PUEDEN USAR ANGULOS MAYORES A 90"); } break; ProcessSystemEvents (); } return 0; }

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

int CVICALLBACK CLOSE (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0; }

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

DISEO DEL PANEL 1.- Comenzamos a agregar las diferentes herramientas que nos proporciona el programa
y que son necesarias para la realizacin del proyecto, como es la tabla donde se iba a generar la grafica:

2.- Se acomodaron nuestros botones y nuestros indicadores, se le dio color a la interfaz de usuario para hacerla mas creativa.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

3.- Se crearon los callbacks necesarios, que se utilizarian en la creacion del codigo fuente, se les dio nombre a las constantes.

4.- Una vez terminada nuestra interfaz de usuario, se creo el codigo usando la funcion Generate All Code.

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

PROBLEMAS DURANTE LA REALIZACION DEL PROYECTO


Una vez creado nuestro cdigo, vena la parte ms complicado del proyecto, que era el creacin de nuestras lneas de cdigo, nuestras declaraciones de variables, que fue un pequeo problema porque a la hora de crear las variables, se nos pasaba una letra o un signo, entonces como no coincida, a la hora de correr por primera vez el programa, ya se fueron depurando esos errores. Nuestro mayor problema, que fue el causante de que nos llevramos la materia a extraordinario, fue que utilizamos un tipo de grafica que no era, utilizamos strip chart, en vez de utilizar, graph, entonces eso causaba un error en el cdigo del programa, despus de identificar el problema, se corrigi, y quedo corregido el problema.

METODOS PARA OBTENER LAS FORMULAS DEL TIRO PARABOLICO


Para poder realizar las frmulas que nos serviran para realizar el proyecto, investigamos acerca del Tiro Parablico y pues ya teniendo las frmulas pasamos a hacer reglas de tres simples para poder realizar las conversiones de voltaje a ngulo, de ngulo a radianes. Conversin Voltaje-Angulo [ ] Conversin a radianes

DISTANCIA MAXIMA Frmula original para sacar la distancia mxima en un Tiro parablico

Como qued en cdigo ya sustituido ( ) ( )

ALTURA MAXIMA

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

Frmula original para sacar la altura mxima en un Tiro Parablico

Como qued en cdigo ya sustituido ( ( ) ( ( ) )) (( ))

PARA QUE EL GRAFICO NOS MUESTRE LA LINEA UTILIZANDO LAS FORMULAS


[] ( ( )) (( ( )) ( ( ) ( ( ) )))

IMAGENES DE LA INTERFAZ Y EL FUNCIONAMIENTO DEL PROYECTO

Fig. 1 Interfaz de usuario

UNIVERSIDAD POLITECNICA DE CHIAPAS

PROGRAMACION ESTRUCTURADA

CONCLUSIN
A lo largo de nuestra vida laboral, ejerciendo la carrera, tendremos que programar, ya sea en menor o mayor cantidad, dependiendo del trabajo, y por eso es necesario dedicarle tiempo a la programacion. Esta practica nos ayudo a entender mejor el manejo de las herramientas de diseo y programacion, y de los diversos usos que se les puede dar a estas, en este caso, que fue una pequea simulacion de tiro parabolico. Al principio, como cualquier proyecto, uno tiene dudas, muchas dudas, y para eso esta el apoyo mutuo entre compaeros, y el apoyo en libros de programacion, que con eso tambien aprendemos a investigar.

REFERENCIAS BIBLIOGRFICAS
http://es.wikipedia.org/wiki/DAQ http://es.wikipedia.org/wiki/Sensor http://es.wikipedia.org/wiki/LabVIEW http://es.wikipedia.org/wiki/LabWindowsCVI http://genesis.uag.mx/edmedia/material/fisica/movimiento8.htm

Вам также может понравиться