2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O MPU6050 é um sensor muito útil.
O mpu 6050 é uma IMU: uma unidade de medição inercial (IMU) é um dispositivo eletrônico que mede e relata a força específica de um corpo, taxa angular e, às vezes, a orientação do corpo, usando uma combinação de acelerômetros e giroscópios.
É um dispositivo de 6 eixos
3 do eixo podem medir a aceleração e os outros 3 são para medições de aceleração angular.
Usando a aceleração e aceleração angular, é possível obter uma estimativa bastante precisa do ângulo
Neste tutorial, iremos explorar como podemos usar o MPU6050 com uma biblioteca para tornar as coisas muito mais fáceis.
Suprimentos
- Placa Arduino
- MPU6050
- Fios de ligação
- Tábua de pão
Etapa 1: complete o circuito
O sensor usa um protocolo conhecido como I2c para se comunicar com o Arduino para enviar os valores.
O pino A4 é usado para relógio serial SCL e deve ser conectado ao SCL do sensor e, A5 para linha de dados SDA-Serial.
O Vcc está conectado a 5v e o Gnd está conectado ao aterramento
Etapa 2: codificação
#include #include
Antes de começar, esta biblioteca não foi escrita por mim, só acho que é a mais simples que existe e adoro usá-la.
Estes são os arquivos de cabeçalho ^^, wire.h é usado para estabelecer uma comunicação i2c
MPU6050 mpu6050 (fio);
aqui chamamos nosso giroscópio ou criamos um objeto para aqueles que estão familiarizados com OOPs.
void setup () {
Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (true); }
Inicialmente calculamos os deslocamentos, uma vez que todas as leituras dos ângulos serão em relação à orientação inicial.
void loop () {
mpu6050.update (); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); }
Cada um nos dá a medida do ângulo.
Etapa 3: Outras funções
A biblioteca contém outras funções
gostar:
mpu6050.getTemp () // fornece a temperatura (não muito precisa)
mpu6050.getAccX () // Aceleração linear na direção X
(funções semelhantes são mpu6050.getAccY (), mpu6050.getAccZ ())
mpu6050.getGyroX () // Aceleração angular sobre o eixo x
(funções semelhantes são mpu6050.getGyroY (), mpu6050.getGyroZ ())