jueves, 24 de enero de 2013

Usar la fecha y hora de los datos EXIF para renombrar fotografías



Para organizar las fotos me gusta renombrarlas con la fecha y hora en la que fueron tomadas.
Para ello podemos usar la utilidad ExifTool de línea de comandos.

Para instalar la utilidad ejecutamos lo siguiente:

aptitude install libimage-exiftool-perl

Ejecutaremos el siguiente comando sobre la carpeta que contiene las fotografías:

exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e .

Bibliografia:

http://www.sno.phy.queensu.ca/~phil/exiftool/
--

miércoles, 2 de enero de 2013

Joystick de PS3 (Dualshock 3 / Sixaxis) por bluetooth en Debian GNU/Linux



Este artículo explica los pasos para configurar un mando de PS3 en Linux, permitiendo que funcione como ratón y mapeando ciertos botones del mando a eventos del teclado.

Conectado con el cable, el mando de la PS3 funciona directamente en Linux, sin hacer nada, pero para que funcione por bluetooth es necesario seguir unos pasos, ya que no sigue el estándar de dispositivos de entrada de Bluetooth.

Para que funcione correctamente vamos a usar el proyecto QtSixA.

No existen paquete para Debian, por lo que debemos compilar el fuente del proyecto con los siguientes comandos:

aptitude -r install bluetooth libusb-dev libbluetooth-dev pyqt4-dev-tools libjack-jackd2-dev pkg-config checkinstall build-essential
wget http://sourceforge.net/projects/qtsixa/files/QtSixA%201.5.1/QtSixA-1.5.1-src.tar.gz
tar xfvz QtSixA-1.5.1-src.tar.gz
cd QtSixA-1.5.1
make
mkdir -p /var/lib/sixad/profiles
checkinstall
update-rc.d sixad defaults
/etc/init.d/sixad start

Conectamos el mando con el cable USB y ejecutamos el siguiente comando:

sixpair

Si obtenemos un mensaje como el siguiente todo ha ido correctamente:

Current Bluetooth master: DE:AD:BE:EF:00:00
Setting master bd_addr to: 00:1F:81:00:06:20

Ahora podemos desconectar el cable USB y pulsar el botón "PS" del joystick.

Si se ha detectado correctamente, en el log del sistema (var/log/messages) aparecerán un par de líneas como las siguientes:

Jan 2 00:36:40 mipc kernel: [ 5598.272211] usb 2-1: USB disconnect, address 3
Jan 2 00:36:48 mipc kernel: [ 5605.974295] input: PLAYSTATION(R)3 Controller (00:23:45:0A:04:37) as /devices/virtual/input/input17

Para desconectar y apagar el mando, pulsar el botón "PS" del mando durante más de 12 segundos.

Para poder usar el joystick como ratón y mapear los botones con eventos del teclado hay varias opciones.
Podemos usar la misma aplicación QtSixA, que permite definir varios perfiles para distintos juegos o aplicaciones.
Otra opción en la misma línea es usar el proyecto QJoyPad.
Y otra opción es usar las opciones que nos ofrece el propio servidor X, que es la que se describe a continuación.

El primer paso será ejecutar lo siguiente:

aptitude -r install xserver-xorg-input-joystick

Y editamos el fichero "/usr/share/X11/xorg.conf.d/50-joystick.conf" añadiendo el siguiente contenido:

Option "MapButton1" "none" # Select
Option "MapButton2" "none" # Analog left button
Option "MapButton3" "none" # Analog right button
Option "MapButton4" "key=67" # Start (F1)

Option "MapButton5" "key=111" # Up (Up)
Option "MapButton6" "key=114" # Right (Right)
Option "MapButton7" "key=116" # Down (Down)
Option "MapButton8" "key=113" # Left (Left)

Option "MapButton9" "none" # R1
Option "MapButton10" "none" # R2
Option "MapButton11" "none" # L1
Option "MapButton12" "none" # L2

Option "MapButton13" "button=1" # Triangle (Mouse left click)
Option "MapButton14" "button=3" # Circle (Mouse right click)
Option "MapButton15" "key=36" # X (Return)
Option "MapButton16" "key=9" # Square (Escape)

Option "MapButton17" "none" # PS

Option "MapAxis1" "mode=relative axis=+1x deadzone=5000" # Analog left
Option "MapAxis2" "mode=relative axis=+1y deadzone=5000" # Analog left
Option "MapAxis3" "mode=relative axis=+1zx deadzone=5000" # Analog right
Option "MapAxis4" "mode=relative axis=+1zy deadzone=5000" # Analog right
Option "MapAxis5" "mode=none" # Motion sensor
Option "MapAxis6" "mode=none" # Motion sensor
Option "MapAxis7" "mode=none" # Motion sensor

Para ver los códigos que aplican a cada tecla ejecutamos el siguiente comando:

xmodmap -pk

Ahora debemos reiniciar el servidor X y ya tenemos configurado el mando.

Bibliografia:

http://qtsixa.sourceforge.net/
http://www.pabr.org/sixlinux/sixlinux.en.html
http://www.raspians.com/Knowledgebase/ps3-dualshock-controller-install-on-the-raspberry-pi/
http://www.x.org/archive/X11R7.5/doc/man/man4/joystick.4.html
http://qjoypad.sourceforge.net/

--