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:
É 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