sábado, septiembre 28

GPS BU-353-S4 | GPRMC

GPS BU-353-S4 con Raspberry Pi


Esta configuración la realice mediante Windows 7 para poder configurar el GPS BU-353-S4 y empezar a recibir coordenadas del sistema GPS, para posteriormente utilizarlo con el Raspberry Pi, primero debemos descargar los drivers para GPS BU-353-S4 para utilizarlo en Windows, en la carpeta que se descomprime ejecutamos el programa PL2303_Prolific_DriverInstaller_v1.8.0 que es con el que se instalan los drivers en Windows.

Posteriormente instalamos el programa GPSInfo y ejecutamos el programa y nos reconocerá el GPS BU-353-S4 al instante (claro una vez que se instalan los drivers).


Notaran que el mio ya se encuentra configurado, pero en un principio te salen varios comandos aparte del GPRMC (que es el que te permite obtener la longitud y latitud de la ubicación del GPS BU-353-S4) para desactivarlos o activarlos tienes una serie de ordenes que puedes ejecutar desde el cuadro de texto de la derecha del botón Send como se muestra en la imagen:


Y aquí se encuentran las ordenes (que se copian y se pegan a partir del símbolo $):

Activar WAAS/EGNOS - $PSRF151,01*0F
Desactivar WAAS/EGNOS - $PSRF151,00*0E

Activar salida de GGA 1seg - $PSRF103,0,0,1,1*25
Desactivar salida de GGA - $PSRF103,0,0,0,1*24

Activar salida de GLL 1seg - $PSRF103,1,0,1,1*24
Desactivar salida de GLL - $PSRF103,1,0,0,1*25

Activar salida de GSA 5seg - $PSRF103,2,0,5,1*23
Desactivar salida de GSA - $PSRF103,2,0,0,1*26 

Activar salida de GSV 10seg - $PSRF103,3,0,10,1*16
Desactivar salida de GSV - $PSRF103,3,0,0,1*27

Activar salida de RMC 1seg - $PSRF103,4,0,1,1*21
Desactivar salida de RMC - $PSRF103,4,0,0,1*20

Activar salida de VTG 1seg - $PSRF103,5,0,1,1*20
Desactivar salida de VTG - $PSRF103,5,0,0,1*21

Activar salida de ZDA 1seg - $PSRF103,8,0,1,1*2D
Desactivar salida de ZDA - $PSRF103,8,0,0,1*2C 

Cambiar velocidades de transmisión del GPS (protocolo NMEA):

4800/8/N/1 - $PSRF100,1,4800,8,1,0*0E
9600/8/N/1 - $PSRF100,1,9600,8,1,0*0D
19200/8/N/1 - $PSRF100,1,19200,8,1,0*38
38400/8/N/1 - $PSRF100,1,38400,8,1,0*3D

Otros comandos:
 
Activar modo ahorro de energía - $PSRF150,0,300,1000,1*10
Desactivar modo ahorro de energía - $PSRF150,0,1000,1000,0*23

Activar datos de desarrollo - $PSRF105,1*3E
Desactivar datos de desarrollo - $PSRF105,0*3F

Arranque en bruto - $PSRF101,0,0,0,0,0,0,12,2*16

Configuración de fabrica - $PSRF101,0,0,0,0,0,0,12,8*1C

Arranque hibernación - $PSRF101,0,0,0,0,0,0,12,4*10

Desactivamos todos los comandos que aparezcan en el GPSInfo y conservamos únicamente el comando de RMC.

Recuerda tener instalado el cliente y servidor del GPS como lo explique en mi entrada Raspberry Pi GPS BU-353-S4 (con el comando: sudo apt-get install gpsd gpsd-clients python-gps)

Ahora nos pasamos al Raspberry Pi y ejecutamos primero el comando:

$ sudo gpsmon /dev/ttyUSB0

Donde ttyUSB0 es el puerto del GPS BU-353-S4 que es detectado en el Raspberry Pi, de todos modos verificarlo por que aveces toma el valor de ttyUSB1


Después nos salimos de la herramienta gpsmon con Ctrl + C y ahora ejecutamos el siguiente comando:

$ sudo cat /dev/ttyUSB0


Con esto tenemos únicamente los comandos GPRMC del GPS BU-353-S4 y lo puedes utilizar como lo desees en este caso se utilizara con el Google Maps.



Blog escrito por Sául Vázquez Radilla.
viernes, septiembre 27

Raspberry Pi Overclocking

Raspberry Pi Overclock


Si bien para configurar el overclock en Raspberry Pi hay que saber que este no tiene BIOS (programa informático inscrito en componentes electrónicos de memoria Flash existentes en la placa base. Se encarga de realizar las funciones básicas de manejo y configuración del ordenador), pero tiene otras formas de configurar las características del Hardware como la frecuencia del overclocking bios.

Se puede subir un 50% su frecuencia de la CPU del Raspberry Pi, pero no se puede exceder de 1GHz, ya que perdería la garantía.

Para modificarla ingresamos el siguiente comando:

$ raspi-config

nos dirigimos a la opción de Overclock del Raspberry Pi


Después de darle click te mencionara que escojas una opción para la configuración del reloj del Raspberry Pi



Por cuestiones de un proyecto y el uso de varios procesos con los que se trabajaran he seleccionado la opción de Turbo, en este caso tu decides los limites que quieres ponerle al overclock de Raspberry Pi.



Me menciona que algunas personas han reportado que el nivel Turbo del Raspberry por el overclock a dañado sus tarjetas SD, en mi caso no tuve problemas con el proyecto en el que trabaje, por ello solo hacerlo bajo su propia responsabilidad.



Blog escrito por Sául Vázquez Radilla.

Raspberry HDMI a VGA

Raspberry Pi VGA



Para conectar el raspberry pi a un monitor VGA se adquiere un adaptador de HDMI a VGA producto adquirido en adafruit ahora para que el Raspberry Pi pueda conectarse a un monitor VGA vamos a modificar el siguiente archivo:

sudo nano /boot/config.txt

del mismo eliminaremos los # de las siguientes lineas:
# hdmi_safe=1 #Por si no te envía señal de vídeo
# hdmi_group=1 #Tipo de salida HDMI (1 por defecto): 1=CEA y 2=DMT
# hdmi_mode=4 # Resolución de salida (configurar el valor según la tabla de la pagina elinux)
# hdmi_drive =2 #Si el formato elegido es el DMT

quedando así la configuración para mi monitor hp mx705:

hdmi_group=2
hdmi_mode=16
hdmi_drive=2  

con las configuraciones del overscan del Raspberry Pi, queda de la siguiente manera:

overscan_left=10
overscan_right=16
overscan_top=-1
overscan_bottom=-2

Imágenes:






Blog escrito por Sául Vázquez Radilla.

Raspberry Pi Hwebcam

hwebcam con Raspberry Pi


Si lo que deseas es enviar Streamming con el Raspberry Pi hasta un servidor de Streamming de vídeo, primero necesitamos instalar hwebcam en el Raspberry Pi, para eso descargamos este instalador de hwebcam.

Después de descargar el archivo, lo descomprimimos en /home/pi para poder acceder fácil a esta carpeta, pero antes de trabajar con los documentos dentro del mismo, tenemos que instalar las siguientes dependencias: build-essential libsdl1.2-dev libtheora-dev libasound2-dev libvorbis-dev libvorbisenc2 libjpeg62-dev pero primero ejecutas de la siguiente manera los comandos debido a que si los instalas directamente en un solo comando, hay un programa que desinstala otro al momento de instalarse.

$ sudo apt-get install build-essential libtheora-dev libasound2-dev libvorbis-dev libvorbisenc2 libjpeg62-dev

después instalas el programa:

$ sudo apt-get install libsdl1.2-dev oggfwd

Después de esto ingresamos a la carpeta donde descomprimimos el archivo hwebcam, y ejecutamos:

$ make

en caso de que no necesites el SDL (como es mi caso) ejecutas:

$ make USE_SDL=0

y con esto tendrías el hwebcam compilado con éxito.




Ahora para mandar el streamming al servidor de streamming de vídeo tendrías que ejecutar lo siguiente:

$ sudo ./hwebcam -d /dev/video1 -s 320x240 -i 10 -e -o - | oggfwd localhost PUERTO CONTRASEÑA /webcam.ogg

Recuerda descargar el archivo hwebcam048.tgz aquí: hwebcam048 y para que el comando funcione se ubican dentro de la carpeta que descomprimen.

donde PUERTO obviamente es el puerto por donde debes acceder al servidor de streamming de vídeo (que en este caso se maneja el icecast),  y CONTRASEÑA es la contraseña para el servidor, el localhost puede ser también la pagina donde se encuentre tu servidor.

Y para ver lo que transmite el servidor de vídeo deberías de ingresar a la siguiente pagina: 

http://localhost:PORT/webcam.ogg


hwebcam raspberry pi




Blog escrito por Sául Vázquez Radilla.
martes, septiembre 17

Raspberry Pi Modem 3G ZTE MF180

Raspberry Pi Modem 3G


Conseguí un modem 3G para Raspberry Pi modelo ZTE MF180; que es conocida como tarjeta de red (placa de red o Network Interface Card "NIC") es una clase de tarjeta que la conectas a tu computadora o laptop, y esta posibilita que la máquina pueda conectar a una red y pueda compartir sus recursos (como los documentos, la conexión a internet o una impresora, por ejemplo).


La mía es una Banda ancha telcel ZTE MF180; es entrada USB 3G módem para Raspberry Pi, compatible con redes HSDPA/UMTS/EDGE/GPRS/GSM. Soporta servicios de datos y SMS a través de la red de telefonía móvil, permitiéndole comunicarse a toda hora en cualquier lugar.



Antes de conectarlo debes asegurarte que tienes el point-point protocol (ppp) instalado con el comando:

sudo apt-get install ppp

Ahora una vez Instalado el protocolo ppp, procedemos a crear una carpeta en ~

mkdir ~/3g && cd ~/3g

Raspberry Pi Modem USB 3G con Sakis3g


y nuevamente descargamos, descomprimimos y lo hacemos ejecutable la ultima versión de sakis3g para la plataforma arm, primero descargamos el archivo desde este link en caso de que no funcione avísenme y subo el que descargue (que es del mismo link).

Ubicamos el archivo en la carpeta ~/3g que creamos anteriormente y ejecutamos:

$ gunzip -d sakis3g.tar.gz
$ tar xvf sakis3g.tar
$ chmod +x sakis3gz

Conectamos el ZTE MF180 al Raspberry Pi con sus componentes dentro del mismo (como te lo menciona en el manual de usuario del módem usb) y te saldrá lo siguiente:


Reconociendo el módem como un dispositivo de almacenamiento (En modo gráfico el módem se encuentra en color verde yEstando en modo consola el módem se encuentra en color rojo.); el objetivo es que lo reconozca como lo que es... un módem usb; cabe mencionar unas características de este módem.
Si el módem parpadea en:

Rojo= Módem no registrado a la red.
Verde (En espera): Registrado a la red 2G o 3G.
Verde centelleando: Conectado a la red 2G o 3G.

Ejecutamos el comando lsusb para ver que tenemos conectado en los puertos usb; Al ejecutar el comando identificaras en mi caso que se encuentra conectado un dispositivo ZTE WCDMA Technologies MSM.


Ahora ejecutamos el comando dmesg y en este caso ustedes notaran que el Raspberry Pi lo esta reconociendo como un usb:



NOTA: identifiquen el idVendor (mi caso es 19d2) y el idProduct (en mi caso es 2000) de su módem por que mas adelante lo van a usar.

Ahora para configurar el Raspberry Pi para que deje de ver al Módem como dispositivo de almacenamiento se hace los siguientes pasos:


Necesitamos instalarle el programa usb_modeswitch con el siguiente comando:

sudo apt-get install usb-modeswitch


Una vez que instalaste primero nos ubicamos en la carpeta cd /etc/usb_modeswitch.d el programa ejecutas el siguiente comando:

grep -C2 MF /lib/udev/rules.d/40-usb_modeswitch.rules 

si el resultado lo quieren agregar a un .txt para que su búsqueda sea mas cómoda ejecutan:

$ grep -C2 MF /lib/udev/rules.d/40-usb_modeswitch.rules >> switch.txt
$ nano switch.txt


Y te mostrara un listado de los modelos de módem que tiene configurado, lo que haremos sera clonar uno de esos que sea el mas parecido al que tenemos en mi caso como es el ZTE MF180 para Raspberry el que mas se parece es el de ZTE M190 (Variant) con un idVendor: 19d2 y un idProduct: 0149.

Ejecutamos el siguiente comando que nos permitirá extraer las propiedades del módem a clonar:

sudo tar xzf /usr/share/usb_modeswitch/configPack.tar.gz idVendorDelModemAClonar:idProductDelModemAClonar

en mi caso quedaría de la siguiente manera:

sudo tar xzf /usr/share/usb_modeswitch/configPack.tar.gz 19d2:0149

Ahora realizaremos una copia reemplazando el idProductDeDelModemAClonar por el idProductModemActual, con el siguiente comando:

sudo cp idVendorDelModemAClonar\:idProductDelModemAClonar idVendorDelModemAClonar\:idProductModemActual

en mi caso quedaría de la siguiente manera:

sudo cp 19d2\:0149 19d2\:2000

Ahora modificaremos la copia 19d2:\2000 con el siguiente comando:

sudo nano 19d2\:2000

Y donde dice TargetProduct notaremos que tiene el 0149 del módem que queremos clonar;


Ese lo cambiamos por el que tenemos actualmente en mi caso es el 2000 y el archivo quedaría de la siguiente manera:


Lo guardamos, desconectamos nuestro módem y lo volvemos a conectar y ejecutamos el comando dmesg:


Ahora ya notamos que lo esta identificando como un GSM módem a continuación nos ubicamos en la carpeta donde tenemos el archivo ya configurado desde un principio, en mi caso lo tengo en cd/home/pi/3g y ejecutamos:

sudo ./sakis3g --interactive


Primero pregunta que script quieres ejecutar en nuestro caso debe ser con Connect with 3G


Luego te menciona que selecciones la categoría del módem, en nuestro caso es el USB device.


Luego nos solicita la marca del módem como estoy utilizando el ZTE utilizo la opciónZTE WCDMA Technologies MSM



Luego notaras que esta preparando el módem y seleccionas el tipo de conexión que realizaras en mi caso iniciare con el Custom APN...



Primero te solicita el APN como es telcel el que utilizo debo utilizar el:

internet.itelcel.com



Luego el usuario del APN que seria en mi caso:

wgprs




Y por ultimo la contraseña: wgprs2012




Y notaras que el módem se esta conectando y al final te confirmara su conexión:




Y para probarlo existe un navegador en linea que se le conoce como lynx para probarlo ejecutas:

lynx http://www.google.com

en caso de no tenerlo instalado simplemente ejecutas sudo apt-get install lynx y después nuevamente intentas ingresar a la pagina.



Una vez que termines de navegar lo que tienes que hacer para desconectarte nuevamente ingresas a la carpeta donde tienes el sakis y ejecutas:

sudo ./sakis3g --interactive

Y escoges la opción desconectarse (Disconnect)y listo.





Blog escrito por Sául Vázquez Radilla.
jueves, septiembre 12

GPS BU-353-S4 con NTP

Raspberry Pi GPS


Bueno el objetivo principal de esta entrada es instalar el GPS al Raspberry Pi es conseguir que el GPS BU-353-S4 que muestro a continuación funcione en el Raspberry Pi y posteriormente buscar la manera de posicionar la longitud y latitud que nos regresa en un mapa.



Este GPS BU-353-S4 con conector USB incluye un CD de configuración para el Windows pero no lo ocupamos; Antes de conectar ejecutamos el código sudo lsusb para ver que dispositivos se encuentran conectados. Ahora bien conectamos el GPS BU-353-S4 y tecleamos nuevamente el comando sudo lsusb.


Identificamos cual es el dispositivo que no se encontraba conectado antes de haber ejecutado por segunda vez el comando. En mi caso es el siguiente:

Bus 001 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Si verificas en el /var/log/syslog notaras que tiene creado el puerto como /dev/ttyUSB0 como el primer puerto serial.


Raspberry Pi con GPS BU-353-S4


Ahora para recibir los datos de los satélites mediante el GPS BU-353-S4 en el Raspberry Pi, necesitamos instalar unos repositorios disponibles para linux que se llaman gpsd para tener el cliente y servidor para el GPS BU-353-S4, ejecutando el siguiente comando:

sudo apt-get install gpsd gpsd-clients python-gps

después necesitamos iniciar el demonio:

sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock

Ignora cualquier mensaje que te arroje la consola o los archivos log, veras mensajes relacionados con el IPv6 también puedes ignorar eso.

GPS BU-353-S4: Longitud y Latitud


Primero debes saber que el GPS BU-353-S4 no sirve en interiores, ya que necesita una vista clara del cielo así que para esto he puesto la antena del GPS BU-353-S4  cerca de una puerta abierta. Una de las ventajas de este GPS BU-353-S4 es que tiene un Super-cohesiva magnética por lo tanto me permite montarlo aquí:






Ahora ya que posicionamos el GPS BU-353-S4 o el Raspberry Pi cerca de alguna ventana o un lugar donde pueda recibir una señal aceptable el GPS BU-353-S4 ejecutamos el siguiente comando:

sudo cgps -s

Lo que hace la bandera -s es decirle al GPS BU-353-S4 que no escriba los datos en bruto, así como los datos procesados. Y conseguiremos la siguiente salida:

NOTA!!!: Si les muestra alguna alerta de timeout al intentar ejecutar el cgps -s, intenten darle permisos al gps con:

sudo chmod 775 /dev/ttyUSB0



Notaras que yo estoy recibiendo información de 10 satelites. Las lineas Err te dicen el error en tu posición. Si lo llegas a notar las lineas Err llegan a cambiar a cada segundo o por lo menos aproximadamente. El 3D Fix le dice que tiene suficientes datos para una solución 3D en su localización (la altitud, por ejemplo). 

También es posible manejar el X-Windows; En mi caso me abstengo por hacerlo y explicarlo para que empecemos a acostumbrarnos al ambiente consola y evitar que el Raspberry Pi tenga que trabajar muchos procesos innecesarios haciéndose mas lento. Pero si aun así deseas aprenderlo te recomiendo el link fuente de esta entrada ahí encontraras como usarlo en X-Windows.


Raspberry Pi ntp con el GPS BU-353-S4


Ahora que ya tenemos el GPS BU-353-S4 funcionando podemos hacer que el Raspberry PI lo use cada determinado tiempo. Para hacer esto necesitamos configurar el ntp en Raspberry Pi para el uso de los satélites GPS BU-353-S4 como recurso del tiempo. Ahora ya debes de tener instalado el ntp en caso de que no lo este, entonces instalarlo con el comando:

sudo apt-get install ntp

Después necesitamos configurar  el archivo: sudo nano /etc/ntp.conf y agregarle algunas lineas para definir el GPS BU-353-S4. Esto puede ser antes o después de las lineas existentes que comienzan con el servidor.

#gps ntp
server 127.127.28.0 minpoll 4
fudge 127.127.28.0 time1 0.183 refid NMEA
server 127.127.28.1 minpoll 4 prefer
fudge 127.127.28.1 refid PPS


Ahora reinicia el ntp con el siguiente comando:

sudo service ntp restart

Ahora bien, si se consulta el servidor después de un tiempo, podrías verlo sincronizado con el GPS BU-353-S4. Ejecutando el comando:

sudo ntpq -p


NTP con GPS BU-353-S4


En un principio notaras que el NTP no se conecta con el GPS BU-353-S4 en un primer momento; Parece como si empezara el gpsd sin el enlace al puerto serie. Por lo tanto tendrías que hacer lo siguiente:

$ sudo killall gpsd
$ sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
$ sudo service ntp restart

Y con esto ya debe de estar funcionando bien.




Algunas veces mientras corre el  cgps y espera a que se haga una revisión también corrige esto. De esta manera ya cuentas con el gps configurado mediante el ntp del Raspberry Pi



Blog escrito por Sául Vázquez Radilla.
domingo, septiembre 8

Raspberry Pi con Webcam

En esta entrada utilizaré una webcam para Raspberry Pi, cuenta con micrófono integrado, y es de la marca Green Leaf, con ella se realizara streaming con nuestro Raspberry.


 
Antes de iniciar deben recordar que una cosa es que funcione cualquier dispositivo conectado directamente a la Raspberry Pi y otra que funcione desde el Hub USB por que recuerden que yo manejo un Hub USB (listado en mi entrada de "partes del Raspberry Pi" para hacer una computadora con el Raspberry) para mi comodidad; en mi caso no tuve problemas con el uso de la cámara pensaba que no funcionaria pero fue todo lo contrario si funciono sin ningún problema espero que así sea con cualquier dispositivo que lleguen a adquirir.

Bueno empecemos; conectamos la webcam al hub usb del Raspberry Pi...

Raspberry fswebcam


Instalaremos el fswebcam en Raspberry pi para la captura de fotogramas, también se puede trabajar por intervalos de tiempo, también cabe mencionar que se puede llamar a la aplicación desde un script bash cuando se requiera pero esto sera para otra entrada; para ello ejecutamos el siguiente comando en consola:

sudo apt-get install fswebcam

Una de las características de este fswebcam es que se puede añadir un pie de página a la captura, donde se puede especificar el texto de su elección, por ejemplo este es el comando que probé:

sudo fswebcam -r 640x480 -S 15 --flip h --jpeg 95 --shadow --title "WebOnActive" --subtitle "Prueba de Webcam Green Leaf" --info "Monitor: Active @ 1 fpm" --save home.jpg -q -l 60

Fotos capturadas con mi webcam raspberry:



opciones:

-f : la resolución del frame ancho*altura
-s : numero de frameworks que salta para capturar una imagen estable y con buena iluminación
--flip : posición del marco en este caso horizontal (h)
--jpeg : calidad de captura jpeg
--shadow : agrega una sombra de pie de pagina con texto
--title, --subtitle, --info : diferentes formas de agregar el texto
--save : nombre con extensión donde se guardara el frame tomado.
-q : deja el proceso correr el  comando como proceso oculto
-l : toma foto instantánea cada numero de segundos especificados.

para mayor explicación consulta el manual en Raspbian: man fswebcam


Raspberry Pi Motion


Ahora probaremos la aplicación motion en Raspberry Pi es un sistema de vigilancia más completo y personalizable. Entre lo que puede hacer, es capaz de la detección de movimiento, grabar frames, grabar vídeo, etc.; Lo instalamos con el siguiente comando:

sudo apt-get install motion

Este incluye una interfaz de configurable, pero primero que nada si llegas a necesitar especificar algunos puertos para que motion corra bien, pueden editar los mismos en el archivo:

sudo nano /etc/motion/motion.conf

y buscaremos la sección control_port (default 8080) y stream_port (default 8081) si llegas a necesitar hacer algun cambio adelante, pero si prefieres simplemente dejalo con sus valores predeterminados.

Debo aclarar que yo tuve que hacerle una modificación por que el envío de imágenes al server no me funcionaba entonces lo que modifique fue lo siguiente:

# Restricti webcam connections to localhost only (dafault: on)
#webcam_localhost on
webcam_localhost off
# Restrict webcam connections to localhost only (default: on) #webcam_localhost on webcam_localhost off - See more at: http://www.slblabs.com/2012/09/26/rpi-webcam-stream/#sthash.VkExYDqn.dpuf


Para iniciar motion en Raspberry puedes correrlo así, en una terminal:

sudo motion

Y ahora puedes accesar a la interfaz de configuración  por medio de la siguiente dirección que deberías de accesar por medio de tu navegador (midori).

http://RPI-IP:webcontrol_port

donde RPI-IP es la dirección local IP de tu RPi y el webcontrol_port es el mismo que seleccionaste en tu archivo de configuración.

Algunos de los parámetros que deberías saber son los de:

width and height : Tamaño del frame, depende de la cámara
framerate: máximo de numero de frames capturados por segundo
thereshold : numero de pixeles en la imagen esto puede cambiar el disparador del detector del motion
quality : la calidad que deseas del frame
ffmpeg_timelapse : numero de segundos entre la captura del frame con la grabación
ffmpeg_bps : constante arbitraria para la codificación del vídeo (ignorado por el lapso de tiempo)
ffmpeg_variable_bitrate : constante para la codificación del vídeo (con una tasa de bits variable es la única manera de conseguir grabaciones decentes, este ajuste se utiliza para la grabación de movimiento de vídeo y lapsos de tiempo) y claro diferentes pistas de imágenes/vídeo/lapsos donde guardar las capturas se encuentra entre las opciones que pueden ser personalizadas a tu gusto.

Otra de las características que tiene motion es que es posible ejecutar cualquier comando en particular en cualquier momento en que un evento sea iniciado y/o cuando una imagen es capturada, esto es posible con el parámetro on_event_start y on_picture_save
Y el vídeo esta disponible en el puerto configurado del (stream_port) que se modifico en el archivo anterior "en caso de haberlo hecho" e ingresas de la misma manera con el que ingresaste al webcontrol_port:

http://RPI-IP:stream_port/

Y todo lo que captura motion se encontrara en la dirección /tmp/motion/ encontraras todas las imágenes que capturo y también archivos en formato .swf donde fue que grabo.

Lo que graba lo hace en formato swf por lo tanto para reproducirlo debemos instalar gnash en Raspberry Pi

Imágenes de los resultados de trabajar con motion:







Raspberry Pi mjpeg-streamer


Ahora probare la aplicación mjpeg-streamer en Raspberry Pi que no esta tan completo como lo es motion, pero es perfecto si lo que quieres es hacer vídeo streamming. Este también te da una interface web para mostrar el stream. Para este, no se encontró ningún archivo binario para la versión del procesador arm; pero lo compilo el blogger de SLB Labs en la fuente encontraras mas información.

Primero descargamos el archivo aqui. Usualmente cuando se descarga algún archivo normalmente se guarda en /home/usuario

Ahora para extraer su contenido nos dirigimos a su ubicación actual, y extraemos el archivo con el siguiente comando:

sudo tar xvzf mjpg-streamer-r63.tar.gz

Ahora para poder compilar el mjpg-streamer, necesitamos la librería de libjpeg8-dev, entonces lo instalaremos primero:

sudo apt-get install libjpeg8-dev

También tenemos que realizar realizar un enlace simbólico, que resulta importante:

sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

Ahora estamos listos para iniciar la compilación del programa, nos ubicamos en la carpeta que se extrajo anteriormente:

$ cd mjpg-streamer-r63
$ CFLAGS+="-O2 -march=armv6 -mfpu=vfp -mfloat-abi=hard" make

Y eso seria todo... para correr el programa necesitaras ejecutar el siguiente comando:

$ export LD_LIBRARY_PATH=.
$./mjpg_streamer -i './input_uvc.so -d /dev/video0 -r 640x480 -f 15' -o './output_http.so -w ./www -p 8080'

Al momento de ejecutarlo me sale el siguiente error:

Unable to set format: Invalid argument
Init v4L2 failed !! exit fatal

Esto sucede por que nuestro RPi o en este caso mi HUB Usb soporta el USB2.0, por lo tanto el stream solo puede usarse con el modo yuv para la salida de las imágenes.

Por lo tanto el comando para ejecutar el programa donde quiera que este ubicado y con el formato de yuv, tienes primero que hacer el enlace hacia la dirección donde se encuentra el archivo descargado y modificar un poco el comando y quedaría de la siguiente manera (en mi caso):

 /home/pi/mjpg-streammer-r63/./mjpg_streamer -i './input_uvc.so -d /dev/video0 -y' -o './output_http.so -w ./www -p 8080'


Y podrás entrar a la interfaz que proporciona el MJPG Streamer de la siguiente manera:

http://RPI-IP:8080/

donde el RPI-IP es la dirección ip que tiene asignada


NOTA: No se ve nada por que detuve el proceso antes de que mostrara algo, pero mas adelante de esta entrada notaras que si funciona.


Si lo único que deseas es ver como trabaja el streamming puedes ingresar directamente usando la pagina:

http://RPI-IP:8080/?action=stream

Y te mostrara el envío que esta realizando del streamming.



switches: -r: frame resolution width*height -S: numbers of frame to skip for the webcam to capture a stable and well illuminated frame --flip: frame flipping, in this case horizontal --jpeg: jpeg compression quality --shadow: adds a drop shadow to the footer text --title, --subtitle, --info: different fields of the footer text --save: path and file name where to saved the frame to -q: leaves the process running in background -l: takes a snapshoot every specified number of seconds - See more at: http://www.slblabs.com/2012/09/26/rpi-webcam-stream/#sthash.JKWhP2cY.dpuf
fswebcam -r 640x480 -S 15 --flip h --jpeg 95 --shadow --title "SLB Labs" --subtitle "Home" --info "Monitor: Active @ 1 fpm" --save home.jpg -q -l 60 - See more at: http://www.slblabs.com/2012/09/26/rpi-webcam-stream/#sthash.JKWhP2cY.dpuf
fswebcam -r 640x480 -S 15 --flip h --jpeg 95 --shadow --title "SLB Labs" --subtitle "Home" --info "Monitor: Active @ 1 fpm" --save home.jpg -q -l 60 - See more at: http://www.slblabs.com/2012/09/26/rpi-webcam-stream/#sthash.JKWhP2cY.dpuf



Blog escrito por Sául Vázquez Radilla.