INICIO > Software  > > Osciloscopio >  
Osciloscopio_01.jpg
OSCILOSCOPIO VIRTUAL
  • MOTIVACIONES
  • La idea de hacer este proyecto me surge de querer realizar un osciloscopio virtual como los que podemos encontrar hoy en día en Internet pero con muchas menos funcionalidades, ya que no busco crear un osciloscopio para su uso, sino que me permita afianzarme en la programación de distintas tecnologías y la aplicación y relación de conceptos matemáticos aprendidos en la carrera.

  • PLANTEAMIENTO DEL PROYECTO
  • El planteamiento de este proyecto presenta dos retos bien diferenciados, ya que en esencia consiste en aplicar unos conceptos matemáticos en un programa que dispone de un interfaz grafico de usuario GUI;

    • Conceptos matemáticos. En primer lugar un estudio de conceptos matemáticos vistos en la carrera para el tratamiento de señales, como son la Transformada discreta de Fourier FFT y el movimiento armónico simple (MAS) que será usado para simular señales periódicas.
    • Interfaz grafico de usuario. Esta parte del programa se encarga del resto de procesos; mostrar resultados en el grafico del GUI y presentar los mandos de controles. Para ello, decido usar el lenguaje de programación C y la API de Windows para crear el GUI.
  • OBJETIVOS
  • Los objetivos que me propongo en este proyecto no son solo son los concernientes a su implementación sino que también a otros como son la actualización y ampliación de conocimientos matemáticos y de distintas tecnologías:

  • Diseño GUI con C. La decisión de usar C para codificar el software es debido a que durante la carrera los programas que he realizado en Windows usaban exclusivamente la consola de Windows, esto me despertó la curiosidad por realizar la implementación de GUI con C.
  • APIs de Windows. En la carrera he usado la API en varias asignaturas tocando conceptos como: Multitarea, eventos, semáforos, etc.
  • Codificar MAS en un ejemplo practico hecho en C.
  • Codificar en C la FFT para un uso en el software.
  • Relacionar ambos conceptos matemáticos en un ejemplo practico.
  • DESARROLLO DEL PROYECTO
  • En primer lugar como he mencionado en el apartado anterior, lo primero que hago es actualizar los conceptos matemáticos. En segundo lugar hay que plantearse la herramienta a usar para el desarrollo del programa, para ello decido usar el lenguaje C, ya que me he propuesto usar la API de Windows para controlar el GUI. Es evidente que en C# o Visual Basic seria mas fácil de reproducir el GUI, pero en esta primera versión quiero manejar el GUI con C y así quitarme esa espinita que se me quedo en la carrera.

    La arquitectura diseñada esta basada en un diseño multitarea con una programación concurrente, aunque no es necesario y se podría hacer con un diseño secuencial, pero prefiero hacerlo multitarea ya que nos independiza procesos pero en contrapartida me aumenta la complejidad del diseño pero así también practicar con la API de Windows.

  • IMÁGENES DEL DISEÑO
  • Imagen global del diseño, como se observa dispone de una pantalla de visualización, donde se muestran las señales, también esta la selección de la amplitud de las señales, la base de tiempos y en numero de puntos a mostrar. Además dispone de los indicadores de actualización de la pantalla y el de saturación de la zona de visualización, esto lo uso para indicar si hay alguna señal que sea de mayor amplitud que la que se puede visualizar con el valor que se ha seleccionado de amplitud. También se muestra un refresco del hilo principal para indicar que esta corriendo y no se ha quedado colgado en espera de alguna condición.

    Osciloscopio_01.jpg

    Imagen global de la pantalla

  • CONCLUSIONES
    • Aunque en la carrera he visto los conceptos de FFT y MAS de manera teórica y practica pero sobre el papel, la realización de este proyecto me ha permitido ampliar y actualizar mis conocimientos sobre ambos. También con este proyecto he visto la relación directa entre ambos en un ejemplo de aplicación a nivel de ingeniería como es un osciloscopio virtual.
    • También me ha servido para mejorar y ampliar conocimientos en el uso de la API para implementar procesos multihilo y demás.
    • Para la implementación de GUIs de una manera mas rápida es mejor usar lenguajes como C# o Visual Basic, ya que están orientados a crear interfaces gráficos con un mínimo esfuerzo.
  • LÍNEAS FUTURAS
  • Este proyecto, tal y como esta hoy diseñado e implementado, se presta a un gran numero de ampliaciones y mejoras, pudiendo agruparlas en dos grupos, por un lado ampliar la funcionalidad y por otro lado el paso del código a un entorno de trabajo mas cómodo para la realizacion de GUIs como son C#, Visual Basic o incluso LabView son los que conozco y manejo.

    Desde el inicio de este proyecto, algo que he tenido en cuenta y que he pre-codificado ha sido la opción de poder usar esta aplicación con un dispositivo hardware conectado al PC desde puerto serie o USB. Este nuevo hardware podría ser un nuevo proyecto diseñado exclusivamente para usar con esta aplicación, así, esto me permitiría poder evaluar el software con señales reales y no simuladas.