sábado, 13 de septiembre de 2014

Servidor Nabaztag : Primeros conceptos y ordenes.

Bien, anteriormente montamos a nuestro nucleo y conectamos nuestro conejo .. pero no hace nada. Ahora empezaremos a "hacer" cosas.

Conceptos Base

Aunque me repetiré, lo considero importante.
Nabaztag simplemente consulta cada 30 segundos, al archivo //servidor/vl/p4.php , las consultas las realiza a través de un GET  (ante la duda ... el access.log de apache), vamos a analizar que transporta el GET.

Para orientarnos extraeré una registro del access.log y comentare los campos:



/vl/p4.php?sn=0013d3849772&v=65802&st=1&sd=0&tc=7fffffff&h=4

Bien ahora analizaremos la informacion ofrecida:

  • sn: es el numero de serie de nuestro conejo, es importante ya que es su identificador unico para futuras aplicaciones o acciones.
  • v : es la versión, recordaros que teníamos los V1 y los V2.
  • st : estado , siempre es 1 en los registros que e realizado.
  • sd : registra las acciones externas (orejas y botón) es el mas importante para registrar interacción externa, ya hablaremos con mas profundidad de el.
  • tc : yo lo denomino como estado de respuesta, ya modifica cuando esta en modo sueño , inicia sesión o activo. 
  • h : siempre es 4, no se que es ... XD.
adicionalmente tenemos un parámetro mas que solo apararece cuando lee una tarjeta RFID
  • rf : indica la MAC de la tarjeta RFID
Estos son los datos de transporta las llamadas del conejo y con ellos realizaremos las distintas interacciones.

Ordenes a Nabaztag

Sabemos que nos trae el conejo , ahora hablaremos de lo que "lee" ya que el equipo conecta a la url y esta "si existe acción" indica una respuesta. 

Vamos a indicar las que conozco y como actúan. 
  • BOTTOMCOLOR : determina el color de la base, una vez indicado no cambia hasta nueva orden o reinicio, el nombre de color tiene que ser en minúsculas.
    • ejemplo: BOTTOMCOLOR Red
  • LED1 / LED2 / LED3 / LED4 : inicia el led con el color determinado (por si solo no hace nada necesita un WAIT .. pero ya profundizaremos en ello.). Los nombres tienen que ir en MAYUSCULA.
    • ejemplo : LED1 RED WAIT 1000
  • EARSUP : sube las orejas del conejo. Se aplica tal cual.
  • EARSDOWN : baja las orejas del conejo. Se aplica tal cual.
  • LEFTTWITCH : mueve la oreja izquierda, tenemos que indicar cuanto la mueve.
    • ejemplo : LEFTTWITCH 5
  • RIGHTTWITCH : mueve la oreja derecha, tenemos que indicar cuanto la mueve.
    • ejemplo : RIGHTTWITCH 6
  • DOTAICHI : hace taichi. Se aplica tal cual.
  • WAIT : espera * mili-segundos a la siguiente acción.
    • ejemplo WAIT 1000
  • FINISH : Termina una sentencia este donde este (actúa como un break). Se aplica tal cual.
  • PLAY : reproduce un Mp3 del servidor (es muuuy sibarita con esto ya explicare por que).
    • ejemplo : PLAY ./media/broad/bienvendia.mp3
  • STREAM : repdoruce una radio-online ... pasa como con el PLAY.
    • ejemplo : STREAM http://url_radio_online/stream.mp3
Estas son lar ordenes que comprende el nabaztag y tienen que ir localizadas en p4.php limpias, etiquetas, notas, csv ... hace que no las ejecute.

Por ello si quieres probarlas , el primer ejercicio seria tan simple como :

<?php
echo 'BOTTOMCOLOR Red';
?> 


Con este código cambias la base a color rojo (tambien puedes probar Green, Blue, Yellow, White, Teal, Violet).

Así con un poco que sepas de php puedes empezar a dar vida a tu conejo, pero no os preocupéis, pronto colgare ejemplos de lo que hace el mio y lo simple que es. 

viernes, 12 de septiembre de 2014

Conectando Nabaztag a nuestro Servidor

Ayer hablamos de como crear el "nucleo" del servidor usando los archivos de nabaztaglives y la función de estos , hoy vamos a conectar al conejo a nuestro servidor.

Materiales necesarios.

ademas del conejo propiamente dicho, necesitamos un equipo con Wifi para crear entrar a una red Ad-Hoc y un router Wifi (en WAP o WEP pero no en WAP2).

Una vez listo los material , con el conejo apagado pulsamos el botón superior y lo conectamos a la red eléctrica (sin soltar el botón), las luces centrales quedaran azules indicando que la red Ad-hoc esta lista.

Bien ahora tenemos que buscar la red generada (NabaztagXX), una vez dentro con el DHCP activo nos dirigiremos a la Ip 192.168.0.1

Pantalla de presentación
1. Seleccionamos nuestra red , protocolo de encriptado y clave 
2. Una vez seleccionado al final incluimos la Ip del servidor (los Nombres no les gusta)
Con estos simples pasos tenemos el conejo listo para enlazar con el servidor , ahora hablemos de las luces e referencia según estos pasos.


  1. Creando la red Ad-hoc: se encontrara con los led de color azul.
  2. Configurado : los led serán naranjas y pasaran a verde hasta apagarse.

Cazando errores

Vamos a hablar de los errores que e detectado y como los e solventado (tengo 3 conejos) así explicaremos como hacer frente a los errores típicos.

  • Tras configurar el conejo ese se queda con todos los led naranja : Este error significa que no conecta a la red , comprueba la configuración y si esta bien en muchos foros te dirán que actualices... 
    • Truco: Tengo la mala costumbre de no actualizar las cosas a lo loco, primero busco otra posible solución, en este caso en concreto encontré que la configuración la carga por una petición GET y modificando esta petición es mas seguro que la configuración por menú. así que os dejo la petición con los datos prepararos para una red WAP/WAP2.
    • http://192.168.0.1/b.htm?w=-&k=nombre_de_la_red&m=2&n=clave_de_la_red=Update+and+Start&l=0&f=1&g=0.0.0.0&h=0.0.0.0&i=0.0.0.0&j=0.0.0.0&c=0&d=0.0.0.0&e=0&a=ip_servidor.
    • Pegando esta petición en el navegador, dentro de la red del conejo (modificando los parámetros) siempre me conecta, adicional mente os marco el m=2 que signfica que es WPA (m=1 WEP)
  • Tras configurar el conejo pasan los led a verde y parpadea : es simple conecta la red pero no al servidor, comprueba que la ruta vl esta en el raid y la ip configurada en este y en el local.jsp.
Y con esto el conejo se encontraría en vuestro server , próximamente acciones básicas. 

jueves, 11 de septiembre de 2014

Reviviendo a Nabaztag

Buenos días,

Llevo una temporada con  material que pasar al blog pero por falta de "tiempo & ganas" la verdad es que no e podido.

Pero aprovechando unos días libres quiero subir los "manuales" que estado preparando estos meses sobre los proyectos que e empezado , tanto como referencia personal o para cualquiera que se aventure por los mismos caminos.

Hace años ... pero años compre un Nabaztag que decía la hora, el tiempo y 4 cosas mas, no controlaba nada critico pero hacia compañía, como un reloj de pared, hasta que un día cerraron los servidores y paso a ser un gato de escayola.

Desde entonces esta impasible como un guardia de roca, de vez en cuando buscaba alternativas a los servidores oficiales, pero nada me convencía ... hasta hace unos meses que encontré nabaztaglives.

Ya sea por mi falta de conocimiento en Java (es mas bien escasa) o por el echo de que le no atinaba pie con bola nada me había convencido pero nabaztaglives esta en Php, algo que si entiendo y puedo moverme ... pero antes de seguir aclaremos puntos.

¿Que es Nabaztag?

Nabaztag es un "conejo" fabricado por Violet , una empresa francesa que termino cerrada, aya en el 2011, y como todo servicio apoyado en la red, si muere la empresa, muere el producto,

Centrándonos en el equipo se trata de un conejo-fantasma que se conecta por Wifi y realiza peticiones GET y POST al servidor cada 30 segundos. Ademas cuenta con un botón en la parte superior, orejas que se mueven interactivas y un lector RFID (ISO/IEC 14443 Type B), un led inferior de 7 colores y 4 led centrales de 5 colores, ademas de un altavoz y un micrófono.

El funcionamiento es simple, el equipo ni almacena ni sabe, solo espera ordenes del servidor y las ejecuta dentro de sus posibilidades.

¿Por que nabaztaglives?

Simple y directo, instalado nabaztaglives cuentas con en servidor estándar (contiene las voces originales en varios idiomas) y en 2 pasos lo tienes listo ... pero vamos a ir un poco mas , vamos a usar lo básico para crear nuestro propio servidor y aumentar las posibilidades del equipo, ademas de aprender que siempre viene bien.

Preparando el "núcleo"

Primero lo primero, bajamos el paquete alojado en sourceforge.
Este es el código en el que el autor aun continua trabajando, despacio pero continua (Animo!!).

Este paquete pesa alrededor de los 65 mb y es que contiene todos los sonidos en varios idiomas, como comentamos anteriormente queremos crear uno desde lo mas cercano a 0  así que vamos a quedarnos lo imprescindible para hacer que el conejo enlace y espere ordenes.

Archivos de conexión 

vamos a hablar cronológicamente de los archivos requeridos por el conejo (equipo) para así conocer paso por paso como actúa.

 Una vez configurado en conejo (lo veremos en el próximo articulo) el conejo busca el archivo "locate.jsp" y "bc.jsp" ambos tienen que encontrarse en la misma carpeta , esta la busca el conejo.
  •  locate.jsp : Contiene la IP del equipo servidor , esto puede ser por que se utilizaba un balanceador y según la saturación de la maquina se redirija a uno o otro , tiene que ser la ip de red publica o red local , pero no la ip local (127.0.0.1) , el Ipv6 no lo traga.
  • bc.jsp : Binario no tocar.

Archivos de acción 

Una vez conectado e indicado la maquina que realizara de servidor el conejo empezara su tarea consultiva.

Importante:  El conejo una vez negociado con "localte.jsp" Siempre, siempre buscara la ruta //servidor/vl , nada de sub-rutas que se lía y adiós muy buenas. Aqui dentro solo consultara 2 archivos "p4.php" y "record.jsp".

  • p4.php : Es el cerebro, donde nabaztag siempre va a consultar que pasa ahora y donde vamos a picar todo el código para poder actuar con el , vamos que todos los problemas vienen derivados de este archivo y lo que gestione. 
  • record.jsp : En nabaztaglives ya nos informan que no lo usan, en mi caso solo se que se activa al hablarle y envía una petición POST, poco mas por ahora. No es necesario tenerlo para que funcione pero me parece interesante mencionarlo.

Y con solo estos archivos tendríamos listo al conejo para esperar instrucciones, así de simple.

En breve comentare como conectar a nuestro servidor y los comandos básicos de Nabaztag.

jueves, 27 de marzo de 2014

Game & Watch : Desde 1980 a la actualidad

Hoy , tras 3 meses de espera por fin me ha llegado mi Game & Watch del club Nintendo ,que se suma a mi humilde colección.


Verla y jugarla nos recuerda como fue el inicio del mundo consola , alejándolos de los aparatosos teclados ofrecidos por las computadoras de la época y simplificando al mínimo los controles.

Esta filosofía , que es la base del  videojuego de consola (Nintendo demostrando en 1984 que todo se podría hacer con con 2 botones y Sega en 1991 que lo podía simplificar a 1) se ha ido desvirtuando con en varias ocasiones en la historia pero siempre se manteniendo esta idea que nos desmarca de los juegos de PC.

34 años , si señor , desde que Gumpei Yokoi unos de los verdaderos padres de este mundo , diera a la luz el primer juguete interactivo que con una investigación posterior nos llevo al emblema del mundo portatil la Game boy .... como lamentamos tu perdida.

Pero volviendo al indice que lo que me gustaría comentar sobre el donde venimos y donde vamos , esas cosas es magnifico cuando las ves con retrospectiva.

Y por que digo esto , bueno todos sabemos que la historia del mundo de la electrónica en general es igual que la historia humana pero increíblemente mas rápido y 30 años podría compararse desde el descubrimiento del fuego a la fecha actual. Solo que una sola vida es capaz de observarla.

Mas de una vez hemos odio que la historia es cíclica que los sucesos vuelven a repetirse , ya sea por que no aprendemos o por que olvidamos , siempre que pienso en ello mas bien creo que la historia se recicla intentado mejorar una acción pasada.

Un ejemplo para esta idea la vivo en mi día a día , mi trabajo requiere mucha inventiva y normalmente no tienes tiempo para mirar atrás ,  siempre construyendo algo nuevo para cubrir una necesidad nueva , pero un día te da por frenar y ver que has creado , en ese momento se te cae la cara de vergüenza y te dedicas a sacar la 2.0 del mismo en tus ratos libres , la historia actúa de manera parecida.

Nitendo 3DS(2011) Vs Donkey Kong 2(1983)
Game Boy Micro (2004) Vs Balls (1981)

Entre estos equipos tenemos unos 23 o 28 años de diferencia y pese a que la foto lleve toda mi mala intención afirma que mi teoría de que la historia se recicla esta presente , ya que creamos para avanzar y en algún momento de nuestro avance con nuevas herramientas y conceptos nos da por mirar hacia atrás y encontramos esa idea vieja que de base no andaba mal y solo tenemos que quitarle el polvo y aplicarte todos lo nuevo que aprendimos.

Que "bonico" es el mundo de los videjuegos que nos hace replantearnos temas tan profundos ... voy a intentar conectar mi Game & Watch a la wifi....

miércoles, 19 de marzo de 2014

Ipega PG-9017 , configurado en N64

Hace un momento veíamos como sincronizar el mando , pero para no dejar una configuración inicial en el tintero vamos a ponerlo en practica.

Tenemos multitud de emuladores en la tienda de GooglePlay , me gustaria ir discriminando los que mejor resultado me han ofrecido para crear una lista de los mas útiles , pero eso requiere tiempo y esto no saldría a la luz hasta ufff.

Por ello vamos a echar un vistazo rápido a uno de los emuladores que mas me ha gustado y una de las configuraciones mas tediosas el mando de N64.

¿Por que el mando de N64?
Cuando hablamos de configurar un mando , tenemos que tener claro donde están los botones , pero si alguien lo quiere rebatir es la Jaguar o la N64 (la primera no tiene emulador).

Vamos a usar RetroAch
RetroAch es uno de los mejores emuladores que he tenido en Linux , ahora también lo uso en windows y como no cuando lo vi para android no dude en lanzarme.

RetroAch cuenta con grandes características entre ellas  , que puede emular desde la nes a la N64 (pasando por megadrive y PSX) formidablemente y eso que aun estan trabajando en el.

La configuracion es simple.
Una vez instalado el emulador nos dirigimos a Settings y dentro de este buscamos la pestaña Input

Una vez dentro tendremos la posibilidad de Mapear cualquier boton  , unicamente tenemos que seleccionar el boton deseado (en el emulador no el fisico) , pulsar Detect y pulsar el botón físico. En caso de no querer tener ese botón activo, pulsaremos Unbind.


Con esta simple guía podemos configurar todas las consolas con mandos lógicos pero nos centraremos en N64.

Para ello veamos el mando antes.


Aparte de los botones que se ven , cuenta con un boton Z en la parte de atrás a eso le sumamos que si queremos jugar con el analogico  el pad digital y el boton L quedan excluidos para el uso , es una de las maravillas del mando de N64 , el echo de que usar el analógico o digital condiciona la vida de algunos botones.

Por ello y tras darle unas vueltas os recomiendo la siguiente configuración.

*Los analógicos se auto detectan y el Start y Digital son los mismo en ambos casos
Los botones C se consideran un analógico.

Boton Fisico Boton Emulador Boton en N64
Boton A A button Boton A
Boton B L1 button Gatillo L
Boton X B button Boton B
Boton L L2 button Gatillo Z
Boton R R1 button Gatillo R

¿Por que esta configuración?
Como comentamos antes el analogico hace que el boton L se pierda , asi que gana preferencia el boton Z que al no estar declarado usa la misma llamada digital que el Boton L2 asi que si lo vemos desde el Ipega lso botones principales del personaje son A y X , los gatillos L y R  y por si fuera necesario llamar el Gatillo L original lo tenemos alado del A , puedo jugar cómodamente a todos los juegos de N64.


Configurando Ipega PG-9017 , Sincronizar.

Hace unos días me llego el Ipega PG-9017  , así que decidí empezar la carrera con la configuración de emuladores en el movil.

El ipega lo he probado en terminales android en múltiples emuladores y tras darle vueltas he encontrado una configuración que puede ser valida para todos.

Antes de empezar referenciar un poco el equipo.

El mando es una mezcla entre los controles de Psp , ya que cuenta con 8 botones (contando Start , Select , L y R) y 2 analógicos como en Ps2.

El primer problema es evidente para la configuración de Psx nos encontramos con  2 botones menos (L2 y R2) , no sustituibles por los analógicos , pero que ya ingeniaremos como solucionarlo.

Por lo demás la respuesta es correcta y el tacto , botones y respuesta de los analógicos esta correcta tiendo el cuenta el precio (entre 16 a 20€) , Ahora que lo conocemos pongámonos con el.

Configuración inicial.

El ipega tiene 4 tipos de conexión o “drivers”

  • Como teclado
  • Como raton
  • Como icade (en iphone es el mas recomendado)
  • Como Joystick

Si vamos a usar un Android superior a 3.2 , ni lo pienses Joystick es el que mejor a respondido en varios programas y es el que vamos a entrar en mas profundidad.

Configuración como Joystick 

Vamos a sincronizar nuestro mando como joystick para ello , primero activar el bluetooth del terminal.



Como nuestro mando tiene 4 modos vamos a seleccionar el modo Joystick , simplemente tenemos que iniciarlo pulsado a la vez Home + X



La luz de Search parpadeara y sera reconocido en nuestro terminal , realizamos la vinculación y la luz se quedara fija indicando que el proceso esta listo.



Como  vemos es extremadamente simple y no es necesario ningún aplicativo adicional ,  vamos a ir evitando aplicaciones inútiles.

Ahora solo tenemos que ir configurando los emuladores que deseemos ….