Reportes de Temas Avanzados Practicas serial - USB 06/12/2010 INDICE INTRODUCCION AL LABVIEW Y MIKROC.........................2 Practica 1 Prueba de Eco Comunicación serial.............3 Práctica 2 Convertidor analógico digital de 1 canal a 10 bits mediante puerto serie...............................7 Práctica 3 Convertidor analógico digital de 3 canales 8 bits con comunicación por puerto serie..................10 Práctica 4 Prueba de eco USB............................14 Práctica 5 Prueba de eco USB por medio de LabView.......29 Práctica 6 Convertidor analógico digital 1 canal, 8 bits por USB................................................. 34 Práctica 7 Convertidor analógico digital 1 canal, 10 bits por USB................................................. 40 Práctica 8. Convertidor analógico digital de 3 canales a 8 bits.................................................... 46 Práctica 9. Convertidor analógico digital 1 canal, 10 bits con filtro..............................................53 Práctica 10. Convertidor analógico digital 3 canales con guardado de datos.......................................56 Práctica 11. Control de motor reversible................59
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Reportes de Temas Avanzados
Practicas serial - USB
06/12/2010INDICE
INTRODUCCION AL LABVIEW Y MIKROC.......................................................2
Practica 1 Prueba de Eco Comunicación serial..................................................3
Práctica 2 Convertidor analógico digital de 1 canal a 10 bits mediante puerto serie.....................................................................................................................7
Práctica 3 Convertidor analógico digital de 3 canales 8 bits con comunicación por puerto serie.................................................................................................10
Práctica 4 Prueba de eco USB..........................................................................14
Práctica 5 Prueba de eco USB por medio de LabView.....................................29
Práctica 6 Convertidor analógico digital 1 canal, 8 bits por USB.......................34
Práctica 7 Convertidor analógico digital 1 canal, 10 bits por USB.....................40
Práctica 8. Convertidor analógico digital de 3 canales a 8 bits.........................46
Práctica 9. Convertidor analógico digital 1 canal, 10 bits con filtro....................53
Práctica 10. Convertidor analógico digital 3 canales con guardado de datos.. .56
Práctica 11. Control de motor reversible...........................................................59
Práctica 12. Medición de un potenciómetro y de un generador de funciones por medio de la tarjeta USB-6008...........................................................................65
Práctica 14. Control de un sensor de temperatura con indicador de correo electrónico.........................................................................................................69
INTRODUCCION AL LABVIEW Y MIKROCEl LabView es un lenguaje de programación de alto nivel, de tipo gráfico, y enfocado al uso en instrumentación. Pero como lenguaje de programación, debido a que cuenta con todas las estructuras, puede ser usado para elaborar cualquier algoritmo que se desee, en cualquier aplicación, como en análisis, telemática, juegos, manejo de textos, etc. Cada programa realizado en LabView será llamado Instrumento Virtual (VI), el cual como cualesquier otro ocupa espacio en la memoria del computador.
MikroC PRO para PIC es un compilador de C para microcontroladores PIC de microchip. Esta diseñado para el desarrollo, construcción y depuración de aplicaciones integradas basadas en el PIC.
2
Practica 1 Prueba de Eco Comunicación serialObjetivo:
Construir nuestro primer circuito con el PIC18F4550 para lograr la comunicación serial por medio de labview y mikroC.
Introduccion
La comunicación serial consiste en el envío de un bit de información de manera secuencial, ésto es, un bit a la vez y a un ritmo acordado entre el emisior y el receptor.
La comunicación serial en computadores ha seguido los estándares definidos en 1969 por el RS-232 (Recommended Standard 232) que establece niveles de voltaje, velocidad de transmisión de los datos, etc. Por ejemplo, este protocolo establece un nivel de -12v como un uno lógico y un nivel de voltaje de +12v como un cero lógico (por su parte, los microcontroladores emplean por lo general 5v como un uno lógico y 0v como un cero lógico).
Existen en la actualidad diferentes ejemplos de puertos que comunican información de manera serial (un bit a la vez). El conocido como “puerto serial” ha sido gradualmente reemplazado por el puerto USB (Universal Serial Bus) que permite mayor versatilidad en la conexión de múltiples dispositivos. Aunque en naturaleza serial, no suele referenciarse de esta manera ya que sigue sus propios estándares y no los establecidos por el RS-232.
La mayoría de los microcontroladores, entre ellos los de Microchip, poseen un puerto de comunicación serial. Para comunicarse con los computadores personales actuales que poseen únicamente puerto USB requieren de un dispositivo “traductor”.
if (UART1_Data_Ready()) { //checamos si el dato es recibido
uart_rd = UART1_Read(); //leemos el dato recibido
PORTB = uart_rd;
UART1_Write(uart_rd); //se envia dato por el UART
}
}
}
Programacion en Labview:
5
Conclusion:
En esta práctica comenzamos a usar un nuevo PIC programando en un lenguaje avanzado como el C, usando como interfaz Labview logrando la comunicación serial entre el pic y la computadora. Viendo el resultado en el control de encendido en el puertoB.
6
Práctica 2 Convertidor analógico digital de 1 canal a 10 bits mediante puerto serie.Objetivo.
Utilizando los conocimientos de la práctica anterior realizar la conversión analógica digital de 10 bits trasmitiendo los datos por comunicación serial usando programación en C y Labview.
Introducción:
Un conversor (o convertidor) analógico-digital (CAD), (o también ADC del inglés "Analog-to-Digital Converter") es un dispositivo electrónico capaz de convertir una entrada analógica de voltaje en un valor binario, Se utiliza en equipos electrónicos como ordenadores, grabadores de sonido y de vídeo, y equipos de telecomunicaciones. La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así una señal digital a la salida del mismo.
Material:
En esta práctica seguiremos utilizando el circuito anterior agregando los siguientes dispositivos Potenciómetro 10 K y 2 Leds.
Entre más nos metemos al entorno de programación, nos damos cuenta lo poderosa que es esta herramienta, también nos ayuda a conocer más el lenguaje de programación en C como ser capaces de diseñar una tarjeta adquiridora de datos para Labview.
9
Práctica 3 Convertidor analógico digital de 3 canales 8 bits con comunicación por puerto serie.Objetivo.
Ahora que ya sabemos hacer la conversión y mandar los datos por puerto serie, ahora se deberá de elaborar 3 convertidores a 8 bit, para ver el desempeño del PIC.
Introducción.
Un CAD muestrea una señal analógica y la convierte en un valor digital de 'n' bits. Usualmente será necesario acondicionar la señal de entrada del convertidor A-D, bien sea atenuando bien sea amplificándola.
Este muestreo está definido por la función de transferencia. En la siguiente figura se muestra una función de transferencia ideal de un convertidor de 8 bits de precisión.
Materiales:
Potenciómetros de 10 kilo con el circuito anterior
Diagrama:
10
Código en C.
char uart_rd, uart_rd1, uart_rd2;
unsigned int temp_res, temp_res1, temp_res2;
unsigned int uart_wr, uart_wr1, uart_wr2;
void main() {
TRISA = 0XFF;
TRISB = 0;
UART1_Init(9600);
Delay_ms(100);
while (1) {
if (UART1_Data_Ready()) {
temp_res = ADC_read(1);
uart_rd = UART1_Read();
if (uart_rd==64){
uart_wr = temp_res>> 2;
UART1_Write(uart_wr);
}
Delay_ms(7);
temp_res1 = ADC_read(2);
uart_rd1 = UART1_Read();
if (uart_rd1==65){
uart_wr1 = temp_res1>> 2;
UART1_Write(uart_wr1);
}
Delay_ms(7);
temp_res2 = ADC_read(3);
11
uart_rd2 = UART1_Read();
if (uart_rd2==69){
uart_wr2 = temp_res2>> 2;
PORTB=uart_wr2;
UART1_Write(uart_wr2);
}
Delay_ms(7);
}
}
}
Programacion en Labview:
12
Conclusión:
Como podemos ver cada convertidor tiene su propia respuesta, y esto lo logramos con la programación en C, esto se puede ver en las llaves en cada lectura. Labview nos ayuda mucho en la construcción de estas prácticas.
13
Práctica 4 Prueba de eco USB.Objetivo.
Ahora pasaremos a otro protocolo de comunicación, que en la actualidad es uno de los mas usados, en esta practica comenzaremos a profundizar la programación para lograr la comunicación USB mediante el PIC y la computadora.
Introducción.
El USB o Universal Serial Bus es una interfaz para la transmisión serie de datos y distribución de energía desarrollado por empresas líderes del sector de las telecomunicaciones y de los ordenadores y que ha sido introducida en el mercado de los PC´s y periféricos para mejorar las lentas interfaces serie (RS-232) y paralelo. Provee una mayor velocidad de transferencia (de hasta 100 veces más rápido) comparado con el puerto Paralelo de 25-pin y el Serial DB-9, DB-25, RS-232 que son los puertos que se encuentran en la mayoría de los computadores. Tenía en un principio como objetivo el conectar periféricos relativamente lentos (ratones, impresoras, cámaras digitales, unidades ZIP, etc.) de una forma realmente sencilla, rápida y basada en comunicaciones serie, aunque por sus características también podía conectarse hasta discos duros.
ConfigDescr_wTotalLength, 0, // wTotalLength - Total length of this config. descriptor plus the interface and endpoint descriptors that are part of the configuration.
0x00, 0, // ( high byte)
0x01, 0, // bNumInterfaces - Number of interfaces
0x01, 0, // bConfigurationValue - Configuration Value
0x00, 0, // iConfiguration - String Index for this configuration ( None )
Desde MikroC verificar si el dispositivo tiene comunicación con la computadora.
Conclusión:
Al desarrollar la práctica nos damos cuenta la aplicación que se le puede dar a esta comunicación, como también nos muestra la necesidad de crear driver para probar nuestro primer diseño lo cual veremos en la siguiente practica.
28
Práctica 5 Prueba de eco USB por medio de LabView.Objetivo:
Después de los conocimientos adquiridos hasta ahora, ahora utilizaremos Labview para realizar mayores aplicaciones utilizando el protocolo USB.
Introducción:
Ahora será necesario crear nuestro propio driver para poder usar a nuestro PIC como interfaz, usando labview para realizar adquisiciones de datos u otra aplicación que se le quiera dar, esto es debido, a que se trabaja con un protocolo de comunicación avanzada.
Hardware:
La misma configuración a la practica anterior
Código en C:
El archivo de código principal sigue siendo el mismo.
El archivo fuente si cambia.
Hay que modificar:
ID vendor
ID product
Mensaje de dispositivo
Los cuales nos ayudaran a la creación del driver.
Creación del controlador.
Acceder al Driver Wizard que es un complemento de LabView. Se encuentra en el folder VISA y posteriormente Driver Wizard.
De entre las opciones que inmediatamente aparecen, elegir USB.
29
Cambiar el ID vendor y el ID product; POR LOS MISMOS QUE HEMOS CAMBIADO EN NUESTRO ARCHIVO FUENTE Y QUE HEMOS YA QUEMADO EN EL PIC.
30
Si se quiere, cambiar el fabricante y el modelo del dispositivo, para crear un driver más personalizado.
31
Crearlo e instalarlo, una vez hecho esto, conectamos el dispositivo y en donde la computadora lo reconozca, actualizamos el controlador por el nuevo que acabamos de crear.
Verificar: Cuando el dispositivo deje de ser HID y pase a Dispositivo de National Instrumenst, significa que hemos hecho el proceso de manera correcta.
Programación en Labview:
32
Conclusion:
Ahora hemos creado el driver que nos ayudara a la elaboración de las siguientes practicas, con esto y el programa de ECO hemos dado un paso a la programación con USB.
33
Práctica 6 Convertidor analógico digital 1 canal, 8 bits por USB.Objetivo.
Una vez teniendo los conocimientos de programación como en C y en labview, nuestra próxima escena será repetir las practicas de protocolo serie ahora con el protocolo usb.
Introducción.
Hay que recordar que la configuración del convertidor en MIKROC es bastante sencilla, ahora teniendo esa topología en mente y uniéndola con la prueba de eco USB obtendremos una adquisición de datos analógicos bastante fiel y rápida. Finalmente cabe mencionar que el tamaño del convertidor es de 10 bits, y necesitamos solo la parte mas alta ya que si no, obtendremos una señal que re circulará en los mismos valores 4 veces.
Materiales:
Circuito de la practica 4
Potenciómetro de 10Kohms
Diagrama:
Realizar el circuito de la practica 4 conectando los dispositivos de adquisición como en la práctica del convertidor.
Código C
Programa principal.
/*
* Project name:
HIDtest2 (USB HID Read & Write Test)
* Copyright:
(c) MikroElektronika, 2005-2008
* Revision History:
20050502:
34
- initial release;
* Description:
This example establishes connection with the HID terminal that is active
on the PC. Upon connection establishment, the HID Device Name will appear
in the respective window. The character that user sends to PIC from the HID
Ahora vemos un mejor resultado con el muestreo de nuestros datos adquiridos del potenciómetro, eso se debe al protocolo de comunicación, con esto podemos ver la practicidad del USB.
39
Práctica 7 Convertidor analógico digital 1 canal, 10 bits por USB.Objetivo:
Realizaremos la misma práctica de conversión a 10 bits realizando la comunicación USB en vez de la serial.
Introducción:
Vimos la facilidad de pasar de un protocolo a otro, gracias a la ayuda del lenguaje C y por la herramienta Labview, ahora seguimos nuestro paso realizando la práctica de convertidor analógico digital a 10 bits.
Material:
El mismo circuito de la practica 6 agregando dos leds mas para ver la conversión a 10 bits.
Diagrama.
La misma conexión de la practica anterior solo agregando dos leds mas como en la practica del conversor comunicación serial.
Código en C.
/*
* Project name:
HIDtest2 (USB HID Read & Write Test)
* Copyright:
(c) MikroElektronika, 2005-2008
* Revision History:
20050502:
- initial release;
* Description:
This example establishes connection with the HID terminal that is active
on the PC. Upon connection establishment, the HID Device Name will appear
in the respective window. The character that user sends to PIC from the HID
La conversión a 10 bits nos da mejor respuesta debido a la resolución. Lo que se observo en la practica fueron perturbaciones debido al ruido entregado del mismo potenciómetro.
45
Práctica 8. Convertidor analógico digital de 3 canales a 8 bits.Objetivo.
Profundizar mas en el protocolo USB usando lenguaje C y la herramienta Labview para realizar un manejo de mayor cantidad de datos.
Introducción.
Llevaremos a la práctica los conocimientos obtenidos al programar el protocolo serie, ahora en un protocolo más rápido y eficaz.
Materiales:
Realizar las conexiones de la práctica de comunicación serie convertidor analógico conectando para realizar la comunicación serie como en la primer practica.
Código en C.
/*
* Project name:
HIDtest2 (USB HID Read & Write Test)
* Copyright:
(c) MikroElektronika, 2005-2008
* Revision History:
20050502:
- initial release;
* Description:
This example establishes connection with the HID terminal that is active
on the PC. Upon connection establishment, the HID Device Name will appear
in the respective window. The character that user sends to PIC from the HID
Podemos ver la cantidad de datos y la velocidad con la cual se puede trabajar con el protocolo USB.
52
Práctica 9. Convertidor analógico digital 1 canal, 10 bits con filtro.Objetivo:
Ahora vamos a introducir un filtro para obtener una mejor respuesta a la señal de salida de nuestro convertidor de 10 bits, el filtro se trabajara en labview.
Introducción:
Como pudimos ver en la respuesta de la señal entrega por nuestro potenciómetro obtuvimos ruido, ahora nuestro propósito es eliminar ese ruido utilizando un filtro para lograr una mejor fidelidad.
Material:
Circuito de práctica 7
Diagrama:
El circuito se usara sin cambios.
Código en C.
También usaremos el mismo código que en la práctica 7.
Programación en Labview:
53
54
Conclusión:
Al llevar a cabo esta práctica podemos ver el cambio entre la señal de entrada en la práctica anterior a la actual esto gracias al filtro. Nos damos cuenta que un filtro no en necesariamente colocar un capacitor y una resistencia o usando opam, sino que también lo podemos realizar mediante software.
55
Práctica 10. Convertidor analógico digital 3 canales con guardado de datos.Objetivo.
Ahora sacaremos una de las muchas funciones de Labview para ir completando nuestras prácticas y así obtener mayor conocimiento en la programación.
Introducción.
Agregar esta característica a la tarjeta es importante, ya que los valores de los sensores pueden ser guardados en un archivo y así ser revisados más tarde.
No sólo eso, también podemos hacer operaciones, promedios, filtros y todo el análisis que se necesite y lo hacemos con valores muy exactos, continuos y fieles.
Material:
Circuito de práctica 8.
Diagrama:
Seguiremos usando el armado del circuito anterior
Código en C.
Seguiremos usando el mismo código de programación.
Programación en Labview:
56
57
Conclusión:
Usamos una herramienta de Labview para guardar los datos obtenidos de la medición, así vamos conociendo mas nuestra interfaz.
58
Práctica 11. Control de motor reversible.Objetivo.
Usando los conocimientos obtenidos hasta el momento para realizar el control de un motor usando lógica PLC.
Introducción.
Usar la metodología de programación de escalera para lograr el giro del motor.
Material:
Circuito práctica 5.
LM293B
Motor de corriente directa a 5volts.
Push Button 3
1 Fusible.
Código en C.
/*
* Project name:
HIDtest2 (USB HID Read & Write Test)
* Copyright:
(c) MikroElektronika, 2005-2008
* Revision History:
20050502:
- initial release;
* Description:
This example establishes connection with the HID terminal that is active
on the PC. Upon connection establishment, the HID Device Name will appear
in the respective window. The character that user sends to PIC from the HID
Podemos ver lo poderoso que es saber usar una herramienta como el Labview para poder controlar un motor usando la lógica de escalera, claro este gracias a acoplar al pic con un programa en lenguaje c usando mikroc.
64
Práctica 12. Medición de un potenciómetro y de un generador de funciones por medio de la tarjeta USB-6008.Objetivo.
Aprender a usar una nueva interfaz para conocer la diferencia de programación asi como todas las utilidades de la tarjeta.
Introducción.
Las tarjetas DAQ NI USB-6008 y NI USB-6009 tienen capacidades multifunción con ocho canales de entrada analógica 12 ó 14 bits, dos salidas analógicas, 12 líneas E/S digitales y un contador. Ambos dispositivos funcionan con la corriente del bus USB así que no necesitan una fuente de energía externa para trabajar. Incluyen terminales de tornillo para extraíbles para conectarse por señal directa, una referencia de tensión de abordo para suministrar energía a dispositivos y sensores externos, una capa diseñada en cuatro capas para reducir el ruido y aumentar la precisión, así como para proteger contra sobretensión en las líneas de entrada analógica de hasta ±35 V.
Material:
USB-6008
Potenciómetro
Generador de funciones.
Diagrama:
Colocaremos la salida del potenciómetro a la salida AI0 y lo alimentaremos con la fuente incluida en la tarjeta. El generador de funciones entrara en AI1+ y AI1- para usar el modo diferencial.
Programacion en Labview:
65
Conclusion:
Conocer las interfaces realizadas por national instruments y ver la diferencia de practicidad entre la daq profesional o una hecha por nosotros.
66
Práctica 13. Frecuencímetro.Objetivo.
Con la tarjeta de National construir un dispositivo capaz de medir la frecuencia de la señal de entrada.
Introducción.
Un frecuencímetro es un instrumento que sirve para medir la frecuencia, contando el número de repeticiones de una onda en un intervalo de tiempo, mediante el uso de un contador que acumula el número de periodos. Dado que la frecuencia se define como el número de eventos de una clase particular ocurridos en un período, es generalmente sencilla su medida.Hardware.
Materiales.
USB 6008
Generador de funciones.
Diagrama.
Conectaremos el generador de funciones a la entrada diferencial AI1.
Vemos la facilidad de procesar una señal con la ayuda de la tarjeta USB 6008 realizando un frecuencímetro acercándonos al comportamiento de un osciloscopio.
68
Práctica 14. Control de un sensor de temperatura con indicador de correo electrónico.Objetivo:
Diseñar y construir un sistema telemétrico con el fin de monitorear la temperatura, checando los datos obtenidos, si el dato es mayor a la temperatura que se exponga enviara un correo avisando que se a llegado al límite y parara el proceso.
Introducción.
En esta práctica veremos otra aplicación de Labview, la cual es poder mandar un correo a un servidor.
Material:
USB-6008
LM35
Diagrama:
Alimentar el sensor con la tarjeta USB-6008
La salida conectarla a AI0, en modo SEF.
Block Diagram
69
Conclusión:
Vemos la facilidad de hacer un sistema telemétrico usando la interfaz USB 6008 y la herramienta de Labview para censar la temperatura y mandar un correo con los datos obtenidos en la medición.