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.
 
 
 

 

 

 

No Comments

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
Tienda y Tutoriales Arduino