Anda di halaman 1dari 28

MANUAL DE USUARIO

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

Qu es Network Control?
Network Control son un conjunto de softwares que permiten a un cliente monitorear y controlar variables de un proceso conectados remotamente en el Servidor a travs de comunicacin en red.

NC permite:
Controlar el giro de dos motores DC, leer Temperatura ambiente, sensar la intensidad de luz, encender LEDs y leer el estado de seales digitales por medio de un Microcontrolador Pic16F877a enviando los datos al Servidor. Crear un servidor donde estar conectado el sistema de adquisicin de datos. Establecer un protocolo de comunicacin asncrona Servidor Microcontrolador de tipo estndar RS-232. Conectar a un cliente va internet por medio de la IP y puerto usado por el servidor. Recibir y enviar datos remotamente para monitorear y controlar las variables conectadas en el servidor por medio del Cliente.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

INDICE

1. Sistema de Adquisicin de Datos5


1.1 Conexin e implementacin del Microcontrolador5 1.2 Dispositivos externos (Motores, Sensores y seales digitales)8 1.3 Programacin en lenguaje C..10

2. El Servidor13
2.1 Requerimientos de Hardware y Sistema..13 2.2 Ventana de Peticin de datos al usuario..16 2.3 Pantalla Principal..17 2.4 Protocolo de Comunicacin TCP a travs de Sockets17 2.5 Protocolo de Comunicacin Serial RS232.18

3. El Cliente19
3.1 Requerimientos del Sistema19 3.2 Ventana de peticin de datos al usuario..20 3.3 Ventana Principal.22 3.4 Protocolo de Comunicacin TCP a travs de Sockets24

4. Bibliografa26 5. Anexos.27 5.2 Dificultades en el desarrollo de Network Control.27

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

1. Sistema de adquisicin de Datos.


El programa servidor de Network Control, establece un protocolo de comunicaciones de tipo serial con un dispositivo externo (Microcontrolador) para controlar datos (giro del motor,encendido del Display, etc).

1.1 Conexin e Implementacin del Microcontrolador: El dispositivo que controla directamente todas las variables es el Microcontrolador PIC16F877a (VerFigura 1), un dispositivo que cuenta con el Mdulo USART para establecer un protocolo de comunicaciones serial y en este caso usando el estndar RS232. Este tipo de comunicacin es asncrona, es decir, se puede enviar y recibir un mensaje tanto del servidor como del Microcontrolador en cualquier momento.

Figura 1. PIC16F877a

Este microcontrolador es un encapsulado de 40 pines(Ver figura 2), divididos en 5 puertos configurables por el programador, cuenta ademas con el Mdulo de conversin Analogo-Digital, lo que nos permite leer voltajes variables y obtener su equivalente digital.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

Figura 1. Encapsulado 40 pines

Fijndonos un poco en lo que usaremos de esta mini-computadora, observaremos que el puerto donde se encuentra los pines de trasmisin y recepcin de datos es el Puerto C. El cual lo configuramos de tal forma que podamos establecer una comunicacin bidireccional usando RC0/TX y RC/RX, por estos pines estar conectada nuestra salida y entrada de datos que ir al puerto serial donde estamos ejecutando nuestro programa servidor usando un cable DB9 (ver figura 3), que contiene todo los pines usados por el PC servidor para leer y enviar datos.

Figura 3:. Conector DB9

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

Si investigamos un poco sabremos que el puerto serie normal de un computador no maneja los mismos niveles de voltaje de un Microcontrolador. Por ello debemos usar un interpretador que me convierta los mensajes que estoy enviando desde mi PC a niveles de voltaje manejados por el PIC. Para este propsito existe el circuito integrado Max232, conectado de esta forma:

Ahora sabiendo esto nuestro circuito que se comunica con el PC Servidor estar de la siguiente forma:

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

1.2 Dispositivos Externos: En el uso de nuestro software vamos a manipular diversos dispositivos electrnicos entre ellos, un motor DC, dos LEDs, un Display 7 segmentos y un sensor de temperatura. La conexin de todos los dispositivos mencionados ser la siguiente:

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

El motor DC usado es sencillo que en un modelo real debe ser manipulado por un Driver de potencia que permita moverlo ya que el microcontrolador no ofrece la corriente suficiente para moverlo.

Figura 4: Motor DC

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

El display 7 segmentos se puede tratar como un conjunto de leds conectados entre s para poder visualizar nmeros, por lo tanto los conectamos a 7 pines del PIC equivalentes a cada lmpara.

Figura 5. Display 7 segmentos

Y el sensor de temperatura usado es el LM35, un sensor que entrega un voltaje igual a 10mV/C, es decir, cuando esta sensando exactamente 1C su salida ser de 10mV, es por ello que usamos en el microcontrolador el mdulo de conversin anlogo-digital.

Figura 6. Sesor de Temperatura LM35

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

10

1.3 Programacin del Microcontrolador: Los microcontroladores pueden ser programados mediante una mquina ms robusta como un PC al igual que su cdigo que puede ser escrito en leguaje de mquina(Ensamblador) o en alto nivel usando C. En nuestro desarrollo programamos en C++ utilizando el software propio de programacin del microcontrolador llamado MPLAB (Imagen 7). Este programa permite manipular todas las variables del microcontrolador como si estuviramos programando normalmente un programa en nuestro computador, lo que nos facilita un poco el trabajo.

Imagen 7. Sotfware MPLAB IDE

Para utilizar este programa en alto nivel (Usando PICC) debemos instalar previamente el programa HI_TECH que nos permitir escribir el cdigo en C.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

11

Una vez desarrollado nuestro cdigo debemos transferir los datos del programa a la memoria del Microcontrolador y para ello se usan los grabadores que hacen esta tarea.

Imagen 8. Programador Serial JDM

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

12

2. El Servidor. El programa servidor tiene toda la informacin de cmo acceder a el Microcontrolador y los clientes se conectan a este para solicitar o enviarle informacin. 2.1 Requerimientos de Hardware y Sistema:
Para poder utilizar nuestro servidor debemos tener una mquina con puerto serial o tener un Conversor USB Serial, esto para poder entablar el protocolo de comunicacin con el PIC. Como sabemos el Servidor necesita el sistema de adquisicin de datos sin este no se podra controlar nada. Finalmente en el Sistema donde ejecutamos nuestro servidor debemos tener una versin de QT Creator en un Sistema Operativo UNIX, ya que toda la configuracin del puerto serie se bas en la arquitectura de este Sistema Operativo. Configuracin Puerto Serial: QT Creator no incluye ninguna librera para el manejo de puertos serie, pero recurrimos a cdigo abierto para poder manejar nuestro puerto. Para ello utilizamos la librera QextSerialPort que est disponible como cdigo abierto en c++ en http://code.google.com/p/qextserialport/. Para descargarla es necesaria una utilidad de gestin de versiones de cdigo llamada Mercurial. Para instalarlo podemos abrir la terminal y escribir:
hg clone https://qextserialport.googlecode.com/hg/ qextserialport

Y se crear el directorio qextserialport con el cdigo fuente del componente, que incluye manuales y ejemplos. Ahora vemos los pasos para compilar nuestra librera de manejo del puerto serial: Primero abrimos QT Creator.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

13

Despus elegimos Archivo-> Abrir archivo o proyecto. Y nos vamos al directorio qextserialport y seleccionamos el archivo de proyecto qextserialport.pro.

Ahora hay que construir el proyecto, para ello haremos Construir -> Reconstruir todo. Como resultado se crear el directorio build con bibliotecas de enlazado dinmico con el nombre lib*.so para Linux. Y obtenemos lo siguiente:

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

14

Para instalar las bibliotecas las copiamos en el directorio /usr/lib del sistema. Necesitamos privilegios de superusuario para hacerlo. Una vez instalada la librera en nuestro proyecto agregamos todos los archivos .h y .cpp existentes en el fichero construido y as utilizar todos los mtodos definidos en esta biblioteca.

Una vez cumplido los requerimientos mnimos del sistema procedemos a abrir la carpeta Servidor y de all abrimos el fichero Servidor.pro que, donde podremos observar todo el cdigo de este.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

15

2.2 Ventana de Peticin de datos al usuario: Para compilar nuestro programa damos clic en el botn build ubicado en la parte izquierda inferior en QT Creator, despus de compilado lo ejecutamos (run).

RUN

BUILD

Una vez ejecutado obtendremos una ventana donde el usuario deber ingresar todos los datos (El puerto Serial Utilizado y el Puerto para comunicacin en Red), luego damos clic en el boton conectar.

Si es exitosa la conexin nos mostrar la ventana principal.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

16

2.3 Pantalla Principal:

En la ventana principal para el servidor podemos visualizar los datos ingresados adems de la direccin IP propia del servidor que es importante ya que con esta el cliente se va a conectar a nosotros.

IP Servidor

Puerto Seria Puerto usado por el servidor

Muestra lo que pasa

Apaga r

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

17

En esta ventana hay que destacar el Visor de Sucesos ya que en este se puede ver que est pasando en tiempo real en nuestro programa, cuando un cliente se conecta podemos verlo all, adems de las veces que se escribe y se lee del puerto serial. 2.4 Protocolo de Comunicacin TCP a travs de Sockets: El objetivo de este programa es crear un Servidor, para ello utilizamos la librera QTcpserver que ya tiene lista toda la configuracin para crear un servido TCP, solo debemos utilizar algunos mtodos para indicar el puerto de comunicacin y mtodos de lectura y escritura. Internamente al usuario intentar crear el servidor con los datos ingresados el programa los valida e intenta crear dicho servidor, con el propsito de que programas clientes le pidan informacin. Recordemos que el servidor siempre est a la espera de peticiones del usuario para as tomar decisiones y as mismo pedirle datos al Microcontrolador conectado en el puerto serial especificado. 2.5 Protocolo de Comunicacin Serial RS232 El servidor siempre va a establecer una comunicacin serial con el Microcontrolador es por ello que utilizamos el estndar RS232 de forma asncrona, ya que no sabemos en qu momento el cliente nos va pedir informacin que tiene que ser escrita y leda a travs del puerto serial. Este protocolo de comunicacin serial lo configuramos de tal forma que siempre tendremos una velocidad de transmisin de 9600 baudios, configurado tambin en nuestro Microcontrolador. Una vez que llega una peticin del cliente por red, este software mantiene abierto el puerto serial y escribe en el la peticin hecha por el cliente y queda a la espera de que el Microcontrolador le responda dicha solicitud y la ejecute internamente. Luego de que se lee del puerto serie que la solicitud fue ejecutada correctamente, enviamos de regreso el mensaje al cliente que hizo la peticin. Todo se ir visualizando en el visor de sucesos de la ventana principal.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

18

3. El Cliente.
El programa cliente es el encargado de visualizar y controlar a travs de comunicacin en red, los dispositivos externos en el Servidor. 3.1 Requerimientos del Sistema:

Para poder compilar y ejecutar este software cliente, debemos tener instalada en nuestra mquina QT Creator, este puede ser utilizado desde cualquier sistema operativo, preferiblemente un sistema de UNIX. Para compilar y ejecutar debemos abrir del directorio Cliente el fichero Cliente.pro.

Y nos abrir QT Creator con nuestro cdigo as:

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

19

2.2 Ventana de peticin de datos al usuario: Una vez abierto nuestro proyecto en QT procedemos a compilar dando clic en la opcin que se encuentra a la izquierda de la ventana (build), una vez compilado lo ejecutamos (Run).

Esto nos abrir una ventana donde le pide datos al usuario los cuales son: la direccin IP y el puerto usado por el Servidor con el que deseamos conectarnos.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

20

Recordemos que los datos que vamos a digitar en estos campos deben ser los mismos que nos arroja el programa Servidor una vez este encendido. Luego de que el programa valide los datos y logre comunicarse con el cliente nos abrir otra ventada donde podemos controlar todo los dispositivos conectados en el servidor.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

21

3.3 Ventana Principal:

En esta ventana tenemos todos las variables que podemos controlar, en el lado izquierdo superior el encendido o apagado de dos leds, dando clic en cada uno nos cambiara el estado en que se encuentre en ese momento, es decir, si el led se encuentra apagado, lo encender, y si esta encendido la apagar.

Control Leds

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

22

En el lado derecho superior, vemos el control de giro para el motor, claramente si damos clic en algn botn el motor girara para el lado seleccionado y se detendr con la opcin (||).
Visualizacin

Giro horario

Stop Giro a la antihorario

En el lado izquierdo inferior, tenemos el control del Display 7 segmentos, digitando algn numero entre 0 y 9 y enviado la informacin con el botn (>>) iluminar el display con el numero digitado. Si el nmero que el usuario ingreso, es mayor a 9 o menor que cero el display mostrara el numero 9.

Visualizacin

Numero (0-9)

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

23

Finalmente tenemos la opcin de leer la temperatura, solo dando clic en leer, har la peticin al Servidor de que le envi el dato de la temperatura en ese momento. Esta temperatura es medida en C.

Visualizacin

Adquirir dato

Todos los cambios que hagamos en nuestro programa cliente los veremos reflejados automticamente en nuestro circuito donde est conectado todos los dispositivos. 3.3 Protocolo de Comunicacin TCP a travs de Sockets: Ya observamos cmo podemos utilizar nuestro programa cliente ahora explicaremos su funcionamiento: Como vimos inicialmente al correr nuestro programa este nos arrojar una ventana donde pedimos datos al usuario, estos datos despus de ingresados y de intentar conectar, crean un socket de tipo TCP utilizando la librera QTcpSocket e intenta entablar comunicacin con el Servidor que se encuentra ubicado con direccin IP y Puerto digitados previamente. Al crear dicho socket estamos garantizando el envo y recepcin de datos de forma segura, es decir, nunca se nos perder ningn dato en el camino. Una vez que logre validad que el servidor existe y est escuchando por el puerto le enviamos un mensaje con la peticin de datos. El cliente queda a la espera de lo que responda el servido, si este nos responde correctamente abriremos la Ventana Principal para enviar y recibir datos del Servidor de forma continua.
Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia 24

Para cada opcin que deseemos lo que hace el cliente una vez especifiquemos las peticiones, es enviar bytes que el Servidor predeterminadamente reconoce y sabe que le est pidiendo el cliente. Luego de que los datos son enviados y recibidos correctamente veremos el estado de los dispositivos desde nuestra ventana principal. A grandes rasgos as funciona nuestro programa Cliente, para mayor informacin se puede consultar la bibliografa y el Video de apoyo.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

25

4. Bibliografa. Videos de apoyo de NC:


Parte I:
http://www.youtube.com/watch?v=t315PwUHpXM&context=C35d4662ADOEgsToPDskJPvLTxuRQ 9b8qDoKX4OTJs

Parte II:
http://www.youtube.com/watch?v=buv-k-nHEQg&context=C3434401ADOEgsToPDskJh-B55AzHwzKYygPC_oVD

Instalacin de Librera QextPortSerial:


http://www.disca.upv.es/aperles/qt/port_serie_Qt/port_serie_Qt.html

Tutorial manejo de QtcpServer:


http://www.youtube.com/watch?v=BSdKkZNEKlQ

Turorial manejo de QTcpSocket:


http://www.youtube.com/watch?v=u5OdR46542M

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

26

5. Anexos 5.1 Dificultades en el desarrollo de Network Control.


Durante el desarrollo de todo este proyecto hubo varias dificultades que enumeraremos a continuacin: Implementacin Puerto Serial: En la bsqueda de cmo usar el puerto serial a travs de QT se evidenciaron varias dificultades, ya que hay poca documentacin para utilizar puertos del computador aunque QT tenga muchas ayudas. Para solucionar esto me d a la tarea de investigar a travs de foros de QT la existencia de alguna librera para manejar puerto serie y encontr mucha informacin de cmo utilizarla utilizando la librera qextportserial y su configuracin en un sistema el sistema operativo en el cual desarrolle toda la aplicacin (Ubuntu). Programacin del Microcontrolador: La programacin del Pic16f877a como vimos fue desarrollada con ayuda del programa MPLAB y simulado en PROTEUS. Pero de la simulacin a el circuito fsico hay muchos cambios ya que cuando simulamos todo es ideal, mientras que fsicamente el circuito es extenso y con varias conexiones que pueden fallar. Caso fue la conexin al puerto serial del computador donde intente varias veces entablar comunicacin pero la mayora fueron fallidas. Para solucionar esto tuve perseverancia y verifique una a una cada conexin llevndome la sorpresa de que nuestro interprete MAX232 se encontraba en mal estado y que el pinado utilizado en el conector DB9 era incorrecto. Desarrollo del programa servidor y cliente. Como vimos el servidor utiliza varias libreras y para usar cada una de ellas en nuestro cdigo se hizo confuso, y hubo muchos errores de semntica, primero el de verificar realmente las velocidades de transmisin para la comunicacin serial y el uso de Sockets para enviar datos al Cliente conectado. La forma de resolver este
Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia 27

problema fue intentando varias veces experimentalmente el funcionamiento del programa, pero teniendo como resultado fallas que fueron corregidas con la depuracin paso a paso de nuestro cdigo. Tiempo Presupuestado El problema ms grande que tuve fue el tiempo que cre conveniente para el desarrollo del proyecto, ya que en la depuracin de cada error el tiempo dedicado fue largo. Aunque el tiempo dedicado fue mucho, se sobrepas al lmite permitido, pero vali la pena este tiempo ya que el resultado es muy favorable y logr desarrollar creo yo un buen software del cual aprend demasiado.

Diego Bernal Morales | Facultad de Ingeniera Universidad de Antioquia

28

Anda mungkin juga menyukai