Práctica 2 - DSM

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

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 necesario tener 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_ARDUI
NO.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

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy