Estou usando um MPU6050 com o arduino UNO, no entanto os valores estão variando absurdamente. Preciso dos valores da aceleração para calculo de distância, porém não estou conseguindo o valor real da aceleração. Vi alguns tutorias na internet e os resultados foram muito diferente do meu. Alguém saberia como resolver esse problema?

Essas são as respostas:

AcX = -13428 | AcY = 5280 | AcZ = -8384 | Tmp = 27.12 | GyX = -998 | GyY = -310 | GyZ = -86
AcX = -13120 | AcY = 5580 | AcZ = -7488 | Tmp = 27.07 | GyX = -269 | GyY = -203 | GyZ = -2
AcX = -13212 | AcY = 5444 | AcZ = -8396 | Tmp = 27.12 | GyX = -367 | GyY = -264 | GyZ = 135
AcX = -13148 | AcY = 5520 | AcZ = -7740 | Tmp = 27.07 | GyX = -85 | GyY = -63 | GyZ = 234
AcX = -13040 | AcY = 5516 | AcZ = -7924 | Tmp = 27.17 | GyX = -262 | GyY = -186 | GyZ = -101
AcX = -13212 | AcY = 5544 | AcZ = -7812 | Tmp = 27.12 | GyX = -128 | GyY = -249 | GyZ = 120

Exibições: 100

Anexos

Responder esta

Respostas a este tópico

Boa noite KSG,

Recomendações:
1. Remova seu sketch da área de texto do seu tópico;
2. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
3. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer com cada linha e facilita a ajuda.
4. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
     com o seu sketch.

RV

Boa noite Karine.

Os dados não estão variando tanto assim.  Explique melhor oque você precisa fazer.

Sds;

Esses são valores brutos, gostaria de transformar para valores mais reais.

Obrigada José irei estudar da uma olhada nesses links.

Confuso mesmo, eu nunca entendi.

Tem que pesquisar em materiais como esse:

http://www.if.ufrj.br/~pef/producao_academica/dissertacoes/2013_Leo...

Mas até isso virar código...

Os dados vem como aceleração instantânea. Até chegar em deslocamento tem que passar por velocidade primeiro.

É certamente possível fazer, mas não sei como.

Acredito que seja uma somatória no tempo da (Aceleração*t*t) onde t é tempo entre amostras.

Como Aceleração é dada em m/s2 (metros por segundo ao quadrado) vc precisaria multiplicar por tempo ao quadrado.

Mas... já começa que a aceleração deveria dar sempre 0 se está parado. Tem a gravidade, que afeta o giroscópio...

Enfim, não sei.

Boa sorte. Vamos ver se alguem tem algo mais preciso e direto para dizer.

Consigo encontrar o valor da velocidade usando a integral da aceleração, porém não estou conseguindo um tempo de transmissão constante, mas o maior problema está sendo em converter os valores brutos do acelerômetro em valores reais (m/s²).

Obrigada!

Bom dia KG,


O acelerômetro tem vários ranges     Accelerometer ranges: ±2, ±4, ±8, ±16g

Na biblioteca desse módulo, os limites (range) do MPU é definido dentro da função initialize() através das funções setFullScaleAccelRange() para o acelerômetro e setFullScaleGyroRange() para o giroscópio.

 Assim, se você está fazendo o uso da biblioteca MPU6050.h, basta chamar a função setFullScaleAccelRange(x) 

após a chamada de initialize(), onde x é o range de 2g (MPU6050_ACCEL_FS_2) a 16g (MPU6050_ACCEL_FS_16)  do acelerômetro.


Se você está acessando o MPU sem o uso de sua biblioteca,  o processo é um pouco mais complexo,

pois será preciso adaptar e simplificar algumas funções de outras bibliotecas.

Os valores valores podem ser transformado em g   ;   1g = 9,806 65 m/s²

Para transformar estes valores lidos em g, use a seguinte formula:


   Valor g(x, y ou z) = Valor-lido/ sensibilidade

Em exemplos  sem uso de biblioteca, o valor parece que está definido como 2g ;16.384,

mas não tenho certeza

User-programmable accelerometer full-scale range of ±2g, ±4g, ±8g, and ±16g.

2g                  |    16,384

4g                  |    8,192 

8g                  |    4,096

16g                 |    2,048

Um exemplo com definição 2g:   

AcX = -13428 | AcY = 5280 | AcZ = -8384 | Tmp = 27.12 | GyX = -998 | GyY = -310 | GyZ = -86


x = 13428    ; 13428/16384      = 0,819580078125   m/s²

y =   5280    ; 5280/16384        = 0,322265625  m/s²

z =  -8384    ;  -8384/16384      = -0,51171875  m/s²


RV

Obrigada! acho que isso irá ajudar muito. Você teria algum material de pesquisa sobre isso?

Boa tarde KG,

tudo que escrevi acima, foi baseado principalmente no datasheet do mpu-6xxx.

datasheet:  https://www.invensense.com/wp-content/uploads/2015/02/MPU-6000-Data...

RV

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço