You are on page 1of 7

Configuración bluetooth para recibir datos

Para la recepción de los datos realizamos una conexión inalámbrica usando un módulo
bluetooth el cual nos ayuda a evitar el cableado, y recibir la información directamente
por le hecho de ser un carrito en movimiento creemos que no era necesario tener
conectado un molesto cable al arduino presente en el carrito.
Pasos para la configuración:
Primeramente emparejamos el modulo bluetooth con nuestra PC, activando el
bluetooth de la pc y buscando los dispositivos disponibles , una vez que le encuentre se
va a mostrar como HC-05 lo emperajamos utilizando la clave pro defecto 1,2,3,4 y nos
queda de la siguiente manera:

Luego nos dirigimos a configuración de bluetooth y elegimos el puerto que tenga la


dirección de saliente, tal como muestra la imagen:
Una vez hecho esto nos dirigimos al programa HyperTerminal y configuramos de la
siguiente manera:
Primero:
Creamos una nueva conexión y ponemos un nombre, y damos clic en OK.
Segundo:
Luego simplemente escogemos el Puerto COM que se eligió en la configuración de
bluetooth con la cual se va a recibir la comunicación y los datos que el arduino lea.

Tercero:
Una vez que hayamos dado clic en OK se abre la ventana de hyperterminal la cual me
recibe los datos.
PROGRAMACION ARDUINO

Como es de conocimiento se usó el sensor MPU6050 que contiene un acelerómetro y


giroscopio en un solo integrado, para este funcionamiento utilizamos la librería de
arduino MPU6050 y I2C las cuales me proporcionan directamente la comunicación entre
el integrado y el programa, y así mismo los comandos necesarios para obtener
directamente los valores de aceleración y velocidad
Porgramacion
// Librerias I2C para controlar el mpu6050
// la libreria MPU6050.h necesita I2Cdev.h, I2Cdev.h necesita Wire.h
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// La dirección del MPU6050 puede ser 0x68 o 0x69, dependiendo


// del estado de AD0. Si no se especifica, 0x68 estará implicito
MPU6050 sensor;
// Valores RAW (sin procesar) del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
Serial.begin(9600); //Iniciando puerto serial
Wire.begin(); //Iniciando I2C
sensor.initialize(); //Iniciando el sensor

if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");


else Serial.println("Error al iniciar el sensor");
}

void loop() {
// Leer las aceleraciones y velocidades angulares
sensor.getAcceleration(&ax, &ay, &az);
sensor.getRotation(&gx, &gy, &gz);
float ax_m_s2 = ax * (9.81/16384.0);
float ay_m_s2 = ay * (9.81/16384.0);
float az_m_s2 = az * (9.81/16384.0);
float gx_deg_s = gx * (250.0/32768.0);
float gy_deg_s = gy * (250.0/32768.0);
float gz_deg_s = gz * (250.0/32768.0);
int axx=ax_m_s2;
int ayy=ay_m_s2;
int azz=az_m_s2;
int vxx=gx_deg_s;
int vyy=gy_deg_s;
int vzz=gz_deg_s;
int a;
int v;
int c=0;
a=sqrt((axx)^2+(ayy)^2+(azz)^2);
v=sqrt((vxx)^2+(vyy)^2+(vzz)^2);
//Mostrar las lecturas separadas por un [tab]

Serial.print("ace(m/s2) vel(deg/s):");
Serial.print(ax_m_s2); Serial.print("\t");
Serial.print(ay_m_s2); Serial.print("\t");
Serial.print(az_m_s2); Serial.print("\t");
Serial.print(gx_deg_s); Serial.print("\t");
Serial.print(gy_deg_s); Serial.print("\t");
Serial.print(gz_deg_s); Serial.print("\t");
Serial.print(a); Serial.print("\t");
Serial.println(v);

delay(100);

Imagen de obtención de los datos

You might also like