Logo Studenta

LAB DISEÑO MEDICIONES DEL MPU6050

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN
FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA 
 
Laboratorio de Diseño de Sistemas Mecatrónicos
Práctica 2 - Mediciones del MPU6050
 
M.I. Dante Ferreyra Mendez
Brigada: 116
Integrantes:
Alberto Bernabé Rodríguez Olivares 1851145
Jesús Esteban Argumedo Guerra 1862511
Sebastian Ortiz Nuño 1865276
Período: Agosto-Diciembre 2021
Ciudad Universitaria, a 8 de octubre de 2021
Práctica 2 - Mediciones del MPU6050
Introducción
Esta práctica se enfoca en las mediciones que puede realizar un circuito integrado MPU6050, también conocido como sensor con acelerómetro y giroscopio, por lo que es relevante mencionar en qué consiste cada función del módulo MPU6050 y qué se puede lograr con este. Además, se contemplan algunas definiciones pertinentes y se definen las librerías que se necesitan para programar este dispositivo en Arduino.
Acelerómetro y giroscopio - ¿Qué son y para qué se utilizan?
Un acelerómetro es un dispositivo que mide la vibración o la aceleración del movimiento de una estructura. La fuerza generada por la vibración o el cambio en el movimiento (aceleración) hace que la masa "comprima" el material piezoeléctrico, generando una carga eléctrica que es proporcional a la fuerza ejercida sobre él.
El hecho de que la carga sea proporcional a la fuerza y que la masa sea constante hace que la carga también sea proporcional a la aceleración.
La aceleración es la variación de la velocidad por unidad de tiempo es decir razón de cambio en la velocidad respecto al tiempo:
a=dV/dt
Así mismo la segunda ley de Newton indica que en un cuerpo con masa constante, la aceleración del cuerpo es proporcional a la fuerza que actúa sobre él mismo:
a=F/m
Este segundo concepto es utilizado por los acelerómetros para medir la aceleración. Los acelerómetros internamente tienen un MEMS (MicroElectroMechanical Systems) que de forma similar a un sistema masa resorte permite medir la aceleración.
Con un acelerómetro podemos medir esta aceleración, teniendo en cuenta que a pesar que no exista movimiento, siempre el acelerómetro estará sensando la aceleración de la gravedad.
Con el acelerómetro podemos hacer mediciones indirectas como por ejemplo si integramos la aceleración en el tiempo tenemos la velocidad y si la integramos nuevamente tenemos el desplazamiento, necesitando en ambos casos la velocidad y la posición inicial respectivamente.
Los giroscopios son dispositivos que miden o mantienen el movimiento de rotación. Las unidades de velocidad angular se miden en grados por segundo (° / s) o revoluciones por segundo (RPS). La velocidad angular es simplemente una medida de la velocidad de rotación.
La velocidad angular es la tasa de cambio del desplazamiento angular por unidad de tiempo, es decir que tan rápido gira un cuerpo alrededor de su eje.
Con un giroscopio podemos medir la velocidad angular, y si se integra la velocidad angular con respecto al tiempo se obtiene el desplazamiento angular (posición angular si se sabe dónde se inició el giro).
Modulo MPU6050 
El MPU6050 es una unidad de medición inercial o IMU (Inertial Measurement Units) de 6 grados de libertad (DoF) pues tiene 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 la aceleración. Este sensor es muy utilizado en navegación, goniometría, estabilizacióden, etc.
La dirección de los ejes está indicada en el módulo el cual hay que tener en cuenta para no equivocarnos en el signo de las aceleraciones. 
La comunicación del módulo es por I2C, esto le permite trabajar con la mayoría de microcontroladores. Los pines SCL y SDA tienen una resistencia pull-up en placa para una conexión directa al microcontrolador o Arduino. 
Tenemos dos direcciones I2C para poder trabajar:
	Pin AD0
	Dirección I2C
	AD0=HIGH (5V)
	0x69
	AD0=LOW (GND o NC)
	0x68
Para poder dar instrucciones al módulo se requiere de 3 librerías:
· Wire.h: Esta librería se utiliza para comunicar la placa arduino con dispositivos que trabajan mediante el protocolo I2C/TWI. Este sistema de comunicación utiliza dos líneas de transmisión: SDA (datos serie) y SCL (reloj serie) conectadas a dos resistencias tipo pull-up a 5 V. Requerida por la librería I2Cdev.h para su funcionamiento.
· I2Cdev.h: Esta librería es un conjunto de instrucciones que permiten trabajar con el protocolo I2C. Este es un puerto y protocolo de comunicación serial, que define la trama de datos y las conexiones físicas para transferir bits entre 2 dispositivos digitales. El puerto incluye dos cables de comunicación, SDA y SCL. Esta es necesaria para poder comunicar el MPU6050 a la computadora de forma efectiva.
· MPU6050.h: Librería principal que nos permitirá acceder a las diferentes lecturas del módulo.
Objetivos
· Realizar lecturas del acelerómetro.
· Realizar lecturas del giroscopio
· Desplegar resultados de las mediciones del sensor en la interfaz de Arduino.
Método y materiales
Para comenzar, se conecta el MPU6050 con nuestro Arduino que armamos en la práctica anterior. Para esto nos podemos apoyar en el esquema siguiente:
· Modulo de Arduino de la práctica 1.
· Módulo MPU6050 (Acelerómetro y giroscopio)
· Cable con conexión USB a la computadora.
· Cables dupont macho-macho y hembra-macho
Para realizar la práctica, se realizó el siguiente proceso:
El código que se utilizó es el siguiente:
1. #include "I2Cdev.h"
2. #include "MPU6050.h"
3. #include "Wire.h"
4. int ax, ay, az;
5. int gx, gy, gz;
6. void setup() {
7. Serial.begin(57600); //Iniciando puerto serial
8. Wire.begin(); //Iniciando I2C
9. sensor.initialize(); //Iniciando el sensor
10. if (sensor.testConnection()) Serial.println("Sensor iniciado
11. correctamente");
12. else Serial.println("Error al iniciar el sensor");
13. }
14. void loop() {
15. sensor.getAcceleration(&ax, &ay, &az);
16. sensor.getRotation(&gx, &gy, &gz);
17. Serial.print("a[x y z] g[x y z]:\t");
18. Serial.print(ax); Serial.print("\t");
19. Serial.print(ay); Serial.print("\t");
20. Serial.print(az); Serial.print("\t");
21. Serial.print(gx); Serial.print("\t");
22. Serial.print(gy); Serial.print("\t");
23. Serial.println(gz);
24. delay(100);
25. }
Resultados
En esta actividad se debía mostrar un Arduino hecho en una protoboard y un módulo MPU6050, por lo que la evidencia del éxito de la práctica es que se logró enviar una señal desde una computadora al microcontrolador del Arduino y hacer que mostrara los valores de X, Y y Z en la interfaz.
Para lograr desplegar los valores, se cargó un código usando el software de Arduino, se empleó uno de los programas por defecto que se manejan en este tipo de actividades y que el propio software proporciona, así como 3 librerías (Wire.h, I2Cdev.h y MPU6050.h) El código fue nombrado Mediciones del MPU6050 y hace que el sensor arroje los valores del giroscopio. Después de programar el Arduino, se mostraron los efectos esperados; demostrando que tanto el Arduino como las conexiones para la programación estaban adecuadamente dispuestas.
Discusión de resultados
Tal como nos indicaba con los diagramas esquemáticos del ATMEGA328P, fue posible conectar adecuadamente el Arduino con el MPU6050 y con la computadora. Gracias a la correcta interpretación de la teoría y a una correcta implementación del circuito en físico, se logró completar la práctica. 
Se puede decir que los resultados obtenidos concuerdan con lo esperado, es decir lo que contempla la teoría previa y lo que establecen los programas para este propósito. 
Conclusión 
Esta práctica dio uso del circuito en protoboard que cumpla la función de un Arduino que se realizó en la Práctica 1, es decir que sea capaz de leer códigos en el lenguaje del software Arduino y que pueda desarrollar las acciones adecuadamente. 
En concreto, el circuito permitió desplegar una serie de datos de posición en tres dimensiones (X, Y y Z); sin embargo, ahora es necesario calibrar el dispositivo para que la información proporcionada tenga sentido para el usuario. Se pudo notar que no es necesariotener una tarjeta Arduino Uno para conseguir que un microcontrolador obedezca los comandos, sino que es posible hacerlo con un circuito integrado ATMEGA328P (tal como el que usan los Arduinos comerciales) y una serie de componentes esenciales. En este caso el conocer un programa base y ciertas librerías asociadas con el componente del giroscopio fue suficiente para culminar la práctica exitosamente, apoyándonos del Arduino casero, claro está. 
Cuestionario
1. ¿Qué mide de forma directa un acelerómetro?
R = Aceleración.
2. ¿Qué mide de forma directa un giroscopio?
R = Velocidad angular.
3. ¿Qué mediciones indirectas podemos hacer con un acelerómetro?
R = Velocidad y desplazamiento.
4. ¿Qué mediciones indirectas podemos hacer con un giroscopio?
R = Desplazamiento angular.
5. ¿Qué librerías utiliza el módulo MPU6050 para correr?
R = Wire.h, I2Cdev.h y MPU6050.h
6. ¿Cuáles son las funciones que usa el Arduino para medir aceleración y rotación?
R = sensor.getAcceleration y sensor.getRotation.
7. ¿Qué es el MPU6050?
R = Una unidad de medición inercial.
8. ¿El acelerómetro ya está calibrado?
R: No, esta práctica solo consistió en obtener valores y ver su funcionamiento inicial.
9. ¿Cómo se alimenta el acelerómetro?
R: Se alimenta a través de los pines del arduino 5V y GND.
10. ¿A qué pines analógicos del arduino se tiene que conectar el acelerómetro?
R: El pin SCL va al A5 y el SDA al A4.
Bibliografía
1. Anónimo [Administrador] (Recuperado el 7 de Octubre de 2021). OMEGA. Acelerómetro. https://es.omega.com/prodinfo/acelerometro.html 
2. Anónimo. (Recuperado el 7 de Octubre de 2021). 5 Hertz Electrónica. Introducción al giroscopio. https://www.5hertz.com/index.php?route=tutoriales/tutorial&tutorial_id=13 
3. Anónimo. [Naylamp] (5 de Julio de 2016, recuperado el 7 de Octubre de 2021). Naylamp Mechatronics. TUTORIAL MPU6050, ACELERÓMETRO Y GIROSCOPIO. https://naylampmechatronics.com/blog/45_tutorial-mpu6050-acelerometro-y-giroscopio.html 
4. Anónimo. (Recuperado el 8 de Octubre de 2021). TECHAMC. Librerías Arduino. http://techamc.es/ARDUINO/PROGRAMACION/LIBRERIAS/LIBRERIA_Wire_ARDUINO.htm 
5. Anónimo [Administrador] (22 de Febrero de 2018, recuperado el 8 de Octubre de 2021). HETPRO. Tutorial I2C. https://hetpro-store.com/TUTORIALES/i2c/ 
Anexos

Continuar navegando