Vous êtes sur la page 1sur 10

Comunicacin Bluetooth

1.
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 bps
Este 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:
juguete

Control del puente H para accionar los motores de un carro de

//

al recibir datos mediante comunicacin serial de un mdulo bluetooth

//

HC05 a 9600 baudios.

//Cabecera de Ncleo*
#include <p18f4550.h>
#include <xc.h>
#include <delays.h>

//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
#define derecha

RD1
RD2

#define izquierda RD3

//Programa principal
void main()
{

//Configuracin de los pines digitales como salida


TRISD=0;

//Configuracin del reloj interno


IRCF2=1;
IRCF1=1;
IRCF0=1;

//Configuracin del mdulo EUSART del PIC18F4550.


//Referencia: Datasheet del PIC18F4550
PORTC=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 Rx
if (RCIF=1)
{
//Si se recibi una "a" mueva el carro hacia adelante activando el
pin RD0
if (variable=='a')
{

adelante = 1;
atras = 0;
}
else
{
//Si se recibi una "b" mueva el carro hacia atras
activando el pin RD1
if (variable=='b')
{
adelante = 0;
atras = 1;
}
else
{
//Si se recibi una "c" que detenga el motor
trasero
if (variable=='c')
{
adelante = 0;
atras = 0;
}
}
}
//Si se recibi una "d" que vire a la derecha
if (variable=='d')
{
derecha = 1;
izquierda = 0;
}
else
{
//Si se recibi una "e" que vire a la izquierda
if (variable=='e')

{
derecha = 0;
izquierda = 1;
}
else
{
//Si se recibi una "f" que detenga el motor
delantero
if (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 el password: 1234 para poderse emparejar.
Una aplicacin que se puede usar, desde celulares Android, para poder
establecer comunicacin con el HC05 es blueterminal, la cual funciona similar a
los monitores seriales tales como Tera terminal. Otra forma de hacerlo es a
partir de una laptop con adaptador de Bluetooth. El adaptador, que estamos
usando, trae un programa llamado blue 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 control

Fuentes citadas:
[1]http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-ModuleDefaults-Using-A/?lang=es

Vous aimerez peut-être aussi