Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Adquisición de datos Comunicación de dispositivos 2do cuatrimestre 2021 Sistema de adquisición de datos (DAQ) Dispositivo de adquisición https://www.ni.com/data-acquisition/what-is/esa/ https://marceluda.github.io/python-para-fisicos/tuto/labo2/05_instrumentacion/ ProcesadorDetector https://www.ni.com/data-acquisition/what-is/esa/ https://marceluda.github.io/python-para-fisicos/tuto/labo2/05_instrumentacion/ Sensor Convierten las magnitudes físicas en señales eléctricas. Entrega una señal eléctrica analógica ( o digital) Instrumento de adquisición Dispositivo que digitaliza señales analógicas entrantes para que una PC pueda interpretarlas. Componentes principales : •Circuito de acondicionamiento de señales •Convertidor analógico-digital (ADC) Circuito de acondicionamiento de señales : manipula una señal de tal forma que sea apropiada para entrada a un ADC Detector Convierten las magnitudes físicas en señales eléctricas. Entrega una señal eléctrica analógica. Instrumento de adquisición Dispositivo que digitaliza señales analógicas entrantes para que una PC pueda interpretarlas. Componentes principales : •Circuito de acondicionamiento de señales •Convertidor analógico-digital (ADC) Conversor analógico-digital (ADC) : Convierte las señales analógicas acondicionadas en valores digitales. Realiza "muestras" periódicas de la señal a una frecuencia predefinida Interface de conexión Comunicación entre Instrumento y PC Universal Serial Bus (USB) RS-232 (vulg. puerto serie) Local Area Network (LAN) Gral. Purpose Instrumentation Bus (GPIB) Los dispositivos se conectan a una PC a través de un puerto. Cada uno de estas interfaces, además de ser físicamente distintas, tiene su propio protocolo de comunicación Procesador (PC) Desde el procesador se puede configurar el instrumento y adquirir los datos. La señal original es reconstruida desde los datos adquiridos por el software Permite procesar, visualizar y almacenar datos de medida Componentes del Software Controlador permite que el sistema operativo de la PC pueda reconocer el dispositivo y dar así a los programas acceso al instrumento para escritura y lectura. Aplicación facilita la interacción entre la PC y el usuario Permite configurar el instrumento, adquirir, analizar y presentar datos de las mediciones Eje: C++, Fortran (?), Python, Matlab, Labview, etc En general se SCPI para la sintaxis de los comandos VISA Virtual instrument software architecture SCPI Standard Commands for Programming Instruments https://en.wikipedia.org/wiki/Virtual_instrument_software_architecture https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments Amplificación: las señales de bajo voltaje deben ser amplificadas para mejorar la resolución y disminuir el ruido. Se debe tener en cuenta que el rango de no amplificación no supere el rango de entrada del hardware. (amplificadores operacionales no se estudiarán en este curso) Aislamiento: por cuestiones de seguridad la señal generada por el transductor es aislada. La señal puede contener picos de alto voltaje capaces de dañar al conversor. (Uso de transformadores) Filtrado: las señales no deseadas (“ruido”) son eliminadas seleccionando la banda de frecuencia en la que se encuentra la señal de interés (filtros pasa-banda, pasa-altos y pasabajos). Acondicionamiento Medición de múltiples señales Multiplexor Permite medir múltiples señales provenientes de diferentes entradas (sensores) y poder procesarlas con un mismo ADC Puede ser externo al Dispositivo DAQ o interno, en este caso se ubica después del acondicionamiento de la señal Multiplexor Tiempo [seg] V o lt a je [ V ] 7 6 5 4 3 2 1 0 3 bits: 23 = 8 valores Conversión Analógica-Digital(ADC) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 202122 1 10 Discretización de la señal V=f (t) {V1 ,⋯,V N} {t1 ,⋯,t N} Tiempo [seg] V o lt a je [ V ] 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 111 110 101 100 011 010 001 000 Codificación en binario Tiempo [seg] V o lt a je [ V ] 7 6 5 4 3 2 1 0 • Rango operativo Es el rango de valores de voltaje en que el ADC puede operar Resolución La resolución de un ADC es el número de bits que posee Sensibilidad (Resolucón en voltaje) 3 bits: 23 = 8 valores Determina la magnitud mínima que debe tener un cambio en la señal para ser detectado Rango operativo 2Nº bits-1 Conversión Analógica-Digital(ADC) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 111 110 101 100 011 010 001 000 Sensibilidad = LSB en voltaje (least significant bit voltaje) • 8 bits? • 10 bits? 28 = 256 (0 255, -128 127) 210 = 1024 LSB = Escala Total / (2N-1) = 5 V / 1023 = 4.9 mV Sensibilidad? Precisión? Exactitud? Repetibilidad de las mediciones Ruido 5 LSB Requiere una calibración contra patrones! Ejemplos de Resolución / Precisión Sensibilidad / Exactitud Resolución? Cantidad de estados para representar la señal analógica Mínima variación detectable Influencia de factores externos sobre la capacidad de detección Proximidad con el valor real Errores de la conversión analógica-digital(ADC) Offset Proporcionalidad linealidad Monotonicidad Depto. de Física - FCEyN - UBA - Lab. 3 – 1er cuatrimestre de 2021 Conversor Analógico-Digital (ADC) de 1 bit ADC Flash (comparativo) ADC de aproximaciones sucesivas Vin HOROWITZ, Paul; HILL, Winfield. The art of electronics. Cambridge: Cambridge University press, 2002. • Velocidad de Muestreo [Sampling Rate] Dada una señal, Cuál es la mínima frecuencia de muestreo que debo utilizar para no observar una frecuencia aparente? Teorema de Nyquist : para reconstruir adecuadamente una señal, debo emplear una frecuencia de muestreo tal que fS 2 fmax fS = 4 fgen Conversión Analógica-Digital (ADC) Depto. de Física - FCEyN - UBA - Lab. 3 – 1er cuatrimestre de 2021 - Amplitud • rango de entrada (Volts) • tipo entrada: diferencial/modo común • cantidad de canales • resolución (bits) • Sensibilidad (Volts/bit) • errores no-linealidad integral no-linealidad diferencial ganancia offset Conversores Analógico Digitales - Especificaciones -¿Qué tener en cuenta? - Temporales • tiempo de medición • frecuencia de sampleo • tipo: sampleo/promediado • ruido signal-to-noise ratio noise floor jitter -etc. - Comunicación • serie/paralelo/i2c/USB/PCI/etc. • codificación • memoria ref: Texas Instruments Application Note SBAA147B Conociendo el instrumental Analizar la terna de instrumentos que figuran a continuación (de acuerdo al número de grupo), completar el cuadro de la mejor manera posible con las especificaciones requeridas usando la hoja de datos o el manual de usuario de cada equipo, y discutir cual sería el o los equipos más adecuados (o el o los menos adecuados) de la terna para realizar la tarea mencionada. G1. Tektronix TDS1002B // NI-DAQ 6210 // Agilent HP 34401A Registrar la forma de un pulso eléctrico de unos 100 ns de duración (ancho de banda 10MHz). G2. Tektronix TDS1002B // NI-DAQ 6210 // Agilent 34970A + 34904A Medir 7 valores de temperatura de un proceso usando termocuplas (ΔV~2mV). Ancho de banda ~0.5Hz G3. Tektronix TDS1002B // NI-DAQ 6212 // Agilent HP 34401A Registrar la posición angular en la oscilación amortiguada de un péndulo. Ancho de banda ~10Hz G4. Tektronix TDS1002B // Agilent 34970A + 34904A // NI-DAQ 6210 Registrar 5 valores de voltaje correspondientes a señales eléctricas de ~1V RMS. Ancho de banda ~2kHz G5. Tektronix TDS1002B // Agilent HP 34401A // Arduino UNO Registrar la posición angular en la oscilación amortiguada de un péndulo. Ancho de banda ~10Hz G6. Tektronix TDS1002B // NI-DAQ 6210 // Agilent 34970A + 34904A Registrar 5 valores de voltaje correspondientes a señales eléctricasde ~1V RMS. Ancho de banda ~2kHz G7. Tektronix TDS1002B // Agilent HP 34401A // Arduino UNO Medir la temperatura de un proceso de enfriamiento con una termocupla (ΔV~2mV). Ancho de banda ~0.5Hz Actividad 0.1 Mediciones digitales Si el instrumento tiene pantalla, a veces con el instrumento alcanza … Comunicación con instrumentos SCPI Comunicación con instrumentos Comunicándonos con Python Usamos el paquete PyVisa (https://pyvisa.readthedocs.io/en/latest/) Ejemplo de comunicación con un instrumento osc es un objeto que representa a la comunicación con el instrumento query: enviar mensaje y leer respuesta luego ¿Qué comandos entiende VISA? write: le enviamos un mensaje al instrumento read: si el instrumento mandó un mensaje, lo leemos (si no mandó nada, obtendremos un timeout) ¿Qué comandos entiende VISA? Podemos especificar el encoding ● query_ascii_values ● query_binary_values MEASUrement:IMMed:SOUrce[1] Set or query the channel for immediate measurement Ej.: osc.write(‘MEAS:INM:SOU CH1’) MEASUrement:IMMed:TYPe Set or query the immediate measurement to be taken MEASUrement:IMMed:UNIts? Return the immediate measurement units MEASUrement:IMMed:VALue? Return the immediate measurement result http://materias.df.uba.ar/l4a2021c2/files/2021/02/TBS1000-B-EDU-TDS2000-B-C-TDS1000-B-C-EDU-TDS200-TPS2000- Programmer_EN-US-RevA.pdf ¿Qué comandos entiende VISA? LEER EL MANUAL DEL INSTRUMENTO!!!! Scripts con comandos básicos para el osciloscopio y el generador de ondas: https://nube.df.uba.ar/index.php/s/Ma6cJ4mkPxNRwxJ http://materias.df.uba.ar/l4a2021c2/files/2021/02/TBS1000-B-EDU-TDS2000-B-C-TDS1000-B-C-EDU-TDS200-TPS2000-Programmer_EN-US-RevA.pdf https://nube.df.uba.ar/index.php/s/Ma6cJ4mkPxNRwxJ “Clases” en Python (intro no exhaustiva!) • Python es un lenguaje de programación orientado a objetos Object Oriented Programming (OOP) https://docs.python.org/3/tutorial/classes.html ¿Qué significa? Que tiene funcionalidades que le dan ciertas ventajas para organizar el código. Sirve para vincular datos con comportamiento/funcionalidad (veremos ejemplos más adelante) https://docs.python.org/3/tutorial/classes.html ¿De verdad está orientado a objetos? ¡Desde el principio! O sea, tanto a como b son instancias de las clases “Entero” y “Lista” respectivamente Eso es lo que define a a y b como objetos OBJETO = INSTANCIA DE UNA CLASE Por ejemplo, puedo tener una clase “Instrumento”, que uso para crear los objetos “Osciloscopio” o “Generador” En esencia, si hay Clases, entonces está orientado a objetos Una Clase por dentro Dato (attribute o property o data o variable) “Variables” Método (method) “Funciones” • Cuando creo una clase, creo un nuevo TIPO de objeto. • Una clase es una estructura más compleja que un simple tipo de dato. • Agrupa atributos (datos y métodos) en una unidad conceptual. DATOS FUNCIONALIDAD Accedo a los atributos con un PUNTO: >> objeto.dato o bien >> objeto.metodo() Attributes Un ejemplo: ndarray Tomado de https://numpy.org/doc/stable/reference/arrays.ndarray.html#the-n-dimensional-array-ndarray https://numpy.org/doc/stable/reference/arrays.ndarray.html#the-n-dimensional-array-ndarray Cuando creo un objeto, llamo a una clase (instantiate an object). En Python, las clases suelen tener un método __init__ que es invocado por defecto en el momento en el que se crea el objeto. Eso convierte a esta función un constructor. Aplicación: adquirir V(t) del Osciloscopio La forma que ya vimos: Aplicación: adquirir V(t) del Osciloscopio La nueva (creamos una Clase TDS1002B): Acá se ve el poder de haber creado una clase específica: Está escondido cómo se implementa la comunicación para obtener los valores (ENCAPSULATION) Por ejemplo, los comandos de control, las cuentas para obtener el voltaje y el tiempo, etc. Es más fácil de leer y programar PERO require conocer la clase TDS1002B para poder usarla TDS1002B es una Clase en el archivo instrumental.py de ese directorio Aplicación: adquirir V(t) del Osciloscopio La Clase TDS1002B En la pág. de la materia (link): Scripts para control de instrumentos > python > instrumentos.py (...SIGUE...) http://materias.df.uba.ar/l4a2021c2/practicas/practica-00/ Aplicación: adquirir V(t) del Osciloscopio (...SIGUE...) Algunos conceptos extra • INHERITANCE • Cuando creo una clase dentro de una clase (“Subclass”), esta comparte los métodos de la clase madre (relación child/parent). Ejemplos: un electrón es un tipo de partícula subatómica • POLYMORPHISM • Los métodos pueden ser adaptados a cada sub clase (cambian de forma) pero conservan mucho del método original. Clase Partícula Subatómica Atributos: masa, carga, spin Método: cambiar energía Clase Quark Métodos: formar núcleo Clase Leptón Clase Sustancia Atributos: número atómico, composición Métodos: calentar Clase Gas Métodos: condensar Clase Líquido Métodos: Solidificar Resumen/glosario • Clase • Objeto • Instancia • Atributo • Método • “Instanciar” instantiate • __init__
Compartir