jueves, 6 de febrero de 2014

Probamos el Bluetooth (y II)



Vamos a por la segunda parte y esperemos que no se cumpla el dicho de "Nunca Segundas partes fueron buenas"...

Como os comenté en la entrada anterior, un compañero de trabajo me propuso ayudarle en un proyecto para modificar unos juguetes adaptados para niños con problemas de movilidad.

Los juguetes que usan ahora están adaptados para que con pulsadores y cables de forma que los niños con dichos problemas puedan interactuar con ellos. Hay juguetes de distintos tipos y dificultad, con un pulsador o varios en función de los niños que los usan.


Bueno, la idea es sustituir los pulsadores y cables por tecnología arduino + bluetooth + android y la propuesta que me hacía mi compañero era si me podría ocupar de la parte de android y el se ocupaba del resto.



A mi, como ya dije, me pareció perfecto, por una parte ayudaba en un proyecto con un fin genial, y por otra, probama el modulo Bluetooth del Kit.

El problema es que yo no había hecho nunca una aplicación android y empezar de cero podía se un poco largo para la necesidad de mi amigo. Afortunadamente, yo había visto el boboBot de Miguel Angel Frutos (MAF), así que hablé con él y gracias a su aplicación y con unos cuantos cambios pude hacer una aplicación para el proyecto de mi compañero.

Una cosa antes de meternos de lleno a contar como utilizar el bluetooth, la aplicación Android se ha hecho con App Inventor (MIT) y es muy recomendable para aquellos, que como yo, no tenemos experiencia en el desarrollo de aplicaciones Android.
















La aplicación Android



En primer lugar voy a contar cuales son los requisitos de la app Android. 

La idea es que hay que modificar dos tipos de juguete: aquellos que solo tienen un pulsador que hace que el juguete (un pato) se mueva o no y otros mas complejos (un coche) con cuatro pulsadores de dirección.

Con estas premisas, nuestra app Android tiene que implementar la posibilidad de elegir el número de botones del juguete que se va a utilizar y después mostrar una pantalla que tenga tantos botones como se han elegido:




 Una vez seleccionado el número de botones, tendremos que seleccionar el bluetooth al que nos queremos conectar y pulsamos en el botón con el símbolo del bluetooth




Si elegimos cuatro botones en lugar de uno, el proceso es el mismo pero nos muestra esta otra pantalla:




Una vez, conectado, cada vez que pulsamos un botón y mientras lo tenemos pulsado,se envía un carácter distinto a la placa arduino de nuestro juguete (en este caso, hemos utilizado nuestros printbots) y que este interpreta para realizar la acción que le hemos programado. En nuestro caso, son los siguientes:


  • Juguete con un botón --> Se envía una 'A' mientras está pulsado el botón.
  • Juguete con cuatro botones:
    • Botón "Arriba" --> Se envía un '1' mientras está pulsado.
    • Botón "Derecha" --> Se envía un '2'.
    • Botón "Abajo" --> Se envía un '3'.
    • Boton "Izquierda" --> Se envía un '4'.
Y en todos los casos, se envía un '0' cuando se deja de pulsar cualquier botón.


La aplicación Arduino

El programa de Arduino no tiene mucho misterio, aparte de definir las conexiones para la comunicación Bluetooth, lo principal es detectar el comando que se le está enviando y determinar la acción que debe hacer en función del mismo.

    switch (command) {
      case 'A':
          Serial.println("1: ON");
          advance();
          break;
      case '0':
          Serial.println("Parar/OFF");
          halt();
          break;
      case '1':
          Serial.println("4b-1: Avanza");
          advance();
          break;
      case '2':
          Serial.println("4b-2: Gira a la Derecha");
          turnR();
          break;
      case '3':
          Serial.println("4b-3: Retrocede");
          move_back();
          break;
       case '4':
          Serial.println("4b-4: Gira a la Izquierda");
          turnL();
          break;    
    }


 Como podeis ver, para hacer que nuestro robot haga otra cosa, solo tenemo que programar la acción que deseemos y cambiar la llamada en este bloque.

A continuación podeis ver un video con el resultado de todo esto. Nuestras pruebas están hechas con nuestro RenacuajoBot, no con los juguetes adaptados.




Apps muy interesantes para nuestros proyectos


Me gustaria comentaros algunas apps que pueden ser muy utiles para nuestras prueba o proyectos:

- BlueTerm (play store): Emulador de terminal (terminal emulator vt100) para conectarse a cualquier dispositivo con puerto serie mediante un adaptador bluetooth-serie como por ejemplo los modulos bluetooth HC-05 / 06. Util para hacer pruebas de conexión y envio de comandos.

 
- Sensoduino (play store):  Me parece una aplicación de lo más interesante ya que nos permite usar todos los sensores de nuestros telefonos Android. O sea, con un teléfono Android, un modulo Bluetooth HC-05 y una placa Arduino es como si tuviesemos tambien sensores GPS, giroscopio, acelerometro, etc. Las posibilidades son tantas como nuestra imaginación permita :-)




Aplicaciones y Fuentes


Aplicación para Android:

 Adapta2

Programas para Arduino:

adaptaBot.ino
comandosAT2.ino

9 comentarios:

  1. Muchas gracias por compartirlo, es un proyecto muy bonito.

    ResponderEliminar
  2. merci pour ce partage d'information votre blog et super top

    ResponderEliminar
  3. hola, muy buen proyecto, me podrias pasar el paso a paso de como realizaste la programación en android, ya que soy nuevo en esto. desde ya muchas gracias. email: arielaudenino@hotmail.com.

    ResponderEliminar
  4. Gracias Ariel.
    Te lo envío a tu email.

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Hola Buenas noches muy buen trabajo el que has realizado yo estoy como Ariel por eso te pediría por favor si fueras tan amable de pasarme el paso a paso de la programación o aclararme como se haces para que ande mientras pulsas en los botones. Muchas gracias me seria de mucha ayuda ya que estoy haciendo algo parecido pero no me aclaro con la programación email: sermanitas@gmail.com

    ResponderEliminar
  7. Hola que tal, quiero hacer un proyecto parecido, podrías pasarme tu .aia para poder ver cómo es tu código de appinventor? o cómo hacer los botones como pulsador? osea que mientras esté presionado el carro avance, ya que mi programación no logro obtener eso.

    ResponderEliminar
    Respuestas
    1. Hola exerdeck, en este enlace https://github.com/movilujo/proyectos/tree/master/adapta2/AppInventor puedes encontrar lo que necesitas. Espero que te sea de utilidad.

      Eliminar