Componentes Eletronicos

Acelerômetros MPU-6050, MMA8452 e MPU-9250

Eletrogate 14 de setembro de 2020

Introdução

Você já ficou em dúvida sobre qual modelo de componente comprar na hora de fazer seu projeto? Você sabe qual desses acelerômetros se encaixa melhor na medição de seus instrumentos? Este post tem como objetivo sanar suas dúvidas e te ajudar a escolher melhor o componente ideal para você! Aqui, iremos falar sobre os acelerômetros MPU-6050, MMA8452 e MPU-9250, abordaremos suas funções, modo de funcionamento e suas diferenças. Vamos lá?


O que é um Acelerômetro?

O acelerômetro é um dispositivo usado para medir a aceleração própria de um sistema. Aceleração, propriamente dita, é a taxa de variação da velocidade de um corpo em seu próprio quadro de repouso instantâneo, o que é diferente da aceleração por coordenadas, que é a aceleração em um sistema de coordenadas fixo. Por exemplo, um acelerômetro em repouso na superfície da Terra medirá uma aceleração devida à gravidade da Terra, diretamente para cima (por definição) de g ≈ 9,81 m/s2. Em contraste, acelerômetros em queda livre (caindo em direção ao centro da Terra a uma taxa de cerca de 9,81 m/s2) medem zero.

Aplicações

Acelerômetros são largamente utilizados em nossa sociedade. Aqui estão algumas de suas principais aplicações.

Celulares

O uso mais comum para essa tecnologia é ativar a rotação automática da tela em dispositivos móveis quando o usuário muda a sua orientação de retrato para paisagem ou vice-versa.

Celular.
Crédito: TecMundo

Controle de videogames

Outra aplicação muito conhecida é em controles de videogames. O acelerômetro é utilizado para identificar quando o jogador faz um determinado movimento com o controle, o qual, provavelmente, acionaria uma ação dentro do jogo.

Controle Remoto Wii.
Crédito: Wikipédia

Outras aplicações

Ouras aplicações de acelerômetros são:

  • Medição da aceleração de veículos, como carros e caminhões;
  • Monitoramento de animais em estudos biológicos;
  • Monitoramento de instrumentos industriais;
  • Identificação de terremotos ou tremores em lugares específicos.

Como Funciona?

Um acelerômetro funciona segundo o princípio do efeito piezoelétrico. Imagine uma caixa cuboide com uma pequena bola dentro dela, como na foto abaixo. As paredes desta caixa são feitas de cristais piezoelétricos. Sempre que você inclina a caixa, a bola é forçada a se mover na direção da inclinação devido à gravidade. A parede com a qual a bola colide cria pequenas correntes piezoelétricas. Existem três pares de paredes opostas em um cuboide. Cada par corresponde a um eixo no espaço 3D: eixos X, Y e Z. Dependendo da corrente produzida pelas paredes piezoelétricas, podemos determinar a direção de inclinação e sua magnitude.

Princípio do efeito piezoelétrico.
Crédito: Maker Pro


Diferenças

Apesar de terem funções semelhantes, os acelerômetros MPU-6050, MMA8452 e MPU-9250 possuem diferenças cruciais. A seguir, será detalhado quais são essas discrepâncias.

MPU-6050

O sensor MPU-6050 contém em um único chip um acelerômetro e um giroscópio tipo MEMS. São 3 eixos para o acelerômetro e 3 eixos para o giroscópio, sendo ao todo 6 graus de liberdade (6DOF). Além disso, esta placa tem um sensor de temperatura embutido no CI MPU6050, permitindo medições entre -40 e +85 ºC. Possui alta precisão devido ao conversor analógico digital de 16-bits para cada canal. Portanto o sensor captura os canais X, Y e Z ao mesmo tempo.

Para conferir nosso acelerômetro MPU-6050, clique aqui.

Especificações

  • Chip: MPU-6050;
  • Tensão de Operação: 3-5V;
  • Conversor AD 16 bits;
  • Comunicação: Protocolo padrão I2C;
  • Faixa do Giroscópio: ±250, 500, 1000, 2000°/s;
  • Faixa do Acelerômetro: ±2, ±4, ±8, ±16g;
  • Dimensões: 2 x 1,6 x 0,1mm.

Pinout

Pinout MPU-6050

MMA8452

O módulo acelerômetro MMA8452 é um dispositivo de 12 bits de resolução com baixo consumo de energia, perfeito para o seu projeto de realidade virtual utilizando microcontroladores. Este sensor é a versão atualizada do MMA7361. O MMA8452 traz diversas melhorias embutidas em comparação com o seu antecessor MMA7361, e permite o uso de até 2 interrupções, diminuindo a carga de trabalho sobre o microcontrolador. Outra vantagem deste módulo é a utilização da interface I2C para comunicação.

Confera nosso acelerômetro MMA8452 clicando aqui.

Especificações

  • CI MMA8452Q;
  • Acelerômetro 3 eixos;
  • Tensão de operação: 3 à 5VDC;
  • Faixa de operação: ±2g, ±4g, ±8g (com ou sem filtro);
  • Interface I2C;
  • Permite o uso de até 2 interrupções;
  • Detector de movimento e detector de queda livre;
  • Detector de pulso e vibração;
  • Dimensões: 21 x 15 x 3,2mm.

Pinout

Pinout MMA8452

MPU-9250

O MPU-9250 é um dispositivo MotionTracking de 9 eixos que combina um Giroscópio de 3 eixos, Acelerômetro de 3 eixos, Magnetômetro de 3 eixos e um Processador de Movimento Digital (Digital Motion Processor™ – DMP).

Com seu barramento sensor I2C dedicado, o MPU-9250 fornece uma saída direta e completa MotionFusion™ de 9 eixos. O dispositivo MPU-9250 MotionTracking, com integração de 9 eixos, MotionFusion™ no chip e firmware de calibração em tempo de execução, permite integração fácil, com desempenho otimizado do movimento para qualquer dispositivo. O MPU-9250 também foi projetado para interagir com vários sensores digitais não inerciais, como sensores de pressão, em sua porta I2C auxiliar.

Especificações

  • Módulo Acelerômetro e Giroscópio 9 Eixos MPU-9250 GY-9250 – Datasheet AK60SY20-110-R5;
  • Modelo: MPU-9250 / GY-9250 / MPU9250;
  • Tensão de alimentação: 2,4 – 3,6 V;
  • Conversor ADC 16 bits;
  • Comunicação: Protocolo padrão I2C;
  • Corrente Operacional: 3.2mA quando todos os 9 eixos sensores de movimento e o DMP estão ativados;
  • Corrente de funcionamento normal do Acelerômetro: 450µA;
  • Corrente de funcionamento normal do magnetômetro: 280µA;
  • Faixa do giroscópio:  ± 250, ± 500, ± 1000 e ± 2000°;
  • Faixa do Acelerômetro: ± 2g, ± 4g, ± 8g e ± 16g;
  • Faixa do magnetômetro: ± 4800µT;
  • Composição: Placa de Fenolite, e Componentes Eletrônicos;
  • Tamanho: 20mm Largura x 16mm Profundidade x 2mm Altura;
  • Peso: 3g.

Pinout

Pinout MPU-9250


Colocando em Prática

Agora que já aprendemos como funcionam e quais são as diferenças dos acelerômetros abordados, está na hora de programar um código para entendermos na prática como utilizar esses componentes.

Aqui, faremos apenas um programa para o MPU-6050, já que a programação dos três é muito similar.

Materiais necessários para o projeto com MPU-6050

Os únicos materiais necessários serão:

cta_cart

Diagrama

O diagrama abaixo representa a montagem do projeto.

Programação

Para este projeto, utilizaremos um código exemplo do próprio Arduino. Primeiramente, temos que baixar a biblioteca do MPU-6050. Para isso, basta abrir o Arduino no computador, e clicar em Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas…, como mostrado a seguir:

Posteriormente, escreva “MPU6050” na barra de pesquisa e instale a versão “Adafruit MPU6050”, preferencialmente.

Depois de instalado, vá em Arquivo -> Exemplos -> Adafruit MPU6050 (provavelmente no final da aba) -> plotter.

O seguinte código se abrirá, o qual utilizaremos nesse experimento.

// Basic demo for accelerometer readings from Adafruit MPU6050

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

Adafruit_MPU6050 mpu;

void setup(void) {
  Serial.begin(115200);
  while (!Serial) {
    delay(10); // will pause Zero, Leonardo, etc until serial console opens
  }

  // Try to initialize!
  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) {
      delay(10);
    }
  }

  mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
  mpu.setGyroRange(MPU6050_RANGE_250_DEG);
  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
  Serial.println("");
  delay(100);
}

void loop() {

  /* Get new sensor events with the readings */
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  /* Print out the values */
  Serial.print(a.acceleration.x);
  Serial.print(",");
  Serial.print(a.acceleration.y);
  Serial.print(",");
  Serial.print(a.acceleration.z);
  Serial.print(", ");
  Serial.print(g.gyro.x);
  Serial.print(",");
  Serial.print(g.gyro.y);
  Serial.print(",");
  Serial.print(g.gyro.z);
  Serial.println("");

  delay(10);
}

Resultados

O resultado esperado para esse experimento é os seguinte:

Antes, não esqueça de mudar a taxa de comunicação para 115200, como mostrado na figura abaixo;


Considerações Finais

Espero que tenha gostado do nosso post sobre acelerômetros. O intuito aqui foi tentar ajudar nossos leitores a escolherem adequadamente qual acelerômetro utilizar em diferentes situações.

Gostaria de aprender um pouco mais sobre componentes eletrônicos e Arduino? Acesso nosso blog na categoria “Tutoriais” e descubra mais! Basta clicar aqui.

Curtiu o post? Avalie e deixe um comentário!

Siga-nos também no Instagram e nos marque quando fizer algum projeto nosso: @eletrogate.

Até mais!


Sobre o Autor


Ricardo Lousada
@ricardo_lousada

Graduando em Engenharia de Controle e Automação pela UFMG. Ocupo meu tempo aprendendo cada vez mais sobre eletrônica e programação, áreas que mais gosto. Meus hobbies são cinema e livros.


Eletrogate

14 de setembro de 2020

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!