Práctica 2 - DSM
Práctica 2 - DSM
Práctica 2 - DSM
Brigada: 116
Integrantes:
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.
a=dV/dt
a=F/m
Modulo MPU6050
● 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
Método y materiales
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
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
R = Aceleración.
R = Velocidad angular.
R = Velocidad y desplazamiento.
R = Desplazamiento angular.
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.
10. ¿A qué pines analógicos del arduino se tiene que conectar el acelerómetro?
Bibliografía