Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
El MPU6050 es un sensor muy útil.
El mpu 6050 es una IMU: una unidad de medida inercial (IMU) es un dispositivo electrónico que mide e informa la fuerza específica de un cuerpo, la velocidad angular y, a veces, la orientación del cuerpo, utilizando una combinación de acelerómetros y giroscopios.
Es un dispositivo de 6 ejes
3 de los ejes pueden medir la aceleración y los otros 3 son para mediciones de aceleración angular.
Usando la aceleración y la aceleración angular es posible obtener una estimación bastante precisa del ángulo
En este tutorial exploraremos cómo podemos usar el MPU6050 con una biblioteca para hacer las cosas mucho más fáciles.
Suministros
- Placa arduino
- MPU6050
- Cables de puente
- Tablero de circuitos
Paso 1: completa el circuito
El sensor usa un protocolo conocido como I2c para comunicarse con el Arduino para enviarle los valores.
El pin A4 se utiliza para el reloj serie SCL y debe conectarse a SCL del sensor y, A5 a la línea de datos SDA-Serial.
El Vcc está conectado a 5v y el Gnd está conectado a tierra
Paso 2: codificación
#include #incluya
Antes de comenzar, esta biblioteca no está escrita por mí, solo creo que es la más simple que existe y me encanta usarla.
Estos son los archivos de encabezado ^^, wire.h se usa para establecer una comunicación i2c
MPU6050 mpu6050 (cable);
aquí nombramos nuestro giroscopio, o creamos un objeto para aquellos que están familiarizados con los POO.
configuración vacía () {
Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (verdadero); }
Inicialmente calculamos las compensaciones ya que todas las lecturas de ángulos serán con respecto a la orientación inicial.
bucle vacío () {
mpu6050.update (); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); }
Cada uno nos da la medida del ángulo.
Paso 3: otras funciones
La biblioteca contiene otras funciones
igual que:
mpu6050.getTemp () // da la temperatura (no muy precisa)
mpu6050.getAccX () // Aceleración lineal en dirección X
(funciones similares son mpu6050.getAccY (), mpu6050.getAccZ ())
mpu6050.getGyroX () // Aceleración angular sobre el eje x
(funciones similares son mpu6050.getGyroY (), mpu6050.getGyroZ ())