Generador virtual de funciones de onda predefinida y arbitraria con herramientas hardware y software Arduino y LabVIEW

Texto completo

(1)

U

NIVERSIDAD DE

V

ALLADOLID

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN

T

RABAJO

F

IN DE

M

ÁSTER

MÁSTER UNIVERSITARIO EN INVESTIGACIÓN

EN TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES

Generador virtual de funciones de onda

predefinida y arbitraria con herramientas

hardware y software ARDUINO y LABVIEW

Autor:

D. Rubén Alonso Rodríguez

Tutores:

Dr. D. Salvador Dueñas

Dr. D. Luis Alberto Bailón

(2)

1

T

ÍTULO

:

Generador virtual de funciones de

onda predefinida y arbitraria con

herramientas hardware y software

ARDUINO y LABVIEW.

A

UTOR

:

D. Rubén Alonso Rodríguez

T

UTOR

:

Dr. D. Salvador Dueñas

Dr. D. Luis Alberto Bailón

D

EPARTAMENTO

:

Electricidad y electrónica

T

RIBUNAL

P

RESIDENTE

:

Dr. D. Roberto Hornero Sánchez

V

OCAL

:

Dr. D. Ignacio de Miguel Jiménez

V

OCAL

:

Dr. D. Héctor García García

F

ECHA

:

18

DE

J

ULIO DE

2014

C

ALIFICACIÓN

:

Resumen de TFM

En este trabajo se van a tratar dos objetivos relacionados entre sí. Por un lado, este trabajo forma parte de un proyecto de creación de un completo laboratorio virtual (osciloscopio, generador de ondas, voltímetro,…) mediante las herramientas software Labview y hardware Arduino. Dentro de este proyecto, este trabajo se va a centrar en la creación de un generador virtual de funciones predefinidas y arbitrarias por la técnica de Síntesis Digital Directa (DDS). Se comparará su funcionamiento con un generador de ondas físico. Las señales generadas podrán ser ondas cuadradas, sinusoidales, señales pulsadas u otras formas de onda periódicas y arbitrarias definidas en el dominio temporal.

Por otro lado, se va a realizar un estudio de la literatura existente sobre las ventajas e inconvenientes que provocaría una sustitución de los equipos de instrumentación físicos por equipos de instrumentación virtuales en el campo de la docencia de asignaturas relacionadas con la electrónica.

Finalmente, se analizarán los resultados obtenidos tras la realización de ambas tareas y se extraerán conclusiones.

Palabras clave

(3)

2

T

ITLE

:

Predefined and arbitrary wave

function virtual generator with

hardware and software tools

ARDUINO and LABVIEW.

A

UTHOR

:

D. Rubén Alonso Rodríguez

T

UTOR

:

Dr. D. Salvador Dueñas

Dr. D. Luis Alberto Bailón

D

EPARTMENT

:

Electricity and electronic

T

RIBUNAL

P

RESIDENT

:

Dr. D. Roberto Hornero Sánchez

V

OCAL

:

Dr. D. Ignacio de Miguel Jiménez

V

OCAL

:

Dr. D. Héctor García García

D

ATE

:

18

TH

J

ULY

,

2014

Q

UALIFICATION

:

Abstract

In this paper will address two interrelated goals. On one hand, this work is part of a project to create a complete virtual laboratory (oscilloscope, waveform generator, voltmeter, ...) using the software Labview and hardware Arduino tools. Within this project, this paper will focus on the creation of a virtual predefined and arbitrary functions generator by the Direct Digital Synthesis (DDS) technique. We will compare the waves generated by virtual equipment with the waves generated by the physical function generator.

The signals generated may be square, sinusoidal or pulsed, and other periodic and arbitrary waveforms, which is define in the time domain.

On the other hand, we will make a survey of the literature on the advantages and disadvantages that would cause a hypothetical replacement of physical instrumentation equipment by virtual instrumentation equipment in the field of teaching of subjects related to electronics.

Finally, the results obtained after performing both tasks and conclusions drawn will be analyzed.

Keywords

(4)
(5)

4

Agradecimientos

Primeramente me gustaría mostrar mi agradecimiento tanto a mis tutores de TFM, Salvador Dueñas y Luis Bailón como a Helena Castán, por estar siempre pendiente de la evolución de este trabajo y por su inestimable ayuda.

También dar las gracias a mis compañeros y profesores del máster MUI-TIC por el buen ambiente que hemos tenido durante este largo año y por la dedicación tanto de unos como de otros en los problemas que iban surgiendo.

Por último, mi especial agradecimiento a mis padres, mi hermano, al resto de mi familia, amigos y novia porque siempre han estado ahí y se merecen esto y mucho más.

¡Gracias!

(6)
(7)

6

Índice de contenidos

CAPÍTULO I: Introducción y conocimientos previos ...8

1.1. Estructura del documento ... 10

1.2. Conocimientos previos ... 11

1.2.1. Conceptos básicos del muestreo analógico y reconstrucción de la señal ... 11

1.2.2. Instrumentación electrónica ... 13

1.2.3. Instrumentación virtual ... 14

1.2.4. Comparación instrumentación electrónica frente a virtual ... 16

1.2.5. Arduino... 18

1.2.6. Labview ... 20

1.2.7. Funcionamiento de un generador de ondas ... 21

CAPÍTULO II: Planteamiento del estudio ... 23

2.1. Descripción del problema ... 24

2.2. Motivación ... 25

2.3. Coste orientativo del generador de ondas virtual ... 27

2.4. Objetivos ... 28

2.5. Materiales utilizados ... 31

2.6. Metodología propuesta ... 32

CAPÍTULO III: Desarrollo del prototipo ... 34

3.1. Limitaciones del prototipo ... 35

3.2. Conexión entre Arduino y Labview ... 37

3.3. Programa en Labview ... 38

3.3.1. Onda predefinida ... 40

3.3.2. Onda arbitraria ... 41

3.4. Programa en Arduino ... 43

3.5. Generador virtual de funciones predefinidas y arbitrarias ... 44

CAPÍTULO IV: Experimentación y resultados ... 46

4.1. Comparación entre el generador de ondas virtual creado y uno físico ... 47

(8)

7

4.1.2. Onda arbitraria ... 52

4.2. Estudio sobre una posible sustitución de instrumentos físicos por virtuales ... 57

CAPÍTULO V: Conclusiones y trabajos futuros ... 59

5.1. Conclusiones ... 60

5.2. Trabajos futuros ... 63

Índice de figuras ... 66

Referencias ... 67

(9)

8

CAPÍTULO I

(10)

9

El presente Trabajo Fin de Máster surge de la idea de crear un laboratorio virtual utilizando las herramientas hardware y software Arduino y Labview. Dentro de los muchos instrumentos de medida que existen, en este proyecto se va a trabajar en la creación de un generador de ondas virtual, por motivos de viabilidad.

La instrumentación electrónica es la rama de la electrónica que se encarga del manejo de aparatos electrónicos principalmente para realizar tareas de medición. Esta rama tiene una vital importancia en procesos como la validación del funcionamiento de dispositivos electrónicos o monitorización y control de procesos.

Hoy en día, el uso de instrumentación electrónica para analizar o procesar señales está muy extendido debido al gran rendimiento que tienen y los resultados exactos y precisos que ofrecen. Ejemplos de instrumentación electrónica son los osciloscopios, generadores de ondas, voltímetros, amperímetros, etc.

Aprovechando la gran potencia de los procesadores y de los ordenadores actuales y su continuo avance, se ha empezado a desarrollar una nueva tendencia: la “instrumentación virtual”. Esto quiere decir que se están desarrollando programas software que simulen el funcionamiento de estos aparatos físicos de instrumentación, los cuales se comunican con el exterior mediante los puertos USB, RS232 o GPIB, disponibles en cualquier ordenador. [1]

Existen muchos programas de software y hardware con los que podríamos implementar instrumentos virtuales. Para el desarrollo de este proyecto, se ha elegido utilizar Labview como software y Arduino como hardware. Las razones de esta elección son el gran potencial de ambas herramientas y su reducido coste de adquisición, además de que no se han encontrado en la literatura ninguna creación de instrumentos virtuales usando estas dos herramientas.

(11)

10

1.1. Estructura del documento

En este apartado comentaremos las diferentes secciones que van a formar este documento.

Primeramente, realizaremos una introducción, explicando en qué va a consistir el trabajo que vamos a mostrar, acompañado por una serie de conceptos que hay que conocer antes de la lectura de esta memoria. Estos conceptos estarán relacionados principalmente con adquisición de datos y reconstrucción de señales, instrumentación física y virtual y un breve conocimiento de las dos herramientas que se van a utilizar: Labview y Arduino.

En el segundo capítulo comentaremos los problemas que se han detectado y que han provocado la motivación para realizar este trabajo, además de los objetivos que pretendemos cumplir. Se explicarán también cuáles son los materiales que vamos a utilizar en la realización del proyecto, el coste orientativo del generador de funciones que diseñaremos y la metodología que vamos a seguir en el diseño del generador virtual de funciones y en el posterior estudio sobre la sustitución de instrumentos físicos por virtuales.

En el tercer capítulo nos centraremos en el diseño y fabricación del generador virtual de funciones predefinidas y arbitrarias y se mostrarán y explicarán los códigos realizados tanto en Labview como en Arduino. También se comentará cómo se ha llevado a cabo la conexión entre estas dos tecnologías y las limitaciones que se han tenido durante el desarrollo del trabajo.

En el cuarto capítulo se llevarán a cabo las comparaciones entre el generador virtual de funciones que hemos desarrollado y un generador físico. Se comparará el funcionamiento de ambos tanto para la generación de ondas predefinidas como arbitrarias. Por otro lado, analizaremos la literatura existente en busca de ventajas e inconvenientes de una hipotética sustitución de los equipos de instrumentación físicos por equipos de instrumentación virtuales en el ámbito de la enseñanza de asignaturas relacionadas con la electrónica.

Por último, en el quinto capítulo, se comentarán las conclusiones extraídas tanto de las comparaciones entre el equipo virtual desarrollado en este trabajo con un generador físico de funciones, como del estudio de la literatura mencionado anteriormente.

Se incluye también un anexo que sirve como manual de instrucciones del generador virtual de funciones, en el que se explica para qué sirve cada uno de los controles o indicadores que se encontrará el usuario, y se explicará cómo se utiliza dicho instrumento.

(12)

11

1.2. Conocimientos previos

En este capítulo realizaremos una visión general del contexto en el que nace este proyecto. Haremos una breve exposición del estado del arte en el que esta englobado este trabajo, explicando conceptos referentes al muestreo analógico de la señal y su posterior reconstrucción. También se intentará dejar claros los conceptos de “instrumentación electrónica” e “instrumentación virtual” y haremos una breve explicación del funcionamiento de un generador de ondas físico y de la tecnología que usaremos para realizar el generador de ondas virtual: Arduino y Labview.

Destacaremos los aspectos importantes de estos conceptos, necesarios para la comprensión de este trabajo.

1.2.1. Conceptos básicos del muestreo analógico y reconstrucción de la señal

En este apartado explicaremos algunos de los conceptos básicos del muestreo analógico que se van a comentar más adelante y que es importante que conozcamos.

Vamos a ir enunciándolos a continuación.

 Velocidad de muestreo

La velocidad de muestreo de los datos no está directamente relacionada con el ancho de banda. Depende de la velocidad en la cual el convertidor analógico a digital convierte la señal de entrada analógica en una ristra de valores en código binario digital. Un ejemplo de una señal convertida de analógica a digital se muestra en a figura 1.

(13)

12

 Teorema de Nyquist

La velocidad de muestreo, o frecuencia de muestreo, debe ser al menos dos veces la frecuencia mayor de la señal a medir. En caso de que la frecuencia de muestreo sea menor, se producirá llamado efecto aliasing, explicado a continuación. Si la señal es muestreada a una velocidad menor que dos veces la frecuencia de Nyquist, una componente inesperada aparece en la señal muestreada. Este fenómeno se denomina “aliasing”.

Un ejemplo de este efecto se muestra en la figura 2, donde vemos que como no se cumple el teorema de Nyquist, la señal reconstruida a través de las muestras no es igual que la señal original.

Figura 2 - Ejemplo de aliasing

 DAC (digital-analog converter)

Un convertidor de señal digital a analógica o convertidor digital analógico (DAC) es un dispositivo diseñado para convertir señales digitales con datos binarios en señales de corriente o de tensión analógica. La siguiente imagen ilustra perfectamente la función de este elemento:

Figura 3 - Efecto producido por un DAC en una señal

(14)

13

1.2.2. Instrumentación electrónica

La instrumentación electrónica es el área de la tecnología que estudia los equipos realizados mediante circuitos y sistemas electrónicos, destinados a la medición, visualización, generación y conversión de señales eléctricas, así como los dispositivos o circuitos electrónicos que convierten una señal no eléctrica (temperatura, presión, etc.) en otra señal eléctrica, que suelen recibir el nombre de sensores [2].

Para el análisis y síntesis de circuitos y sistemas electrónicos es necesario medir los parámetros de las señales eléctricas presentes en diferentes puntos de los mismos o aplicar determinadas señales eléctricas en ciertos puntos que nos permitan comprobar su funcionamiento. Todo esto hace que la instrumentación electrónica sea una parte importante dentro de la electrónica y se haya incrementado el interés por ella.

Los instrumentos electrónicos se pueden clasificar en tres grupos:

- Instrumentos de medida y visualización, que son los sistemas

electrónicos que realizan la evaluación de uno o varios parámetros de una señal eléctrica y los presenta de forma gráfica, numérica o alfanumérica. Ejemplo de estos serían los osciloscopios, amperímetros o voltímetros.

- Instrumentos generadores de señales, que son sistemas electrónicos que

tienen como misión generar señales eléctricas de características determinadas. Un ejemplo sería un generador de señales.

- Instrumentos convertidores de señales, que son dispositivos que

convierten una señal eléctrica o no eléctrica, en otra señal eléctrica de unas características y rango determinados. Ejemplos serían los sensores o transductores.

Podemos observar algunos de esto equipos de instrumentación electrónica físicos en la figura 4.

(15)

14

1.2.3. Instrumentación virtual

La instrumentación virtual se podría definir como un sistema de medición, análisis y control de señales físicas con un ordenador por medio de programas software. Esta nace a partir del uso de un ordenador PC con un determinado software como forma de reemplazar a los equipos de instrumentación físicos. El concepto fue introducido en 2001 por Texas Instruments. Los instrumentos virtuales se ejecutan en un ordenador pero realizan las mismas funciones que un equipo real.

La instrumentación virtual se refiere a una poderosa aplicación de software, la cual, junto a una tarjeta electrónica, forman las funciones típicas de los instrumentos tradicionales: osciloscopios, generadores de funciones, voltímetros, etc.

El objetivo de la instrumentación virtual es sustituir y ampliar elementos "hardware" por otros "software", y para ello se emplea un código que ejecute un software específico. Este software se comunica con los dispositivos para configurarlos y leer sus medidas. En muchas ocasiones el usuario final del sistema de instrumentación sólo ve la representación gráfica de los indicadores y botones de control virtuales en la pantalla del ordenador. [3]

Sin embargo, el concepto de "instrumentación virtual" va más allá de la simple medición de corriente o voltaje. También involucra el procesamiento, análisis, almacenamiento, distribución y despliegue de los datos e información relacionados con la medición de una o varias señales específicas. Con éstas, mediante software que permita la implementación de algoritmos de control, es factible integrar y controlar complicados procesos. Es decir, el instrumento virtual no se conforma con la adquisición de la señal, sino que también involucra la interfaz hombre-máquina, las

funciones de análisis y procesamiento de señales.

Cada instrumento virtual consta de dos partes: software y hardware. Un instrumento virtual generalmente tiene un precio accesible y muchas veces mucho menor que los instrumentos tradicionales similares para una tarea de medición actual. Sin embargo, este ahorro es mucho mayor a lo largo del tiempo debido a la flexibilidad de la arquitectura de los instrumentos virtuales y la posibilidad de ampliar sus funciones.

Al no utilizar software y hardware preestablecido, ingenieros y científicos disponen de máxima flexibilidad definida por el usuario. Un instrumento tradicional proporciona tanto software como circuitos de medición embebidos en un producto con funciones finitas o funcionalidad fija utilizando el panel frontal del instrumento. Un instrumento virtual proporciona todo el software y hardware necesario para lograr la medición o tarea de control. Aunado a un instrumento virtual, ingenieros y científicos pueden ajustar la adquisición, análisis, almacenamiento, unión, y funcionalidad de presentación usando software productivo y potente.

(16)

15

(17)

16

1.2.4. Comparación instrumentación electrónica frente a virtual

Los instrumentos virtuales son definidos por el usuario mientras que los instrumentos tradicionales tienen funcionalidad fija, definida por el fabricante.

La arquitectura de los instrumentos tradicionales es muy similar a la de un instrumento virtual basado en un ordenador. Ambos requieren de microprocesadores, módulos de adquisición de datos, puertos de comunicación y capacidad de mostrar resultados. En la figura 5, recogida de la web de National Instruments [4], se observa la arquitectura de un equipo de instrumentación físico (izquierda) y un equipo de instrumentación virtual (derecha).

Figura 5 - Comparación de la arquitectura de un instrumento físico (izquierda) y uno virtual (derecha)

Como se puede observar, la arquitectura es muy similar en ambos casos, pero la del instrumento virtual goza de flexibilidad, al contrario que la del equipo virtual (lo cual se representa con esa línea discontinua). El equipo físico está gobernado por un procesador fijo, regido por un firmware. Sin embargo, el virtual lo gobierna el software, que se ejecuta sobre un ordenador. Algo similar ocurre en la interface usuario-equipo. Para el caso del físico, esta interface es fija y no se puede modificar; y para el virtual, ésta puede ser modificada a nuestro antojo. En el resto de bloques, ocurre algo similar, pero basta con explicar estos dos casos para hacernos una idea.

En definitiva, lo que diferencia y proporciona la ventaja del instrumento virtual sobre el tradicional es la flexibilidad y el hecho de que es el usuario quien modifica la funcionalidad del instrumento.

(18)

17

(19)

18

1.2.5. Arduino

Arduino [5] es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas simples y un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring.

En los últimos años, Arduino se ha convertido en una popular e importante herramienta para la construcción de diferentes proyectos relacionados con microcontroladores y electrónica en general, por ejemplo en temas de robótica, domótica o para educación, dado su fácil manejo, su facilidad de programación (similar a lenguaje C) y su gran capacidad de control electrónico, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.

Los proyectos con Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador.

Existen numerosas tarjetas Arduino, cada una con sus características propias: Uno, Duemilanove, Mega, Due, entre muchas otras, de manera que, según sea el proyecto que se pretende desarrollar, será más recomendable usar una tarjeta que otra.

Además de estas importantes ventajas, hay que destacar el bajo costo, tanto de las placas como de los diferentes complementos para ampliar sus funciones (pantallas LCD, sensores, servomotores, etc.).

Arduino es una gran herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico mediante un ordenador personal. Es una plataforma de desarrollo de computación física de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.

(20)

19

 Arduino DUE

La tarjeta que se va a utilizar en este trabajo para la realización del generador virtual de ondas será la tarjeta Arduino DUE. Es por ello que explicaremos aquí, de forma breve, algunas de sus características principales. Podemos ver su aspecto en la figura 6.

Figura 6 – Aspecto de la tarjeta Arduino DUE

Arduino DUE es una de las últimas tarjetas que la compañía Arduino ha sacado al mercado.

La fecha de su lanzamiento fue a finales de 2012 y aun no tiene muchas bibliotecas dado su corto período de vida. Es una de las tarjetas más potentes. Arduino DUE es la primera tarjeta que cuenta con dos convertidores digital-analógico (DAC) por defecto.

(21)

20

1.2.6. Labview

El software Labview, de National Instruments, es una plataforma muy utilizada en industrias de todo tipo: en la industria de test y medida, para el desarrollo de sistemas de prueba y control de instrumentación; en el campo de la automatización industrial, para la adquisición de datos, análisis, monitorización y registro, así como para el control y monitorización de procesos; en el área de visión artificial, para el desarrollo de sistemas de inspección en producción o laboratorio, etc.

En los últimos años ha crecido en nuevos campos de trabajo como simulación, diseño de control y sistemas embebidos en tiempo real.

LabVIEW es un lenguaje de programación de propósito general, como es el Lenguaje C o Basic, pero con la característica de que es totalmente gráfico. Está basado en la programación modular, lo que permite crear tareas muy complicadas a partir de módulos o sub-módulos mucho más sencillos. Además, estos sub-módulos pueden ser usados en otras tareas. LabVIEW es un lenguaje completamente gráfico, y el resultado de ello es que es totalmente parecido a un instrumento: por ello, a todos los módulos creados con LabVIEW se les llama VI (Instrumento Virtual). Cada VI consta de tres componentes:

- Un panel frontal (o Front Panel). Es la interfaz de usuario.

- Un diagrama de bloques (o Block Diagram). Contiene el código fuente

gráfico que define la funcionalidad del VI.

- Icono y conector. Identifica a cada VI, de manera que podemos utilizarlo

dentro de otro VI. Un VI dentro de otro VI recibe el nombre de subVI. Sería como una subrutina en un lenguaje de programación basado en texto.

El panel frontal se construye a base de controles e indicadores, los cuales no son más que los terminales de entrada y salida, respectivamente, del VI. Como controles podemos tener botones o ruletas, pulsadores y otros dispositivos de entrada. Como indicadores tenemos gráficas, LEDs y otros visualizadores. Los controles simulan elementos de entrada al instrumento y proporcionan datos al diagrama de bloques. Los indicadores simulan elementos de salida del instrumento y nos permiten visualizar los datos que el diagrama de bloques adquiere o genera.

El Panel Frontal es la interfaz con el usuario y, por tanto, le utilizamos para interactuar con el usuario cuando el programa se está ejecutando. Los usuarios podrán observar los datos del programa actualizados en tiempo real y podrán variar los valores de entrada sin que el instrumento deje de funcionar.

Una vez construido el panel frontal, el código se desarrolla usando unas representaciones gráficas de funciones que controlarán los objetos del panel frontal.

(22)

21

1.2.7. Funcionamiento de un generador de ondas

Un generador de funciones es un instrumento versátil que genera diferentes formas de onda cuyas frecuencias son ajustables en un amplio rango. Las salidas más frecuentes son ondas senoidales, triangulares, cuadradas y diente de sierra. Las frecuencias de estas ondas pueden ser ajustadas desde una fracción de hercios hasta varios cientos de kilo hercios. [7].

Aunque existen multitud de generadores de funciones de mayor o menor complejidad, todos incorporan ciertas funciones y controles básicos: selector de forma de onda, control de frecuencia, de amplitud, de offset, etc.

Las diferentes salidas del generador se pueden obtener al mismo tiempo. Por ejemplo, proporcionando una sola onda cuadrada para medir la linealidad de un sistema de audio, la salida en diente de sierra simultánea se puede usar para alimentar el amplificador de deflexión horizontal de un osciloscopio, con lo que se obtiene la a exhibición visual de los resultados de las mediciones.

Un generador de funciones también puede proporcionar ondas a muy bajas frecuencias.

Los generadores analógicos basan la producción de todos los tipos de ondas en la triangular. La onda triangular se produce por la carga y descarga de un condensador. Este cambio en la carga del condensador produce una variación ascendente y descendente del voltaje. A medida que el voltaje alcanza sus valores máximo y mínimo, un comparador (dispositivo electrónico que compara dos voltajes o corrientes, cambiando su salida para indicar cuál es mayor) revierte el proceso de carga y descarga del condensador. Este comparador permite también la generación de los restantes tipos de ondas. Mediante la variación de la corriente y el tamaño del condensador pueden obtenerse diferentes frecuencias.

Sin embargo los generadores digitales utilizan síntesis digital directa, DDS (Direct Digital Shyntesis), para generar todo tipo de ondas.

Generalmente, presentan las siguientes partes:

- Botón de encendido

- Una luz, que indica si el generador esta o no encendido

- Botones de función, que permiten seleccionar las diferentes funciones que el

aparato puede generar.

- Botones de rango, posibilitan la elección de la frecuencia de la onda en el

conector de salida.

- Control de frecuencia, junto con el rango, permiten el ajuste de la frecuencia en

el conector de salida.

- Control de amplitud, determina el nivel de la señal en función del voltaje de

salida.

- Botón de rango del voltaje de salida, que se encarga de controlar el rango de la

amplitud de 0 a 2 voltios en circuito abierto o de 0 a 1 voltio con una carga de 50W. Si se vuelve a presionar este botón, en circuito abierto el rango varia de 0 a 20 voltios y de 0 a 10 voltios con una carga de 500W.

(23)

22

Los circuitos de salida del generador de funciones consisten de dos amplificadores que proporcionen dos salidas simultáneas seleccionadas individualmente de cualquiera de las formas de onda.

Los generadores de ondas actuales, además de estas funciones que hemos enunciado, son capaces de generar lo que se conoce como “onda arbitraria”. Esto se refiere a que mediante la introducción de un cierto número de valores, el instrumento es capaz de generar la forma de onda “a gusto” del usuario. Esta función es muy importante para sistemas que necesitan pulsos con rampas o cualquier otra forma de onda no predefinida, que son útiles para numerosas aplicaciones como por ejemplo, para calibrar equipos o para diferentes experimentos o técnicas como la técnica CVTT [8].

(24)

23

CAPÍTULO II

(25)

24

En este capítulo describiremos los problemas con los que nos hemos encontrado y que han dado lugar a la realización de este trabajo. Analizando estos problemas, surgió una motivación por resolverlos, la cual también será explicada detalladamente a continuación.

Se explicarán los objetivos que se pretenden cumplir con la realización de este trabajo, los materiales que se van a utilizar y, por último, comentaremos la metodología que se va a seguir con el objetivo de cumplir con estos objetivos citados.

2.1.Descripción del problema

En cualquier laboratorio, centro de investigación o centro de estudios (por poner algunos ejemplos) relacionado con la tecnología, electrónica, electricidad, etc. el uso de equipos de instrumentación es fundamental. Como ya se ha comentado, su importancia es tan alta porque nos permiten medir, calcular o validar de forma muy precisa el funcionamiento de un circuito o de cualquier equipo electrónico o de parte de él.

Estos equipos de instrumentación tienen generalmente un coste muy elevado. Y si necesitamos equipos de mucha precisión o buenas prestaciones, el precio se disparará. Por poner un ejemplo, un generador de funciones actual, que permita generar ondas predefinidas y onda arbitraria, puede costar por encima de los 1000€ [9]. Y esto es sólo un ejemplo. Con los voltímetros, amperímetros, osciloscopios, etc., ocurre lo mismo. El mayor de los problemas en este sentido viene cuando queremos tener un laboratorio de medida completo (por ejemplo en el caso de un laboratorio de medida) o que queramos tener muchos equipos, por ejemplo para un laboratorio de docencia de una universidad con asignaturas referentes a la electrónica. La suma de los costes de todos los instrumentos ya sería importante. Y en estos tiempos de dificultades económicas, todo aquello que permita satisfacer las mismas necesidades a un menor precio, es una importante contribución.

Otro problema que nos encontramos es el peso y volumen. Los equipos de instrumentación son voluminosos y tienen un peso considerable. Esto supone una dificultad en el caso de que quisiéramos realizar medidas fuera del laboratorio o del espacio de trabajo, por poner un ejemplo.

(26)

25

2.2.Motivación

En el panorama que hemos descrito en el punto anterior es en el que nace la motivación de este proyecto.

Para minimizar los problemas descritos, se ha pensado en la implementación de instrumentos virtuales mediante software y hardware que permitan, por un lado, reducir los costes dedicados a su adquisición y, por otro lado, tener en un mismo ordenador, un completo laboratorio, sin pesos adicionales ni problemas de traslado.

Un ejemplo de la importancia y las ventajas que obtendríamos con el desarrollo de la instrumentación virtual se puede observar en [10].

En este trabajo nos vamos a centrar en las ventajas y los beneficios de la implantación de instrumentos virtuales en la enseñanza de materias relacionadas con la electrónica, ya sea en institutos o universidades, o en centros de investigación.

En estos lugares de docencia, los alumnos entenderían más fácilmente los conceptos y resultados teóricos si tuvieran a su disposición equipos de instrumentación electrónica con los que verificar esta teoría o resultados [11]. Volvemos a tener como problema la economía y el volumen de los equipos físicos que se explicaron en el punto anterior. Un menor coste de estos equipos, favorecería este hecho.

Desde el punto de vista pedagógico, la utilización de la instrumentación virtual, al igual que los otros sistemas de aprendizaje asistidos por ordenador, se apoyan en las teorías contemporáneas del aprendizaje y en los múltiples métodos de enseñanza que de ellos se derivan.

Definitivamente, las mejores posibilidades para aprovechar las ventajas que ofrece la instrumentación virtual se encuentran en la implementación de laboratorios. Como se ha señalado, los aparatos de instrumentación, ya sean físicos o virtuales, hacen posible a los ingenieros, profesores, investigadores y estudiantes resolver problemas de ingeniería o de las ciencias naturales. Así como una hoja de cálculo le permite a un administrador solucionar problemas de administración, la instrumentación virtual es también una solución a los problemas de costes y obsolescencia de los equipos en los laboratorios. Reemplazar los instrumentos tradicionales o físicos por instrumentos virtuales que se ejecutan en ordenadores, permitiría que las funciones de los mismos vayan a la par del desarrollo de las nuevas tecnologías en la informática, cuyos costes siguen una tendencia decreciente. Además, al ser equipos que se ejecutan en un ordenador, estos podrían actualizar sus funciones y estar siempre a la vanguardia.

Los laboratorios son un elemento clave en la formación integral y actualizada de un ingeniero. No se puede concebir un ingeniero que no haya realizado prácticas de laboratorio en su trayectoria de formación inicial. Los avances tecnológicos de los últimos años han abierto posibilidades para cambiar la estructura rígida de los laboratorios tradicionales, por una estructura flexible que se apoya en las computadoras, circuitos de acondicionamiento, hardware de adquisición de datos y software. Por todas estas razones, esta posible sustitución supone un tema relevante.

(27)

26

Por tanto, en este proyecto vamos a diseñar y desarrollar un generador de ondas lo más completo posible, con dos herramientas económicas que nos permitan solucionar el problema de los costes: Arduino y Labview (el desglose de costes lo veremos a continuación). El generador de ondas incluirá la posibilidad de que se puedan generar ondas predefinidas y ondas arbitrarias.

Una vez acabado el prototipo, se investigará sobre la posibilidad de sustitución de los generadores de ondas físicos por este diseño de generador virtual desarrollado.

Se realizará la validación de este generador virtual de funciones mediante la comparación de las ondas generadas (con las mismas características) por éste con las generadas por un generador de ondas físico, para diferentes valores de frecuencia.

Existen en la literatura varios trabajos que se centran en la creación y desarrollo de instrumentos virtuales con Labview y Arduino. Sin embargo, no se ha encontrado ninguno que utilice Labview como software y Arduino como tarjeta de adquisición de datos para la realización de elementos de medida como osciloscopios o generadores de señal. Normalmente, los trabajos en los que se desarrollan instrumentos virtuales con Labview utilizan una tarjeta de adquisición de datos más específica para el tratamiento de señal [12].

En este trabajo hemos utilizado Labview y Arduino porque son dos herramientas económicas en el ámbito de la enseñanza y porque, de esta manera, certificamos la originalidad del mismo, al no haberse encontrado ningún experimento documentado con estas herramientas.

(28)

27

2.3.Coste orientativo del generador de ondas virtual

En los puntos anteriores, se ha hablado de que uno de los problemas con los que nos encontramos es el elevado coste de adquisición de un generador de ondas físico. Pero faltaba por indicar de forma cuantitativa el coste que supondría la adquisición de un generador de ondas virtual y comprobar si sería una importante contribución.

Como hemos dicho, el ámbito en el que vamos a trabajar es la sustitución de instrumentos físicos por virtuales en la educación.

El pack de software Labview “NI LabVIEW Student Edition Software Suite”, especial para docencia e investigación, cuesta 62,95€ [14]. Sin embargo, una vez completa la aplicación, existe la posibilidad de convertir en ejecutable (.exe) el programa realizado en Labview. De esta manera, no haría falta que el ordenador que albergara este generador de ondas virtual, tuviera Labview instalado. Este ejecutable se podría instalar en cualquier ordenador con sistema operativo Windows. Sin embargo, no vamos a tener en cuenta esta cuestión y lo añadiremos como un trabajo futuro.

El coste estimado para poder disponer del generador de funciones es el que se muestra en la Tabla 1 según fabricantes [13], [14]:

Descripción Coste aproximado

Arduino DUE 43,56 €

Desarrollo 30€

Mantenimiento 20€

NI LabVIEW Student Edition Software Suite

62,95€

Tabla 2 - Tabla de costes estimado del generador virtual de funciones.

Una vez que hemos instalado el programa del generador de ondas virtual en el ordenador, necesitamos la adquisición de una tarjeta hardware Arduino DUE, que nos permitirá transmitir las señales generadas mediante el software, al exterior. Esta tarjeta, tiene un coste inferior a 50 €.

Por último están los costes de desarrollo y mantenimiento. Con cada compra se han definido unos beneficios para el desarrollador de 30€ por el desarrollo del producto, y 20€ por el mantenimiento del mismo.

(29)

28

2.4.Objetivos

Existen dos objetivos principales en este trabajo.

El primero de ellos es el diseño y desarrollo de un generador de ondas virtual, utilizando Labview y Arduino, y comparar sus características con un generador de ondas físico para comprobar si sería posible la sustitución de este instrumento virtual por el análogo físico.

El segundo objetivo, es la realización de un estudio que permita obtener las ventajas e inconvenientes de una hipotética sustitución de los equipos físicos de instrumentación por equipos virtuales, centrados principalmente en el ámbito de la docencia de asignaturas relacionadas con la electrónica.

Para poder conseguir estos objetivos, antes habrá que conseguir un cierto número de objetivos secundarios, los cuales aparecen, junto con el contexto y las contribuciones del trabajo, de forma esquemática en la figura 7 y se explican a continuación.

Primeramente comentaremos los objetivos secundarios que tienen que ver con el primer objetivo que hemos descrito: el desarrollo y verificación de funcionamiento de un generador de ondas virtual.

 Investigar la literatura y las herramientas de trabajo

Antes de comenzar con el diseño del generador de funciones virtual, deberemos conocer que existe en la literatura sobre el tema de instrumentación virtual y comprobar que lo que queremos hacer, no existe y, por tanto, podremos aportar valor añadido. Además, deberemos conocer las herramientas que vamos a utilizar para el desarrollo del mismo, que son Arduino y Labview, para sacar el máximo rendimiento posible de ellas.

 Panel de control del instrumento virtual

Se considera importante que el panel de control del generador de funciones virtual sea limpio, agradable a la vista y fácil de entender para que el usuario no tenga problemas ni dudas a la hora de utilizarlo. Como ayuda, en el Anexo I se adjuntará el manual de utilización.

 Generación de ondas predefinidas

(30)

29

(31)

30

 Generación de ondas arbitrarias

Otra de las funciones a realizar por el instrumento será la generación de ondas arbitrarias, u ondas definidas por el usuario. Mediante la introducción de los valores de tiempo y amplitud, el generador deberá ofrecernos a su salida una señal con la forma que le hemos indicado de forma.

 La señal generada pueda usarse en el exterior

La señal que hemos generado mediante el generador virtual debe poder utilizarse en el exterior mediante la tarjeta hardware Arduino. Así, podremos usar la salida de este instrumento como entrada de otros equipos o instrumentos para diferentes aplicaciones (calibraciones, ensayos, pruebas de funcionamiento, etc.).

 Validación y estudio del funcionamiento del generador virtual de funciones

desarrollado

Una vez diseñado, se realizarán varias comparaciones de las señales generadas con este instrumento y las generadas por un generador físico, con diferentes características. La señal que genere el instrumento virtual debe ser lo más parecida a la señal de referencia, que es la del instrumento físico, para posteriormente estudiar si sería posible la sustitución de uno por el otro. Ambas señales, la del instrumento físico y la del virtual, deben tener las mismas características y su representación debe ser muy similar. Si la señal es muy mala, habrá que mejorar el prototipo para que se pueda llevar a cabo dicho proceso.

Ahora comentaremos los objetivos secundarios necesarios para cumplir con el segundo objetivo, que es el de realizar un estudio que nos permita conocer si sería conveniente o no la sustitución de instrumentación física por la instrumentación virtual en el ámbito de la enseñanza de asignaturas de electrónica.

 Investigación de la literatura

Para este subobjetivo se realizará una búsqueda de investigaciones cuantitativas y cualitativas llevadas a cabo en el ámbito de la educación y se extraerán los resultados de estas investigaciones. Por otro lado, también se buscarán universidades donde se utilice instrumentación virtual para docencia de sus alumnos o en las que se hayan implantado asignaturas que traten sobre instrumentación virtual.

 Interacción con profesores o alumnos

(32)

31

2.5.Materiales utilizados

La realización de este trabajo se llevó a cabo en su totalidad en el laboratorio 10 de la Escuela Técnica Superior de Ingenieros de Telecomunicación de la Universidad de Valladolid. Los equipos utilizados son los que allí se encontraban.

El ordenador empleado para el desarrollo del generador de ondas virtual fue un ordenador portátil Samsung MP-R522.

El software que se utilizó para realizar el programa y el panel de control de interfaz máquina-usuario fue el Labview 2010 Service Pack 1.

La tarjeta Arduino utilizada para extraer las señales generadas y permitir su uso en el exterior es la tarjeta Arduino DUE [6]. Se eligió esta tarjeta de Arduino de entre las muchas que existen ya que esta es la única que tiene un convertidor DAC en una de sus salidas. Esto permite que los valores que envía Labview a Arduino, entre 0 y 255, fueran reconstruidos en una señal analógica, con la mayor resolución posible, a través de la salida con el DAC de Arduino DUE.

El generador físico de funciones con el que realizaremos las comparaciones es el PROMAX modelo GF-232. Para las pruebas de funcionamiento, se utilizó el osciloscopio OD 402C, también de la marca PROMAX.

Para la validación del funcionamiento del generador virtual, dispusimos de un osciloscopio digital AGILENT DSO-X-3104A con el que pudimos realizar de forma más precisa las comparaciones entre la señal generada por el equipo físico y la generada por el virtual desarrollado, ambas señales con las mismas características. Además nos permitió que las capturas de pantalla obtenidas, y que ilustrarán los capítulos posteriores, tuvieran mucha mejor calidad y precisión. En la figura 8 se pueden ver estos equipos.

(33)

32

2.6.Metodología propuesta

En este apartado se explicará la metodología a seguir para conseguir los objetivos enunciados anteriormente

Como tenemos dos objetivos principales, los experimentos estarán divididos en dos partes. Estas dos partes se pueden realizar de forma independiente y, una vez acabados, reunirlas para extraer las conclusiones pertinentes.

Por un lado, comenzaremos con la metodología que seguiremos en relación al desarrollo de un generador virtual de funciones predefinidas y arbitrarias. Para la realización de cualquier programa de software, hay que tener claras las etapas que se van realizar para realizarlo de forma óptima. Este conjunto de etapas se denomina “ciclo de vida del software”. Consta de un gran número de pasos a seguir, que hay que ir completando uno a uno y que, una vez finalizado, vuelve a comenzar en búsqueda de mejoras de lo que ya teníamos. Este ciclo con sus diferentes etapas se muestra en la figura 9.

Figura 9 - Ciclo de vida del software

Por tanto, seguiremos esta metodología a la hora de fabricar el generador virtual de funciones. Anteriormente ya hemos realizado las tareas de definición de necesidades y análisis de lo que necesitamos y de cómo lo vamos a hacer. En los siguientes capítulos se completarán las etapas de diseño y codificación y se realizarán las pruebas pertinentes para validar el prototipo y se indicará cómo se mantendrá y evolucionará dicho prototipo.

(34)

33

instrumento virtual con las señales (de las mismas características) de un generador de ondas virtual. Se repetirá este proceso para diferentes tipos de señal (senoidal, cuadrada, triangular y arbitraria), frecuencias y amplitudes, para hacer un estudio detallado de la comparación. Se anotarán los valores y se realizarán fotografías y vídeos que dejen constancia de su funcionamiento.

Para la parte del estudio, se analizará la literatura existente en busca de artículos o investigaciones realizadas en centros de enseñanza de electrónica (institutos, universidades) y extraeremos sus conclusiones. Además, se buscarán universidades que dispongan de laboratorios virtuales o asignaturas relacionadas con la instrumentación virtual, que aporten valor al uso de este tipo de instrumentación.

(35)

34

CAPÍTULO III

(36)

35

En este capítulo veremos cómo se ha llevado a cabo el diseño y el desarrollo del generador de funciones predefinidas y arbitrarias virtual a través del software Labview y hardware Arduino y las limitaciones con las que nos hemos encontrado. Comenzaremos comentando estas limitaciones.

3.1.Limitaciones del prototipo

Durante el desarrollo del generador de ondas virtual, se han detectado varias limitaciones que impiden que este diseño sea totalmente eficiente. Estas limitaciones se enuncian a continuación.

 Frecuencia máxima de la señal de unos 300Hz

El Arduino no nos permite obtener a la salida señales de buena calidad con frecuencias superiores a unos 300Hz aproximadamente. Esto se detectó cuando al realizar el análisis de funcionamiento del prototipo, no se obtenían buenos resultados para frecuencias superiores a la citada. Para frecuencias bajas (por ejemplo, 50Hz) el prototipo es capaz de mostrar a su salida señales de muy buena calidad y estables. Sin embargo, para frecuencias superiores a 150Hz, esta calidad empieza a decaer obteniendo, para señales cercanas a los 250Hz señales muy poco exactas.

Para la realización del muestreo de la señal, se realizarán 5 muestras por longitud de onda y una tasa de muestreo de 5000 muestras por segundo. Con estos parámetros, la duración total de la forma de onda debería ser (5000/5) 1ms.Es decir, que tendríamos que poder obtener señales de hasta 1kHz, lo cual luego comprobaremos que no es así.

La velocidad máxima de transferencia de datos entre el Labview y Arduino por puerto serie es de 115200 bits por segundo [15], que es el valor que hemos usado en este trabajo. Sin embargo, tanto Labview como Arudino tienen limitaciones en el tiempo de captura y tratamiento de muestras.

A este tiempo, hay que añadirle el tiempo de procesamiento que necesita el DAC interno de Arduino DUE para leer los valores y reconstruir la señal analógica, lo cual disminuye aun más la frecuencia.

 Limitaciones en el voltaje de la señal

(37)

36

Otra limitación en este ámbito es que el Arduino solo soporta valores hasta 3,3 voltios. Si la suma del offset y de la amplitud aplicada a la señal es mayor que 3,3 voltios, la señal saturará.

Teniendo en cuenta estas limitaciones, se explica el por qué en el panel de control del programa de Labview del generador de funciones virtual, el rango de amplitud va desde 0 hasta 2 voltios. Hay que tener en cuenta que el valor de la amplitud y el valor del offset (para convertir los valores negativos de la señal a positivos) no debe sumar más que 3,3 voltios (si lo supera, la señal se satura).

(38)

37

3.2.Conexión entre Arduino y Labview

El generador de ondas virtual se va a ejecutar en un ordenador sobre el software Labview. Una vez generada la señal analógica con los datos introducidos por el usuario en dicho software, bien sea onda predefinida o arbitraria, se van a transferir a la tarjeta Arduino para que la señal pueda ser utilizada en el exterior.

National Instruments, empresa creadora del software Labview, se ha percatado de la importancia y las posibilidades que está adquiriendo actualmente Arduino y, es por ello que ha desarrollado un kit de herramientas que permiten a Labview conectarse con Arduino de forma fácil y sencilla. Este kit se compone de “bloques” de similares características a los que incluye el software Labview pero que permiten interaccionar con las tarjetas Arduino. Este kit de herramientas se denomina “Labview Interface For Arduino” (LIFA) y es compatible con la mayoría de las tarjetas Arduino. Sin embargo, para la realización de este trabajo, se ha utilizado la tarjeta Arduino DUE, la cual es tan sumamente reciente que este kit no está adaptado a ella. La utilización del Arduino DUE, como ya se dijo anteriormente, se debe a que posee un DAC en su interior que permite reconstruir en analógica la señal digitalizada que se recoge desde Labview a la entrada del Arduino.

Dado que a día de hoy no existe LIFA compatible con Arduino DUE, se tuvo que buscar una segunda opción para conectar Arudino y Labview, y fue la conexión por puerto serie.

Mediante la correcta configuración de un puerto del ordenador por parte de ambas herramientas, fue posible transmitir datos de Labview a Arduino. La forma de enviar datos por el puerto serie desde Labview es a través de caracteres que, según la tabla ASCII, tendrán un valor entre 0 y 255. Es por ello que la señal analógica que se ha creado en el generador de ondas virtual, ha de fragmentarse en datos de 8 bits antes de enviarse por el puerto serie.

En el otro lado, Arduino deberá leer estos valores entre 0 y 255 y sacarlos por una de las dos salidas en las que tiene el convertidor digital-analógico DAC para reconstruir mediante estos valores digitales, la señal analógica que habíamos creado en el generador de ondas virtual y podamos verla en la pantalla de un osciloscopio o usarla para cualquier aplicación.

(39)

38

3.3.Programa en Labview

El diseño del software que se realizó con Labview, es el que va a llevar a cabo todas las tareas de generación de onda y servirá como interface instrumento virtual-usuario.

En este software, a través del panel frontal, el usuario podrá elegir el tipo, la frecuencia, la amplitud o el offset de la señal que desee generar, entre otras opciones que iremos explicando a lo largo de esta memoria.

Antes que nada, el usuario deberá elegir si lo que quiere es generar una señal predefinida (entre las que se encuentran senoidales, cuadradas, triangulares, diente de sierra, pulsada, ruido blanco y TTL) o arbitraria (mediante la introducción de puntos para hacer la onda a medida), eligiendo la pestaña correspondiente en la parte de arriba del panel frontal, el cual se muestra en la figura 10. En dicho panel frontal, aparecen los controladores e indicadores de frecuencia, voltaje, offset y periodo de la señal, además de una gráfica donde la onda generada aparecerá representada. Para asignar la frecuencia a la señal, se dispone de dos controladores: uno para aumentar la frecuencia

de forma rápida (coarse) y otro para afinar la elección (fine).

Figura 10 - Panel frontal del generador de funciones virtual

La onda generada podrá tener como máximo una frecuencia de 400Hz, debido a restricciones en la lectura de los datos por parte de Arduino, como se ha visto en el apartado en el que hemos comentado las limitaciones.

(40)

39

debajo de la grafica, podremos ampliar o reducir el zoom para ver la onda con más o menos detalle, o movernos por la gráfica con la herramienta de la mano. Además, al lado de estos, aparecen 3 botones que nos van a permitir exportar los datos de la gráfica a Excel, hacer una captura de la gráfica o reinicializar la gráfica. La parte de la derecha es la que cambiará cuando estemos en el modo de generación de onda predefinida o en el de onda arbitraria.

Junto a este panel frontal, tenemos el diagrama de bloques, que es donde realmente aparece el código que forma este programa en Labview. El panel frontal es el que facilita la interacción del usuario con la aplicación, y el código de la misma aparece en el diagrama de bloques, el cual se muestra en la figura 11. Los cuadros que están por fuera del cuadrado gris y en los que se puede leer “VISA”, son los que permiten la configuración del puerto serie para mantener una conexión en serie entre Arduino y Labview, como se explicó anteriormente. El puerto que se ha configurado es el COM4, por el que se enviarán al Arduino datos de 8 bits a una velocidad de 115200bps. El de la izquierda inicia la conexión y el de la derecha, la cierra.

Figura 11 – Diagrama de bloques de la aplicación en Labview para el caso de “Onda predefinida”

El cuadrado que rodea prácticamente todos los bloques es un bucle while, que

permitirá al programa ejecutarse de forma continuada hasta que pulsemos el botón de

“Stop” en el panel frontal. Las tres estructuras case que hay en la parte de abajo son las

que nos van a permitir exportar los datos a Excel, realizar una captura de la gráfica o reinicializar la gráfica.

(41)

40

3.3.1. Onda predefinida

Elegimos, por tanto, la pestaña de “Onda predefinida” en el panel frontal y su aspecto será el que hemos podido ver en la figura 10. El usuario podrá elegir el tipo de onda, la frecuencia, la amplitud y el offset. Si el tipo de señal elegido es “señal pulsada”, el botón con etiqueta “Pulsador” estará activo para generar la señal pulsada. Si el tipo de onda señalado es “Cuadrada” o “TTL”, el controlador “Anchura %” estará activo para determinar la anchura de los cuadrados. Además, podemos añadir a la señal una atenuación de entrada de 10dB con tan sólo pulsar el botón dedicad para ello.

Ahora pasamos a ver detalladamente el diagrama de bloques para esta opción. Para ello, nos fijamos inicialmente en la figura 11. Tenemos una estructura “case” que nos permitirá estar en la zona de generación de onda arbitraria o de onda predefinida, según indique el usuario en el panel frontal. Una vez dentro de este caso, tenemos todos los botones, controladores e indicadores que van a permitir indicar el tipo, frecuencia, amplitud y offset, de la onda predefinida a generar y los indicadores de frecuencia, voltaje, offset y periodo.

Como se puede observar, el programa sólo funcionará si la frecuencia introducida para la señal es menor o igual a 500Hz. La razón de esto es la limitación de Arduino que ya vimos anteriormente. En caso de que la frecuencia sea mayor de 500Hz, aparecerá un mensaje de error para que el usuario introduzca otro valor, esta vez sí entre 0 y 500Hz. Si el valor esta dentro del rango permitido, se generará la onda con las características de frecuencia, amplitud, tipo y offset que haya indicado el usuario y se podrá visualizar en la gráfica de la izquierda. Para detener la simulación, basta con pulsar el botón “Stop” situado en la parte de abajo a la derecha del panel frontal.

Ahora procederemos a explicar algunos bloques que no se han explicado aun y aparecen en el diagrama de bloques del programa.

Para la realización de este programa se han realizado varios subVIs. Un subVI es un

programa generado con Labview que puede ser utilizado dentro de otro programa de Labview. Su función es facilitar la visión del diagrama de bloques.

Los subVIs creados para este generador de ondas virtual son los que llevan por nombre “atenuación_entrada”, “generación_predefinidas”, “salida_datos_ serial” y “salida_datos_arbitraria_serial”. El primero de ellos es el que nos va a permitir aplicar una atenuación de 10dB a la señal. El segundo es el que se encarga de generar la señal según los parámetros de frecuencia, amplitud, offset y tipo que indiquemos en el panel frontal. El tercero se encarga de transformar los datos de amplitud (entre 0 y 2 voltios) en valores entre 0 y 255 (8bits) y de convertir estos números a caracteres para entregárselos a Arduino por puerto serie. Por último, el cuarto, como veremos en el apartado siguiente, como en el tercer subVI, se encargará de transformar los datos de amplitud (entre 0 y 2 voltios) en valores entre 0 y 255 para enviárselos a Arduino. En la

(42)

41

Figura 12 – Diagrama de bloques de los diferentes subVIs

Por último, nos falta explicar un bloque utilizado que viene con Labview. Su nombre es “Get XY Value”. Este recoge la gráfica generada y nos permite obtener el valor del eje Y que tiene en cada momento la onda generada. El resto de bloques

Ahora pasaremos a explicar el funcionamiento del programa en el modo de onda arbitraria.

3.3.2. Onda arbitraria

Al pulsar en el panel de control la pestaña de “Onda arbitraria”, éste tendrá el aspecto que se muestra en la figura 13.

(43)

42

En este modo, mantenemos en la izquierda del panel frontal lo mismo que en el modo de onda predefinida: la gráfica, los botones de inicializar gráfica, realizar captura, exportar a Excel, etc. Pero la parte de la derecha es completamente diferente. Sólo hay una ventana con instrucciones de cómo introducir los valores de la onda arbitraria.

Para crear la onda arbitraria, deberemos acceder al diagrama de bloques y acceder al “case” de onda arbitraria, el cual se muestra en la figura 14.

Figura 14 – Diagrama de bloques de la aplicación en Labview para el caso de ”Onda arbitraria”

Se mantiene la mayor parte de la estructura que se explicó en el caso de onda predefinida. Ahora, dentro del caso de “Onda arbitraria”, existen varios bloques nuevos. El primero de ellos es denominado “Simulate Arbitrary Signal” el cual, si hacemos

doble click sobre él, nos aparecerá una pantalla desplegable en la que podremos

introducir los valores X e Y de la forma de onda que queramos generar, siendo la X los tiempos y la Y la amplitud (siendo 0v el valor 0, y 2v el valor 255), o bien cargar un fichero .lvm con estos valores que serán leídos por este bloque.

El otro bloque que aparece, denominado “Collector”, simplemente recoge los valores que hemos introducido en el bloque anterior para poder generar la señal arbitraria.

(44)

43

3.4.Programa en Arduino

El programa creado y cargado en la tarjeta Arduino DUE es el que se muestra a continuación:

void setup(){

Serial.begin(115200); analogWriteResolution(8); pinMode(DAC0,OUTPUT); }

void loop(){

if(Serial.available()){

byte salida=Serial.read(); analogWrite(DAC0, salida); }

}

Primeramente, configuramos el puerto serie del Arduino con los mismos valores que en Labview. Iniciamos una conexión con el puerto serie a una velocidad de 15200bps y se realizarán lecturas de 8 bits, los mismos valores que indicamos en Labview. Asignaremos el pin DAC0 como la salida del Arduino DUE.

(45)

44

3.5.Generador virtual de funciones predefinidas y arbitrarias

Una vez explicados los programas desarrollados y cargados en Labview y Arduino respectivamente, y cómo se ha llevado a cabo la conexión entre ambos, ya disponemos de un generador de funciones predefinidas y arbitrarias por la técnica de síntesis digital directa [16].

El generador que hemos creado contará con las limitaciones que explicamos en el apartado 3.1. Las señales generadas no podrán tener una frecuencia mayor que 500Hz ni un voltaje superior a 2 voltios. En el punto citado se explicaron los motivos de forma teórica. Más adelante veremos estas limitaciones en la práctica.

Por tanto, el usuario se encontrará con el panel de control que hemos descrito. Seleccionará primeramente si lo que quiere generar es una señal predefinida o arbitraria. Si la elección es onda predefinida, el usuario indicará los valores de tipo, frecuencia, amplitud y offset de la onda. Si selecciona onda arbitraria, introducirá los valores de los puntos X e Y de la señal arbitraria. Labview convertirá los valores de voltaje en valores de 0 a 255 y, posteriormente, los convertirá en caracteres para transmitirse por el puerto serie a Arduino. Éste leerá estas muestras de 8 bits, reconstruirá la señal por medio de su DAC interno y la sacará por el pin DAC0.

Esta sería la explicación del funcionamiento del instrumento virtual que hemos creado. Sin embargo, falta un elemento para que la señal final sea correcta. Es un filtro paso bajo que servirá para reconstruir la señal definitivamente, suavizar la señal y eliminar los “escalones” que obtenemos a la salida del DAC. Este filtro estará formado por una resistencia de 470Ω y un condensador de 1µF. El montaje es el que se observa en la figura 15.

Figura 15 – Filtro paso bajo RC de reconstrucción

La frecuencia de corte de este filtro se calcula mediante la fórmula:

(46)

45

A la salida de este filtro paso bajo, ya tenemos la señal final del generador de ondas virtual.

Una comparación de las señales (de 50Hz) antes del filtro descrito (izquierda) y después (derecha) se muestra en la figura 16.

Figura 16 – Aspecto de la señal generada antes y después del filtro de salida

Por tanto, el esquema final del generador virtual de funciones predefinidas y arbitrarias que se ha diseñado y desarrollado en este proyecto se muestra en la figura 17.

(47)

46

CAPÍTULO IV

(48)

47

Este capítulo tendrá dos bloques diferentes. En el primero de ellos, compararemos la señal generada por nuestro generador virtual de funciones con la señal generada por un generador de funciones físico y extraeremos los resultados de esta comparación. Ambas señales tienen que tener la misma frecuencia, amplitud y tipo. Se realizará la comparación para diferentes valores de frecuencias entre 0 y 300Hz y para onda predefinida y onda arbitraria.

En la segunda parte del capítulo, se realizará un estudio con los resultados obtenidos (tanto con la creación del generador de ondas virtual como con la opinión de personas relacionadas con la electrónica) y lo investigado en la literatura sobre la implantación de instrumentación virtual en centros de enseñanza de asignaturas relacionadas con la electrónica y sobre la posible sustitución de los instrumentos físicos por estos instrumentos virtuales.

4.1.Comparación entre el generador de ondas virtual creado y uno físico

En este apartado, como ya se ha anunciado, procederemos a comparar los resultados obtenidos con el generador virtual de ondas con las generadas por un instrumento físico para así verificar su funcionamiento y extraer conclusiones a la hora de posibles mejoras y de que sea capaz de sustituir a sus homólogos físicos.

Pero antes de entrar a analizar las formas de onda que ofrecen como resultado el generador de funciones que hemos desarrollado, vamos a hacer un análisis del funcionamiento según el valor del voltaje que apliquemos a la señal. Como se explicó en el apartado correspondiente a las limitaciones, Arduino hace que la señal sature cuando la suma de la amplitud y el offset aplicados a la señal supera los 3,3 voltios. Además, Arduino no es capaz de representar valores de tensión negativos. Una muestra de estas limitaciones se puede observar en la figura 18.

(49)

48

Ahora sí estudiaremos los resultados de las ondas generadas, primero para el modo de onda predefinida y, posteriormente, para el modo de onda arbitraria.

4.1.1. Ondas predefinidas

Colocamos en un osciloscopio dos sondas, una en cada canal. Por un canal, observaremos la señal generada por el generador de ondas virtual que hemos desarrollado y explicado en el capítulo III y, en el otro canal, visualizaremos la onda generada por un generador de ondas físico comercial. Mediante el modo “Dual” del osciloscopio, podremos ver ambas señales a la vez y compararlas de forma precisa. De esta manera podremos conocer si la señal generada por el instrumento virtual desarrollado es buena o no. El material utilizado para llevar a cabo las pruebas de validación del instrumento virtual será el que se explicó en el apartado 2.5.

El montaje que se llevó a cabo para realizar estas comparaciones se muestra en la figura 19.

Figura 19 – Montaje realizado para llevar a cabo la comparación entre el generador físico y el virtual

Dadas las restricciones de las que hemos hablado anteriormente, variaremos la frecuencia en un rango entre 0 y 300Hz.

(50)

49

Observamos que las diferencias son mínimas y que no hay desajustes entre una y otra. La figura 20 es una captura de lo que obtenemos en la pantalla del osciloscopio con el modo dual, para dos señales de tipo senoidal. La señal verde es la generada por el equipo físico y la amarilla, la generada por el equipo virtual desarrollado.

Figura 20 - Captura de la comparación de dos señales senoidales de 20Hz de frecuencia.

Ahora aumentamos la frecuencia de las dos señales hasta 50Hz. Para los tres tipos, senoidal, cuadrada y triangular, las señales siguen asemejándose bastante y, por tanto, la generación creada por nuestro instrumento virtual se considera muy buena. En la figura 21 se muestran las capturas de la pantalla del osciloscopio en modo dual para señal de tipo senoidal, cuadrada y triangular, respectivamente de izquierda a derecha.

Figure

Figura 1 – Código binario de una señal digital

Figura 1

– Código binario de una señal digital p.12
Figura 4 - Equipos de instrumentación físicos. De izquierda a derecha: osciloscopio, generador de  funciones y voltímetro

Figura 4 -

Equipos de instrumentación físicos. De izquierda a derecha: osciloscopio, generador de funciones y voltímetro p.14
Figura 5 - Comparación de la arquitectura de un instrumento físico (izquierda) y uno virtual (derecha)

Figura 5 -

Comparación de la arquitectura de un instrumento físico (izquierda) y uno virtual (derecha) p.17
Tabla 1 – Características de la instrumentación virtual e instrumentación física

Tabla 1

– Características de la instrumentación virtual e instrumentación física p.18
Figura 7 - Esquema general del trabajo

Figura 7 -

Esquema general del trabajo p.30
Figura 8 - Osciloscopio OD 402C, generador físico de funciones GF-232 de PROMAX  y Osciloscopio  digital AGILENT DSO-X-3104A

Figura 8 -

Osciloscopio OD 402C, generador físico de funciones GF-232 de PROMAX y Osciloscopio digital AGILENT DSO-X-3104A p.32
Figura 9 - Ciclo de vida del software

Figura 9 -

Ciclo de vida del software p.33
Figura 10 - Panel frontal del generador de funciones virtual

Figura 10 -

Panel frontal del generador de funciones virtual p.39
Figura 11 – Diagrama de bloques de la aplicación en Labview para el caso de “Onda predefinida”

Figura 11

– Diagrama de bloques de la aplicación en Labview para el caso de “Onda predefinida” p.40
Figura 13 – Panel frontal del generador de funciones virtual en el modo “Onda arbitraria”

Figura 13

– Panel frontal del generador de funciones virtual en el modo “Onda arbitraria” p.42
Figura 14 – Diagrama de bloques de la aplicación en Labview para el caso de ”Onda arbitraria”

Figura 14

– Diagrama de bloques de la aplicación en Labview para el caso de ”Onda arbitraria” p.43
Figura 17 – Esquema del generador virtual de funciones

Figura 17

– Esquema del generador virtual de funciones p.46
Figura 16 – Aspecto de la señal generada antes y después del filtro de salida

Figura 16

– Aspecto de la señal generada antes y después del filtro de salida p.46
Figura 18 – Limitaciones: No representa valores negativos y satura a valores mayores de 3v

Figura 18

– Limitaciones: No representa valores negativos y satura a valores mayores de 3v p.48
Figura 19 – Montaje realizado para llevar a cabo la comparación entre el generador físico y el virtual

Figura 19

– Montaje realizado para llevar a cabo la comparación entre el generador físico y el virtual p.49
Figura 20 - Captura de la comparación de dos señales senoidales de 20Hz de frecuencia.

Figura 20 -

Captura de la comparación de dos señales senoidales de 20Hz de frecuencia. p.50
Figura 21 – Comparación de dos señales senoidales, cuadradas y triangulares, de 50Hz de frecuencia.

Figura 21

– Comparación de dos señales senoidales, cuadradas y triangulares, de 50Hz de frecuencia. p.50
Figura 22 – Captura de la comparación de dos señales senoidales, cuadradas y triangulares, de 100Hz de  frecuencia.

Figura 22

– Captura de la comparación de dos señales senoidales, cuadradas y triangulares, de 100Hz de frecuencia. p.51
Figura 25 – Captura de señales diente de sierra, ruido blanco, pulsada y TTL.

Figura 25

– Captura de señales diente de sierra, ruido blanco, pulsada y TTL. p.52
Figura 24 - Comparación de dos señales senoidales, cuadradas y triangulares, de 250Hz de frecuencia.

Figura 24 -

Comparación de dos señales senoidales, cuadradas y triangulares, de 250Hz de frecuencia. p.52
Figura 26 – Primera señal arbitraria generada por el generador virtual para su análisis

Figura 26

– Primera señal arbitraria generada por el generador virtual para su análisis p.53
Figura 27 – Captura del osciloscopio para la primera señal arbitraria generada. 12,5Hz

Figura 27

– Captura del osciloscopio para la primera señal arbitraria generada. 12,5Hz p.54
Figura 29 – Captura del osciloscopio para la misma forma de onda arbitraria pero con 166Hz

Figura 29

– Captura del osciloscopio para la misma forma de onda arbitraria pero con 166Hz p.55
Figura 28  - Primera señal arbitraria generada por el generador virtual para su análisis

Figura 28 -

Primera señal arbitraria generada por el generador virtual para su análisis p.55
Figura 30 - Tercera señal arbitraria generada por el generador virtual para su análisis

Figura 30 -

Tercera señal arbitraria generada por el generador virtual para su análisis p.56
Figura 31 – Captura del osciloscopio para la tercera señal arbitraria generada

Figura 31

– Captura del osciloscopio para la tercera señal arbitraria generada p.57
Tabla 3 – Ventajas e inconvenientes de la sustitución de equipos físicos por virtuales

Tabla 3

– Ventajas e inconvenientes de la sustitución de equipos físicos por virtuales p.63
Figura 32 – Diagrama del panel de control numerado

Figura 32

– Diagrama del panel de control numerado p.71
Figura 34 – Definir señal arbitraria

Figura 34

– Definir señal arbitraria p.73
Figura 33 – Diagrama de bloques para onda arbitraria

Figura 33

– Diagrama de bloques para onda arbitraria p.73