O mundo tecnológico evolui cada vez mais e as novas tecnologias estão aí para comprovar isto, temos celulares inteligentes capazes de mudar a posição de sua tela com a simples inclinação do equipamento e capazes de identificar se os direcionamos para cima, baixo, esquerda ou direita, por trás de cada uma destas características existe um acelerômetro e giroscópio. No post de hoje “Acelerômetro e Giroscópio Arduino na Obtenção de Valores X, Y e Z” vamos trabalhar com alguns modelos desenvolvidos especialmente para microcontroladores.
Neste projeto iremos utilizar o MPU-6050 para realizar a leitura dos valores espaciais de X, Y e Z, utilizando todos os 6 eixos de coordenada oferecidos por este exclusivo equipamento, dos quais 3 eixos irão se referir ao acelerômetro e os outros 3 ao giroscópio.
Diferenciando-se dos demais equipamentos que possuem somente um sentido de medida, este equipamento em questão reúne duas funcionalidades em um único módulo, combinando acelerômetro e giroscópio arduino, além de contar também com um sensor de temperatura incluso que permite leituras de -40 a 85°C.
Falamos tanto em acelerômetros e giroscópios porém muitos ainda nem sabem qual a diferença de um para outro e nem mesmo para que ambos servem e o que podem agregar aos seus projetos, de um modo bem simplificado vamos tentar explicar cada um deles e elencar as suas principais diferenças.
Acelerômetro
De modo geral, um acelerômetro é um equipamento capaz de medir a aceleração de um corpo (como seu próprio nome já dá a entender) em relação à gravidade, ou seja, é um equipamento capaz de medir a aceleração exercida sobre determinados objetos, executando algum tipo de ação dependendo do movimento executado sobre o mesmo.
Giroscópio
O giroscópio não possui uma funcionalidade radicalmente diferente do acelerômetro, ele é um sensor que utiliza da força da gravidade para indicar a posição de um determinado objeto no espaço, podendo identificar se você gira algo em seu próprio eixo ou saber se esta apontando ele para cima ou para baixo.
Acelerômetro X Giroscópio
É difícil identificar uma real diferença entre estes equipamentos, podemos dizer que um vai acabar por complementando o outro e tornando as medições de ambos ainda mais precisa e exata, enquanto um mede a aceleração de um corpo em relação à gravidade, o outro mede a posição do corpo através da força da gravidade.
Teste Prático
Neste projeto, nosso parceiro do canal WR Kits executou um código exemplo capaz de verificar e exibir em tempo real os 6 valores das coordenadas possíveis de verificação através deste exclusivo sensor, exibindo junto ao monitor serial todos estes valores, tudo isto através de um simplificado sistema de conexão I2C e um código de fácil compreensão.
Produtos Utilizados no Projeto
Montagem Física (Hardware)
A montagem física do projeto Acelerômetro e Giroscópio Arduino na Obtenção de Valores X, Y e Z é extremamente simples já que trabalha somente com dois fios de alimentação e dois fios de comunicação I2C, de modo geral esta sua utilização é extremamente simples e rápida, porém este equipamento possui algumas características próprias que podem ser de grande valia no desenvolver do seu projeto.
Por se tratar de uma comunicação I2C, realizada pelos dois pinos de comunicação SCL e SDA conectados aos pinos A5 e A4 respectivamente, podemos observar que além dos pinos de alimentação ainda nos restam outros quatro pinos, neste projeto eles não serão utilizados, porém saiba para que eles servem:
Os pinos XDA e XCL trabalham neste módulo como um tipo de extensão para os pinos de comunicação SDA e SCL, tornando possível a conexão de outro dispositivo de mesmo padrão de comunicação I2C, como um magnetômetro que irá vir a complementar o seu equipamento e aumentar as possibilidades do seu projeto.
Já o pino AD0, por exemplo, possui a capacidade de definir o endereço I2C utilizado para a comunicação, caso o pino AD0 esteja desconectado, ou seja, não esteja sendo utilizado, a comunicação estará definida em 0x68 porém, caso opte em conectar este pino junto ao 3,3V do Arduino, seu endereço será alterado para 0x69.
Funcionamento do Programa (Software)
Este projeto é desenvolvido em cima de um código parcialmente complexo e suas variáveis são dependentes de bibliotecas específicas para o seu funcionamento, isto torna necessária a instalação de duas bibliotecas junto ao seu programa Arduino, bibliotecas ás quais estão disponível para download logo abaixo junto ao código exemplo do projeto.
As bibliotecas necessárias para o funcionamento do código são as seguintes:
[crayon-673f806fe42ac094029318/]
Porém vale lembrar que esta terceira biblioteca, a Wire.h já vem instalada junto com o programa original do Arduino.
Download do código de funcionamento: DOWNLOAD AQUI.
Este código diferente dos que estamos acostumados a ver em nosso blog trabalha com um valor diferenciado do Baundrate, neste caso fixado em 38400, como demonstrado abaixo:
[crayon-673f806fe42b5627556839/]
Um diferencial deste código, é a sua capacidade de testar as conexões e verificar se todas as configurações estão funcionando normalmente, com uma delay de verificação de aproximadamente 1 segundo, os valores dados pelo Módulo MPU-6050 são exibidos em tempo real através da porta serial, e vale lembrar que a mesma deve estar na mesma faixo de Baundrate especificada no código.
Conclusão
De modo geral o projeto Acelerômetro e Giroscópio Arduino na Obtenção de Valores X, Y e Z é simples e extremamente útil para quem deseja desenvolver um código para controle de servos motores, motores DC e diversos outros equipamentos através de um acelerômetro e um giroscópio, realizando o movimento de um braço robótico, por exemplo, alterando o ângulo de alguns motores.
Para quem está desenvolvendo um robô equilibrista e precisa de um equipamento que auxilie o seu robô a permanecer sempre em pé, as funcionalidades e aplicações do Acelerômetro e Giroscópio MPU-6050 são extremamente amplas e com este código como base do seu projeto não possui limites para a sua imaginação.
Monte o seu projeto, pense em alguma aplicação e não se esqueça de comentar aqui em baixo suas ideias e experiências, com este projeto você pode auxiliar seu robô a não perder o controle e tornar a experiência de muitos projetos ainda melhor.