200905072
1
MANUAL PARA REALIZAR COMUNICACIÓN BLUETOOTH DESDE UN CELULAR CON ANDROID Y APLICACIÓN DE APP-INVENTOR APP-INVENTOR CON UN MICROCONTROLADOR 16F877A Lic. Ing. Mecatrónica, José Ángel Pérez Martínez, Lic. Ing. Mecatrónica, Emmanuel Flores Vazquez, Miembros estudiantiles estudiantiles de la facultad ciencias ciencias de la electrónica, electrónica, BUAP
A continuación se presenta una pequeña descripción paso a paso de la interface entre un microcontrolador y un celular con sistema operativo android, para ello se desarrolla una aplicación en App-Inventor que nos permite realizar la comunicación entre el celular y el microcontrolador, una vez linkiados podemos enviar y recibir datos entre ambos dispositivos, con ello logramos el control de sin fin de procesos y posible aplicaciones. Cabe mencionar que para llevar a cabo este desarrollo se requiere conocimientos en programación de microcontroladores (Copilador recomendado PIC-C) así como comprender la teoria del funcionamiento de un módulo bluetooth y electrónica básica así tambien el estandar de transmición de datos serial RS232. Sin olvidar lo indispensable del manejo del App-I nventor.
INDICE DE DE TERMINOS. TERMINOS. App-Inventor. Es una plataforma de código libre en línea, pueden encontrar la plataforma en el siguiente enlace: http://appinventor.mit.edu/ donde http://appinventor.mit.edu/ donde además encontraras un amplio número de manuales, podrás iniciar en la plataforma con tu cuenta google y aprender paso a paso todas las utilidades de la plataforma desde el mismo desarrollador: http://appinventor.mit.edu/explore/tu http://appinventor. mit.edu/explore/tutorials.htm torials.htmll. Android. Es un sistema operativo basado en Linux, diseñado principalmente para móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android, Inc., que Google respaldó económicamente y más tarde compró en 2005, Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles. El primer móvil con el sistema operativo Android se vendió en octubre de 2008. Modulo Bluetooth RN41. El futuro es inalámbrico y la tecnología Bluetooth es una de las favoritas en el mundo de los aficionados a la electrónica, donde el enlace de datos “sin vínculo físico” debe ser robusto, confiable y seguro. Distribuido en todo el mundo por Wavesen, el módulo Bluetooth HC-06 es un dispositivo muy fácil de obtener, económico y sencillo de utilizar. Bluetooth. Es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre en tre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Microcontrolador. Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un
200905072
2
microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Comunicación RS232. es una interfaz que designa una norma para el intercambio de una serie de datos binarios entre un DTE (Equipo terminal de datos) y un DCE (Data Communication Equipment, Equipo de Comunicación de datos), aunque existen otras en las que también se utiliza la interfaz RS-232. I. INTRODUCCIÓN En la actualidad los celulares son de uso común y estan presentes en la vida diaria de cualquier individuo promedio. Estos dispositivos modernos del siglo XXI abarcan gran parte de la vida cotidiana. Tener celular es tan común y utilizarlo es tan intuitivo que cada día se desarrollan aplicaciones de uso diario y común. Desde finales del 2008 hasta hoy en día algunos celulares cuentan con sistema operativo android. II. OBJETIVOS DEL PROCEDIMIENTO Realizar comunicación entre un celular con sistema operatico android desde una plicación desarrollada en la plataforma que esta en linea de google, con un microcontriolador de Microchip Pic 16F877A.
B. Conectate con tu cuenta de google, si no cuentas con una cuenta de google puedes registrarte gratuitamente, tellevara unos minutos.
Con la comunicación ya realizada, se procedera a enviar datos desde el celular al microcntrolador y este realizara funciones ya establecidas.
III. DESARROLLO En esta parte nos enfocamos a desarrollar paso a paso lo necesario para la interface, recordemos que hay secciones que se omitirán, pues se conprende que este manual esta enfocado para estudiantes en electrónica y en fin. IV. DESARROLLO DE LA APLICACIÓN PARA EL CELULAR POR APP-INVENTOR A. Ingresa desde tu navegador de internet, recomendado desde google crome, al siguiente link: http://appinventor.mit.edu/, accede a la opción "INVENT".
C. Se observa una ventana de inicio, seguidamente se da click en "NEW".
200905072
3
D. Procede a nombrar tu proyecto.
E. Este documento no dirigue paso a paso en la aplicacion de App-Inventor sin embargo se deja el codigo completo utilizado para el desarrollo de lacomunicación. Plataforma Intuitiva del App-Inventor :
F. Una vez realizada la vista procedemos a realizar el código. Para más información sobre cómo se utiliza el Appinventor en linea accede al siguiente link http://appinventor.mit.edu/explore/teach.html donde encontraras manuales paso a paso de cómo funciona.
I. Esperamos a que inicie el editor de bloques e iniciaremos por construir todo el código mínimo necesario para la comunicación bluetooth y la transferencia de caracteres.
J. click.
Código para el botón CONECTAR con evento
G. Abrimos el editor de bloques "Open the Blocks Editor".
H. En seguida se iniciara una descarga con el formato .jnlp que tendrás que abrir manualmente.
La estructura del bloque CONECTAR.CLICK se compone principalmente de la solicitud de conexión con un modulo externo bluetooth utilizando un servidor del modulo interno
200905072
del celular. Para ello se requiere un una dirección MAC única e repetible para cada modulo, es algo así como una huella digital del dispositivo.
4
L. El código correspondiente ENVIAR.CLICK es el siguiente.
al
boton
Frente al bloque de BluetoothCliente1.Connect, address es la dirección MAC donde la aplicación se sincronizara, en este caso la dirección MAC será escrita manualmente en el cuadro de texto. Implícitamente se deben cumplir dos condiciones para que la conexión se lleve a cabo y con éxito, el modulo bluetooth externo debe estar dentro del rango de alcance y su dirección MAC debe coincidir con la solicitada, si esto se cumple, la conexión se dará con éxito. Observando detenidamente, veremos que es bastante simple el código, además de intuitivo para los programadores expertos M. El código en bloques para el SALIR.CLICK es el siguiente:
Si la conexión se ha realizado correctamente, entonces Botón CONECTAR.COLOR pasara a ser color verde en caso contrario pasara a rojo tal y como se describe en el código. K. Si la sincronización fue correcta procedemos a enviar el dato deseado:
N. El código para desconectar es el mismo botón que es empleado para conectar pero con excepción de que son para casos diferentes, CONECTAR.LONGCLICK:
Se escribe con el teclado del teléfono el dato a enviar, ahora bien recordando que el microcontrolador tiene una pila de registro para datos en serie, estamos limitados a enviar ya sea puramente números acompañado de un carácter al final del numero o bien un único carácter por comando.
V. DESARROLLO DE APLI CACIÓN POR PIC-C PARA EL M ICROCONTROLADOR PIC 16F877A
A. Abrimos el "PIC C Copiler"
200905072
5
#include <16F877A.h> #fuseS XT,NOWDT //HS #use delay (clock=4000000) #use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,bits=8,parity=N) //configuración RS232 char RXdato;
B. Realizamos todo lo necesario para tener un proyecto nuevo, y un codigo fuente que se le anexara el siguiente codigo:
void main() { SET_TRIS_D(0b00000000); // puerto como entrada/salida SET_TRIS_C(0b10111111);// Recuerde configurar entrada RX y //salida el puerto TX OUTPUT_D(0b00000000); //Puerto D = 0 while(true) //Bucle Infinito { if(kbhit()) //Pregunta si hay datos en la pila de //datos seriales { RXdato=getchar(); //Espera hasta que RXdato carge los //datos de la pila de datos serial if (RXdato=='a') //Compara el dato recibido con "a" { //Si el dato recibido es igual a "a" Output_high(PIN_D3); //ejecuta todas estas intrucciones delay_ms(18); Output_low(PIN_D3); delay_ms(1000); Output_low(PIN_D3); } if (RXdato=='A') //Compara el dato recibido con "A" { //Si el dato recibido es igual a "A" output_high(PIN_D2); //Ejecuta todas estas instrucciones delay_ms(1000); output_low(PIN_D2); } if (RXdato=="b") { output_high(PIN_D1); delay_ms(1000); output_low(PIN_D1); if (RXdato=='B') { output_high(PIN_D0); delay_ms(1000); output_low(PIN_D0); } } } } }
C. Copilamos el código, lo grabamos en el microcontrolador y listo, tenemos lo necesario para realizar la comunicación, sin antes mencionar que el modulo debe conectarse a los pines de transmisión de datos seriales RS232. VI. DIAGRAM A ELECTRICO D. Generalmente todos los módulos bluetooth tiene una pequeña limitante, es decir que su comunicación se realiza bajo los voltajes de 3.3V pero el modulo HC-06 se alimenta y comunica de 5V-6V:
200905072
6
B.
El microcontrolador a emplear puede variar
siempre y cuando cuente con puertos de transferencia de datos
por
serial.
Véase
diferentes
datasheep
de
Microcontroladores.
VIII. REFERENCIAS
E. El diagrama mínimo necesario es el mostrado a continuación, solo recuerde considerar las conexiones (entradas y salidas) que usted desee controlar. Para probar la comunicación se recomienda emplear simplemente led's, encendido y apagado. 13 14
4MHZ XTAL
22pF
22pF
2 3 4 5 6 7 8 9 10 1
OSC1/CLKIN OSC2/CLKOUT
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
R1 10k
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
33 34 35 36 37 38 39 40
HC-06 1 2 3 4
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
Vcc Rx Tx Gnd
Bluetooth
R2
R3
R4
R5
10k
10k
10k
10k
PIC16F877A
Recuerde que en este circuito omitimos los Vcc y Gnd del microcontrolador por lo que cuando lo implemente no deberá omitirlos, véase el datasheep del microntrolador a utilizar.
VII. CONCLUSIONES A.
Este proyecto puede ser utilizado por cualquier
modelo de celular que cuente con sistema operativo Android y modulo bluetooth interno.
[1]
Mario Sacco (2013, Febrero 10) Neoteo bluetooth-android-pic-ledhola-mundo [Online] Disponible en: http://www.neoteo.com/bluetooth-android-pic-led-hola-mundo
[2]
Mario Sacco (2013, Febrero, 15) Neoteo Hola Mundo en Android (II) [Online] Dispolible en: http://www.neoteo.com/app-inventor-holamundo-android-ii
[3]
Mario Sacco (2013, Febrero, 16) Neoteo HC-06 [Online] Dispolible en: http://www.neoteo.com/modulo-bluetooth-hc-06-android
First A. José Ángel Pérez Martínez
(Masculino,Altura 168 cm, Edad 21años) Actualmente estudiante en Lic. En Ing. Mecatrónica en la Benemerita Universidad Autonoma de Puebla, Facultad de Ciencias de la Electrónica, Octavo Semestre (2013)