sexta-feira, 23 de setembro de 2016

MPU6050 no Maple Mini + Exibição dos dados na interface feita em Processing

No post anterior eu mostrei como enviar dados pela porta serial sem precisar fazer qualquer interpretação de texto e exibir esses dados em uma interface em um sketch de Processing. Usando aquela mesma interface, eu vou exibir dados extraídos de um acelerômetro/giroscópio MPU6050 ligado em um Maple Mini. Pra fazer a comunicação entre o Maple Mini e o MPU6050 eu não usei nenhuma biblioteca além da HardWire.h, que permite que você utilize as duas interfaces i2c da plaquinha separadamente. A comunicação com o MPU6050 é feita basicamente escrevendo em registradores para enviar comandos e requisitando os dados depois.

O programa inclui ainda uma forma bem rudimentar de calibrar o MPU6050. Internamente, é como se o MPU6050 tivesse 6 "molas", e as propriedades elétricas (como resistividade) dessas micro-molas mudam conforme o módulo é acelerado/girado. Como são estruturas microscópicas, já dá pra imaginar o inferno que é produzi-las de maneira consistente. Por isso mesmo é preciso realizar a calibração do módulo. Esse procedimento é realizado enviando valores de offset de cada componente do acelerômetro e giroscópio para o módulo até que, estando em repouso, ele informe apenas a aceleração da gravidade e só um pouquinho de ruído. Há outros "defeitinhos" deste CI que precisam ser contornados, mas só abordarei esse assunto mais pra frente.

Enfim, eis o código:

Depois que a plaquinha está ligada no MPU6050 e enviando os dados pela porta serial, a interface no Processing fica desse jeito:

Displaying data from mpu6050 accelerometer in processing #arduino

Um vídeo publicado por Ruy Jorje (@ruyjorje) em

É isso aí! O próximo post vai ser sobre como enviar as informações do MPU6050 através de um módulo NRF24L01+, empregando uma técnica parecida para transmitir os dados em modo binário!

Nenhum comentário:

Postar um comentário