sábado, 29 de mayo de 2010

Cómo hacer tu propio lápiz infrarrojo (IR pen) y táctil para usar con Wiimote

Tener una pizarra digital interactiva se ha convertido en algo muy asequible. Con un simple mando de Wii, un lápiz infrarrojo (IR pen) y algunos de los programas gratuitos o no, por menos de 100 €, aparte del proyector ya se tiene la pizarra digital.

En este artículo voy a mostrar cómo fabricar tu propio lápiz infrarrojo con pulsador manual y pulsación por presión del lápiz.

Material:



- Led infrarrojo (Vishay TSAL6400).
- Pulsador de placa horizontal de botón ancho.
- Pulsador de rosca para carcasa redondo.
- Portapilas AAA (No había de una pila, así que he apañado dos a partir de uno doble).
- Rotulador de pizarra blanca.
- Cable.
- Soldador y estaño.
- Termofusible.

Perforar el pulsador de rosca con un alambre en el soldador (enrollar estando desenchufado y frío!!!) para que entre una patilla del diodo infrarrojo y pegarla con pegamento instantáneo (el de la gota).





El portapilas AAA lo conseguí a partir de uno doble.



Perforar girando un cúter 4 agujeros para que encaje el pulsador plano. Agrandarlo con la punta de un destornillador. Retirar un trozo de envoltorio y rallar la superficie para que agarre al final el termofusible.


En el rotulador de pizarra blanca que tengo hay que retirar el tope interno. Se puede usar un destornillador plano pequeño.


La disposición interna será así:


He fabricado un soporte con el borde de una tarrina de CDs o DVDs:







Las conexiones y la posición de los componentes:



El portapilas que queda sin lateral se puede arreglar añadiendo un trozo de plástico (puede valer de tarrina de CD o cualquier envoltorio semirrígido (como el de un pendrive):



Las conexiones de las partes que quedarán en el interior:


Utilizar cables como guía para los cables del pulsador plano exterior y para guiar el led infrarrojo:


Soldar las puntas de los cables guía a los dos cables que van al pulsador externo y une el cable guía de la punta al led infrarrojo. Además he puesto funda de cable (lo que sobra al pelarlo) a las patas del led infrarrojo, he añadido un trozo de palillo de dientes entre las patas para darle mayor rigidez y lo he rodeado con cinta aislante. También he puesto cinta aislante por el lateral del pulsador de rosca para sujetar el cable que va al led y que no tire hacia fuera:



Ahora hay que ir tirando de los cables guía y empujando el pulsador con el led colocado. El soporte debe entrar un poco forzado pero no en exceso. Cuando esté bastante dentro seguir empujando con el portapilas. Éste es el paso delicado. Una vez que salga el led por la punta, retirar la cinta aislante y comprobar que funciona al presionar:



Ahora soltar los cables guía y soldar los cables al pulsador exterior en dos patas cruzadas (si uno va arriba a la derecha, el otro va abajo a la izquierda). Acabar pegandolo con termofusible:


Ya sólo falta cortar el tapón trasero para que se ajuste al final del portapilas y que así no se mueva nada en el interior:


Y ya está acabado:


Recuerda que contra más blando sea el pulsador de rosca más fácil será la pulsación por presión.

Vídeo de muestra de funcionamiento:

miércoles, 12 de mayo de 2010

Pizarra digital en Asus EEEPC con Ubuntu con el mando de Wii

Con el mando de la Wii es posible tener una pantalla táctil muy asequible.

En Windows no tuve problemas para hacer funcionar los programas que conectan y gestionan el mando de la Wii, pero en Linux siempre salía un problema con la pila (librerías) bluetooth: "Native Library bluecove not available". La distribución es la 9.10.

Probé a utilizar por separado bluz-gnome y gnome-bluetooth, pero daba el mismo fallo.

En freakingtips conseguí la solución al error: instalar las librerías de desarrollo de bluetooth libbluetooh-dev.


sudo apt-get install libbluetooth-dev


Usando el paquete gnome-bluetooth, ya conectaba sin problemas.

Los programas que he probado:

GTKWHITEBOARD (1.3): Funciona de lujo. Permite usar el botón derecho del ratón, apuntando a una zona exterior del borde de la pantalla. Está escrito en Python, por lo que hay que tener instaladas las librerías, que normalmente ya vienen por defecto. Siempre es importante leer las instrucciones que acompañan a los programas para evitar problemas de dependencias.

WIIMOTEWHITEBOARD: Funciona muy bien. No permite el botón derecho del ratón, pero se puede observar lo que ve la cámara del mando de la Wii para comprobar la calibración. Otro pequeño inconveniente es que hace falta descargarse la librería de BlueCove (versión 2.1.0) e incluirlas dentro del archivo JAR. Aquí se puede leer cómo hacerlo completo, pero en italiano. Para ver cómo incluir la librería BlueCove en inglés, mirar en la carpeta HELP de WiimoteWhiteboard.

martes, 2 de marzo de 2010

Problema con portátil de la Junta que se para en grub

En caso de que el portátil no arranque el sistema gráfico, y en su lugar aparezca el indicador "grub>", es síntoma que falta un archivo (concretamente menu.lst). Linux crea archivos de seguridad, por lo que hay una esperanza. Puede que haya sido debido a un apagado incorrecto.

Tras el indicador, escribir los siguientes pasos pulsando la tecla Enter tras cada línea (los números no se ponen y antes de '(' hay un espacio):
  1. root (hd0,0)
  2. setup (hd0)
  3. configfile /grub/menu.lst~
  4. reboot
Notas:
- el "0" de (hd0,0) es un cero.
- antes de los paréntesis va un espacio
- el teclado estará en inglés, por lo que los paréntesis están en el 9 y el cero, y la barra (/) en el menos (-)
- para escribir ~ se pulsa "AltGr" junto con la tecla "4", aunque no es necesario porque se puede autocompletar usando la tecla tabulador (a la izquierda de la Q) cuando esté escrito /boot/grub/men

Con estas instrucciones debería arrancar. Los siguientes inicios no deben tener problema. Si vuelve a aparecer el problema es posible que también haya desaparecido el archivo menu.lst~, por lo que la solución no será tan "sencilla".

martes, 1 de diciembre de 2009

Recuperar resolución de pantalla en ubuntu

Hoy he conectado el EEEPC al proyector de audiovisuales y necesitaba reiniciar. Me pidió autorización para autodetectar la configuración del proyector.

Al acabar, me dejó X-windows con un máximo de 800x600. Desde la configuración de pantalla no permitía más.

Para los que no están muy duchos en Linux fuera del entorno gráfico, decirles que tiene "fácil" solución.

Al autoconfigurarse ha creado un archivo de configuración nuevo, pero se ha hecho una copia de seguridad del anterior. Lo único que hay que hacer es restaurar el archivo anterior.

El archivo es /etc/X11/xorg.conf. El archivo de seguridad se llamará xorg.conf más la fecha en que se sustituyó.

Así, lo único que hay que hacer es: sudo cp /etc/X11/xorg.conf.20091201101010 /etc/X11/xorg.conf

El número 20091201101010 es la fecha y la hora en que se creó. Tendrás que mirar cuál es la fecha y la hora en tu caso.

sábado, 21 de marzo de 2009

Lipsiadmin y Rails: campos belongs_to

Lipsiadmin no ofrece manejo automático de campos relacionales, como belongs_to.

El autor, Davide D'Agostino se escuda en que no es predecible el contenido a mostrar del objeto enlazado. Podría usar un método como .to_s o cualquier otro para uso exclusivo de Lipsiadmin, pero no ha tomado en cuenta esa posibilidad. Así que lo único que propone es añadir a mano el código necesario.

Los cambios no son muchos, pero automatizado estaría mejor.

Entrando al tema, los cambios serían los siguientes:

Como ejemplo, parto de una tablas de clasificaciones que incluye una categoría y una división, ambos en sendas tablas, relacionadas mendiante belongs_to.

Para incluir el campo en el listado, hay que modificar al controlador de clasificaciones de backend en el método index las líneas (2ª y 3ª):


return_data[:clasificaciones] = clasificaciones.collect{|u| { :id => u.id,
:categoria_id => u.categoria.abrev,
:division_id => u.division.abrev,
:equipo => u.equipo,
:posicion => u.posicion,
:jugados => u.jugados,
:ganados => u.ganados,
:empatados => u.empatados,
:perdidos => u.perdidos,
:favor => u.favor,
:contra => u.contra,
:bonus => u.bonus,
:puntos => u.puntos,
:created_at => u.created_at,
:updated_at => u.updated_at } }



En la vista index.js.erb de backend/clasificaciones, habría que añadir la información a las variable items y el parámetro columns del grid


var items = [
{name: 'categoria_id'},
{name: 'division_id'},
...



columns: [
selections,
{
header: 'Categoria',
sortable: false,
dataIndex: 'categoria_id'
},{
header: 'División',
sortable: false,
dataIndex: 'division_id'
},{
...


Para incluir una lista desplegable en el formulario, hay que añadir al parcial _form:

%li
%label Categoría
=select :clasificacion, :categoria_id, Categoria.find(:all).collect{|c| [c.to_s, c.id]}, {:include_blank => false, :selection => @clasificacion.categoria_id}


Similar para la división.

Si tengo tiempo, o si alguien quiere, puede intentar incluir esta posibilidad a Lipsiadmin y remitir la solución como un parche a Davide D'Agostino.

Saludos.

martes, 24 de febrero de 2009

FCKEditor con Lipsiadmin en Rails

Con FCKEditor se puede añadir un área de texto con formato de forma rápida y sencilla. Lipsiadmin usa Ext para la presentación de pantalla, aunque no para el contenido, por lo que se puede usar sobre HTML y Javascript. La configuración que me ha funcionado es la siguiente:

En backend/base/index.html.haml, antes de =javascript_include_tag "backend", "forms":

=javascript_include_tag "fckeditor.js"

El archivo fckeditor.js debe estar en /public/javascripts

La carpeta fckeditor debe estar dentro de /public/javascripts

En public/javascripts/forms.js pertenecinete a Lipsiadmin, la función stiledForm es la que hay que modificar:

function styledForms() {
hoverEffects();
buttonHovers();
formHovers();
//FCKEditor
var sBasePath = '/fckeditor/'
var oFCKeditor = new FCKeditor( 'FCKEditor', '100%', '400' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.ReplaceTextarea() ;
}


En la vista correspondiente a Lipsiadmin:

<%=text_area :noticia, :contenido, :rows => 20, :id => 'FCKEditor'%>

Comentar la línea 127 de fckeditor.js para que no salga error cuando no haya TEXTAREA en el cuerpo:


//alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;


Otra opción es usar TinyMce Editor usando modificaciones similares, pero por ahora adolece de un mal funcionamiento tras la primera carga
de la que no he encontrado solución.

jueves, 8 de enero de 2009

Creación rápida de diapositivas powerpoint

Nos centraremos en la generación de diapositivas para mostrar fotos.


Para ello, en Powerpoint, pulsamos el menú Archivo y la opción Nuevo.

En la barra de Nueva presentación, seleccionar Álbum de fotografías...



Pulsamos el botón Archivo o disco...



Seleccionamos las imágenes a mostrar y dar al botón Insertar.

Las imágenes admiten desde aquí mínimos retoques. Lo más destacable la posibilidad de girarlos (2).

También, la lista se puede reordenar con los botones de las flechas a la izquierda del botón Quitar (3).


En la zona Diseño del álbum, cambiar el Diseño de la imagen a 2 imágenes con título (4).


En la Forma del marco, seleccionar adorno de esquina redondeado (5).


Pulsar el botón Examinar de Plantilla de diseño (6).


Abrir la carpeta Presentation Designs.


Ahí se puede elegir la que más nos guste. Por ejemplo, Watermark. Pulsar el botón Seleccionar.



Dándole al botón Crear (7), sale una diapositiva de presentación y las fotos en las siguientes diapositivas.
Lo que hay que cambiar son los textos. Si se quiere, también se puede añadir más textos sobre o bajo las fotos.
 
javascript:void(0)