Mostrando entradas con la etiqueta control remoto. Mostrar todas las entradas
Mostrando entradas con la etiqueta control remoto. Mostrar todas las entradas

domingo, 28 de mayo de 2017

¿Cómo puedo crear un reproductor de audio con control remoto en Ubuntu?

¡Trabajadores!

Normalmente recomiendo utilizar reproductores capaces de correr desde la consola Terminal para reproducir música en forma remota. Esto es así pues podemos ingresar a través de la terminal por medio de un Shell Seguro SSH, y desde allí ejecutar remotamente cualquiera de estos reproductores para reproducir música. El audio saldrá a través del equipo remoto. De la gran lista de programas disponibles, he sido adepto a mocp, ya que opera peronísticamente bajo el principio clientelar, y junto con sus amplias posibilidades puede quedar reproduciendo una vez cerrada la sesión.

Sin embargo, este y otros poseen un inconveniente que en ciertos escenarios puede ser determinantes: para controlarlo se requiere idealmente el acceso a un usuario ya configurado en el servidor remoto, y requieren al menos el uso de una terminal con teclado y pantalla. Existen toda una plétora de situaciones donde no podemos cumplir con esto (por ejemplo, en el caso de desear controlar un reproductor pequeño a través de un celular, o un servicio musical externo in situ, o el caso de contar con un servidor musical de una compañía, o en una organización donde no tengamos acceso como usuario específico al servidor).

Nuestro Movimiento ha sido doctrinalmente concebido para honrar el trabajo en todas las condiciones, a fin de llevar la solución al Pueblo Descamisado bajo todas y cada una de las situaciones posibles. Si bien existen imponderables, gracias al Software Libre podremos afrontar cualquier tarea que nos propongamos y encontrarles una solución.

En este caso en particular nos decantaremos a una opción simple, controlando el audio a través de un sistema clientelar, que no requiera acceso a carpetas home de usuario alguno, sino que se ejecute por fuera de los entornos de usuairo. Dicho programa es mpd, que oficiará de programa demonio o "servidor", en tanto que mpc oficiará de cliente.


En primer lugar instalo en el servidor el programa (técnicamente, el "demonio") de servicio musical y otro que oficie de cliente en el equipo:

sudo apt-get install mpd mpc

Luego asigno los permisos necesarios para el servidor ingresando:

sudo chmod 777 /var/lib/mpd/music/ /var/lib/mpd/playlists/
sudo chown -R mpd:audio /var/lib/mpd/music/ /var/lib/mpd/playlists


Ahora agrego la configuración necesaria para los archivos de configuración:

sudo mv /etc/mpd.conf /etc/mpd.conf.original
sudo nano /etc/mpd.conf


...y le agrego el siguiente contenido

music_directory      "/var/lib/mpd/music"
playlist_directory   "/var/lib/mpd/playlists"
db_file              "/var/lib/mpd/tag_cache"
log_file             "/var/log/mpd/mpd.log"
pid_file             "/run/mpd/pid"
state_file           "/var/lib/mpd/state"
sticker_file         "/var/lib/mpd/sticker.sql"
user                 "mpd"
port                 "6600"
log_level            "verbose"


...y guardo (Ctrl+o) y cierro el archivo (Ctrl+x).

Ahora debemos copiar los archivos de música a reproducir remotamente en la carpeta /var/lib/mpd/music, y si quisiéramos usar listas de reproducción, debemos colocarlas en la carpeta /var/lib/mpd/playlists.

Conforme lo hayamos hecho, debemos bloquear el acceso a dicha carpeta para cualquier usuario que no sean los clientes mpd locales o remotos. Lo haremos con:

sudo chmod 770 /var/lib/mpd/music/ /var/lib/mpd/playlists/

Ahora tomamos nota de quien es dueño de las carpetas. Si no lo hicimos, podremos hacerlo nuevamente con

sudo chown -R mpd:audio /var/lib/mpd/music/

Luego desde la terminal reiniciaremos el servidor para que se active el servicio recién instalado:

sudo reboot

Ahora bien, en los equipos cliente (y naturalmente también podría querer hacerlo en el servidor, a fin de reproducir la música), instalaré los softwares clientelares. Lo haré con:

sudo apt-get install mpc gmpc gmpc-plugins

Acto seguido, en los clientes y en el servidor podremos actualizar la base de datos de música, a fin de que los mismos se informen si en la carpeta Music del servidor se hubiesen agregado nuevos elementos:

mpc update

Indidablemente, que los clientes también pueden ejecutarse también desde cómodos entornos gráficos. El cliente gmpc es útil para tales condiciones y podremos correrlo desde Aplicaciones / Música y Video / Cliente de Reproducción de Música Gnome. Al lanzar el programa, también debemos hacer que actualice su base de datos de música. Si estamos en el servidor, podremos hacerlo desde el menú Servidor / Actualizar base de datos y tendremos entonces nuestra lista de archivos de música, que encontraremos en la carpeta raíz del servidor MPD ("/").

Si estamos desde un equipos cliente, el mismo no encontrará la música hasta que configuremos la dirección del servidor remoto, desde Música / Preferencias, y en la solapa Conexión modificar el campo "Servidor" para que en lugar de localhost, se indique la dirección IP o el nombre del servidor. Luego presionamos el botón Conectar.
Asimismo tendremos clientes para Android que podremos utilizar desde celulares o tablets para controlar el servidor musical mpd. Por ejemplo MPD Control o Droid MPD Client. Estos clientes gráficos nos permiten las facilidades de un cliente gráfico.

Ahora bien ¿qué sucede si deseo emplear un control remoto por infrarrojos para controlar la reproducción del servidor mpd? Esto me permitiría interactuar con un equipo servidor de manera simple, sin siquiera disponer de un teclado, pantalla, ni engorros. Incluso me permitiría armar un pequeño servidor dotado de altavoces que reproduzca música de forma inalámbrica.

El software libre ya cuenta con una solución. Naturalmente, si tenemos un receptor infrarrojo para control remoto - como el RC6 o cualquiera que vienen con sintonizadoras - tendremos varias opciones. La más aventajada y compleja es configurar LIRC para hacer uso de un control remoto IR en una PC.

LIRC es potente y permite configurar distintas acciones para distintos tipos de programas, pero está pensado para usarse al unísono con otros controles (teclado, mouse o cualquier otro). Si nuestro requerimiento es mucho más simple y requiere reemplazar el teclado por el control remoto, podremos instalar en el sistema cliente el programa keybinder, software ingeniado para asignar comandos específicos a los botones del control. Para instalarlo, en la terminal ingreso los siguientes Comandos de Organización:

sudo apt-get install unzip gcc make evtest ;
cd ~ ;
mkdir keybinder ;
cd keybinder ;
wget https://github.com/elopez/keybinder/archive/master.zip ;
unzip master.zip
cd keybinder-master/
make
make install
cd ~
rm -r ~/keybinder


Luego ejecutamos el programa evtest para analizar cuáles son los eventos de los botones de nuestro sistema. Ingresamos en la terminal el comando:

evtest

...y el sistema nos devolverá algo como:

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:    Power Button
/dev/input/event1:    Power Button
/dev/input/event2:    Barcode Reader
/dev/input/event3:    Barcode Reader
/dev/input/event4:    Genius Optical Mouse
/dev/input/event5:    CH PRODUCTS CH PRO PEDALS USB
/dev/input/event6:    Microsoft SideWinder Joystick
/dev/input/event7:    HDA Intel MID Mic
/dev/input/event8:    HDA Intel MID Line
/dev/input/event9:    HDA Intel MID Headphone Front
/dev/input/event10:    HDA Intel MID Front Headphone Surround
/dev/input/event11:    USB2.0_Camera
/dev/input/event12:    IR-receiver inside an USB DVB receiver

Select the device event number [0-12]: 12

En este caso indicamos el evento /dev/input/event12, y el sistema denunciará cuáles son los códigos numéricos de los eventos que este dispositivo tiene preprogramado (si es que existiesen algunos). Por ejemplo, podría indicar:

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x10b8 product 0x1fa0 version 0x100
Input device name: "IR-receiver inside an USB DVB receiver"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 2 (KEY_1)
    Event code 3 (KEY_2)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
    Event code 8 (KEY_7)
    Event code 9 (KEY_8)
    Event code 10 (KEY_9)
    Event code 11 (KEY_0)
    Event code 41 (KEY_GRAVE)
    Event code 52 (KEY_DOT)
    Event code 55 (KEY_KPASTERISK)
    Event code 102 (KEY_HOME)
    Event code 103 (KEY_UP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
    Event code 111 (KEY_DELETE)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 119 (KEY_PAUSE)
    Event code 128 (KEY_STOP)
    Event code 139 (KEY_MENU)
    Event code 158 (KEY_BACK)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 167 (KEY_RECORD)
    Event code 168 (KEY_REWIND)
    Event code 173 (KEY_REFRESH)
    Event code 207 (KEY_PLAY)
    Event code 208 (KEY_FASTFORWARD)
    Event code 210 (KEY_PRINT)
    Event code 223 (KEY_CANCEL)
    Event code 226 (KEY_MEDIA)
    Event code 352 (KEY_OK)
    Event code 354 (KEY_GOTO)
    Event code 355 (KEY_CLEAR)
    Event code 358 (KEY_INFO)
    Event code 363 (KEY_CHANNEL)
    Event code 365 (KEY_EPG)
    Event code 370 (KEY_SUBTITLE)
    Event code 375 (KEY_SCREEN)
    Event code 377 (KEY_TV)
    Event code 385 (KEY_RADIO)
    Event code 386 (KEY_TUNER)
    Event code 388 (KEY_TEXT)
    Event code 389 (KEY_DVD)
    Event code 392 (KEY_AUDIO)
    Event code 393 (KEY_VIDEO)
    Event code 398 (KEY_RED)
    Event code 399 (KEY_GREEN)
    Event code 400 (KEY_YELLOW)
    Event code 401 (KEY_BLUE)
    Event code 402 (KEY_CHANNELUP)
    Event code 403 (KEY_CHANNELDOWN)
    Event code 405 (KEY_LAST)
    Event code 407 (KEY_NEXT)
    Event code 410 (KEY_SHUFFLE)
    Event code 412 (KEY_PREVIOUS)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    500
    Repeat code 1 (REP_PERIOD)
      Value    125
Properties:
Testing ...


Al presionar los botones del control remoto infrarrojo, debería devolvernos un reporte de tales eventos, en los cuales el valor 1 indica "botón presionado" y el valor 0 indica "botón no presionado".


Testing ... (interrupt to exit)
Event: time 1490184760.781095, type 4 (EV_MSC), code 4 (MSC_SCAN), value 40400d
Event: time 1490184760.781095, type 1 (EV_KEY), code 207 (KEY_PLAY), value 1
Event: time 1490184760.781095, -------------- SYN_REPORT ------------
Event: time 1490184761.023186, type 1 (EV_KEY), code 207 (KEY_PLAY), value 0
Event: time 1490184761.023186, -------------- SYN_REPORT ------------
Event: time 1490184761.793386, type 4 (EV_MSC), code 4 (MSC_SCAN), value 404010
Event: time 1490184761.793386, type 1 (EV_KEY), code 365 (KEY_EPG), value 1
Event: time 1490184761.793386, -------------- SYN_REPORT ------------
Event: time 1490184762.043188, type 1 (EV_KEY), code 365 (KEY_EPG), value 0
Event: time 1490184762.043188, -------------- SYN_REPORT ------------
Event: time 1490184762.734733, type 4 (EV_MSC), code 4 (MSC_SCAN), value 404011
Event: time 1490184762.734733, type 1 (EV_KEY), code 168 (KEY_REWIND), value 1
Event: time 1490184762.734733, -------------- SYN_REPORT ------------
Event: time 1490184762.983185, type 1 (EV_KEY), code 168 (KEY_REWIND), value 0
...etc


Debemos comprobar que efectivamente todas las teclas presionadas tengan programado el código denunciado anteriormente (pues existen ocasiones en que sus funciones denunciadas en la tabla no coinciden plenamente con la de los botones propiamente dichos, pues las plaquetas son genéricas y los controles no poseen todos los botones, o los tienen en lugares diferentes). Para finalizar la prueba de botones presionamos Ctrl+c.

En este caso, se deben programar los eventos según los códigos de los eventos en el archivo /etc/keybinder.conf. Para ello ingresamos:

sudo nano /etc/keybinder.conf

...y le agregamos, por ejemplo:

114,mpc volume +10 # Aumenta el volumen de mpc a +10%, para Vol-
115,mpc volume -10 # Reduce el volumen de moc -10%, para Vol+
168,mpc prev       # Pasa a la pista previa, para <<

407,mpc next       # Pasa a la pista siguiente, para >>
207,mpc toggle     # Reproduce y pausa.
410,mpc random     # Activa reprod.aleatoria, para RANDOM

116,shutdown -h now # Apaga el equipo, para POWER

Y al reiniciar el sistema, tendremos un servidor de audio conectado a altavoces, que podremos controlar simplemente con los botones de un control remoto. Naturalmente que con este conocimiento, habilidad y ganas y sumándole hardware poco costoso consistente en una placa de desarrollo de baja potencia, podremos hacernos un lindo reproductor con caja de madera pulida y acceso a control remoto, que ejecute GNU desde una tarjeta MicroSD.


Si quisiéramos desinstalar el programa y eliminar su carpeta de música y listas de reproducción debo indicar:

sudo apt purge mpd mpc gmpc evtest ;
sudo rm -r /var/lib/mpd/ ;
sudo rm /etc/mpd.conf.original
;

domingo, 24 de febrero de 2013

¿Cómo controlo mi cámara réflex digital desde Ubuntu?

Reunido en Puerta de Hierro con delegados de la Conducción Táctica del Movimiento, Juan Perón expone qué ha hecho en el exilio y enseña a controlar una cámara desde Ubuntu mediante una conexión USB/PTP.

¡Compañeros!

Muchos han creído que había caido en el otracismo durante los sucesivos exilios a los que me obligó una camarilla cipaya. Aún así, me dediqué a conducir a distancia el Movimiento, propiciando las condiciones para lo que será mi retorno a la Patria, pues ustedes saben que he de volver aunque mas no sea para morir en ella.

A pesar de lo que podría parecer, no todo debe reducirse al control político de un Movimiento como lo es el Justicialismo. En casos particulares, las tareas de control deben acotarse a otros menesteres.

Un ejemplo suele aclararlo todo, como decía Napoleón. Todos saben que aquí en Puerta de Hierro mis rosas son las más espléndidas de los alrededores. Simplemente porque les hablo, las cuido y realmente las comprendo. También las he estudiado. Un jardinero part time como yo no puede sino congraciarse con la visión de estas criaturas que la naturaleza nos ha obsequiado, tan es así que me he aficionado a fotografiarlas con mi cámara color, logrando resultados que sólo puedo calificar como óptimos.

Controlar una cámara digital desde Ubuntu es algo complicado, pero gracias al Justicialismo, es una insigne realidad. Esto nos permite enlazar el equipo fotográfico a una computadora (portátil o fija) a través de un cable USB, y a través del magnífico software libre, controlar no sólo las opciones de toma, sino también proceder a la descarga instantánea de la fotografía adquirida en la memoria de nuestro ordenador.
Normalmente las cámaras digitales vienen configurada como Dispositivos de Masa ("Mass Media Storage" al decir de Braden). Esto significa que cuando las conectamos al puerto USB, la cámara es "reconocida" de la misma forma que si estuviésemos conectando un pendrive o disco rígido con archivos de imágenes. Sin embargo, ha sido desarrollado un protocolo más avanzado llamado PTP, que además de ver las fotografías, nos permite controlar la cámara con un enlace bidireccional a través de la interfaz USB.

La existenacia de estas posibilidades engloba otras, como por ejemplo, el uso de intervalómetros digitales de alta performance. Un software libre de este tipo, puede fotografiar automáticamente cada determinada cantidad de segundos, durante un tiempo estipulado. Esto nos permitiría lograr - una vez conjugados los fotogramas - los consabidos efectos de "cámara rápida" tan familiares en la fotografía de paisajes, vida en las ciudades, cortos de stop-motion, botánica y naturaleza, etc.




No sería el Líder y Conductor indiscutido del Movimiento Obrero Argentino, si no pudiese ayudar a la Masa en el proceso de descarga, compilación, instalación y uso de esta paqueteria, sobre todo cuando lo hacemos en Ubuntu, el sistema operativo del Pueblo Peronista. Por ello estableceré una tutoría básica que habrán de seguir y que sin duda desembocará en el éxito, aquel destino que en el horizonte reservado a todos los peronistas.

La lista de cámaras soportadas a través de este mecanismo es bastante amplia. Al ser un estándar de facto, cuenta con mayor o menor soporte para Gran cantidad de cámaras, como las reflex digitales como las Canon EOS Rebel, las Nikon "serie D" (Nikon D40, D60, D70, D90, D7000, D300, D300s, etc), las Pentax serie K, compactas de la serie Nikon Coolpix, Olympus serie C, serie D, y serie X, HP PhotoSmart, Canon IXUS y PowerShot, Fuji FinePix, Panasonic DSC y Coolshot, Ricoh Caplio, Sony CyberShot, gran variedade de teléfonos celulares Nokia, Samsung Galaxy, Sony Xperia, Google Nexus, Apple iPod, tablets como la Acer Iconia, Apple iPad, y muchas mas.


1) Descarga e instalación de Librerías y Programas de Control
Nuestra Doctrina ha dado un equivalente 2.0 a la Justicia Social, que es el Software Libre. Por ello, era lógica consecuencia que tuviésemos disponible librerías genéricas para poder controlar nuestras cámaras digitales a través de un puerto USB en un sistema libre. Encolumnados sobre estas librerías, también existen otros programas front-end que nos permiten sacar gran provecho de este vínculo de unión.

Por ejemplo, contamos con gTimeLapse, capaz de tomar imágenes automáticamente a intervalos regulares. Para la toma sencilla de fotografías de manera remota a través del USB, emplearemos gtKam. Todos ellos se basan en la libreria libgphoto, sin la cual no podremos proceder.

Por tal motivo nos haremos con el código fuente de la versión 2.5.1.1 de la misma, y muy sencillamente desde la consola del sistema la compilaremos e instalaremos.

Abrirán una Terminal con Ctrl+Alt+T, e ingresarán los siguientes Comandos de Organización:

cd ~/Descargas/

wget http://downloads.sourceforge.net/project/gphoto/libgphoto/2.5.1.1/libgphoto2-2.5.1.1.tar.bz2

tar xfvj libgphoto2-2.5.1.1.tar.bz2

cd ~/Descargas/libgphoto2-2.5.1.1/

Para el procedimiento de compilación en sí, debemos hacernos con algunas librerías. Para ello ingresamos:

sudo apt-get install automake autoconf gettext libtool

Normalmente el sistema ya contará con alguna de estas librerías, pero si faltasen, las descargará e instalará. Estas librerías son importantes para finalizar correctamente el procedimiento de compilación de la librería libgphoto en particular y de muchos otros programas en general.

Ahora configuramos el código fuente, preparándolo para su configuración, con la orden:

./configure --prefix=/usr/local

...y finalmente hacemos la compilación propiamente dicha, y la instalamos en nuestro sistema por medio de los comandos clásicos para ese cometido:

make

sudo make install



2) Descarga, compilación e instalación de gTimeLapse
Con todo lo anterior, nos habremos asegurado de contar en nuestro sistema con la última versión de la librería de control libgphoto.

Como segunda acción general, hemos de asegurarnos de instalar principalmente el paquete gphoto2, pero también cierta paquetería de compilación y desarrollo. Es dable notar nuevamente que varios de estos paquetes podrían ya estar presentes en nuestro sistema si con anterioridad hemos compilado algo. Pero nunca está de mas comprobarlo. Ingresamos por ello el siguiente Comando de Organización:

sudo apt-get install gphoto2 libgphoto2-2 libgphoto2-2-dev libgphoto2-port0 libwxbase2.8-dev libwxbase2.8-0 libwxgtk2.8-dev libwxgtk2.8-0 libtool autotools-dev automake1.9 build-essential gtkam

...asimismo en versiones de Ubuntu 12.04LTS y superiores debemos incluir:

sudo apt-get install libgphoto2-l10n libwxgtk2.8-dev

Conforme hayamos descargado las paqueterías que pudiesen faltarnos en el sistema, descargaremos el código fuente del programa gTimeLapse. Si deseamos hacerlo desde la Terminal, podremos hacerlo con:

cd ~/Descargas/


wget http://downloads.sourceforge.net/project/gtimelapse/Relase/gtimelapse-0.1.tar.gz

Una vez descargado el liviano código fuente, nuevamente procederemos a descomprimirlo en una carpeta y compilarlo. Todo ello será simple ingresando uno a uno los siguientes comandos de organización:

tar xzvf gtimelapse-0.1.tar.gz

cd ~/Descargas/gtimelapse/

Y para configurar y compilar gritamos "¡Compilar es Libertar!" e ingresamos:

./configure --with-libgphoto2=/usr/lib



make

sudo make install

Con esto habremos cargado gTimeLapse en el sistema. Para arrancarlo normalmente resulta práctico utilizar un Lanzador o Acceso Directo, de modo que lo creamos. Hacemos clic con el botón derecho del ratón sobre el menu Aplicaciones del Panel Superior, y elegimos "Editar Menús". Luego seleccionamos el menú "Gráficos" y presionamos el botón "+Elemento Nuevo". Se desplegará el cuadro "Crear Lanzador", dentro del cual podremos agregar el el campo Comando: la orden gtimelapse, tal como se indica a continuación:

Conexión de la Cámara y Desmontado

Por todos es sabido que para utilizar este tipo de software de control de cámaras, hemos de conectar la nuestra configurada en el "modo de transmisión MTP o PTP". Sin embargo, son pocos los que conocen que en el caso de los sistemas GNU con Linux, hemos también de desmontarla para tener el control completo.

Con esto en mente, procedemos a onfigurar la cámara en modo USB de tipo MTP o PTP. Naturalmente, para ello habrán de consultar el manual de la misma. En el caso de la Nikon D80 que es la que domino, presionarán el botón Menú / "Llave de Tuercas" / USB y escogerán la modalidad MTP/PTP.

Ahora ya puedo proceder a conectar la cámara a un puerto USB del equipo, para luego encenderla por medio del cable USB suministrado. Normalmente, al encender la cámara, Ubuntu la detectará y nos ofrecerá atentamente abrir las imágenes con algún programa de su arsenal libre, como por ejemplo el Shotwell.

Como he mencionado, habrán de cancelar esta opción, y sin dudarlo, desmontar la memoria. Presionen para ello el botón Desmontar. También pueden hacer clic con el botón derecho del ratón en el ícono "Nikon D80" o el de su cámara que hubiese aparecido en el Escritorio, y escojan la opción Desmontar.

Arranque y uso de gTimeLapse
Si creamos el acceso directo como se nombró anteriormente, podremos lanzar el programas desde el menú Aplicaciones / Gráficos / gTimeLapse.

NOTA: Es importante saber que el programa gTimeLapse tarda un tiempo largo en arrancar, pues al tratarse de una librería genérica, realiza un testeo intensivo de la cámara para determinar sus posibilidades de control real. En mi caso, con la Nikon D80 tarda unos 40 segundos. Hay que tener paciencia hasta que aparezca su ventana.
Se nos presentará el programa que cuenta con varias solapas. La solapa TimeLapse Settings nos permite realizar una toma instantánea a través del cable USB, y configurar en dónde terminarán las fotografías capturadas (si en la tarjeta de memoria de la cámara o en alguna carpeta en particular. En el caso de desear emprender una captura a través del modo intervalómetro, podremos indicar qué intercalo utilizar (en segundos) así como la cantidad de cuadros a tomar durante el intervalo (normalmente uno). También podremos definir intervalos de determinada cantidad de minutos ("maximun runtime") o de determinada cantidad de de fotogramas ("maximun frames").

La solapa de configuración es extensa, y dependiendo del modo de control de la cámara, nos permitirá configurar las opciones (uso del autofoco, flash, tríada de exposición tiempo-diafragma-ISO, balance de blancos, calidad y tamaño, etc). Desde la opción "Objetivos de Captura" podremos escoger también si deseamos grabar el o los fotogramas a la memoria de la cámara, en alguna carpeta de nuestro disco, o en la memoria RAM del equipo.

La solapa Captured Images nos mostrará las fotografías capturadas.

Para iniciar una captura con intervalómetro, debemos ir a la solapa TimeLapse Settings, configurar los valores deseados y presionar Start. La cámara comenzará a disparar automáticamente según el ajuste del programa. Podremos cortar el programa presionando el botón Stop. Las fotografías se irán mostrando en la ventana del programa y almacenándose donde lo hayamos pedido.



Uso de gtKam

Este es un programa más sencillo que el anterior, para controlar la cámara desde la interfaz USB. De forma similar a TimeLapse, habrán de asegurarse de conectar su cámara en modo PTP y de desmontar la tarjeta de memoria para que no tenga errores.

Para inciar este aplicativo libre de control de cámaras digitales, debemos iniciarlo desde Aplicaciones / Gráficos / GtKam Digital Camera Browser.

Para configurar nuestra cámara, vamos al menú Camera / Add Camera.
Normalmente debería detectar su interfaz, puerto USB y cámara de manera automática, y debería agregarla a la lista. Sin embargo, si no fuese ese el caso, podremos agragarla manualmente. Para ello es necesario saber qué identificador tiene el puerto USB al cual se encuentra conectada la cámara, de lo contrario no funcionará. Para ello podremos abrir una consola, e ingresar el comando lsusb. Allí nos listará los dispositivos conectados a qué puerto. Debemos indicar la misma información al programa, y capturar las imágenes.

Para iniciar el proceso de captura, debemos hacer clic con el botón derecho sobre el nombre de la cámara conectada, y elegir la opción "Capture Image...".
También podremos configurar las opciones de toma ampliamente, haciendo clic sobre el nombre de la cámara, y escogiendo View Camera preferences. Esto nos permitirá modificar todas las opciones de toma disponibles.

Por ejemplo, la solapa "Acciones de la Cámara" nos permitirá elegir entre utilizar el autofoco o determinar un punto de foco manual particular.
La solapa Captura de Imagen nos definirá todas las opciones de toma propiamente dicha.
La solapa Opciones de Cámara nos permitirá configurar la cámara con cualquier opcion en particular. Tiene todos los controles posibles de nuestro equipo. Debemos cuidar de que estas modificaciones permanecerán en los modos semiautomáticos, como si los hubiesemos cambiado en la cámara directamente.


martes, 12 de febrero de 2013

¿Cómo hago funcionar el control remoto de la Compro Videomate M1F en Ubuntu?

En una conferencia de prensa en el Palacio de Gobierno, Juan Perón explica cómo en los años aciagos fue posible conducir remotamente el Movimiento desde Madrid, y cómo hacer funcionar el control remotor de la sintonizador Compro VideoMate M1F en Ubuntu.

¡Trabajadores!

No es ningún secreto que durante los años en los que se extendió la prohibición del peronismo -  decretada tontamente por una camarilla gorila, cipaya y servil a los intereses extranjeros - el Movimiento pudo sobrevivir y contrarrestrar mediante la persuasión y la acción decidida a todos quienes se le oponían.

Esto fue así porque el Peronismo no era una fuerza venida del extranjero, o un escuadrón de paracaidistas checoslovacos, sino que representa un componente vital de la Patria misma, y como la Patria no muere, tampoco lo hará su núcleo motor: El Justicialismo.

Muchos dijeron que yo tenía una especial manera de Conducir el Movimiento a  a la distancia; y hacerlo gravitar como la opción política más trascendente de la República, y todo ello desde mi residencia en Madrid. Decían que tenía un "control remoto". Y si, eso era verdad.
Vean señores, ustedes conocen más que yo que la sintonizadora Compro VideoMate Vista M1F funciona en Ubuntu, y se suministra con un control remoto infrarrojo de 51 botones denominado "V100".
Ahora bien, el mismo se haya certificado para su uso en el sistema operativo oligárquico Window$ Vi$ta y superiores (utiliza el protocolo RC-6). Se trata de un control de buena calidad, con un LED azul de funcionamiento, alimentado a través de un par de pilas AAA. Para transmitir las órdenes al equipo, debe apuntarse al diodo del receptor IR conectado a la sintonizadora M1F (se trata de un cable miniplug con un diodo IR en la punta)


Ustedes me preguntan si este control remoto y el dispositivo infrarrojo asociado pueden utilizarse también en Ubuntu, y la respuesta es totalmente afirmativa. Han de saber que para emplear este tipo de controles remotos, los sistemas GNU con Linux cuentan con un programa de interfaz especial: el LIRC. Este paquete permite recibir, decodificar - y en ciertos casos - enviar información a través de dispositivos de luz infrarroja invisible.

Normalmente este paquete LIRC puede configurarse con una serie de opciones prearmadas para los dispositivos o controles remotos más utilizados. Sin embargo, para el caso del emisor V100 que acompaña a la sintonizadora Compro VideoMate M1F, habremos de configurarlo manualmente. Específicamente, habremos de modificar tres archivos de configuración.

Un Movimiento como el Justicialismo debe por tanto adaptarse a todos los tipos de Conducción: desde la minigestiva, la del piloto automático, la del piloto de tormentas, y la del Control Remoto. Por ello, como primer medida, nos notificaremos si el módulo IR de la placa ha sido al menos detectado y aceptado por el sistema. Abrimos una Terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de organización:

cat /proc/bus/input/devices

El sistema debería devolver una información similar a la siguiente:

I: Bus=0001 Vendor=185b Product=c900 Version=0001
N: Name="saa7134 IR (Compro VideoMate Vi"
P: Phys=pci-0000:07:01.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:07:01.0/rc/rc0/input6
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=100013
B: KEY=400 0 108fc216 9d004900000000 0 2108000 200080c4000001 9e168000000000 10004ffc
B: MSC=10


Es importante tomar nota de la línea que indica el número de evento de manipulación (handler, en este caso, event6). Tengamos presente que este número de evento variará de acuerdo a la cantidad de dispositivos de entrada conectados o instalados en nuestro equipo. Incluso, podría variar si desconectamos algún dispositivo y reiniciamos el mismo. Por ello en el caso del uso de la interfaz para control remoto en Linux, LIRC, es muy importante conocer cuál es el nuestro para su correcto funcionamiento.

Una vez que sabemos cual es el número de evento de nuestro receptor de control remoto, podremos instalar LIRC y configurarlo en consecuencia. Si deseamos hacerlo desde la Terminal, ingresamos el siguiente Comando de Organización:

sudo apt-get install lirc

Durante su instalación, el LIRC cuenta con una rutina de configuración para nuestro control remoto. Lamentablemente, como ya saben en dicha lista no cuenta con el control remoto V100 de la Compro M1F.  Podríamos optar por usar "Windows Media Center Trasceivers/Remotes (all)", pero con la misma no funcionarán todas las teclas.

Para que el control remoto de la Compro VideoMate M1F responda adecuadamente a la presión de sus teclas en Ubuntu, habremos de editar manualmente dos archivos de configuración localizados en la carpeta /etc/lirc: los archivos hardware.conf y lircd.conf.

Afortunadamente, el trabajo de identificación de los códigos hexadecimales de cada tecla y de programación del botón ya ha sido realizado, y gracias a la bondad que propicia el software libre, os las daré para que su uso sea como coser y cantar.

Primero editaremos en el editor Gedit la configuración de botones para el control remoto V100. Lo podremos disparar desde la consola con:

sudo nano /etc/lirc/lircd.conf

Esto abrirá un archivo de configuración más o menos en blanco. Lo modificaremos pegándole el siguiente texto de configuración:

### Compro VideoMate Vista M1F ###
# Creator: gThumb <aton77 <at> mail.ru>
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.6(devinput) on Mon Sep 20 19:42:46 2010
#
# contributed by
#
# brand:                       /etc/lirc/lircd.conf
# model no. of remote control: RC6 ir
# devices being controlled by this remote: Compro VideoMate M1F
#

begin remote

  name  /etc/lirc/lircd.conf
  bits           16
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   16
  pre_data       0x8001
  gap          322401
  toggle_bit_mask 0x0

      begin codes
          KEY_POWER                0x0074
          KEY_TUNER                0x00D4
          KEY_VIDEO                0x0181
          KEY_RADIO                0x0189
          KEY_CAMERA               0x0182
          KEY_NEW                  0x00B5
          KEY_CYCLEWINDOWS         0x009A
          KEY_ANGLE                0x0173
          KEY_LANGUAGE             0x0170
          KEY_SEARCH               0x00D9
          KEY_UP                   0x0067
          KEY_LEFT                 0x0069
          KEY_OK                   0x0160
          KEY_RIGHT                0x006A
          KEY_DOWN                 0x006C
          KEY_BACKSPACE            0x000E
          KEY_ZOOM                 0x0174
          KEY_INFO                 0x0166
          KEY_VOLUMEUP             0x0073
          KEY_MUTE                 0x0071
          KEY_CHANNELUP            0x0192
          KEY_VOLUMEDOWN           0x0072
          KEY_CHANNELDOWN          0x0193
          KEY_RECORD               0x00A7
          KEY_STOP                 0x0080
          KEY_BACK                 0x009E
          KEY_PLAY                 0x00CF
          KEY_FORWARD              0x009F
          KEY_PREVIOUS             0x019C
          KEY_PAUSE                0x0077
          KEY_NEXT                 0x0197
          KEY_1                    0x0002
          KEY_2                    0x0003
          KEY_3                    0x0004
          KEY_4                    0x0005
          KEY_5                    0x0006
          KEY_6                    0x0007
          KEY_7                    0x0008
          KEY_8                    0x0009
          KEY_9                    0x000A
          KEY_N                    0x020A
          KEY_0                    0x000B
          KEY_SUBTITLE             0x0172
          KEY_CLEAR                0x0163
          KEY_SCREEN               0x0177
          KEY_ENTER                0x001C
          KEY_RED                  0x018E
          KEY_GREEN                0x018F
          KEY_YELLOW               0x0190
          KEY_BLUE                 0x0191
          KEY_TEXT                 0x0184
      end codes

end remote


#Quitado:
#Configuración para los remotos/receptores Windows Media Center:
#include "/usr/share/lirc/remotes/mceusb/lircd.conf.mceusb"


Guardamos (ctrl+o) y cerramos el editor Nano (ctrl+x).

Acto seguido, procedemos a editar el fichero hardware.conf:

sudo nano /etc/lirc/hardware.conf

Hemos de modificarlo para que quede así:

#Chosen Remote Control
REMOTE=""
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/event6"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Cómo determino nro. de evento?
#En la terminal ejecuto: $ cat /proc/bus/input/devices
#Creador: gThumb <aton77 <at> mail.ru>


Naturalmente, en donde dice dev/input/event6 debemos indicar el evento del que tomamos nota anteriormente. Una vez completado esto, nos aseguramos de guardar el archivo y salir del Nano.

Ahora debemos agregar el archivo oculto .lircrc en nuestra carpeta de usuario, que programa el uso de las teclas:

Para ello abrimos el edit con el siguiente comando:

sudo nano ~/.lircrc

...y en la página en blando del editor le pegamos el siguiente texto:

#Compro VideoMate Vista M1F#
#File ~/.lircrc
#Author: gThumb <aton77 <at> mail.ru>
#/home/user/.lircrc

###SHUTDOWN###
begin
    prog = irexec
    button = KEY_POWER
    config = gnome-session-save --shutdown-dialog
end

### tvtime ###
begin
    prog = irexec
    button = KEY_CAMERA
    config = tvtime &
    config = tvtime-command QUIT
end
begin
    prog = irexec
    button = KEY_CLEAR
    config = tvtime-command QUIT
end
begin
    prog = irexec
    button = KEY_OK
    config = tvtime-command TOGGLE_FULLSCREEN
end
begin
    prog = irexec
    button = KEY_ZOOM
    config = tvtime-command TOGGLE_FULLSCREEN
end
begin
    prog = irexec
    button = KEY_SCREEN
    config = tvtime-command TOGGLE_FULLSCREEN
end
begin
    prog = irexec
    button = KEY_MUTE
    config = tvtime-command TOGGLE_MUTE
end
begin
    prog = irexec
    button = KEY_CHANNELUP
    config = tvtime-command UP
end
begin
    prog = irexec
    button = KEY_CHANNELDOWN
    config = tvtime-command DOWN
end
begin
    prog = irexec
    button = KEY_UP
    config = tvtime-command UP
end
begin
    prog = irexec
    button = KEY_DOWN
    config = tvtime-command DOWN
end
#begin
#    prog = irexec
#    button = KEY_VOLUMEUP
#    config = tvtime-command RIGHT
#end
#begin
#    prog = irexec
#    button = KEY_VOLUMEDOWN
#    config = tvtime-command LEFT
#end
#begin
#    prog = irexec
#    button = KEY_RIGHT
#    config = tvtime-command RIGHT
#end
#begin
#    prog = irexec
#    button = KEY_LEFT
#    config = tvtime-command LEFT
#end
begin
    prog   = irexec
    button = KEY_1
    config = tvtime-command CHANNEL_1
end
begin
    prog   = irexec
    button = KEY_2
    config = tvtime-command CHANNEL_2
end
begin
    prog   = irexec
    button = KEY_3
    config = tvtime-command CHANNEL_3
end
begin
    prog   = irexec
    button = KEY_4
    config = tvtime-command CHANNEL_4
end
begin
    prog   = irexec
    button = KEY_5
    config = tvtime-command CHANNEL_5
end
begin
    prog   = irexec
    button = KEY_6
    config = tvtime-command CHANNEL_6
end
begin
    prog   = irexec
    button = KEY_7
    config = tvtime-command CHANNEL_7
end
begin
    prog   = irexec
    button = KEY_8
    config = tvtime-command CHANNEL_8
end
begin
    prog   = irexec
    button = KEY_9
    config = tvtime-command CHANNEL_9
end
begin
    prog   = irexec
    button = KEY_0
    config = tvtime-command CHANNEL_0
end
begin
    prog = irexec
    button = KEY_ENTER
    config = tvtime-command ENTER
end
begin
    prog = irexec
    button = KEY_INFO
    config = tvtime-command ENTER
end
begin
prog= irexec
button = KEY_NEW
config = tvtime-command SCREENSHOT
mode = tvtime
end

### GNOMERADIO ###
begin
prog = irexec
button = KEY_RADIO
config = gnomeradio &
config = killall -HUP gnomeradio
#mode = gnomeradio
end

begin
     prog = gnomeradio
     button = KEY_CLEAR
     config = QUIT
     flags = mode
end

#begin
#prog = gnomeradio
#button = KEY_VOLUMEUP
#config = volume up
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_VOLUMEDOWN
#config = volume down
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_RIGHT
#config = volume up
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_LEFT
#config = volume down
#mode = gnomeradio
#end

begin
prog = gnomeradio
button = KEY_CHANNELUP
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_CHANNELDOWN
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_UP
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_DOWN
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_FORWARD
repeat = 0
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_BACK
repeat = 0
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_MUTE
config = mute
mode = gnomeradio
end

###VLC###
begin
    prog = irexec
    button = KEY_VIDEO
    config = vlc &
    config = killall -HUP vlc
end
begin
 prog = vlc
 button = KEY_CLEAR
 config = key-quit
end

begin
 prog = vlc
 button = KEY_SEARCH
 config = key-audio-track
end

begin
 prog = vlc
 button = KEY_1
 config = key-incr-scalefactor
end
begin
 prog = vlc
 button = KEY_ENTER
 config = key-incr-scalefactor
end
begin
 prog = vlc
 button = KEY_4
 config = key-decr-scalefactor
end
begin
 prog = vlc
 button = KEY_0
 config = key-decr-scalefactor
end
begin
 prog = vlc
 button = KEY_2
 config = key-zoom-double
end
begin
 prog = vlc
 button = KEY_5
 config = key-zoom-original
end

begin
    prog = vlc
    button = KEY_OK
    config = key-toggle-fullscreen
end
begin
    prog = vlc
    button = KEY_ZOOM
    config = key-toggle-fullscreen
end
begin
    prog = vlc
    button = KEY_SCREEN
    config = key-toggle-fullscreen
end
begin
 prog = vlc
 button = KEY_CHANNELUP
 config = key-next
end
begin
 prog = vlc
 button = KEY_CHANNELDOWN
 config = key-prev
end
begin
 prog = vlc
 button = KEY_UP
 config = key-next
end
begin
 prog = vlc
 button = KEY_DOWN
 config = key-prev
end
#begin
# prog = vlc
# button = KEY_VOLUMEUP
# config = key-vol-up
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_VOLUMEDOWN
# config = key-vol-down
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_RIGHT
# config = key-vol-up
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_LEFT
# config = key-vol-down
# repeat = 10
#end
begin
 prog = vlc
 button = KEY_MUTE
 config = key-vol-mute
end
begin
 prog = vlc
 button = KEY_RECORD
 config = key-record
end
begin
 prog = vlc
 button = KEY_STOP
 config = key-record
end
### TOTEM ###
begin
prog = irexec
button = KEY_TUNER
config = totem &
config = killall -HUP totem
mode = totem
end

begin
prog = totem
button = KEY_CLEAR
config = quit
mode = totem
end

begin
prog = totem
button = KEY_SCREEN
config = fullscreen
mode = totem
end

begin
prog = totem
button = KEY_OK
config = fullscreen
mode = totem
end
begin
prog = totem
button = KEY_ZOOM
config = fullscreen
mode = totem
end
begin
prog = totem
button = KEY_PLAY
config = play_pause
mode = totem
end

begin
prog = totem
button = KEY_PAUSE
config = play_pause
mode = totem
end

#begin
#prog = totem
#button = KEY_VOLUMEUP
#config = volume_up
#mode = totem
#end

#begin
#prog = totem
#button = KEY_VOLUMEDOWN
#config = volume_down
#mode = totem
#end

begin
prog = totem
button = KEY_MUTE
config = mute
mode = totem
end

begin
prog = totem
button = KEY_NEXT
config = next
mode = totem
end
begin
prog = totem
button = KEY_PREVIOUS
config = previous
mode = totem
end
begin
prog = totem
button = KEY_BACK
config = seek_backward
repeat = 1
end
begin
prog = totem
button = KEY_FORWARD
config = seek_forward
repeat = 1
end

###Sound###
begin
    prog = irexec
    button = KEY_VOLUMEUP
    config = amixer  -- sset Master  2%+
end
begin
    prog = irexec
    button = KEY_VOLUMEDOWN
    config = amixer  -- sset Master  2%-
end
begin
    prog = irexec
    button = KEY_RIGHT
    config = amixer  -- sset Master  2%+
end
begin
    prog = irexec
    button = KEY_LEFT
    config = amixer  -- sset Master  2%-
end
#Author: gThumb <aton77 <at> mail.ru>


Guardamos y salimos (ctrl+o y ctrl+x). Finalmente reiniciamos el equipo. Podremos hacerlo desde la Terminal con:

sudo reboot

Al reiniciar, ya será funcional nuestro control remoto. Naturalmente, conviene poner el cable de recepción de infrarrojos en algún lugar cómodo cercano al monitor, donde podamos apuntarle con facilidad con el control remoto V100.

Como corolario final, han de saber que muchas funciones convencionales asignadas en los teclados multimedia funcionarán también con su control remoto: subir y bajar volúmen, función "mute", botón de apagar el sistema, las flechas de desplazamiento, el botón de búsqueda, el botón de pantalla completa para los videos, los de salto y retroceso pausa y reproducción para nuestros MP3 y videos, el uso de Gnome Ratio, TV Time, etc.

Sin embargo, en VLC y Totem debemos asegurarnos de activar el complemento de compatibilidad para controles remotos infrarrojos para obtener la máxima funcionalidad.

Por ejemplo, en el reproductor de películas Totem vamos a Editar / Complementos y tildamos el complemento "Control Remoto por infrarrojos" para luego reiniciar el reproductor.