Draft Idea

Proyectos, ideas y demás :D

Una impresora multifunción (impresora y escáner) es un aparato muy útil tanto para casa como para oficina. Si queremos utilizar la multifunción para imprimir o escanear desde muchos dispositivos distintos puede ser una tarea poco práctica o imposible. Para sortear este inconveniente he desarrollado esta solución que, aunque es muy mejorable, ofrece la funcionalidad básica.

En mi caso, contamos en casa con una impresora multifunción y varios ordenadores desde los que sería interesante poder imprimir y escanear. Hasta hace poco para imprimir o escanear era necesario ir al ordenador en el que la impresora estuviera conectada y realizar la operación deseada, siempre que el ordenador no estuviera ocupado en ese momento. Otra cosa que también resulta molesta es no poder imprimir desde una tablet o un móvil.

Para solucionar este problema una posible solución es aprovechar la red interna de casa o de la oficina para conectar la impresora multifunción en red. Para ello es necesario utilizar un ordenador como servidor de impresion y escaneado para poder ofrecer estos servicios a todos los dispositivos conectados a la red.

En concreto, para este proyecto se ha utilizado una multifunción de la marca Epson y se ha elegido como servidor un mini ordenador llamado Raspberry Pi que ofrece un rendimiento razonable con un bajo precio y un bajo consumo. En particular, se ha usado una Raspberry Pi modelo B con 256 megabytes de RAM con el sistema operativo Debian y la impresora es una Epson DX4800.

El software utilizado en este proyecto ha sido el servidor de impresión CUPS y dos sencillos scripts en Python que ofrecen la funcionalidad de servidor de impresión de PDF y de servidor de escaneado.

Ejemplo de configuración de red.

Esquema de ejemplo de configuración de red.

 

En el esquema anterior se muestra un ejemplo de la configuración de red que se puede utilizar en este proyecto y es la que se ha tenido en cuenta al realizar esta serie de artículos.

 

Esquema Raspberry Pi

Esquema de conexiones en la Raspberry Pi

 

En la imagen anterior se ilustra las conexiones de la Raspberry Pi que se han utilizado en este proyecto. Como se puede observar se ha utilizado uno de los puertos USB para conectar la impresora y el puerto Ethernet para conectar el Raspberry Pi al router (al que se conectan el resto de dispositivos).

También es posible conectar el Raspberry Pi por red inalámbrica al router utilizando un adaptador inalámbrico en el segundo USB, pero para ello es necesario realizar un poco de configuración extra.

En los siguientes artículos se explica todo lo refente a la implementación de esta solución:

Se agradecen los comentarios ante cualquier duda, sugerencia o corrección.

Instalar Pencil (GUI prototyping tool) en Debian

Publicado en abril 15th, 2013 por Draft Ideader

Pencil es una herramienta que permite realizar prototipos de la interfaz gráfica de usuario (también conocidos como mockups) de una aplicación de escritorio, web o para dispositivos móviles Android e IOS (En el momento de escribir este post, permite prototipado de Android 4). Además posee también figuras de propósito general y figuras para diagramas de flujo. Permite además hacer que estos prototipos sean dinámicos pudiendo enlazarlos entre las diferentes páginas.

 

Pencil mockup

Ejemplo de GUI en pencil

 

Este programa utiliza herramientas de Mozilla Firefox para funcionar (xulrunner) y para instalarlo existen varias formas: Instalar el paquete de Pencil (en Debian no funciona) o instalarlo como complemento de Firefox (en Debian Firefox se llama Iceweasel).

 

Si por alguna razón no se quiere instalarlo como complemento de Iceweasel en Debian, existe una forma muy sencilla de hacer que funcione en Debian:

  1. Descargar el .tar.gz con la última versión del programa aquí: http://code.google.com/p/evoluspencil/downloads/list
  2. Extraer todo el contenido en una carpeta
  3. Abrir una terminal en esa carpeta
  4. Ejecutar el programa con xulrunner. En mi caso: xulrunner-10.0 –app «usr/share/pencil/application.ini»

 

PD: Xulrunner forma parte de Firefox o Iceweasel.

Enlace: http://pencil.evolus.vn/

Conectar un dispositivo Bluetooth a través de terminal

Publicado en marzo 10th, 2013 por Draft Ideader

Recientemente me he encontrado con la necesidad de conectar un teclado Bluetooth (BT) al Raspberry Pi y quería utilizarlo sin necesidad de lanzar el entorno gráfico y usar las herramientas gráficas para emparejarlo (usando la terminal). He encontrado información bastante interesante y útil.

 

He usado BlueZ para hacer más sencillo el emparejamiento y el uso del Bluetooth. En caso de que no lo tengas instalado puedes instalarlo en Ubuntu/Debian/Rasbian con el siguiente comando usando privilegios de root:

# apt-get install bluez-utils

 

Aparte de Bluez, necesitamos cierta información para poder realizar la conexión: El dispotivo Bluetooth del sistema a usar para el emparejamiento (hci0, hci1, …) y la dirección del dispositivo a la que queremos conectarnos (01:23:45:67:89:AB …).

Para obtener los dispositivos Bluetooth del sistema basta con lanzar el siguiente comando y observar su salida:

hciconfig

Obteniendo una salida similar a esta:

draftideader@raspi:/home/draftideader# hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN ISCAN
RX bytes:196055 acl:12611 sco:0 events:918 errors:0
TX bytes:1638 acl:45 sco:0 commands:70 errors:0

hci1: Type: BR/EDR Bus: USB
BD Address:XX:XX:XX:XX:XX:XX ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:663 acl:0 sco:0 events:21 errors:0
TX bytes:341 acl:0 sco:0 commands:20 errors:0

(la información que nos interesa está en negrita)

 

Para obtener los dispositivos Bluetooth a los que te puedes conectar puedes usar el siguiente comando:

hcitool scan

Obteniendo una salida similar a esta:

draftideader@raspi:/home/draftideader# hcitool scan
Scanning …
XX:XX:XX:XX:XX:XX Wireless Keyboard
XX:XX:XX:XX:XX:XX Apple Wireless Keyboard

(la información que nos interesa está en negrita)

 

Una vez que se conoce la información básica (el dispositivo Bluetooth del sistema  y la dirección Bluetooth del dispositivo a usar) solo se necesitan los siguientes comandos para realizar el emparejamiento:

echo 0000 | bluez-simple-agent hciX XX:XX:XX:XX
bluez-test-device trusted XX:XX:XX:XX:XX:XX yes
bluez-test-input connect XX:XX:XX:XX:XX:XX

 

En mi caso tuve un problema para conectar un teclado BT dandome todo el tiempo el siguiente error:

Creating device failed: org.bluez.Error.AuthenticationFailed: Authentication Failed

Para solucionarlo tuve que editar este script de BlueZ: /usr/bin/bluez-simple-agent y cambiar «KeyboardDisplay» por «DisplayYesNo».

 

Más información:

http://www.piaccess.com/trac/wiki/Linux_BlueZ_Bluetooth_Serial_Setup

http://wiki.debian.org/BluetoothUser

 

Copyright © 2009 Draft Idea. Theme by THAT Agency powered by WordPress.