[Tutorial Processing] Usa tu dispositivo Android como cámara IP

Hoy en día es necesario aplicar tecnologías mas avanzadas en nuestros proyectos y que mejor que agregarle una cámara inalámbrica a nuestros robots, con la proliferación de los dispositivos Android esto se ha vuelto una tarea muy sencilla, pues con un dispositivo Android incluso de la gama baja es posible convertirlo en una versátil cámara IP.

Primero que nada debemos descargar la aplicación que hará posible esta maravilla, la aplicación en cuestión es IP Webcam que pueden encontrar en la Play Store completamente gratis y es compatible con versiones de Android 1.6+.

IP Webcam

Para que todo esto funcione correctamente es necesario que el dispositivo Android y la PC se encuentran conectadas en la misma red WiFi, en caso de no contar con red cerca es posible crear un punto de acceso con el dispositivo android y conectar la PC y funcionara a la perfección.

La aplicación IP Webcam cuenta con muchas opciones de configuración, permite elegir la resolución de video, la calidad, los cuadros (frames) por segundo, entre otras opciones. La configuración de estas opciones dependerá del uso que le darás, una vez configurado el dispositivo solo hay que seleccionar la opción Start Server y te generara una dirección IP del tipo “http://192.168.0.16:8080/” en la cual puedes acceder desde un navegador como Chrome para visualizar el stream, cargar capturas o fotos en alta resolución  e incluso el audio. La interfaz en el navegador es como la de la siguiente imagen, al final se encuentran algunas direcciones IP que nos servirán para acceder directamente al stream, las cuales usaremos en Processing.

Android webcam server

La forma mas fácil de acceder con Processing al Stream es capturando cuadro por cuadro y mostrándolo por medio de la clase PImage, quedando el programa de la siguiente forma:

[code language=”java”]
PImage img;

void setup(){
size(640, 480);
frameRate(20);
}

void draw(){
img=loadImage("http://192.168.0.16:8080/shot.jpg");
image(img, 0,0);
}[/code]

En donde la variable img contendrá el ultimo frame capturado por la cámara, usando esta variable podremos hacer cualquier procesamiento con esta imagen, esta técnica es un poco lenta debido a que carga cuadro por cuadro, para un mejor desempeño es necesario usar el videofeed mjpg.

Ademas de poder obtener los frames también es posible capturar imágenes en alta resolucion, utilizar el enfoque automático, encender o apagar el le flash, para esto utilizaremos los links generados por el programa que son los siguientes, claro variando la dirección ip que depende de tu red:

Para cargar el videofeed haremos uso de la librería externa captureMJPEG la cual es capaz de manejar el videofeed en formato mjpg para una mayor fluidez, para instalarla solo hay que descomprimirla y copiarla dentro de la carpeta mis documentos > processing > libraries, una vez instalada podemos abrir el ejemplo básico en donde solo hay que modificar la linea donde se crea el objeto reemplazandolo con la dirección ip que nos dirige al videofeed.

  • URL for MJPG-compatible software: http://192.168.0.7:8080/videofeed

[code language=”java”]
import it.lilik.capturemjpeg.*;

private CaptureMJPEG capture;
private PImage next_img = null;

void setup() {
size(400, 300);
background(0);
capture = new CaptureMJPEG (this,
"http://192.168.0.7:8080/videofeed");

capture.startCapture();
frameRate(20);
}

void draw() {
if (next_img != null) {
image(next_img, 0, 0);
}
}

void captureMJPEGEvent(PImage img) {
next_img = img;
}
[/code]

En los próximos días actualizare este post con un video demostrativo de las 2 posibles formas de hacer la conexión. No olvides estar al pendiente en nuestras redes sociales para próximas actualizaciones.

Adrian MB

Me gusta la electrónica, programación y todo lo relacionado. Ing. en Mecatronica de la UPIITA del IPN y estudiante de Diseño Industrial en la UAM. @adrianmtzb http://adrianmb.mx

También te podría gustar...

  • Juanini

    lástima que soy el tipo de persona que no tiene un android =(
    tengo un windowsphone por que estaba barato y no hay mucho que hacer en WP:
    si alguien tiene algunas herramientas o tutoriales para personalizar seria genial poder hacer este tipo de cosas con mi smart

  • Ivan

    Excelente tutorial.
    Hice lo mismo paso a paso y me funciono perfecto, pero cuando intente hacerlo con una cámara ip de verdad, no logre que funcionara. Me sale el mensaje: “org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
    Información: digest authentication scheme selected”

    y en la ventana: No image available.
    Sabes que es lo que pasa? Seria de gran ayuda por que no he logrado arreglar nada.
    Saludos.

    • Hola, no lo he probado con una camara IP mas que con la aplicacion IP cam, quizas sea por el formato del stream que debe ser MJPEG. Y pues la verdad desconosco de ese error, buscare por internet y lo que encuentre lo comento por aqui. Saludos.