Control de Cámara IP con interfaz Java

 

Proyecto Final

Programación de Sistemas

Elo-330

 

 

Introducción:

 

En la actualidad se ha convertido en una necesidad poder monitorear de manera remota lugares o procesos, son muy populares para este propósito las cámaras IP.  La idea de este proyecto es desarrollar una base para futuros trabajos con las imágenes obtenidas, ya sea que un operador controle el movimiento de la cámara o que esta  detecte movimiento y comience a gravar.

 

 

 

Hardware Utilizado:

 

Para concretar este proyecto se utilizaron los siguientes dispositivos:

 

MSP 430 (Microcontrolador encargado de procesar las señales provenientes desde el modulo uLan, y generar señales on/off y PWM para LED y Servomotores conectados en sus puertos)

 

Modulo ethernet uLan (Dispositivo encargado de realizar la conexión entre el modulo MSP con la red local)

 

 2 Motores servos  (Elemento capaz de interpretar una señal PWM, generada en el microcontrolador, como un ángulo de giiro)

 

 LCD Display  (Dispositivo utilizado para entregar información visual al usuario, esta controlado por la MSP430)

 

Cámara IP (Dispositivo utilizado para adquirir imágenes del lugar en que se encuentre ubicado el sistema, es conectada directamente al Router)

 

Router o Switch (Elemento configurado para la red local necesaria para esta aplicación)

 

 

Software Utilizado:

 

Se desarrollo una aplicación Java que permite visualizar los datos que entrega la cámara IP y además permite controlar la dirección en que esta está observando, también se puede encender un led, esta aplicación permite que el operario pueda detener algún proceso o activar alguna alarma.

 

Cuenta además con la aplicación desarrollada para que la MSP pueda comunicarse mediante protocolo TCP con múltiples usuarios, y controlar el manejo de los motores y el encendido del led.

 

 

 

Desarrollo del Proyecto:

 

El sistema cuenta con una aplicación Java que mediante comunicación de Socket se comunica con la MSP a través del protocolo de redes TCP este dispositivo es el encargado de controlar el movimiento de los servos y el encendido o apagado de un led, paralelamente la aplicación se transforma los datos obtenidos de la cámara  con la Clase URL a un objeto BufferedImage, el cual posterior mente es mostrado en una ventana.

 

 

Descripción de los módulos usados:

 

Modulo uLAN-MSP:

Utilizando el microcontrolador MSP430 y con el stack TCP diseñado para este controlador, se logró establecer una conexión TCP 10BaseT, entre el Router y la MSP, para así, poder controlar mediante señales digitales dos servos y un led desde de un host remoto.

 

Modulo Cámara IP:

Mediante una Cámara IP, se puede adquirir imágenes a través de una dirección IP.

 

Modulo Aplicación Java:

En un Panel Java en que se mostrarán las imágenes adquiridas por la Cámara IP y se podrá, mediante comunicación por socket, mover los servos conectados a la MSP.

 

Modulo Red:

Para unir los diferentes modulo mencionados, es necesario asignar IPs a cada Host de la LAN.

 

 

Diagrama de estados de la Aplicación:

 

 

 

Como utilizar la Aplicación:

 

Se debe descargar el programa Java Control_Camara.class y posteriormente ejecutarlo, cundo estas acciones se realicen aparecera un panel como el siguiente, en el cual deben ingresarse los datos que se piden y luego hacer click en el boton Conectar.

 

 

 

Inmediatamente después aparecerá otra ventana con la imagen que esta capturando la cámara IP para mover la cámara se deben presionar los botones con las direcciones, si se decea encender o apagar el led se debe presionar el botón Led on/off.

 

     

 

 

     

 

 

Clases más Importantes:

 

Conexión mediante Socket con la MSP:

 

public class crea_sock {

Integer sockete;
int sokete;
String IP;

private Socket soket;

private Socket socket;

public crea_sock() {

}

public Socket crea(String ip, String so) {

IP = ip;
sockete = Integer.parseInt( so);

try {
socket =
new Socket(IP, sockete);
}
catch (UnknownHostException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
return (socket);

}
}

Comunicación mediante Socket con la MSP:

 

class AccionEnviar{

private char intruc;
private DataOutputStream salida;
private String login;

public AccionEnviar(Socket s, char intrucs){
intruc = intrucs;

try {
salida =
new DataOutputStream(s.getOutputStream());

}
catch (IOException ex) {
ex.printStackTrace();
}

}
public void send() {
try {
salida.writeChar( intruc);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}

 

 

Obtención mediante la clase URL de las imágenes de la cámara IP:

 

public class Imagenes extends JFrame {

public BufferedImage image = null;

public Imagenes() {
}

public void paint(Graphics g){

Graphics2D g2 = (Graphics2D)g;
URL nUrl =
null;

try {
nUrl =
new URL("http://192.168.1.106/axis cgi/jpg/image.cgi?resolution=320x240");
} catch (MalformedURLException ex) {
ex.printStackTrace();
}

//public BufferedImage image = null;
try {
image = ImageIO.read(nUrl);
}
catch (IOException ex) {
ex.printStackTrace();
}


g2.drawImage(image,0,10,
this);

repaint();


}
}

 

Códigos:

           Aplicación Java para el manejo de una cámara IP de forma remota  aquí.

 

           Programa que permite a la MSP 430 conectarse a una red aquí.

_____________________________________________________________________________________________

 

Trabajo realizado por:   Olga Godoy Funez

Rol:                                2304128-6

Fecha:                             12 de Diciembre de 2007

Profesor:                         Agustín Gonzáles

Ramo:                            Programación  de Sistemas Elo-330