Analisando o InvenSense MPU-6050: giroscópio, acelerômetro e termômetro
- Publicado em Eletrônica
Neste texto, analisaremos o circuito integrado MPU-6050 da empresa InvenSense, que consiste em uma Unidade de Processamento de Movimento, um giroscópio e um acelerômetro, ambos de três eixos, com precisão consideráveis, além de um termômetro. Conforme respectiva aplicação, os dados apresentados foram obtidos por meio de software desenvolvido na plataforma de desenvolvimento National Instruments LabVIEW e o firmware para a plataforma embarcada Arduino, no Visual Studio com a extensão Visual Micro.
Considerações gerais
O chip MPU-6050 consiste praticamente em um processador combinado com um sensor giroscópio, um sensor acelerômetro e um sensor de temperatura, além de conversores analógico para digital (ADC) de 16 bits. A programação do dispositivo é realizada por meio da escrita de registradores de configuração e a comunicação é efetuada por meio de uma interface I²C até 400kHz ou SPI até 20MHz.
Por meio de seu Processador Digital de Movimentos (Digital Motion Processor - DMP), é possível desenvolver até mesmo algoritmos por meio da plataforma proprietária "MotionFusion" da InvenSense, que possui uma biblioteca específica para microcontroladores ARM e MSP430.
Nesta aplicação, demonstraremos apenas os resultados dos dados obtidos dos sensores desse interessante dispositivo e não nos aprofundaremos no driver Embedded MotionDriver neste artigo.
Giroscópio do MPU-6050
Um giroscópio consiste em um dispositivo capaz de detectar e mensurar rotações, importante para mensurar variações na orientação de um dispositivo e inclinação final em conjunto com acelerômetros e outros dispositivos para evitar erros inerentes conhecidos como "integration drift". O MPU-6050 é capaz de mensurar variações instantâneas nos três eixos separadamente de até 2000 graus por segundo (333,33 RPM) e possui quatro faixas de programação e precisão: +-250°/s, +-500°/s +-1000°/s e +-2000°/s.
Acelerômetro do MPU-6050
Acerca do acelerômetro, trata-se de sensor capaz de detectar e mensurar aceleração, tanto a aceleração gravitacional quanto qualquer outra aceleração de movimento. O MPU-6050 é capaz de mensurar acelerações nos três eixos separadamente de até 16g (156,896 m/s²) e possui quatro faixas de programação e precisão: +-2g, +-4g +-6g e +-16g, sendo a unidade não-SI G referente ao valor da aceleração gravitacional.
Oscilações aleatórias
Enfim, aplicamos oscilações e movimentos aleatórios ao sensor o MPU-6050 para testar o sistema de aquisição de dados. Os dados apresentados no gráfico se referem a movimentos moderados com um intervalo pequeno de repouso, resultando em uma aceleração de até 6 g's e rotações de até 1500 graus por segundo. Ressaltamos que caso você não seja um piloto de caça experiente, provavelmente perderia a consciência caso fosse acelerado até 6g m/s².
Perceba a aceleração no eixo Z é de cerca de 1 G (9,68 m/s²) em repouso, que equivale à aceleração gravitacional e houve detecção de uma pequena aceleração nos dois eixos X e Y mesmo em repouso pois o dispositivo MPU-6050 não estava totalmente plano:
Ainda, na imagem abaixo, os dados obtidos do MPU-6050 podem ser visualizados no LabVIEW por meio de gráficos distintos para os eixos X, Y e Z para melhor distinguir as variações em cada eixo cartesiano:
Rotações
Ao aplicarmos uma rotação no dispositivo, visualizamos claramente a variação nos dados obtidos do giroscópio e no eixo em que a aceleração gravitacional é aplicado. Perceba no gráfico abaixo, referente a uma rotação em torno do eixo X do dispositivo, que a aceleração gravitacional deixa de ser mensurada no eixo Z e passa a ser detectada no eixo X (azul) uma vez que esse eixo foi colocado de maneira colinear à força de gravitação e perpendicular ao plano do solo:
Ainda, para a rotação em torno do eixo Y, constatamos que a aceleração gravitacional passa a ser mensurada no eixo Y e visualizamos a respectiva rotação por meio do giroscópio:
Para uma rotação de apenas 180° entorno do eixo X, obtemos os dados abaixo. Perceba que a rotação foi mais rápida, sendo possível constatar uma variação de maior intensidade:
Vibrações mecânicas em uma ventoinha com motor brushless
Para analisarmos as vibrações no rotor de uma ventoinha com motor brushless 12V, colocamos o sensor em cima do rotor para mensurarmos a frequência das vibrações (sem precisão em relação à inclinação do dispositivo pois o mesmo não foi fixado no rotor e visou analisar a apenas a frequência das oscilações). Durante a energização e desenergização, constatamos as seguintes variações (cerca de 12 oscilações por segundo):
Em regime permanente, obtemos as seguintes oscilações de aceleração:
Os mesmos dados podem ser visualizados por meio de eixo distintos (X-Y-Z). No caso abaixo, representamos as variações durante o período de aceleração da ventoinha:
Vibrações mecânicas durante o impacto decorrente de queda sobre uma mesa com ou sem amortecimento
Ao deixarmos a placa PCB do MPU-6050 cair de uma altura aproximada de 25cm sobre uma mesa de madeira, constatamos pulsos de aceleração levemente superiores a 2 g's após o impacto:
Com o amortecimento prestado por um mouse pad emborrachado, conseguimos constatar a existência de um segundo ciclo vibratório de aceleração e menor desaceleração em relação ao caso supramencionado:
Vibrações mecânicas durante o toque sobre a superfície de repouso da PCB do MPU-6050
No gráfico abaixo, um pequeno impulso é detectado ao aplicarmos um toque sobre a mesa em que o dispositivo se encontrava em repouso. Perceba que ocorre um pulso negativo no eixo Z (perpendicular ao plano da terra) referente a uma redução da aceleração gravitacional em 0,2g, enquanto houve dois pulsos positivos de 0,1g nos outros dois eixos:
Vibrações mecânicas em um fone de ouvido
No gráfico abaixo, referente a um tempo de análise maior, repousamos o MPU-6050 sob um fone de ouvido externo e reproduzimos um vídeo do YouTube de teste de audição (disponível em https://www.youtube.com/watch?v=H-iCZElJ8m0), no qual variando-se a frequência do sinal de áudio ao longo do tempo com cerca de dois intervalos de variações mais rápidas:
A variação da frequência das vibrações é melhor percebida em um intervalo de tempo menor. Na imagem abaixo, visualizamos a elevação da frequência do sinal de áudio e das vibrações mecânicas, respectivamente, com o decorrer do tempo:
Vibrações mecânicas em um fluido (água)
Por fim, analisamos as vibrações mecânicas nos sensores do MPU-6050 com o mesmo repousando sob a água após a aplicação de ondas em um recinto pequeno fechado. Caso o experimento seja realizado em um reservatório maior, seria possível analisar o tempo de propagação de ondas na água: