Uso del Webcam y realización de tomas desde la stamp mini

ADQUISICIÓN Y CONFIGURACIÓN DE LA CÁMARA WEB
Se adquirió un módulo USB de cámara web, que se encuentra disponible en:

http://www.aliexpress.com/item/GC0308-CMOS-0-3Mega-Pixel-Fix-Focus-Notebook-Computer-All-in-one-Camera-module/1282202334.html

Para probar la cámara web se puede escribir en consola "lsusb" para listar los dispositivos conectados, donde debería aparecer, entre otros:

Bus 002 Device 003: ID 1871:0101 Aveo Technology Corp. Que corresponde al ID del dispositivo en el sistema y el nombre del fabricante ó también se puede usar el comando:

sudo hwinfo --usb

Este comando lista toda la información del hardware presente en el computador, especificamente los dispositivos usb, por lo que entre otras cosas debería listar la siguiente información, la cual corresponde a la cámara web:

Model: "AVEO USB2.0 Camera" Hotplug: USB Vendor: usb 0x1871 "AVEO Technology Corp." Device: usb 0x0101 "USB2.0 Camera" Revision: "0.0c" Driver: "uvcvideo" Driver Modules: "uvcvideo" Device File: /dev/input/event11 Device Files: /dev/input/event11, /dev/input/by-id/usb-AVEO_Technology_Corp._USB2.0_Camera-event-if00, /dev/input/by-path/pci-0000:0

Una forma más gráfica y más útil de probar la cámara es mediante un programa llamado "cheese", el cual debe ser instalado en el computador; este programa reconoce de forma automática la cámara web que se conecta y permite tomar fotografias con la misma.

Lamentablemente para la implementación de la cámara web en la stamp mini no se puede utilizar cheese, debido a su interfaz gráfica, por lo que es necesario utilizar un programa llamado "webcam", el cual permite tomar fotografías con la cámara web desde consola.

Para lograr que el programa funcione de manera correcta, es necesario crear una rchivo con el nombre .webcamrc, el cual se encarga de definir todos los parámetros de la cámara y de la foto que se tomará, el archivo debe estar en el home del computador y debe tener las siguientes líneas en su contenido:

%%%%%%%%%%%%%%%%%%%%%% [grab] device = /dev/video1 %%% Define la entrada de video que se desea usar, por defecto se establece "video0", pero se debe cambiar por la entrada de video de la cámara web, la cual se puede ver en cheese en el menú preferencias text = "Espectroscopio %Y-%m-%d %H:%M:%S" %%% Pie de foto fg_red = 255 fg_green = 0 fg_blue = 0 width = 640  % Resolucion horizontal de la foto. height = 480 % Resolucion vertical de la foto. delay = 3 %Determina el intervalo de tiempo entre tomas, se da en segundos. wait = 0 input = Camera 1 % Se define el nombre de la camara rotate = 2 % Por cada '1'que se le sume se realiza un giro de 90° top = 0 left = 0 bottom = -1 right = -1 quality = 100 % determina la calidad de la imagen. trigger = 0 once = 1 % Determina cuantas fotos desea tomar, si esta en 0 tomara fotos sucesivamente hasta finalizar el programa archive=/home/ricardo/Pictures/Espectro%Y-%m-%d-%H-%M-%S.jpg   %%% cambia el nombre del archivo y determina la ruta de destino %%%%%%%%%%%%%%%%%%%%%%
 * 1) infofile = filename
 * 1) norm = pal

Una vez creado el archivo .webcamrc lo único que se tiene que hacer es escribir "webcam" en una terminal y ver la foto que se tomó en la ruta asignada.

== REALIZAR TOMAS DESDE LA STAMP MINI ==

para poder correr "webcam" desde la stamp mini es necesario descargar el código fuente del programa, sin embargo éste no está disponible por si solo, es necesario descargar el código fuente de "xawtv", el cual es un programa basado en "webcam", por lo que el código fuente de webcam se encuentra dentro de éste.

Sin embargo es necesario compilar el programa para la arquitectura del procesador de la stamp mini, esto se realiza definiendo el compilador -arm-linux- con el cual se ha compilado todo hasta ahora; para poder hacer esto debemos ubicarnos en la carpeta donde se encuentra el código fuente del programa, que debería ser xawtv-102.3 y escribir los siguientes comandos:

1. ./autogen.sh, este comando sirve para que se configure el compilador, este programa lo hace de forma automática

2. Make, para que construya todos los objetos y el ejecutable del programa, el cual quedará ubicado en la siguiente ruta:

 ~/xawtv-102.3/console

Es posible que se presenten algunos problemas en el momento de compilar debido a que en realidad se está compilado el programa xawtv y no webcam, que es el que nos interesa, por lo que hay que realizar unos pequeños cambios en el makefile del archivo, sin embargo el programa se encuentra listo para compilar correctamente en:

[http:// https://bitbucket.org/raurregog/embedded-systems/downloads#download-300214  https://bitbucket.org/raurregog/embedded-systems/downloads#download-300214]

Donde también se encuentra disponible todo el material del curso.

INSTALAR LIBRERÍAS Y SOPORTE
A pesar de que el programa esté listo para compilar, se presentarán problemas relacionados con la falta de 2 librerías, unas que se necesitan para dar soporte a imágenes en formato jpeg y otras que se necesitan para manejar v4l (video for linux), esto se realiza en el sistema de archivos, donde se seleccionan los siguientes paquetes:

%%%% Para las librerías de soporte en jpeg  %%%%%

Target Packages> Libraries--> Graphics-> <*>Jpeg support

%%%% Para las librerías de soporte en v4l %%%%%

Target Packages> Libraries--> Hardware Handling-> -*- libv4l [*]   v4l2-compliance [*]   v4l2-ctl [*]   v4l2-dbg
 * decode_tm6000 requires a GLIBC based toolchain ***
 * ir-keytable requires a GLIBC based toolchain ***

Además de esto se debe dar soporte al driver "UVC" (Usb Video Class) en la imagen del kernel para que se reconozca el dispositivo como cámara web, este driver se puede encontrar en la siguiente ubicación:

%%%%%% Driver UVC %%%%%%

Device Drivers-> Multimedia support-> Vide Capture Adapters-> V4l usb devices--> <*>   USB Video Class (UVC) [*]     UVC input events device support

Finalmente se debe copiar el ejecutable del programa webcam, que se encuentra en la carpeta xawtv-102.3/console a la tarjeta sd en la ubicación /bin de la misma y todos los archivos con extensión ".so" que se encuentran en las rutas xawtv-3 102/libng/plugins y xawtv-3 102/libng/contrib-plugins en la siguiente ruta de la tarjeta SD usr/local/lib/xawtv/

Por último el mismo archivo .webcamrc creado anteriormente se copia en la ruta /root de la tarjeta, lo único que debe modificarse es la ruta donde se guardan las imagenes.

En este punto la cámara ya debería estar lista para realizar tomas, solo es necesario escribir "webcam" en la consola de la stamp mini y eso es todo!