bclose

Controlando Arduino con Android

 

Objetivos

.

 
    • Conectar los módulos Bluetooth a Arduino.
    • Presentar una aplicación Android llamada ArduDroid.
    • Ver como podemos usar ArduDroid para controlar Arduino desde el movil.
    • Montar un circuito de ejemplo.
 

Material requerido.

 

  Tienda España Tienda Mexico
Imagen de Arduino UNO  Arduino Uno R3 Arduino UNO R3
Modulo Bluetooth HC-06 Modulo Bluetooth HC-06 Bluetooth HC-06
Cables Dupont Macho-Hembra Cables Dupont Macho-Hembra Cables Dupont
Vista principal Una Protoboard  Una Protoboard
rojo verde amarillo Un par de leds  Un par de leds
Telefono celular Un móvil

 

 

Trabajando con HC-05 y Android

 

Una vez que hemos visto cómo usar los comandos AT para programar los módulos Bluetooth, en las sesiones anteriores, podemos pasar a la parte fácil que es usar nuestros móviles Android para controlar cualquier proyecto con BlueTooth. Es tan sencillo como conectarnos al módulo y escribir un pequeño programa que gobierne el flujo de control.

Podríamos hacerlo con comandos de texto directos, pero es demasiado poco elegante y aquí  nos gustan las cosas presentables, por lo que vamos a usar un programa de lo más simpático,  disponible para Android que se llama ArduDroid.

Está escrito por TechBitar, y podéis encontrar aquí su página Ardudroid.

Básicamente es un  programa Android con botones y deslizadores, más un esquema de programa Arduino que podemos usar para enviar y recibir comandos de una forma presentable, y que además funciona muy bien.

Para ello necesitaremos que descarguéis ArduDroid de la GooglePlay para Android y lo instaléis en vuestro teléfono.

 
  • Siento tener que decir, de nuevo, que los módulos HC-05 y HC-06 no son capaces de conectar con los móviles de Apple o al menos yo no lo he conseguido
 

Después basta con conectar cualquiera de los dos módulos a nuestros Duinos con un par de cables para GND y Vcc más Rxd y Txd.

Vamos a dedicar esta sesión a ver como conectamos uno de los módulos para la conexión normal de trabajo y cómo usar el Ardudroid para gobernar mensajes de texto, pines digitales y ya puestos algún pin PWM.

 

Diagrama de conexión

 

Vamos a montar inicialmente un pequeño circuito con tres diodos LED para que veamos cómo controlarlos desde el móvil, y luego iremos complicando un poco más el montaje (No, no es una amenaza).

Esquema electrico

 

El montaje de la protoboard es trivial para gente tan experimentada:

Esquema de protoboard

 

El programa de control ArduDroid

 

Ardudroid incluye un programa Arduino, que podemos utilizar como esqueleto para nuestros propios proyectos. Pero nosotros vamos a hacer algunos cambios en la conexión que él hace, porque no me gusta nada que usemos los pines 0 y 1 para comunicarnos con Arduino, así que nosotros usaremos los pines 2 y 3 para la conexión con el módulo BlueTooth.

 
  • Creo que ya comentamos que si usamos los pines 0 y 1 nuestro código funcionara, pero anularemos la conexión con el PC vía USB, que usa los pines 01 y 1.
  • El autor, que es un hombre de mundo, no tiene problemas, porque prueba los programas con un segundo módulo BT, y cuando tiene el programa pulido, no necesita volver a reprogramar, pero yo soy un poco más torpe y prefiero no cerrar esa puerta mantener abierto el USB para mensajes por ejemplo.
 

Vamos a ir presentando el programa de control de Arduino en pequeñas dosis para evitar asustar a nadie, y que los sufridos lectores huyan despavoridos, y de ese modo, además, podremos ir viendo poco a poco las diferentes secciones del programa, que estoy seguro ayudara a su mejor comprensión.

En primer lugar, necesitamos saber, que el programa Ardudroid envía todos los comandos con una sintaxis sencilla. Todas las ordenes empiezan por * y terminan en #, y si la orden incluye múltiples datos, esto vienen separados por el símbolo |

Cuando ArduDroid envía una orden típica, es algo así:  *10|3|2#

Por eso, porque las órdenes se envían codificadas, vamos a empezar con algunas definiciones previas:

#define START_CMD_CHAR '*'
#define END_CMD_CHAR '#'
#define DIV_CMD_CHAR '|'
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20  // max command number code. used for error checking.
#define MIN_COMMAND 10  // minimum command number code. used for error checking.
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2

Además usaremos la librería SoftwareSerial, para hablar con el modulo BlueTooth, mediante los pines digitales 2 y 3:

#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX

Definiremos unas variables para contener los valores que leeremos del comando:

int ard_command = 0;
int pin_num = 0;
int pin_value = 0;

El cuerpo principal del loop es muy sencillo, Vamos a empezar recibiendo mensajes de texto:

Contenido solo disponible para suscriptores. ¡Accede al contenido!

      

Y aquí teneís un minivídeo con el resultado del programa

 

 

 

Resumen de la sesión

 

 
    • Hemos presentado el programa ArduDroid. Una aplicación de lo más simpática para manejar vuestros proyectos a través del móvil.
    • Hemos incluido un ejemplo de circuito para manejar desde el móvil.
    • Hemos presentado como complementar la aplicación Android con un programa base que nos proporciona Ardudroid, para manejar nuestros dispositivos.
 
 
 

 

 

 

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(46) Comments

  • Avatar for Charly
    • Ivan Uriarte

    Hola Carlos, la verdad es que nosotros no hemos usado el appinventor ni programado nada para Android. La parte del Arduino es relativamente sencilla pero necesitaríamos saber lo que le llega desde la aplicación Android.

  • Avatar for Charly
    • Carlos Amaya López

    Buena tarde excelente tutorial y muy bien explicado. Una consulta, requiero hacer un programa donde el usuario seleccione la cantidad de leds que requieren ser prendidos (son 3 leds en total ),posterior a ello seleccione el tiempo(5,10,15 min ) una vez habiendo hecho esto de click en un botón y que comience a operar el proceso según las características seleccionadas anteriormente. Podrían ayudarme orientándome como lo podria hacer.

    Recientemente realicé una aplicación con appinventor que me permite controlar con un botón el encendido y apagado y funciona muy bien, sin embargo ahora se complica mas con estas características, soy novato, podrían orientarme por favor.

  • Avatar for Charly
    • Ivan Uriarte

    Hola Rodrigo, hay que usar el puerto serie para comunicarse con el módulo por medio de comandos AT. Echa un ojo aquí: https://www.prometec.net/bt-hc06/

  • Avatar for Charly
    • Rodrigo Tomás

    Buenas, tengo un problema. Estoy haciendo un coche con un Nano Arduino controlado por Bluetooh pero no consigo configurar el módulo HC06. No sé si es el puerto serie (COM3) o cómo hacerlo. Me podría echar una mano? Gracias

  • Avatar for Charly
    • Ivan Uriarte

    Hola Jose, en principio es un circuito para aprender a utilizar el bluetooth y la aplicación. Nosotros lo usamos para controlar 3 leds, pero puedes usarlo para lo que quieras. Un saludo.

  • Avatar for Charly
    • Jose

    Me podría decir cuales son las aplicaciones de su circuito?

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login