• No results found

Toward an improved matrix description of E2F binding sites

Integración y arquitectura grafica de control de proceso

Figura 21. Diagrama de control de proceso.

a. Aplicación para control de proceso

Se desarrolló la aplicación en el programa de visual estudio, con la plataforma de Microsoft .Net, con una integración de librerías para el

lenguaje de Visual Basic, así mismo la codificación de los algoritmos para la lectura, procesamiento impresión de datos en tiempo real del dispositivo conectado con el sensor de temperatura.

b. Integración con Arduino Visual Basic y puerto serie

La interfaz serie asíncrona es el principal dispositivo de comunicación de sistema a sistema. Asíncrono significa que no hay presente una señal de sincronización o de reloj. Cada carácter está enmarcado entre señales de inicio y parada. Un solo bit 0, denominado bit de inicio, precede a cada carácter para indicar al sistema que los siguientes 8 bits constituyen un byte de datos. Uno o dos bits en alto siguen al carácter para señalar que dicho carácter ha sido enviado.

Trama en una transmisión asíncrona:

Figura 22. Trama Asíncrona.

El puerto serie en una computadora está compuesto por varias entradas/salidas. Dispuestas en un conector del tipo DB9 o DB25, tal como se muestra en la siguiente figura:

Figura 23. Conector DB25, b) Conector DB9.

La distribución de las señales en cada uno de sus pines es la siguiente:

Tabla 4. Distribución de las señales Señal Descripción

GND o SG 0 Voltios

TxD Salida para transmisión de datos

RxD Entrada para recepción de datos

RTS (Request To Send) Salida que indica una petición de envío

CTS (Clear To Send) Dispuesto para enviar, entrada por donde le indica el otro dispositivo que ya puede enviar los datos.

DSR (Data Set Ready) Dispositivo de datos preparado, entrada por donde le indica el otro dispositivo que ya está listo.

DCD o CD Entrada para la detección de portadora

DTR (Data Terminal Ready) Salida, terminal de datos listo

Microsoft comm control

Es el control que permite la comunicación de una aplicación hecha en Visual Basic con el puerto serie. No está en la caja de herramientas por defecto, debe introducirse mediante el menú Proyecto y luego Componentes. En el formulario solamente se ve en tiempo de diseño.

Para habilitar la herramienta del puerto serie en Visual Basic se realizó lo siguiente: Seleccionando la opción Proyecto>>Componentes, al aparecer el listado de componentes seleccionar: Microsoft comm control, clic en aceptar, lo que provocará que la barra de herramientas cambie como se muestra en la siguiente figura:

Propiedades

Entre las propiedades del MSCOMM Control hay algunas que pueden establecerse en tiempo de diseño o en tiempo de ejecución, y otras que solamente se pueden establecer o consultar en tiempo de ejecución.

A continuación se enuncian algunas propiedades del control

Tabla 5. Propiedades de control Componente Propiedades

CommPort SerialPort

Indica el número del puerto serie a utilizar, admite valores del 1 al 255, Generalmente las PC tienen dos puertos seriales: Com1 y Com2, si se le coloca un número de puerto inexistente dará error

Settings Indica 4 parámetros en orden: velocidad, paridad, número de bits y bits de parada que se usarán en la comunicación

InBufferSize

Mediante esta propiedad se establece el tamaño del buffer de entrada. Puede conocerse el número de caracteres presentes en el buffer de entrada consultando el valor de la propiedad InBufferCount

OutBufferSize

Mediante esta propiedad se controla el tamaño del buffer de salida. Puede conocerse el número de caracteres presentes en el buffer de salida (los que aún están transmitirse), consultando el valor de la propiedad OutBufferCount

PortOpen Abre el puerto de comunicación. Puede tener los valores True (para abrirlo) y False (para cerrarlo)

InBufferCount Permite averiguar cuántos caracteres se tienen en el buffer de entrada

OutBufferCou nt

Permite conocer cuántos caracteres quedan por transmitir en el buffer de salida

Output Envía caracteres al buffer de salida Input Lee el buffer de recepción

El control Microsoft Comm Control 6.0 tiene por defecto el nombre MSComm1. Para establecer o consultar una propiedad se debe utilizar la siguiente sintaxis MSComm1.Propiedad

Por ejemplo, para abrir el puerto se coloca MSComm1.Portopen=True Para leer el puerto Buffer=MSComm1.Input

Para escribir en el puerto MSComm1.Output=dato De igual forma con las demás propiedades

Manejo de periféricos analógicos mediante arduino

La plataforma Arduino, basada en microcontrolador AVR, hereda la capacidad intrínseca de dicho microcontrolador para manejar periféricos analógicos mediante técnicas de conversión específicas. Dichas técnicas consisten en la conversión analógica a digital (ADC) y modulación por ancho de pulso (PWM). Cada una permite interactuar con periféricos analógicos que proveen información de entrada (ADC) o que aceptan información de salida (PWM).

Conversión analógica a digital

El microcontrolador cuenta con un ADC integrado en el mismo chip, que permite tomar lecturas analógicas de voltaje de un dispositivo que genere tensiones entre 0 y 5V. La configuración de dicho módulo es automática, bastando solamente con invocar la función de lectura de datos, la cual se detalla a continuación: analogRead (número_pin): realiza la lectura sobre el pin analógico que se le especifique (Sólo se permiten los pines A0 al A5). El valor que devuelve es un número entero proporcional al voltaje de entrada, de tal forma que si se introducen 0V devuelve un valor de 0 y si se introducen 5V devuelve un valor de 1023, con todos los voltajes intermedios se producen valores distribuidos linealmente a lo largo de este intervalo.

Nótese que no es necesario configurar previamente un pin analógico para poderlo usar con esta función.

Advertencia: el rango válido para los voltajes de entrada es solamente de 0 a 5V. Si introduce voltajes negativos, o bien, voltajes positivos arriba de 5V, podrá dañar de manera permanente el dispositivo.

Modulación por ancho de pulso (PWM)

El Microcontrolador AVR cuenta también con dispositivos temporizadores que permiten generar señales externas, las cuales emplean la modulación por ancho de pulso para manejar cargas que sean compatibles con este esquema. Vale aclarar que la técnica en sí, es completamente diferente de la conversión digital a analógica (DAC), puesto que no se generan tensiones analógicas constantes (por ejemplo entre 0 y 5V) en ningún momento, sino que más bien la carga es encendida y apagada rápidamente, produciendo un efecto equivalente a proveer un nivel de potencia intermedio, que puede variar entre completamente apagado y completamente encendido. Además, de manera similar al ADC, los módulos temporizadores son inicializados de manera automática, bastando con invocar la función que se detalla a continuación:

AnalogWrite (número_pin, ciclo_de_trabajo): genera una señal PWM sobre un pin digital que tenga esa capacidad (denotado con ~). El rango válido para el ciclo de trabajo va desde 0 (completamente apagado) hasta 255 (completamente encendido).

No todas las cargas son compatibles con la modulación PWM, por lo que se recomienda que se informe antes de emplearla con algún dispositivo en particular. La técnica funciona bien con algunas cargas como LEDs y motores DC pequeños, mas no con cargas como relés o motores DC sin escobillas (como los ventiladores para chasís de computadora).

Lectura de entradas analógicas

- Procediendo a ensamblar el circuito junto con el Arduino. Se realizó la conexión directamente del sensor a la placa Arduino con la interpuesta de una resistencia.

Figura 25. Diagrama de circuito.

- Se inició Visual Basic generando el siguiente formulario, e introduciendo el código fuente en el mismo:

Figura 26. Formulario. - Codificación de algoritmos --- Imports System.Runtime.InteropServices Imports System.Windows.Forms.DataVisualization.Charting <DllImport("user32.dll")>

Public Shared Function ReleaseCapture() As Boolean End Function

Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

End Function

Private Const WM_NCLBUTTONDOWN As Integer = &HA1 Private Const HTBORDER As Integer = 18

Private Const HTBOTTOM As Integer = 15 Private Const HTBOTTOMLEFT As Integer = 16 Private Const HTBOTTOMRIGHT As Integer = 17 Private Const HTCAPTION As Integer = 2

Private Const HTLEFT As Integer = 10 Private Const HTRIGHT As Integer = 11 Private Const HTTOP As Integer = 12 Private Const HTTOPLEFT As Integer = 13 Private Const HTTOPRIGHT As Integer = 14

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles timerTemperature.Tick PuertoArduino.Write(Chr(10)) lblTempC.Text = PuertoArduino.ReadExisting lblTempF.Text = (Val(lblTempC.Text) * 9 / 5 + 32) TEMPERATURAf = (Val(lblTempC.Text) * 9 / 5 + 32) TEMPERATURAc = (Val((lblTempF.Text) - 32) * 5 / 9) End Sub If ListComPortSerial.SelectedItem = "" Then

MsgBox("Seleccione un puerto de la lista.", MsgBoxStyle.Information, Title:="Aviso") Else Try PuertoArduino.Close() PuertoArduino.PortName = ListComPortSerial.SelectedItem PuertoArduino.Open() MsgBox("Conexion exitosa", MsgBoxStyle.Information, Title:="Aviso") Label1.Text = "Conectado a: " + ListComPortSerial.SelectedItem.ToString cmdDesconectar.Enabled = True ListComPortSerial.Enabled = False cmdConectar.Enabled = False timerTemperature.Enabled = True cmdIniciar.Enabled = True CmdPausar.Enabled = False cmdReset.Enabled = False Catch ex As Exception

MsgBox("No se pudo establecer la conexion.", MsgBoxStyle.Information, Title:="Aviso") cmdConectar.Enabled = True cmdDesconectar.Enabled = False ListComPortSerial.Enabled = True timerTemperature.Enabled = False End Try End If End Class ---

- Conexión del cable USB y descargue el sketch al Arduino. Ejecución del programa en Visual Basic y lectura del valor que se presenta en la ventana.

- Se varía el sensor y se observe el cambio el valor visualizado en pantalla.

c. Conexión de sensor

Se realizó la conexión directamente el sensor con la placa Arduino mediante la interpuesta una resistencia, para su lectura correspondiente.

3.7.5. Etapa V.- Desarrollo del proceso de elaboración de néctar

Related documents