MPU-6050 com Processing

MPU-6050 com Processing


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 exemplo, faça a ligação do componente no Arduino conforme o esquema abaixo:

MPU-6050 com Processing


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_TEAPOT e siga as demais alterações conforme as figuras abaixo:




Seguindo para o Processing,  baixe a biblioteca Toxilib, descompacte-a, copie a pasta e cole em em C:\Users\admin\Documents\Processing\libraries. Feito isso baixe o arquivo MPUTeapot, inicie o programa e configure-o conforme indicado abaixo:



Ao executar o MPUTeapot, ele inicia com a figura conforme calibrado e ao movimentar o Sensor MPU 6050, vemos a imagem em 3D se movimentando conforme o movimento do sensor.

MPU-6050 com Processing