MPU-6050 com MATLAB


Os sensores IMU são um dos tipos mais comuns e mais confiáveis de sensores usados ​​hoje em todos os tipos de aparelhos eletrônicos. Os sensores da IMU (Inertia Measurement Unit) nos ajudam a obter a atitude de um objeto ligado ao sensor no espaço tridimensional. 


Esses sensores fornecem valores que geralmente são transformados em ângulos para nos ajudar a determinar sua atitude.Eles são usados ​​em smartphones para detectar sua orientação ou em aparelhos wearable como o Fit Bit que usam sensores IMU para rastrear o movimento. Os sensores IMU normalmente consistem em duas ou mais partes. Listando-os por prioridade são o acelerômetro, o giroscópio, o magnetômetro e o altímetro. O MPU 6050 é um 6 DOF (Degrees of Freedom) ou um sensor de IMU de seis eixos, o que significa que ele fornece seis valores como saída. Três valores do acelerômetro e três do giroscópio. O MPU 6050 é um sensor baseado na tecnologia MEMS (Micro Electro Mechanical Systems).
Um acelerômetro funciona com o princípio do efeito piezoelétrico. Imagine uma caixa com uma bola pequena dentro dela onde as paredes desta caixa são feitas com cristais piezoelétricos e, quando inclinamos essa caixa, a bola é forçada a se mover na direção da inclinação devido à gravidade. Existem três pares de paredes opostas nessa caixa onde cada par corresponde a um eixo no espaço 3D: eixos X, Y e Z. Quando a bola colide em cada uma dessa parede, cria pequenas correntes piezoelétricas as quais são utilizadas para determinar a direção da inclinação e sua magnitude.
Os giroscópios trabalham de acordo com no princípio da aceleração de Coriolis.
Imagine uma estrutura de cristais piezoelétricos (representada pelos braços sensores na figura ao lado) semelhante a uma forquilha que esteja em constante movimento vibratório. Essas vibrações nos cristais, resultado da inércia do garfo móvel, produzem assim uma corrente em consenso com o efeito piezoelétrico, esta corrente é amplificada e seus valores são então refinados pelo microcontrolador.
O MPU-6050 é um sensor DMP (Digitam Motion Processor) que além do giroscópio e do acelerômetro, tem um termômetro na mesma board. É um dispositivo de alta precisão e baixo custo com comunicação I2C (Inter-Integrated Circuit) com o Arduino.
Partindo para o projeto, faça a ligação do componente no Arduino conforme o esquema abaixo:
MPU-6050 com MATLAB
Prosseguindo, baixe as bibliotecas, descompacte o arquivo zip i2cdevlib-master, abra essa pasta, em seguida, abra a pasta Arduino, copie as pastas I2Cdev e MPU6050 e cole em C:\Users\admin\Documents\Arduino\libraries.
Feito isso, baixe o  código de calibração, carregue no Arduino, abra o Monitor Serial, aguarde o final e copie os offsets para serem inseridos no próximo programa.


Vá à pasta Arquivo>Exemplo>MPU6050> MPU6050_DMP6 abra o exemplo MPU6050_DMP6, insira os valores offsets encontrados no sketch de calibragem, faça a seleção para # define OUTPUT_READABLE_YAWPITCHROLL e siga as demais alterações no programa conforme as figuras abaixo:


Partindo para o MATLAB, baixe o script junto com a função e faça a alteração da porta no script conforme a figura abaixo:


Execute o programa, aguarde alguns segundos e veja o resultado:

MPU-6050 com MATLAB


Um comentário:

  1. Olá! Gostei muito do seu projeto, poderia compartilhar os arquivos pra eu rodar aqui?
    Meu e-mail: vinicius.altarni@unesp.br

    ResponderExcluir