Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

GIROSCOPIO

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 7

GIROSCOPIO (MPU6050)

DEFINICIÓN
• EL módulo MPU6050 contiene un giroscopio de tres ejes con el que podemos medir
velocidad angular y un acelerómetro también de 3 ejes con el que medimos los componentes
X, Y y Z de la aceleración, el acelerómetro trabaja sobre el principio piezo eléctrico, posee
además de un sensor de temperatura
SENSOR
• El MPU6050 es un sensor de movimiento, que tiene un conversor ADC de 16 bits que convierte los datos a un
valor digital, el módulo de giroscopio se comunica con el Arduino a través de la comunicación serie I2C a través
del reloj serial (SCL) y datos (SDA), el chip MPU6050 necesita 3.3V pero un regulador de voltaje en la tarjeta
GY-521 le permite alimentarlo hasta 5V, en nuestro caso en un Arduino con el que haremos unos ejercicios.

• El procesador interno del IMU (Inertial Measurment Units) es capaz de realizar cálculos precisos de los valores
que miden sus sensores internos que son, aceleraciones lineales y angulares, para informarnos de valores útiles
como los ángulos de inclinación con respecto a los 3 ejes principales. Un dato importante es que ni la
aceleración ni la velocidad lineal afectan la medición de giro.

• La dirección de los ejes está indicado en el módulo el cual hay que tener en cuenta para no equivocarnos en el
signo de las aceleraciones. Como la comunicación del módulo es vía I2C, esto le permite trabajar con la mayoría
de microcontroladores. En el módulo los pines SCL y SDA tienen una resistencia pull-up en placa para una
conexión directa al microcontrolador que estemos utilizando.
HARDWARE
• Abra su Arduino si no lo tiene abierto ya, vaya al menú Archivos/Ejemplos… y navegue hasta MPU6050> y
encontrará el archivo MPU6050_DMP6, ábralo y seleccione el puerto COM adecuado, suba el boceto. En el
monitor Serial elija la velocidad de 115200 Baudios.
• Le aparecerá una indicación, pruebe a escribir algún dato y pulse Enter, en ese momento deberían aparecer los
datos, lo que indica que todo está saliendo bien.
SOFTWARE
• Muchos de los ejemplos que podemos encontrar, tienen un problema y es que presentan
muchas vibraciones y ruido en las medidas, además cuando tengamos instalado el módulo
MPU6050 en el proyecto, siempre puede haber un desnivel en sus componentes, motivo por
el cual debemos calibrar el módulo, asegurándonos de que no haya un error de desnivel
agregado en cada componente.
• Podemos solucionar estos problemas al configurar el módulo MPU6050 OFFSETS, para
compensar dichos errores.
PROGRAMA PARA CALIBRAR EL
GIROSCOPIO
LEER INCLINACIÓN CON
ACELERÓMETRO

• En el siguiente ejemplo, calculamos la inclinación del MPU-6050 mediante la proyección de


la medición de la gravedad y las relaciones trigonométricas que vimos en la entrada Cómo
usar un acelerómetro con Arduino.
1 //GND - GND
2 //VCC - VCC
3 //SDA - Pin A4
4 //SCL - Pin A5
5  
6 #include "I2Cdev.h"
7 #include "MPU6050.h"
8 #include "Wire.h"
9  
10 const int mpuAddress = 0x68;  // Puede ser 0x68 o 0x69
11 MPU6050 mpu(mpuAddress);
12  
13 int ax, ay, az;
14 int gx, gy, gz;
15  
16 void setup()
17 {
18    Serial.begin(9600);
19    Wire.begin();
20    mpu.initialize();
21    Serial.println(mpu.testConnection() ? F("IMU iniciado correctamente") : F("Error al iniciar IMU"));
22 }
23  
24 void loop()
25 {
26    // Leer las aceleraciones
27    mpu.getAcceleration(&ax, &ay, &az);
28  
29    //Calcular los angulos de inclinacion
30    float accel_ang_x = atan(ax / sqrt(pow(ay, 2) + pow(az, 2)))*(180.0 / 3.14);
31    float accel_ang_y = atan(ay / sqrt(pow(ax, 2) + pow(az, 2)))*(180.0 / 3.14);
32  
33    // Mostrar resultados
34    Serial.print(F("Inclinacion en X: "));
35    Serial.print(accel_ang_x);
36    Serial.print(F("\tInclinacion en Y:"));
37    Serial.println(accel_ang_y);
38    delay(10);
39 }

También podría gustarte