Está en la página 1de 11

Comunicacin Bluetooth entre Arduino Mega 2560 y Matlab

Universidad del Cauca


Facultad de Ingeniera Electrnica y Telecomunicaciones
Programa de ingeniera en automtica industrial
2015

Comunicacin Bluetooth entre Arduino Mega 2560 y Matlab

Juan Pablo Arcos Merchn


Alejandro Josu Torrente Caldern

Director: Ph.D Carlos F. Rengifo R

Universidad del Cauca


Facultad de Ingeniera Electrnica y Telecomunicaciones
Programa de ingeniera en automtica industrial
2015

Elementos Hardware y Software:

Hardware:

Arduino Mega 2560


Modulo Bluetooth HC-06
Computador con sistema operativo Windows 10

Software:

Arduino IDE 1.0.6


Matlab R2015a
Conexin entre el Modulo Bluetooth HC-06 y la tarjeta Arduino:

El modulo Bluetooth HC-06 cuenta con 4 pines:

VCC
GND
TXD
RXD

El modulo Bluetooth HC-06 utiliza el protocolo UART RS 232 serial.


El pin VCC va al pin 5V de la tarjeta Arduino, este le da la alimentacin al
dispositivo.
GND va a tierra en el Arduino.
TXD va al RX0 de la tarjeta (pin 0).
RXD va TX0 de la tarjeta (pin 1).

EMPAREJAMIENTO DEL MODULO Y EL EQUIPO


Ahora que ya se tiene clara la conexin del mdulo Bluetooth con Arduino, se
procede a conectar la tarjeta al PC para permitirle la alimentacin a esta y a su
vez la descarga del cdigo que se realice.
Antes de descargar el cdigo a la tarjeta arduino, se procede a emparejar el
modulo Bluetooth con el computador, esto se realiza de la siguiente manera:
1. Se debe abrir los dispositivos Bluetooth, esto lo hacemos haciendo click
en el icono Bluetooth que se encuentra en la seccin de notificaciones
como se ve en la siguiente imagen.

2. Lo siguiente que se debe hacer es mostrar los dispositivos Bluetooth a los


que puede acceder el computador.

3. Lo primero que se debe hacer para poderse emparejar al mdulo


Bluetooth es activar el Bluetooth del computador, cuando se activa el
Bluetooth se debe esperar hasta que busque los dispositivos, cuando
aparezca el dispositivo HC-05 o HC-06 (depende del mdulo que se
tenga) se da click sobre l y seleccionar emparejar, esto pedir una
contrasea para poder emparejar los dispositivos, normalmente en los
mdulos HC-05 y HC-06 la contrasea 1234 o 0000, para nuestro
caso es 1234. Esto ser suficiente para emparejar el dispositivo y podr
cerrar las ventanas. Si despus de un rato el computador no encuentra
dispositivos Bluetooth, por favor siga con la instruccin 4.

4. Si el computador no encuentra dispositivos Bluetooth despus de activar


el Bluetooth del computador, significa que los controladores del Bluetooth
del computador no estn actualizados, as que se procede a actualizar los

controladores. En la ventana dispositivos Bluetooth (Imagen anterior) se


da click sobre Ms opciones de Bluetooth.
5. Cuando abre la configuracin de Bluetooth vaya a la pestaa Hardware,
aqu podr ver los controladores del Bluetooth, para actualizarlos da click
sobre el controlador y luego da click en propiedades. Esto se debe hacer
para todos los controladores.

6. En esta ventana encontrara informacin acerca del controlador


seleccionado, para actualizarlo dar click sobre Cambiar la configuracin.

7. Dar click sobre la pestaa Controlador y luego dar click sobre Actualizar
controlador.

8.

Luego dar click sobre Buscar automticamente software de


controlador actualizado; cabe destacar que para poder actualizar los
controladores el quipo debe estar conectado a internet. Despus de
un momento Windows le informara si ya esta actualizado o el
controlador o descargara la actualizacin. Como se dijo antes, se debe
actualizar todos los controladores de Bluetooth

9. Despus de cerrar todas las ventanas debe repetir los pasos, y si realizo
bien la actualizacin de los controladores en el paso 3 ya le debe aparecer
el dispositivo Bluetooth del mdulo, y podr emparejarlo.

ARDUINO
Ahora se procede a cargar Arduino IDE 1.0.6 y se verifica que el puerto serial
coincida con el de la tarjeta y que este seleccionada la Arduino Mega 2560. Al
terminar estos pasos se puede comenzar con la programacin de la tarjeta.
El siguiente es el cdigo que se realiza en Arduino IDE el cual se cargara en ella:
void setup() {
Serial.begin(9600); //Se inicia la comunicacin serial
delay(5000);

//Se espera 5 segundos para conectar el Bluetooth

}
void loop() {
Serial.println("*"); //Este asterisco indica el comienzo de la comunicacin
for(int i=1; i<30000; i++){
//Serial.write(i);
Serial.println(i); //Se imprime los nmeros del 1 al 30000
}
}

EXPLICACION DEL CODIGO ARDUINO


El cdigo que se cargara a la tarjeta Arduino, es bastante simple, se inicia la
comunicacin serial de la tarjeta, luego se enva una serie de nmero del 1 al
30000. Se enva esta secuencia para poder comprobar que los datos llegaron
ordenados. Cabe destacar que el asterisco (*) que se enva, es para poder
indicar el orden, Matlab interpretara este asterisco como el comienzo del envi
de los datos, y esto los recibir ordenadamente.
Es importante resaltar que para que se pueda realizar la carga correctamente
del archivo a la tarjeta, es necesario que se desconecten los pines TX y RX del
mdulo; una vez terminada la carga correctamente se vuelve a conectar estos
pines normalmente.

Una vez realizada la carga y verificada la conexin del mdulo con la tarjeta
(led del mdulo HC-06 parpadeando).

MATLAB
Ahora se procede a cargar MATLAB, rn un nuevo script se realiza el siguiente
codigo:
clc , clear all, close all;
%instrhwinfo('Bluetooth'); %Informacin sobre el hadward Bluetooth
%Out = instrhwinfo('Bluetooth','HC-06'); %Informacin del hardward Bluetooth
HC -06
FBTooth = Bluetooth('HC-06',1); %Se crea un objeto Bluetooth con el HC-06
fopen(FBTooth); %Se abre la comunicacin Bluetooth
String = fgets(FBTooth); %Se lee la siguiente lnea del objeto Bluetooth
while String ~= '*',
String = fgets(FBTooth); %Se lee la siguiente lnea del objeto Bluetooth
end
NDatos = 30000; %Numero de datos que se van a recibir
Datos = zeros(NDatos,1); %Se guarda la memoria para los datos
i = 1;
while i <= NDatos,
if FBTooth.BytesAvailable >= 1 %Cuando haya informacin en el objeto
Bluetooth
Datos(i) = str2double(fgets(FBTooth)); %Convierte de string a doble y lo
va guardando en la variable datos
i = i + 1; %Realiza esta operacin de lectura hasta que lea los nmeros
de datos especificados
end
end
fclose(FBTooth); %Cierra la comunicacin del objeto Bluetooth
plot(Datos,(1:NDatos)) %Se dibuja los datos recibidos
%Como se ha enviado los nmeros del 1 al 30000 se debe ver una funcin
%creciente

EXPLICACION DEL CODIGO EN MATLAB


Para poder recibir informacin por Bluetooth primero se debe crear un objeto
Bluetooth, pero antes de esto se debe verificar los dispositivos Bluetooth a los
que se puede acceder, esto lo hacemos en las primeras lneas de cdigo,
cuando se sabe que dispositivos hay y en que canales, se procede a abrir, para
nuestro caso debemos conectarnos al mdulo HC-06 por el canal uno.
Cuando se crea el objeto Bluetooth se debe abrir la comunicacin, para poder
enviar y recibir datos. La clave; como se explic en el cdigo Arduino, es el
asterisco, cuando Matlab recibe el asterisco este procede a guardar los datos
recibidos. Mientras Matlab no reciba el asterisco (comienzo del envi de datos)
no recibir los datos, as se guarda e orden de llegada de los datos, sin el envi
de este asterisco Matlab recibira los datos enviados por la tarjeta Arduino de
una manera desordenada.
Los datos son recibidos uno a uno y los guarda en un vector. Como se sabe que
el nmero de datos que se recibe es de 30000, la lectura de los datos se hace
30000 veces, de esa manera tambin se asegura que los datos llegaran ordena
mente.
Despus de la lectura de los datos, se cierra la comunicacin con el mdulo HC06.

RESULTADOS
Cuando se corre el cdigo en Matlab se debe esperar un tiempo prudente hasta
que la totalidad de los datos sean recibidos; el tiempo es ms o menos 5 minutos.
Despus de que haya pasado en tiempo necesario y Matlab haya recibido los
datos, se obtendr la siguiente imagen:

Se observa que los 30000 datos han llegado completamente, adems de que
han llegado ordenadamente.

También podría gustarte