Centro Universitario de Ciencias
Exactas e Ingenierías
Universidad de Guadalajara
Sensores y
Acondicionamiento de señales
Alumnos:
• Escoto Garcia Juan Jesus
• Martínez Muñiz Sebastián
Carrera: Ingeniería Robótica
Códigos:
• 217585681
• 217567225
Plantel: CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
Escoto Garcia Juan Jesus & Martínez Muñiz Sebastián
Funcionamiento
El MPU6050 es un sensor de movimiento y orientación que combina un
acelerómetro y un giroscopio en un solo chip:
• Acelerómetro:
El acelerómetro mide la aceleración en los tres ejes espaciales (X, Y y Z).
La aceleración debida a la gravedad se mide en todos los ejes, lo que
permite determinar la orientación del sensor en relación con la gravedad.
Cuando el sensor está en posición horizontal y estática, la lectura del
acelerómetro en el eje Z será igual a la gravedad (9.81 m/s² en la Tierra),
y las lecturas en los ejes X e Y serán cercanas a cero.
• Giroscopio:
El giroscopio mide la velocidad angular o la tasa de cambio de orientación
en los tres ejes (X, Y y Z).
El giroscopio permite detectar la rotación del sensor en tiempo real. Esto
es útil para medir los cambios en la orientación del objeto al que está
conectado el MPU6050.
Velocidad
La velocidad con la que se obtienen los datos es prácticamente instantánea para
nuestro código, ya que al momento de manipular el sensor en pantalla se
muestran sus estimaciones de posición al instante, además se nos muestran
como coordenadas X y Y, tomado como referencia el eje Z y sabiendo que el eje
0,0 es donde se encontraba posicionado y se conectó el Arduino para las
mediciones.
Utilidad
Las utilidades más importantes es que si tu ya tienes un mapeo de una zona en
específico, este sensor te puede ayudar a ubicarte en esa zona sin que tu tengas
que realizar alguna medición, o también permite que algún controlador externo
interprete los datos del sensor para realizar alguna maniobra, por ejemplo un
robot que es susceptible a volcaduras y cuenta con un sistema para corregirlas,
el sensor le ayudara a darse cuenta que es necesario aplicar esa función o se
puede caer, también nos puede servir para saber en todo momento donde se
encuentra un objeto en el mapeo.
Otra utilidad que tiene es en el campo de la navegación, ya que permite que
barcos, vehículos y aeronaves determinen su posición y orientación sin depender
de una señal GPS.
2
CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
Escoto Garcia Juan Jesus & Martínez Muñiz Sebastián
Funcionalidad
Primeramente, nuestro sensor cuenta con un acelerómetro y un giroscopio, pero
no cuenta con un magnetómetro y presenta algo de ruido en sus mediciones lo
que lo convierte en una opción no tan favorable para una tarea que requiera una
precisión de los datos mas extrema o si necesita una función distinta con la que
no cuenta este chip, además es un chip sensible a golpes.
Sin Moverse
Girado en X
3
CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
Escoto Garcia Juan Jesus & Martínez Muñiz Sebastián
Girado en X(inverso)
Girado en Y
4
CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
Escoto Garcia Juan Jesus & Martínez Muñiz Sebastián
Girado en Y(Inverso)
Implementación
Código:
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
void setup() {
[Link](9600);
[Link]();
[Link]();
}
void loop() {
// Obtén datos del acelerómetro y el giroscopio
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// Calcula los ángulos
float angleXZ = atan2((float)ay, (float)az) * RAD_TO_DEG;
float angleYZ = atan2((float)ax, (float)az) * RAD_TO_DEG;
// Muestra los ángulos en la pantalla serial
[Link]("Ángulo XZ: ");
[Link](angleXZ);
[Link]("\tÁngulo YZ: ");
[Link](angleYZ);
5
CUCEI - GDL, Jalisco
‘Actividad 5 - Inclinómetro’
Escoto Garcia Juan Jesus & Martínez Muñiz Sebastián
delay(100); // Opcional: Agrega un retraso para evitar una salida
demasiado rápida en la pantalla serial
}
Diagrama:
Complejidad
La construcción del circuito fue muy sencilla y hacer funcionar el chip con el
código de Arduino proporcionado también fue fácil de implementar, lo único que
genero errores fue el código proporcionado por el libro, los cuales fueron
solucionados con unas funciones mas actuales.