14
SADE en C# SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita el manejo de la tarjeta Symbhia mediante comandos en lenguaje de alto nivel. En el siguiente diagrama se muestran los recursos con los que cuenta SADE. Descripción: SW: Se puede obtener una lectura de los switches de la tarjeta. LED: Podemos mandar información a los LEDs. IO PIN: SADE cuenta con 13 pines que se pueden configurar como entrada, salida e inclusive como PWM. BiPORT: Puerto bidireccional de 8 bits que se puede configurar como entrada o salida. I2C: Protocolo de comunicación I2C para dispositivos que lo requieran. RS232 (PC): La tarjeta Symbhia cuenta con un convertidor USB-RS232 por lo que podemos utilizar los puertos COM de nuestra PC y trabajar con velocidades de transmisión de hasta 3 Megabaudios.

SADE en C# · SADE (Sistema de Adquisición de Datos flexiblE ) ... RS232 (PC): La tarjeta Symbhia cuenta con un convertidor USB-RS232 por lo que podemos utilizar los

Embed Size (px)

Citation preview

SADE en C#

SADE (Sistema de Adquisición de Datos flexiblE ) es la aplicación de INTESC la cual facilita elmanejo de la tarjeta Symbhia mediante comandos en lenguaje de alto nivel. En el siguiente diagramase muestran los recursos con los que cuenta SADE.

Descripción:

SW: Se puede obtener una lectura de los switches de la tarjeta.

LED: Podemos mandar información a los LEDs.

IO PIN: SADE cuenta con 13 pines que se pueden configurar como entrada, salida e inclusive comoPWM.

BiPORT: Puerto bidireccional de 8 bits que se puede configurar como entrada o salida.

I2C: Protocolo de comunicación I2C para dispositivos que lo requieran.

RS232 (PC): La tarjeta Symbhia cuenta con un convertidor USB-RS232 por lo que podemos utilizar lospuertos COM de nuestra PC y trabajar con velocidades de transmisión de hasta 3 Megabaudios.

RS232 (SADE): Protocolo RS232 para utilizarlo con dispositivos externos como por ejemplo un módulobluetooth HC-05, a diferencia del RS232 (PC) con este recurso trabajamos a velocidades máslentas ya que está configurado para trabajar a 9600 baudios. También cuenta con un pin parautilizarlo como interrupción que indica cuando se ha hecho una recepción, es muy útil si queremos tener más control al realizar la comunicación.

Symbhia también cuenta con un PSoC (System on Chip) que nos permite hacer uso de sus recursospara ampliar la utilidad de SADE, por lo que podemos utilizar los siguientes recursos:

ADC – ADC CHAN: Podemos hacer conversiones analógico-digital, en los 4 canales disponibles en elPsoC.

DAC: También se pueden realizar conversiones digital-analógico.

La siguiente imagen muestra la ubicación de cada recurso.

¿Qué es C#?

C# un lenguaje de programación orientado a objetos que se deriva de C y C++ pero mucho más simple y moderno ya que simplifica el manejo de clases, namespaces y métodos.

C# es un lenguaje sensible a mayúsculas y minúsculas, por lo que no es lo mismo “HolaMundo”que “holamundo”.

Algunos conceptos básicos.

NameSpaceAsí se le denomina al espacio que organiza las clases y otros tipos de estructuras de manera

jerárquica, su función es facilitar el uso de las clases.

ClasesUna clase es una plantilla para un objeto, quiere decir que contiene las operaciones que dicho

objeto puede realizar, además define un valor y su estado.

Evento o MétodoUn evento o método es un conjunto de instrucciones a las cuales se les ha asignado un nombre

de manera que puedas ejecutarlas de manera fácil usando sólo su nombre. [*]

Puedes obtener la versión libre de Visual Studio para programar utilizando C# desde la página oficial:https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

[*] Microsoft. 2015. Visual Studio C#.(Disponible en: https://msdn.microsoft.com/es-mx/library/kx37x362.aspx Consultado el: 20 de Enero de 2016)

Creando un proyecto en C#

Al crear un nuevo proyecto te aparecerán los diferentes tipos de aplicaciones que puedes crear,desde aplicaciones de consola, librerías hasta aplicaciones con formato.

Por el momento solo crearemos aplicaciones tipo “Windows Forms Application “ utilizando laversión .NET Framework 4.5.2, de preferencia nombra a tu aplicación Main.

Estas son las algunas secciones más importantes:

Herramientas de aplicación: Son todos los objetos que se pueden agregar a nuestra aplicación, comobotones, menús desplegables, etiquetas, gráficas, etc.

Ejecutar aplicación: Depura, compila y ejecuta el programa, los errores se mostrarán en la consola.Visualización de clases: En esta parte podemos ver todos los archivos, librerías y clases que componen nuestra aplicación.

Consola: Se muestra los progresos de ejecución de la aplicación además de mostrar los errores de sintaxis y de compilación.

Propiedades y métodos del objeto: Al seleccionar un objeto podemos acceder a sus propiedades y asus métodos, las propiedades se pueden modificar y los métodos se utilizan para controlar dicho objeto.

Herramientas deaplicación

EjecutarAplicación

Visualización declases

Vista previa dela aplicación

Consola Propiedades y métodosdel objeto

Agregar un objeto.

Para agregar un objeto de la barra de herramientas a la aplicación solamente tenemos que arrastrarlo y posicionarlo en cualquier parte de nuestra ventana en la vista previa.

Código Fuente.

Para acceder al código fuente de nuestra aplicación basta con presionar F7 y si queremos agre-gar un evento damos doble clic sobre el objeto, por ejemplo para agregar un evento de un botón, da-mos doble clic sobre el botón.

Métodos SADE

Para poder utilizar SADE mediante comandos debes agregar la librería LibMetodosSADE.dll a tuproyecto Main, para eso nos vamos a la parte de visualización de clases, damos clic derecho en la car-peta principal y seleccionamos Add Reference.

Se nos abrirá una ventana (Reference Manager), damos clic en el botón Browse, buscamos en nuestra PC donde tengamos guardada la librería y la agregamos. Damos clic en OK.

Para asegurarnos que la librería se agregó correctamente podemos expandir la carpeta ProjectReferences y debe aparecer dentro de esta carpeta.

Ahora dentro del código fuente crearemos un objeto que apunte a la clase MetodosSADE quese encuentra dentro de la librería y que contiene todos los métodos que dispone SADE, para eso aña-dimos a LibMetodosSADE en el encabezado de nuestro código escribiendo using LibMetodosSade;

Y después declaramos al objeto que llamaremos comando de tipo público para poder utilizarloen otras clases.

Ahora podemos mandar a llamar un método de SADE mediante el objeto comando. Se puededesplegar un menú de todos los métodos escribiendo “comando” + “.” y después presionamosCTRL+ESPACIO.

NOTA: También se muestran los pines que disponemos para utilizarlos como entrada, salida o PWM.

Los métodos disponibles son:

1) AbrirPuertoSADE(string NombrePuerto)

Con este método podemos abrir el puerto únicamente colocando el nombre del puerto COM al queestá conectada nuestra tarjeta Symbhia, también configura el puerto a las necesidades de SADE porlo que ya no es necesario configurar velocidad de transmisión, bit de paro, etc.

comando.AbrirPuertoSADE("COM4");//Configuramos y abrimos el puerto COM4

2) LEDs(byte Valor_LEDs)

Método que se utiliza para mandar un dato de 8 bits para que se muestre en los LEDs de la tarjeta.

byte Valor_LEDs = 0xAA;//Dato en hexadecimal a mostrar en los LEDS.comando.LEDs(Valor_LEDs);//Mandamos el dato a los LEDs.

3) SW()

Utilizamos este método para hacer una lectura de los switches de la tarjeta, este método devuelve unbyte con la información leída.

byte Valor_SW = comando.SW();/*Leemos los switches y guardamos la informa ción en "Valor_SW" */

4) Pin_In(byte PinFPGA)

Selecciona y convierte un pin de la tarjeta como entrada. Devuelve un byte con dos posibles valores: 0x00 y 0x01.

PINES: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

byte Valor_Pin = comando.Pin_In(comando.A3);/*Leemos el pin A3 y guardamos el dato en Valor_Pin*/

5) Pin_Out(byte PinFPGA, bool Valor)

Se nombra el pin de la tarjeta y lo convierte como salida, cuando Valor = true se manda un '1' lógicoy Valor = false se manda un '0' lógico.

PINES: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

comando.Pin_Out(comando.G1,true);//Mandamos un '1' lógico a través del pin G1comando.Pin_Out(comando.G1, false);//Mandamos un '0' lógico a través del pin G1

6) PWM(int PeriodoPWM, int CicloPWM, byte PinFPGA)

Con este método utilizamos como PWM uno de los pines de la tarjeta Symbhia. Sólo se deben especi-ficar los parámetros que se encuentran dentro de los paréntesis. El pin seleccionado quedará funcio-nando como PWM hasta que no se le asigne una nueva función.

PINES:G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.

int periodo = 10000; //Periodo del PWM (200 us)int ciclo = 100; //Ciclo de trabajo del PWM (2 us)

comando.PWM(periodo, ciclo, comando.G1); /*Seleccionamos el pin G1 de ltarjeta para utilizarlo como PWM */

Fórmulas:PeriodoPWM = (Tiempo_periodo) * (50,000,000)CicloPWM = (Tiempo_ciclo_trabajo) * (50,000,00)

7) BiPort_In()

Lee un byte del puerto de 8 bits disponible. Este método devuelve un byte con la información.

byte v_puerto = comando.BiPort_In(); /* Leemos el puerto y el dato lo guardamos en “v_puerto” */

8) BiPort_Out(byte Valor_BiPort)

Manda byte al puerto de 8 bits disponible.

byte dato = 0x55; //Dato a mandarcomando.BiPort_Out(dato); //Mandamos a “dato” en el puerto

9) ADC(int Canal)

Método que se utiliza para trabajar con el ADC del PSoC seleccionando uno de los cuatro canalesanalógicos disponibles, dentro de los paréntesis se colocará el canal a usar poniendo el número del1-4. Una vez que se ha seleccionado el canal, siempre devolverá un byte con el valor de la conversión.

byte valor_adc = comando.ADC(1); /*Seleccionamos el canal analógico 1 y elvalor que devuelve lo guardamos en la variable tipo byte“valor_adc”*/

comando.LEDs(valor_adc); //Mandamos a los LEDs el valor leido por el ADC

NOTA: Es importante mandar a tierra los canales que no se utilicen para evitar lecturas erróneas.

10) DAC(byte ValorDAC)

Método para utilizar el convertidor Digital/analógico del PSoC.

byte valor_digital = 0xff; //Valor que convertiremos a analógicocomando.DAC(valor_digital); //Hacemos la conversión D/A

Fórmula para utilizar el DAC:

Voltaje de salida = Vcc – (Valor_digital*0.011)

donde: Voltaje de salida – cuyo rango va de 400mV a Vcc yValor digital – cuyo rango va de 0 a 255

11) I2C_Write(byte Slave_Address, byte Reg_Adress, byte Reg_Data)

Con éste método se manda a escribir a un registro de un dispositivo mediante protocolo I2C, sólo senecesitan poner los siguientes parámetros: “SLAVE_ADRESS” (Dirección esclava del dispositivo),“REG_ADRESS” (Dirección del registro a escribir), “REG_DATA” (Dato a escribir) todos siendo de tipobyte.

PINES: SDA – D4, SCL – C4

byte dir_esclava = 0x1d; //Dirección esclava del dispositivo sin bit R/Wbyte dir_registro = 0x2a; //Dirección del registro a escribirbyte dato = 0x2a; //Dato a escribircomando.I2C_Write(dir_esclava, dir_registro, dato); /*Mandamos toda la in

formación por I2C*/

12) I2C_Read(byte Slave_Adress, byte Reg_Adress)

Método que se utiliza para leer un dato de un dispositivo mediante I2C. Los parámetros que pidenson la dirección esclava y la dirección del registro a leer ambos valores de tipo byte. Este métododevuelve un byte.

IMPORTANTE: Siempre se estará recibiendo un dato del registro.

PINES: SDA – D4, SCL – C4

byte dir_esclava = 0x1d; //Dirección esclava del dispositivo sin bit R/Wbyte dir_registro = 0x01; //Dirección del registro a leerbyte dato = comando.I2C_Read(dir, dir_registro);/* Mandamos toda la

información por I2C y guardamos eldato recibido en la variable tipobyte “dato” */

13) RS232_SADE_Write(byte Dato)

Envia un byte mediante protocolo RS232 cuya velocidad de transmisión es de 9600 baudios, es útilpara comunicarnos con dispositivos externos que soporten este protocolo.

PINES: B9 – RX, F10 – TX, A9 – Bit de interrupción.

byte DATO = 0x55; //Byte a enviarcomando.RS232_SADE_Write(DATO); //Mandamos el byte “DATO”

14) RS232_SADE_Read()

Recepción de un byte mediante protocolo RS232 cuya velocidad de transmisión es de 9600 baudios,

PINES: B9 – RX, F10 – TX, A9 – Bit de interrupción.

byte DATO = comando.RS232_SADE_Read(); /*Leemos el byte recibido y loguardamos en la variable “DATO”*/

IMPORTANTE: El bit de interrupción puede usarse para saber cuando se ha recibido un dato.

¡Gracias por su interés en SADE!

Cualquier duda o información pueden contactarnos en: [email protected]

También pueden visitar nuestra página www.intesc.mx para descargar los archivos mostrados en estedocumento y también para descargar otros proyectos.