Arduino Leonardo, ya está aquí

El pasado lunes se ponía a la venta en todo el planeta la nueva Arduino Leonardo y ayer martes se liberaba la versión del Arduino IDE que da soporte a esta nueva placa (además de ser la primera versión del IDE multi-idioma).

Esta placa tiene unas características que la hacen muy apetecible, como la separación entre el USB y el puerto Serie, los 12 pines de entrada analógicos, que se hayan cambiado los leds a una posición en la que siguen siendo visibles cuando se conecta un shield y que monte un conector micro-USB.

Pero quizá una de las características que más me atraen es la posibilidad de emular un teclado o un ratón USB desde código, esto abre la puerta a que Arduino pueda interactuar con cualquier aplicación de escritorio o ha hacer data-logging sobre un archivo de texto u hoja de cálculo de forma directa.

Pero también abre la puerta a las gamberradas… y no me he podido resistir.

Así que el primer código que he escrito para una Arduino Leonardo es tal que así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 Broma del virus
 
 version: 0.1
 fecha: 22/05/2012
 autor: Jose Manuel Escuder

 */


void setup() {

  // iniciamos el control de teclado
  Keyboard.begin();
 
  // que empiece la fiesta
  delay(2000);
  Keyboard.println(" ");
  Keyboard.println("Descargando virus Makiavelo");
  delay(2000);
  Keyboard.println("Virus Makiavelo descargado, instalando");
  Keyboard.println("por favor espere....");
  delay(2000);
  Keyboard.println("Virus Makiavelo instalado. Que lo disfrutes.");
}

void loop()
 {
  }

Ahora solo hay que cargarlo en una Leonardo, llevarla en la mano con el cable USB conectado, acercarnos a alguien que esté en un ordenador (preferiblemente muy concentrado programando), conectar el cable en un puerto USB y echarnos unas risas.

Arduino Workshop en la UNED

El próximo día 23 de marzo en la UNED de Vilareal (Castellón) impartiré un nuevo Workshop de 3 horas de duración (de 17h a 20h).

Asistir a un Workshop es la mejor forma de tomar contacto con Arduino ya que está pensado como un recorrido guiado por los primeros pasos que debe dar quien quiere en este mundillo, se instala el IDE y se realizan sencillos ejercicios que permiten a  los participantes ir familiarizándose con los Sketches,  con los comandos, las estructuras de control y con los componentes electrónicos más usuales.

Los participantes reciben las explicaciones pertinentes, pueden plantear todas las dudas que tengan y, si no lo tienen, pueden comprar su Arduino en el Workshop.

La mecánica de la charla es igual a todas las que imparto: no hay numero mínimo ni máximo de participantes y se puede traer el material de casa material o comprarlo allí. Si alguien no dispone de material y tampoco quiere comprarlo también puede asistir al Workshop, lo único que no podrá es hacer los ejercicios.

El material necesario para asistir al taller y hacer las prácticas es:

  • Ordenador portátil, deberá aportarlo el participante.
  • Arduino UNO y cable USB. En caso de adquirirlo allí el precio es de 25€.
  • Kit Workshop. Amplio surtido de componentes y accesorios por 35€.

Reconocimiento de voz de Google

Mucho tiempo sin actualizar el blog, malo, malo.

El pasado sábado 22 de Octubre se celebró la segunda reunión del grupo de Arduino de Castellón. Poca afluencia de personal pero muy buen nivel, hablamos de lo que haremos en los próximos meses y nos peleamos con unos Xbees para configurarlos (lo cual tiene más complicación de la que yo me esperaba).

Uno de los miembros del grupo, José Luis Aracil, compartió con nosotros una pequeña joya de su creación con muchas posibilidades. Os cuento, resulta que Google ha lanzado un sistema de reconocimiento de voz para integrarla en su Chrome y en los dispositivos Android. Google no libera, pero comparte, así que el gigante de Internet ha lanzado una API pública para que cualquiera pueda hacer uso de este servicio e integrarlo en sus aplicaciones web, podéis probarlo aquí pero solo funciona con Chrome.

Bueno, pues Pepe nos enseñó (y dio permiso para publicarlo) un pequeño script en Bash con el que podemos hacer uso de esta aplicación directamente desde un terminal y abre la puerta al reconocimiento de voz en cualquier tipo de proyecto. Podéis descargarlo, descomprimirlo y editarlo con gedit para ver lo que tiene dentro.

Básicamente lo que hace el script es usar arecord, un componente de ALSA incluido en la mayoría de distribuciones Linux, para grabar un fichero de sonido en formato wav. Con el comando sox se transforma el fichero wav en un flac, formato que utiliza Google. Sox puede que no lo tengáis instalado, basta con hacer un:

1
sudo apt-get install sox

Luego con wget se manda el fichero flac a google y a esperar la respuesta, solo tarda unos segundos.

Para ejecutar el script en la consola basta con darle permiso de ejecución y  hacer:

1
./testvr.sh

Ahora tenemos 5 segundos para decir algo por el micrófono del ordenador, por ejemplo “hola holita hola”, y en apenas 2 segundos aparece esto:

1
2
[&lt;=&gt;                                    ] 0           --.-K/s              {"status":0,"id":"d29dbb45ecb8b6ebc6fc796c07483870-1","hypotheses":[{"utterance":"<span style="color: #ff0000;">hola holita hola</span>","confidence":0.84131694}]}
[ &lt;=&gt;                                   ] 127         --.-K/s   en 0s

Una extraña cadena de caracteres aparentemente incomprensible, pero fijaos en la parte que he remarcado en rojo, ahí aparece lo que decimos.

He hecho pruebas y reconoce muy bien palabras y números. Es muy preciso y no necesita ningún tipo de entrenamiento por que se basa, además de en reconocimiento de fonemas, en términos de busqueda de Google, así que las palabras que normalmente se pasan por el buscador se reconocen a la perfección. Tras la expresión “utterance”, que es lo que le dictamos, viene la expresión “confidence” que viene a ser un índice de exactitud en un rango de 0 a 1, en el ejemplo mostrado es de 0.841 o un 84’1% de exactitud, lo que también nos da pie a hacer filtrados.

Tomando este script como punto de partida y utilizando Processing podemos enviar ordenes a nuestro Arduino. ¿Quien será el primero en hacer una aplicación de prueba?

 

 

P.D.: El script solo funciona en Linux, yo lo he probado en Ubuntu. Los que usáis güindous… ¿que estáis esperando para cambiar?.