Comunicacion Bluetooth

12
Comunicación Bluetooth 1. Las comunicaciones seriales han cobrado un gran auge con respecto a las comunicaciones paralelas. Al irse haciendo más complejas las redes de comunicación una disminución del número de cables usados resulto ser la mayor ventaja de lo serial sobre lo paralelo. Entre las comunicaciones seriales se encuentran una gran cantidad de estándares y protocolos para poder llevar a cabo la comunicación, y a su vez, se cuenta con módulos y chips para la implementación de dichos protocolos. Hay dos tipos de comunicación serial: *Síncrona: es gobernada por una señal de reloj (un tren de pulsos lógicos). Que indica en qué momento se inicia la transmisión de datos y en qué momentos se debe de leer cada bit que va llegando a través de la línea de datos. *Asíncrona: no es gobernada por ninguna señal de reloj, cada uno de los bits que llegan por la línea de datos se leen a una velocidad constante. Para un tipo de comunicación serial y asíncrona se usan los estándares RS232, RS485, entre otros, para poder comunicar entre diferentes equipos. Por ejemplo, las computadoras que cuentan con puerto serial (puerto COM) usan este estándar. Otro ejemplo de comunicación serial y asíncrona es la comunicación Bluetooth que se hará en este proyecto. Dentro de la comunicación serial y asíncrona se tienen los siguientes conceptos que son de importancia: *Estado inactivo: La línea de datos se mantiene en un estado (ya sea uno lógico o cero lógico) para indicar que no hay datos que están siendo transmitidos. *Bit de inicio: hay un cambio en el estado inactivo de la línea de datos. De esta forma se indica que está a punto de ser transmitido un dato.

description

Comunicación Bluetooth mediante un módulo HC05.

Transcript of Comunicacion Bluetooth

Comunicacin Bluetooth1.Las comunicaciones seriales han cobrado un gran auge con respecto a las comunicaciones paralelas. Al irse haciendo ms complejas las redes de comunicacin una disminucin del nmero de cables usados resulto ser la mayor ventaja de lo serial sobre lo paralelo. Entre las comunicaciones seriales se encuentran una gran cantidad de estndares y protocolos para poder llevar a cabo la comunicacin, y a su vez, se cuenta con mdulos y chips para la implementacin de dichos protocolos. Hay dos tipos de comunicacin serial:*Sncrona: es gobernada por una seal de reloj (un tren de pulsos lgicos). Que indica en qu momento se inicia la transmisin de datos y en qu momentos se debe de leer cada bit que va llegando a travs de la lnea de datos. *Asncrona: no es gobernada por ninguna seal de reloj, cada uno de los bits que llegan por la lnea de datos se leen a una velocidad constante. Para un tipo de comunicacin serial y asncrona se usan los estndares RS232, RS485, entre otros, para poder comunicar entre diferentes equipos. Por ejemplo, las computadoras que cuentan con puerto serial (puerto COM) usan este estndar. Otro ejemplo de comunicacin serial y asncrona es la comunicacin Bluetooth que se har en este proyecto.Dentro de la comunicacin serial y asncrona se tienen los siguientes conceptos que son de importancia:*Estado inactivo: La lnea de datos se mantiene en un estado (ya sea uno lgico o cero lgico) para indicar que no hay datos que estn siendo transmitidos.*Bit de inicio: hay un cambio en el estado inactivo de la lnea de datos. De esta forma se indica que est a punto de ser transmitido un dato.*Bit de parada: la lnea de datos vuelve al estado inactivo, una vez que los datos han terminado de ser transmitidos.*Baud-Rate: Velocidad a la cual se est transmitiendo los datos. Adems es un indicador de la velocidad a la cual deben de ser ledos los bits.*Bit de paridad: Es un bit que indica si el dato ha sido transmitido de forma correcta. Este bit se antepone al dato. El bit de paridad indica si el nmero de ceros o unos es par o impar. Por ejemplo: si se desea enviar los siguientes bits: 0010111, se cuenta el nmero de unos que es par y se decide que el bit de paridad es 1 para este caso, entonces finalmente se enviar a travs de la lnea de datos: 10010111. Si por alguna razn se recibiese: 00010111, esto indicara que hay un error de transmisin dado que el bit de paridad, que cuando es 1 indica que el nmero de unos es par, ahora es 0.Fig.1 Ilustracin de los conceptos bsicos para una comunicacin serial.Con estos conceptos ya es posible tener una comunicacin serial asncrona, siempre y cuando ambos dispositivos estn de acuerdo en cuanto al estado de lnea inactiva, el bit de inicio, el bit de parada, baud-rate y el bit de paridad; es decir, que ambos dispositivos manejen el mismo lenguaje o dicho de forma ms sofisticada, el mismo protocolo. Un protocolo hecho con lo mencionado anteriormente es de los ms bsicos y menos estructurados para la comunicacin serial y asncrona. En base a estos conceptos luego surgieron estndares como el RS232 donde se especifican los voltajes, cable, tipos de conectores, estado inactivo en la lnea, bits de inicio, bit de parada, baud-rate, entre otras caractersticas.Por lo tanto, en nuestro proyecto usaremos un protocolo de comunicacin serial-asncrona bsico donde se tendrn las siguientes caractersticas (que son usadas normalmente):*Estado de lnea inactiva:1*Bit de inicio:0*Bit de parada: 1*Sin bit de paridad*Baud-Rate: 9600 bpsEste tipo de comunicacin serial-asincrna tan bsico es posible llevarlo a cabo mediante el uso de mdulos UART. Dicho mdulo es incluido en el PIC y permite configurar las caractersticas antes mencionadas y transmitir y leer los datos bit por bit a la velocidad prefijada por el baud-rate.Fig.2 Mdulo UART en el PIC18F4550. Normalmente los pines del mdulo son llamados Rx y Tx, adems se resalta el pin de Vss dado que la tierra debe de ser comn en los dispositivos que se comunican.

2.La comunicacin Bluetooth que se usar es serial y asncrona, gracias a que el modulo Bluetooth que se usar en el proyecto hace esto posible, ver la fig.1. En nuestro caso tenemos que el PIC se comunica a travs de un mdulo UART con el mdulo Bluetooth; esta pareja a su vez se comunicar con el celular o incluso con alguna computadora con adaptador Bluetooth (Bluetooth dongle). Fig. 1 Mdulo bluetooth HC05 y su pin-out

El mdulo UART del PIC, anteriormente mencionado, es un mdulo que permite que la comunicacin serie sea posible. En la programacin del PIC se establece el Byte a comunicar y el mdulo se encarga de mandar el Byte de forma serial, es decir, bit por bit a una velocidad determinada por el Baud-Rate. Dicha velocidad debe de ser la misma entre ambos dispositivo, por lo que se debe de configurar el Baud-Rate del mdulo Bluetooth. Para nuestro proyecto se usa el mdulo HC-05 (fig. 1) y para poderlo configurar se siguieron los pasos sugeridos por [1]. Se configuro para tener 9600 baudios. En caso de no contar con un Arduino se puede realizar la configuracin a travs de una tarjeta de interfaz serial (que puede ser construida con un PIC, un MAX232 y un cable USB/Serial) y cualquier monitor serial donde se ingresarn los comandos AT especificados en el datasheet del HC05 o en [1].Una vez configurado el HC05, se debe de configurar el PIC18F4550 para que se pueda comunicar con el mdulo bluetooth. Por lo que, al PIC, se le programa el siguiente cdigo:

//Programa desarrollado por Guillermo Lebron, Roberto Campos y Fernando Godoy//Proyecto#1 Programa: Control del puente H para accionar los motores de un carro de juguete//al recibir datos mediante comunicacin serial de un mdulo bluetooth//HC05 a 9600 baudios.

//Cabecera de Ncleo*#include #include #include

//Directivas para activar los bits de configuracin*

#pragma config FOSC = INTOSCIO_EC //Oscilador Interno, PuertoA RA6 activo* #pragma config WDT = OFF //Watchdog timer apagado* #pragma config PBADEN = OFF //Parte baja del puerto B digitales #pragma config MCLRE = OFF //MCLRE no Disponible #pragma config DEBUG = OFF //Modo de depuracin no disponible* #pragma config LVP = OFF //Fuente de ISCP apagada*

//Definicin de pines como variables#define adelante RD0#define atras RD1#define derecha RD2#define izquierda RD3

//Programa principalvoid main(){

//Configuracin de los pines digitales como salidaTRISD=0;//Configuracin del reloj internoIRCF2=1;IRCF1=1;IRCF0=1;//Configuracin del mdulo EUSART del PIC18F4550. //Referencia: Datasheet del PIC18F4550PORTC=0;TRISC=0xB0;SPBRGH=0;SPBRG=0x33;TXSTA=0x2C;RCSTA=0x90;BAUDCON=0; //Declaracin de variables locales char variable;

//Bucle infinito para el programa principal while(1){//Condicin para asegurar que se ha recibido un dato en el pin Rxif (RCIF=1){//Si se recibi una "a" mueva el carro hacia adelante activando el pin RD0if (variable=='a'){ adelante = 1; atras = 0;}else{//Si se recibi una "b" mueva el carro hacia atras activando el pin RD1if (variable=='b'){ adelante = 0; atras = 1;}else{//Si se recibi una "c" que detenga el motor traseroif (variable=='c'){adelante = 0;atras = 0;}}}//Si se recibi una "d" que vire a la derechaif (variable=='d'){ derecha = 1; izquierda = 0;}else{//Si se recibi una "e" que vire a la izquierdaif (variable=='e'){ derecha = 0; izquierda = 1;}else{//Si se recibi una "f" que detenga el motor delanteroif (variable=='f'){derecha = 0;izquierda = 0;}}}}}}

Con ello tanto el PIC como el HC05 se estarn comunicando a 9600 Baudios y sin bit de paridad. A partir de esto se hizo el circuito de la fig. 2. Se indica el orden en que se debe de conectar el mdulo HC05. Dado que la alimentacin de las bateras ser de entre 9 a 12 Voltios se emplea un regulador de voltaje 7805 a fin de garantizar un voltaje cercano a 5V y poder alimentar de forma segura al PIC y al mdulo Bluetooth. Adems el circuito cuenta con LEDs para poder verificar que las seales son mandadas de forma correcta hacia el puente H para poder accionar los motores.Es importante sealar que el cdigo an no incluye la parte de control de velocidad por PWM, solo permite controlar el sentido de giro y el paro de los motores. Por tal motivo, el pin de control PWM no debe de ser conectado a la etapa de potencia, y el pin correspondiente de la etapa de potencia (EN2) se deber de conectar a 5V.Fig. 2 Circuito de la etapa de control con el PIC18F4550 y el HC05.

Finalmente, es muy importante mencionar el hecho de que se deben de emparejar los dispositivos que se estarn comunicando. As, en nuestro caso, el celular o computadora se debe de emparejar con el mdulo Bluetooth que se usar; de tal forma que, dicho celular o computadora acta como maestro en la comunicacin (decide con quin comunicarse), mientras el mdulo Bluetooth acta como esclavo.

El emparejamiento se lleva a cabo de forma similar a cuando dos celulares se preparan para transferir archivos. El celular que enviar la informacin (maestro) debe de tener una aplicacin donde se buscar el dispositivo que recibir los datos (esclavo). Por defecto, el mdulo Bluetooth tiene el nombre: HC05 y elpassword: 1234 para poderse emparejar.

Una aplicacin que se puede usar, desde celularesAndroid, para poder establecer comunicacin con el HC05 esblueterminal,la cual funciona similar a los monitores seriales tales comoTera terminal.Otra forma de hacerlo esa partir de una laptop con adaptador de Bluetooth. El adaptador, que estamos usando, trae un programa llamadoblue manager,el cual permite emparejar a la computadora con el mdulo HC05. Este programa, adems, permite que el adaptador Bluetooth, conectado a la computadora, pueda emular un puerto COM. De esta forma se posibilita el uso de Tera Terminal para poder interactuar con el mdulo HC05.

A continuacin se muestra un vdeo del funcionamiento de la etapa de control:

Video 1 (uso del HC05): Prueba del funcionamiento correcto de la etapa de controlFuentes citadas: [1]http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/?lang=es