Vous êtes sur la page 1sur 36

Tutorial de Arduino, Bluetooth y

Android Crear una app con MIT


inventor
Posted on October 29, 2015 by Gl4r3

Hola! En esta srie de tutoriales os explicar cmo conectar Arduino con vuestro dispositivo Android y as
recibir datos de sensores, o enviar comandos para activar vuestro doomsday device os apuntis?
Claro que s.
A diferencia de lo que pueda parecer, comunicar Arduino con un sistema Android no es difcil gracias a los
mdulos HC 06. Sobre estos mdulos ya hemos hablado alguna vez en Robologs, pero sin intentar
conectarlos con Android.
Este primer tutorial servir para configurar el mdulo HC 06 (cambiar el nombre y el password) y aprender
a enviar comandos del mvil a Arduino. Concretamente, encenderemos y apagaremos el LED 13.
Eh, pero antes de empezar hay que poner buena msica. Los lectores habituales de Robologs sabis que
soy melmana y siempre propongo una pieza para escuchar mientras segus el tutorial. Qu os parece si
hoy escuchamos un poco de Vivaldi? Nisi Dominus, uno de los salmos que escribi Vivaldi en 1732. Los
salmos eran versos de la Bblia escritos de forma potica que se cantaban en Latn. Como una misa, pero
menos aburridos

Qu vamos a necesitar?

Mvil/tablet con Android


Mdulo Bluetooth HC 06

Arduino UNO
Jumpers para conectar Arduino con el mdulo
Cable USB compatible con Arduino

1- Configurar el mdulo Bluetooth


Los mdulos bluetooth vienen con un nombre y contrasea predefinidos de fbrica, pero podemos
cambiarlos a gusto si conectamos el mdulo a Arduino y la configuramos con este cdigo:

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
29
30
31
32
33

/* Este programa fue publicado por Transductor en su


* tutorial de Arduino y Bluetooth :
*
* http://robologs.net/2015/05/15/tutorial-de-bluetooth-con-arduino-hc-06-en-linux/
*/
char nombre[10] = "ArduinoR"; //El nuevo nombre del modulo
char password[10] = "0000"; //El nuevo password. Seh, no es muy seguro...
char baud = '4'; //4 = 9600 baud
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
delay(15000); //Esperar 15 segundos para conectar el modulo
Serial.print("AT"); //Iniciar la configuracion
delay(1000);
Serial.print("AT+NAME"); Serial.print(nombre); //Cambiar el nombre
delay(1000);
Serial.print("AT+PIN"); Serial.print(password); //Cambiar contrasena
delay(1000);
Serial.print("AT+BAUD"); Serial.print(baud); //Cambiar baudios
delay(1000);
digitalWrite(13, HIGH);

void loop(){}

Hay que desconectar el mdulo Bluetooth de la placa Arduino antes de cargar el programa. La razn? El
HC 06 utiliza los pines RX y TX del Serial. Si lo dejsemos conectado no se cargara el programa.
Immediatamente despus de cargar el programa, conectamos el mdulo as:

Arduino 5V HC06 VCC


Arduino GND HC06 GND


Arduino RX HC06 TX

Arduino TX HC06 RX
(tenemos 15 segundos para conectarlo)

2- Sketch de Arduino
Debemos copiar este cdigo en la IDE de Arduino y cargarlo a la placa. Qu hace? Este programa sirve
para leer carcteres por Bluetooth. Si se enva una h, encender el LED 13, lo apagar con l y con i
enviar una lista con los comandos posibles. Si quieres, puedes aadir ms condicionales para encender
ms LEDs, controlar servos, etc.
Para poder cargar el programa a la placa el mdulo Bluetooth tiene que estar desconectado.

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
29
30
31

void setup()
{
Serial.begin(9600); //Iniciar el serial
pinMode(13, OUTPUT); //Establecer el pin 13 como salida
}

void loop()
{
if(Serial.available()>=1)
{
char entrada = Serial.read(); //Leer un caracter
if(entrada == 'h' or entrada == 'H') //Si es 'H', encender el LED
{
digitalWrite(13, HIGH);
Serial.println("LED encendido");
}
else if(entrada == 'l' or entrada == 'L') //Si es 'L', apagar el LED
{
digitalWrite(13, LOW);
Serial.println("LED apagado");
}

else if(entrada == 'i' or entrada == 'I') //Si es 'I', mostrar un mensaje de ayuda
{
Serial.println("Comandos:n (i) - abrir esta listan (h)- encender ledn (l) ledn);
}
}
}

3- Instalar App de Android


Necesitamos una App que pueda enviar carcteres por Bluetooth a un dispositivo. Yo lo he probado con
Bluetooth Terminal de qwerty y me ha funcionado bien, as que recomiendo esta aplicacin. Abrimos la
Google PlayStore en nuestro dispositivo Android y la instalamos.

Ahora emparejamos el mvil con Arduino. Vamos al men de Parmetros->Bluetooth->Emparejarcon


un dispositivo y seleccionamos el nombre que le hemos puesto al HC 06.
Paciencia, ya casi estamos! Ahora abrimos el Bluetooth Terminal que hemos descargado, y pulsamos los
tres cuadraditos grises que hay arriba a la derecha. Necesitamos decirle que conecte con Arduino, as que
seleccionamos Connect a device Secure y buscamos Arduino.

Ya est! Ahora podemos enviar cualquier carcter escribindolo en la consola.

Si arduino est alimentado, veremos que el LED 13 se apaga y se enciende al enviar h y l.


La gracia ahora estara en ampliar el cdigo de Arduino para recibir ms carcteres y activar actuadores o
recibir lecturas de sensores en tiempo real. Porque encender y apagar un LED no es demasiado
estimulante, la verdad.

Buenas a todos! Si habis seguido la primera parte del tutorial, ya sabis cmo enviar rdenes de Android
a Arduino con Bluetooth Terminal. Eso est muy bien, pero qu os parecera poder crear nuestras propias
aplicaciones para poder enviar rdenes pulsando botones? As nos ahorraramos de tener que escribir
todos los comandos en la Terminal
En esta gua vamos a programar una aplicacin para Android con MIT App Inventor 2, un aplicativo web
que nos permitir construir aplicaciones rpidamente sin tener que programar. Controlaremos un LED al
igual que en el tutorial anterior, pero construyndonos una interfcie a medida.
Y antes de empezar, la msica del da os viene bien Tanhuser?

Qu es MIT App Inventor?


MIT App Inventor es una aplicacin web pensada para desarrollar Apps para mvil sin programar. Es muy
til para aprender a programar y para crear aplicaciones simples en poco tiempo.
El programa es muy simple. Hay dos ventanas: una en la que se crea el diseo de la aplicacin
(arrastrando elementos de un men tales como botones, barras y colocndolos en la pantalla del mvil) y
la segunda para programar mediante bloques. Conocis Scratch o Modkit? Pues la idea es muy
parecida.

Este ser nuestro programa con bloques

Para utilizar MIT App Inventor slo hay que tener una cuenta Google y entrar en su web.

Empezamos
Al igual que en el tutorial anterior, necesitamos:

Una placa Arduino

Un mdulo Bluetooth HC 06

Jumpers, protoboard

Cable USB compatible con Arduino

Telfono Android

Cable USB compatible con el telfono

Sketch para Arduino


El programa para Arduino es el mismo que en el tutorial anterior:

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
29
30
31

void setup()
{
Serial.begin(9600); //Iniciar el serial
pinMode(13, OUTPUT); //Establecer el pin 13 como salida
}
void loop()
{
if(Serial.available()>=1)
{
char entrada = Serial.read(); //Leer un caracter
if(entrada == 'h' or entrada == 'H') //Si es 'H', encender el LED
{
digitalWrite(13, HIGH);
Serial.println("LED encendido");
}
else if(entrada == 'l' or entrada == 'L') //Si es 'L', apagar el LED
{
digitalWrite(13, LOW);
Serial.println("LED apagado");
}

else if(entrada == 'i' or entrada == 'I') //Si es 'I', mostrar un mensaje de ayuda
{
Serial.println("Comandos:n (i) - abrir esta listan (h)- encender ledn (l)
ledn");
}
}
}

Y las conexiones entre el HC 06 y la placa:

Arduino 3.3v HC06 VCC


Arduino GND HC06 GND
Arduino TX HC06 RX
Arduino RX HC06 TX

Diseo de la aplicacin
Al abrir MIT App Inventor por primera vez, veremos una pgina parecida a esta:

Aqu es dnde aparecen todos los proyectos en los que estamos trabajando. Pulsamos Start New
Project y nos pedir un nombre para nuestra aplicacin. Lo he bautizado como Robologs_tutorial.
La pgina que nos aparece es dnde decidiremos el diseo de la aplicacin: botones, colores, mens,
imgenes

A la izquierda, en el panel Palette, tenemos una paleta con elementos para aadir a nuestra aplicacin.
Hay desde botones y mens a navegadores, giroscopios y mdulos Bluetooth.
El espacio que hay en el medio y que parece una pantalla de mvil se llama Viewer y es una
previsualizacin de la aplicacin. Ahora est en blanco, pero podemos aadir elementos de la paleta
arrastrndolos hasta la zona en blanco.

A la derecha, en el panel Components, tenemos una lista con todos los elementos que hay colocados en
la pantalla, as es fcil seleccionarlos. De momento slo hay Screen 1, que es la pantalla. Si la
seleccionamos veremos que a su derecha hay un panel llamado Properties, dnde se pueden cambiar
todas las caractersticas de cada uno de los elementos de la lista.
Empezamos por ir a Palette y buscamos el elemento List Picker. Se trata de men desplegable, que
programaremos para que muestre los dispositivos Bluetooth cercanos y se conecte a uno. Lo arrastramos
hasta la pantalla.

A la derecha, en el men Properties, podemos cambiar el texto del List Picker. Vamos al campo Text y
escribimos Dispositivos.

Volvemos al men Palette y aadimos dos elementos de tipo Button a la aplicacin, de la misma forma
que hemos colocado el List Picker.

Seleccionamos cada uno de los botones y les cambiamos el nombre. Uno


lo llamaremos Encender y el otro Apagar.
Lo que hemos aadido hasta ahora son componentes visibles. El usuario puede verlos e interactuar con
ellos. Pero hay otro tipo de componentes, llamados non-visible components, que sirven para activar
algunas funcionalidades como el Giroscopio, la antena WiFi o Bluetooth.
Para poder conectarnos con Arduino necesitamos que nuestra aplicacin pueda usar la antena Bluetooth.
Nos vamos a Palette->Connectivity y arrastramos Bluetooth Client a la pantalla.

Veremos que justo debajo de la previsualizacin aparece el smbolo de Bluetooth. La aplicacin debera
lucir as:

Bueno, hasta
aqu el diseo. Es hora de configurar cada uno de los componentes. Cmo lo hacemos? Arriba a la
derecha hay dos botones juntos: Design y Blocks. El primero abre la ventana que tenemos ahora, la que
nos permite colocar todos los componentes de la aplicacin. En cambio, Blocks abre una ventana para
programar los bloques.

Pulsamos el botn Blocks y veremos una pgina en blanco:

Lo primero que vamos a hacer es programar el men desplegable. A la derecha,


seleccionamos ListPicker1 y se nos abrir un men en el que aparecen los bloques relacionados con este
objeto.

Qu queremos hacer exactamente? Debemos decirle al desplegable dos cosas: qu debe


hacer ANTES de seleccionar una opcin del desplegable y DESPUS de seleccionar una.
Antes de seleccionar una opcin, queremos que inicialize una lista con los nombres de todos los
dispositivos Bluetooth que hay cerca. As que vamos a decirle que si el mvil tiene la comunicacin
Bluetooth activada, ListPicker1 establezca los nombres de los dispositivos cercanos como elementos de
la lista.
Dentro del men de bloques de ListPicker1 arrastramos .BeforePicking al espacio en blanco.

Ahora vamos al apartado Control y seleccionamos el condicional if.

Despus seleccionamos el objeto BluetoothClient1 y aadimos un AdressesAndNames y Available:

Y finalmente seleccionamos ListPicker1 y aadimos un Elements:

Montamos todos los bloques para que queden as:

Aho
ra tenemos que decirle a ListPicker1 que se conecte a la direccin que el usuario seleccione en la lista.
Como ya sos unos expertos en aadir bloques, slo os enseo el resultado final:

Fina
lmente configuramos Button1 y Button2. Queremos que al pulsarlos se enve un texto a la direccin
Bluetooth a la que estamos conectados

Los bloques rojos que hay


al final sirven para escribir texto. Se encuentran en el apartado Text del men Blocks.
Al final, el programa debera verse as:

Hor
a de exportar el programa! Arriba del todo, a la izquierda, hay un men que pone Build. Lo desplegamos y
seleccionamos App (save .apk to my computer)

Guardamos el archivo .apk y lo transferimos a nuestro mvil a travs de USB. Una vez transferido
utilizamos una App como FileBrowser para navegar por los directorios de nuestro mvil hasta encontrar el
archivo .apk de la aplicacin, y lo instalamos. Nos pedir permisos de WiFi y Bluetooth. Le damos a
Aceptar.
Abrimos nuestra App. Pulsamos el botn Dispositivos y buscamos Arduino. Ahora se conectar con el
mdulo HC06. Despus, podremos encender y apagar el LED 13 con los otros dos botones.

En resumen: ya conocemos una forma de construir aplicaciones para controlar Arduino. A partir de aqu
podemos ir complicando las aplicaciones con ms botones para activar ms luces, barras de
desplazamiento para controlar motores, etc.
El prximo da intentaremos hacer una aplicacin para controlar un robot teledirigido.

Hola, homo fabers! Qu hay? En esta tercera (y ltima) parte de la serie de tutoriales de Arduino,
Bluetooth y Android voy a explicaros cmo construir un robot con Arduino que pueda controlarse con el
mvil. As podris ir a recoger vuestra fuente de energa biolgica (comida) sin tener que levantaros del
silln.
Al igual que en la ltima parte, vamos a usar MIT App Inventor 2 para construir esta aplicacin, as que si
no lo habis hecho, os invito a leer el segundo tutorial de esta serie para entender qu es y cmo
funciona.
Para construir el robot voy a utilizar un controlador de motores DRV8835 con el chasis Zumo de
Pololu que tengo, pero tambin voy a explicar cmo hacerlo a partir del controlador de motores L298 HBridge o un L293D para que puedas utilizar cualquier otro chasis personalizado.
Bueno, basta de hablar! Ponemos un poco de msica y empezamos. Como este es el ao Sibelius (el da
12 se cumplieron 150 aos de su nacimiento) vamos a poner una parte del Concierto de Violn en do
menor.

Material:
Los que queris montar el robot con el chasis Zumo vais a necesitar:

Chasis zumo ensamblado con dos micro-metal gearmotors y placa de motores

Una placa Arduino UNO o equivalente, es muy importante que sea del mismo tamao

Cuatro pilas de tipo AA

Un mdulo bluetooth HC 06

Una protoboard y cables M/F

Un cable USB de impresora

Sino, tenis la opcin de seguir el tutorial con otro chasis personalizado. Si es as debis conseguir:

Una placa Arduino y cable USB compatible

Un controlador de motores L298 Dual H-Bridge o L293D

Un mdulo bluetooth HC 06

Un chasis con motores y batera

I Preparar Arduino
Lo primero ser escribir una funcin para mover los motores, que ser diferente segn cul sea vuestro
controlador de motores. Despus habr que poner esa funcin dentro de otro cdigo de Arduino que leer
comandos por Bluetooth y variar la velocidad de los motores.

Funcin para L293D


Los que decidis usar un controlador de motores L293D tenis que conectarlo as:

Esta es la funcin para mover los motores con un L293D.

1
2
3
4
5
6
7
8
9
10
11
12
13

/* Funcion para mover los motores del Chasis Zumo de Pololu


* Autora: Glare
* www.robologs.net
*/
void motores(int m1, int m2)
{
//m1 y m2 son las velocidades del primer
// y segundo motor, entre -255 y 255
//Declarar los pines para el motor 1
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(10, OUTPUT);
//Declarar los pines para el motor 2
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

pinMode(6, OUTPUT);
//Invertir el giro del motor 1 si es necesario
if(m1 < 0)
{
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
m1 = -m1;
}
else
{
digitalWrite(8, LOW);
digitalWrite(7,HIGH);
}
//Invertir el giro del motor 2 si es necesario
if(m2 < 0)
{
digitalWrite(4, HIGH);
digitalWrite(2, LOW);
m2 = -m2;
}
else
{
digitalWrite(4, LOW);
digitalWrite(2,HIGH);
}
//Generar pulso PWM
analogWrite(10, m1);
analogWrite(6, m2);
}

Funcin para L298 Dual H-Bridge


Los que tengis el controlador de motores L298 Dual H-Bridge conectadlo as:

El cdigo de la funcin es muy parecido al del L293D:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

/* Funcion para mover los motores del Chasis Zumo de Pololu


* Autora: Glare
* www.robologs.net
*/
void motores(float m1, float m2)
{
//m1 y m2 son las velocidades del primer
// y segundo motor, entre -255 y 255
//Declarar los pines para el motor 1
pinMode(7, OUTPUT); //I1
pinMode(8, OUTPUT); //I2
pinMode(10, OUTPUT); //EA
//Declarar los pines para el motor 2
pinMode(2, OUTPUT); //I3
pinMode(4, OUTPUT); //I4
pinMode(6, OUTPUT); //EB
//Invertir el giro del motor 1 si es necesario
if(m1 < 0)
{
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
m1 = -m1;
}
else
{
digitalWrite(8, LOW);
digitalWrite(7,HIGH);

}
//Invertir el giro del motor 2 si es necesario
if(m2 < 0)
{
digitalWrite(4, HIGH);
digitalWrite(2, LOW);
m2 = -m2;
}
else
{
digitalWrite(4, LOW);
digitalWrite(2,HIGH);
}
//Generar pulso PWM
analogWrite(10, m1);
analogWrite(6, m2);

25
26
27
28
29
30
31
32
33
34
35
36
37
}

Funcin para el Chasis Zumo


Esta funcin es para los que tengis el Chasis Zumo de Pololu. En vez de utilizar la librera que ofrece
Pololu, he decidido escribir mi propio cdigo.
Slo hay que colocar la placa Arduino encima del chasis (vigilando que ningn pin quede fuera de su
lugar). La funcin para motores es esta:

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

/* Funcion para mover los motores del Chasis Zumo de Pololu


* Autora: Glare
* www.robologs.net
*/
void motores(int m1, int m2)
{
//m1 y m2 son las velocidades del motor derecho
// e izquierdo, entre -255 y 255
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
//Invertir el giro del motor derecho si es necesario
if(m1 < 0)
{
digitalWrite(7, HIGH);
m1 = -m1;
}
else
digitalWrite(7, LOW);
//Invertir el giro del motor izquierdo si es necesario
if(m2 < 0)
{
digitalWrite(8, HIGH);
m2 = -m2;
}
else

digitalWrite(8, LOW);
//Generar pulso PWM
analogWrite(10, m2);
analogWrite(9, m1);

26
27
28
}

Esta funcin motores recibe dos argumentos: m1 y m2, las velocidades del motor 1 y 2 (que van de 0>255). Despus comprueba si la velocidad m1 es menor que cero. En este caso, activa el pin D8 (este pin
invierte el giro) y convierte m1 a un nmero positivo (ya que el pin D10, que controla la velocidad, slo
acepta valores mayores que cero). Lo mismo para m2.
Las dos ltimas lneas generan un pulso PWM en los pines D9 y D10 para mover los motores.

Comprobar la funcin
Es posible que tengis cableados los motores al revs que yo. Para que esto no d problemas ms
adelante, vamos a testear la funcin y a modificarla si algn motor gira en la direccin que no debera.
Este cdigo mueve los motores as:

Motor derecho hacia adelante.


Motor derecho hacia atrs.
Motor izquierdo hacia adelante.
Motor izquierdo hacia atrs.
Ambos hacia adelante.
Ambos hacia atrs.
Paro.

Debis aadir la funcin motores de vuestro controlador al final de todo. Por ejemplo, si utilizis el chasis
Zumo de Pololu, debis copiar la funcin que hay ms arriba y pegarla al final de este programa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

void setup()
{
}
void loop()
{
motores(100, 0);
delay(700);
motores(-100,0);
delay(700);
motores(0, 100);
delay(700);
motores(0, -100);
delay(700);
motores(100,100);
delay(700);
motores(-100,-100);
delay(700);
motores(0,0);
delay(700);

19
20

}
//Copiar la funcion de motores aqui

Funcionan cmo deberan? No? Veamos cmo arreglarlo:


Los que tengis el controlador de motores L293D o el Dual H-Bridge y os falle el motor derecho, debis
intercambiar las lneas 26 y 27 de vuestra funcin por las lneas 32 y 33. Si es el motor 2 el que funciona al
revs, intercambiad las lneas 40 y 41 por las lneas 46 y 47.
Los que tengis el chasis Zumo, debis intercambiar las lineas 19 y 23 si falla el motor izquierdo, y las
lineas 28 y 32 si falla el motor derecho.

Programa Bluetooth
Bien, ahora ya funcionan los motores. Lo siguiente ser conectar el mdulo HC 06 y cargar el programa de
Arduino que recibir los comandos que enviaremos por el mvil.
Hay que conectar el mdulo Bluetooth de esta forma:

Arduino RX -> HC06 TX


Arduino TX -> HC06 RX
Arduino 3.3v -> HC06 VCC
Arduino GND -> HC06 GND

Y qu hace el programa? Recibe un carcter va bluetooth y mira si se corresponde a un carcter


concreto: con a mueve los motores hacia adelante, con r hacia atrs, con i gira a la izquierda, con d a
la derecha y con s se paran.
Al igual que antes, tenis que copiar vuestra funcin de motores al final.

int val;

2
3

void setup()

{
Serial.begin(9600);

delay(7000);

6
7
8

9
10
11

void loop()
{
if(Serial.available() >= 1)

12
13

14

val = Serial.read();

15
16

if(val == 'a')

17

18

motores(250,250);

19

20

else if(val == 'i')

21

{
motores(-250, 250);

22
}

23

else if(val == 's')

24

25

motores(0,0);

26

27

else if(val == 'r')

28

29

motores(-250,-250);

30

31

else if(val == 'd')

32

{
motores(250,-250);

33
}

34
}

35
36

37
38

//La funcion 'motores' va aqui

39
Ya hemos terminado con Arduino! Estamos a mitad del camino: queda construir una App con MIT App
Inventor que nos permita controlar el robot

II MIT App Inventor


Diseo de la aplicacin:
Lo primero: copiad estas cuatro imgenes y guardadlas en una carpeta. Las necesitaremos para hacer los
botones de direccin de nuestra App:

Entrad en MIT inventor y cread un nuevo proyecto con el ttulo Teledirigido. Una vez dentro, habr que
cambiar la orientacin de la pantalla a Landscape. Tambin recomiendo cambiar el fondo a un color

oscuro, para que los botones se vean bien. Estos parmetros pueden modificarse en el men
de Propiedades:

Despus hay que ir a Palette->Layout y aadir un TableArrangement a la pantalla. Servir para poder
distribuir los botones de las flechas en la pantalla.

Seleccionad el recuadro verde que aparece en pantalla. Esta es la tabla. Hay que cambiar su tamao a 7
filas y 5 columnas. Esto se hace en el men de Propiedades.

Podis ver que el recuadro verde de la pantalla ha cambiado de tamao:

Ahora empezamos a aadir botones. Id a Palette -> User interface y arrastrad la opcin Button a la
pantalla:

En el men Components, el botn tiene que quedar dentro de la tabla.

Tambin recomiendo cambiar el nombre de este botn por Arriba. Para cambiar el nombre de un
elemento, hay que pulsar el botn Rename, que est al final del men, y escribir un nombre nuevo.
Como ste ser el botn para avanzar, podis cambiar el nombre por adelante o forward.

Como no creo que queris un botn feo con un texto que ponga arriba, vamos a cambiar la imagen de
este botn por una de las imgenes de flechas. Con el botn seleccionado, id al men propiedades y
cambiad estos parmetros:

El botn quedar as:

Haced lo mismo con el resto de botones y ya tendris el mando. No os olvidis de cambiar su nombre!
(atras, derecha e izquierda)

Ahora slo queda aadir un men desplegable que mostrar las conexiones Bluetooth posible y, por
supuesto, un cliente Bluetooth.
Dentro de Palette -> User Interface aadid un ListPicker y en el men de Propiedades cambiad
su texto por Conectar.
El cliente bluetooth se encuentra en Palette -> Connectivity -> BluetoothClient.

Si vuestra App se ve as, es que lo habis hecho bien. Os habis ganado una recompensa! Os doy
permiso para ir a la cocina y comer una galleta.

Programacin con bloques:


Es hora de ensuciarse las manos con un poco de programacin. Abrid la ventana de programacin con
bloques.
El ListPicker se programa como lo hicimos en el ltimo tutorial, por lo que no voy a aburriros con la misma
explicacin.

Una vez acabis con los bloques del ListPicker, empezaremos con los botones. Queremos que al pulsar
el botn de adelante la aplicacin enve la orden de avanzar. Pero al dejar el botn, hay que enviar la
orden de parada o el robot continuar avanzando.
En el men Blocks seleccionad el botn adelante (o cmo se llame el vuestro) y en el panel que se
abre aadid un TouchDown y TouchUp al espacio de trabajo. TouchDown son las instrucciones que se
ejecutaran al pulsar el botn, y TouchUp al soltarlo.

Aadid un condicional if dentro de estos dos bloques.

Hay que mirar si el Bluetooth est disponible, y si lo est debe enviarse la instruccin de avanzar/parar.
Dentro de BluetoothClient1 aadid un bloque Available y un bloque Send Text. El primero va al lado
del if, y el segundo en el espacio then.

Por ltimo, hay que especificar el texto para enviar. Dentro de Text, aadid un bloque de texto al lado del
espacio SendText. Cambiad su contenido por a y s, como aparece en la imagen:

Ahora haced lo mismo con el resto de botones, y ya habris acabado el programa:

Recordad que el botn izquierdo debe enviar el comando i, el botn atrs debe enviar r y el botn
derecho d.
Lo ltimo que queda es compilar la aplicacin. Hay que ir al men Build -> App (save .apk to my
computer).

Y ya est! Guardad la aplicacin, instaladla en vuestro mvil Android y ya tenis vuestro programa.
Funciona casi igual que la ltima vez: el men desplegable sirve para seleccionar el dispositivo Bluetooth
al que enviar los comandos y los botones para mover el robot.
Hey! Y no os olvidis de encender el Bluetooth de vuestro mvil en el men de Preferencias!

http://robologs.net/2015/10/29/tutorial-de-arduino-bluetooth-y-android-2-crear-una-appcon-mit-inventor/

Vous aimerez peut-être aussi